Forum Discussion

FvM's avatar
FvM
Icon for Super Contributor rankSuper Contributor
1 hour ago

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;
endmodule

I 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 SEtoDE

Compilation 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 SEtoDE

Presume this should never happen

Regards
Frank

No RepliesBe the first to reply