Automatically added negative node for TDS output doesn't work with Agilex 5
Hello,
I'm trying to build a basic SE to DE converter on Agilex 5
module SEtoDE (
input SE,
output DE
);
assign DE = SE;
endmoduleI assign respective IO standards and use locations chosen by Quartus
Resulting in this .qsf assignments
set_global_assignment -name DEVICE A5EC008BM16AE6S
set_location_assignment PIN_AJ24 -to SE -comment IOBANK_5A
set_location_assignment PIN_D13 -to DE -comment IOBANK_3A_B
set_location_assignment PIN_C12 -to "DE(n)" -comment IOBANK_3A_B
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to SE -entity SEtoDE
set_instance_assignment -name IO_STANDARD "1.3-V TRUE DIFFERENTIAL SIGNALING" -to DE -entity SEtoDECompilation on Quartus 25.3.1 however doesn't produce a programming file due to below listed warnings
Critical Warning(25207): A programming file will not be generated because the assembler identified some pins have missing I/O Standard assignments.
Refer to the I/O Assignment Warnings table in the fitter report for details.
Critical Warning(15714): Some pins are missing I/O Standard assignments. Refer to the I/O Assignment Warnings report for details.
+----------------------------------------------------------------------------------------------------------+
; I/O Assignment Warnings ;
+----------+-----------------------------------------------------------------------------------------------+
; Pin Name ; Reason ;
+----------+-----------------------------------------------------------------------------------------------+
; DE ; Missing termination setting ;
; DE(n) ; Incomplete set of assignments. Missing I/O standard, drive strength and slew rate assignments ;
+----------+-----------------------------------------------------------------------------------------------+There are essentially two kinds of warnings, both unexpected and only occuring with Agilex 5 (and also Agilex 3). With Agilex 7 or Cyclone 10 GX, the design compiles flawlessly.
1. Warnings for negative pin: Missing I/O standard etc.
2. Missing termination setting
It turns out, that the problem can be fixed by adding an explicit I/O standard for the negative pin, although it shouldn't be required according to Quartus User Manual.
Then the warning level reduces and programming files are generated
Warning(25315): Some pins are missing drive strength (current strength) and/or slew rate assignments. Refer to the I/O Assignment Warnings report for details.
+----------------------------------------+
; I/O Assignment Warnings ;
+----------+-----------------------------+
; Pin Name ; Reason ;
+----------+-----------------------------+
; DE ; Missing termination setting ;
; DE(n) ; Missing termination setting ;
+----------+-----------------------------+To remove this warning, we also need to assign dummy termination settings to the TDS outputs
set_global_assignment -name DEVICE A5EC008BM16AE6S
set_location_assignment PIN_AJ24 -to SE -comment IOBANK_5A
set_location_assignment PIN_D13 -to DE -comment IOBANK_3A_B
set_location_assignment PIN_C12 -to "DE(n)" -comment IOBANK_3A_B
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to SE -entity SEtoDE
set_instance_assignment -name IO_STANDARD "1.3-V TRUE DIFFERENTIAL SIGNALING" -to DE -entity SEtoDE
set_instance_assignment -name IO_STANDARD "1.3-V TRUE DIFFERENTIAL SIGNALING" -to "DE(n)" -entity SEtoDE
set_instance_assignment -name OUTPUT_TERMINATION OFF -to "DE(n)" -entity SEtoDE
set_instance_assignment -name OUTPUT_TERMINATION OFF -to DE -entity SEtoDEPresume this should never happen
Regards
Frank