Forum Discussion
Enable on-chip termination for Differential Transceiver clocks
- 1 year ago
Hi,
as far as I understand you are still searching for valid .qsf entry for transceiver clock input termination.
Valid settings are listed in this document: https://www.intel.com/content/www/us/en/docs/programmable/683296/24-3.html
As far as I see, the settings are the same for previous Quartus Pro versions.
The option for transceiver reference clock termination is XCVR_A10_REFCLK_TERM_TRISTATEallowed values are TRISTATE_OFF and TRISTATE_ON
TRISTATE_OFF corresponds to 100 ohm differential termination.
Some confusion is caused by the fact, that Quartus Std. uses a different option name
XCVR_REFCLK_PIN_TERMINATIONvalues are AC_COUPLING, DC_COUPLING_EXTERNAL_RESISTOR and DC_COUPLING_INTERNAL_100_OHMS
See: https://www.intel.com/content/www/us/en/docs/programmable/683084/current/settings-file-reference-manual.html
To check which termination has been actually implemented, you can review QPP fitter report/Plan Stage/Input Pins.
Regards
Frank
Hi
Based on my understanding, When Quartus detects an unrecognized or unsupported .qsf syntax, it typically ignores it without generating a critical error—unless the syntax affects an essential function that would cause the design to fail timing or functionality checks. In your case, Quartus likely ignored the unsupported HSSI_PARAMETER syntax and instead applied its default settings for differential transceiver clocks, which can sometimes include internal terminations if the clock configuration implicitly supports it.
In Arria 10, the differential transceiver clocks often have default terminations based on common transceiver configurations. Since 100-ohm differential termination is typical for many high-speed applications, Quartus may have automatically applied this setting, even with the syntax error.
Hi @AR_A_Intel ,
I just added the lines 9-10 (see the code block) in my .qsf file after removing the HSSI_PARAMETER lines. However, I've received the error message below on Quartus Fitter stage (synthesis was successful). Even though now I could see that the syntax I used is valid on the Assignment Editor, I cannot get passed through the compilation. According to the error message, the syntax you'd proposed is now not right...
set_location_assignment PIN_V27 -to clk_xcvr_1e(n) ; # BANK 1E : XCVR set_location_assignment PIN_V28 -to clk_xcvr_1e ; # BANK 1E : XCVR set_instance_assignment -name IO_STANDARD LVDS -to "clk_xcvr_1e(n)" set_instance_assignment -name IO_STANDARD LVDS -to clk_xcvr_1e set_location_assignment PIN_M27 -to clk_xcvr_1f(n) ; # BANK 1F : XCVR set_location_assignment PIN_M28 -to clk_xcvr_1f ; # BANK 1F : XCVR set_instance_assignment -name INPUT_TERMINATION "DIFFERENTIAL 100 OHM" -to clk_xcvr_1f -entity myDesign set_instance_assignment -name INPUT_TERMINATION "DIFFERENTIAL 100 OHM" -to clk_xcvr_1e -entity myDesign
Error(12356): OCT assignment 'DIFFERENTIAL 100 OHM' to pin clk_xcvr_1e is not supported by the device. The name 'DIFFERENTIAL 100 OHM' is not a valid OCT name
Error(16297): An error has occurred while trying to initialize the plan stage.
Do you know what's the root cause of this Quartus crash ?
PS: I also tried commenting out lines 3-4, didn't help.