Timing Violations in JTAG Signals
Hello,
I have a Arria10 FPGA design using Platform Desginer which includes a Avalon to JTAG Brdige.
I have added a jtag.sdc file to the project based on this guideline: JTAG Signals
and set all the "--customize here--" sections according to my design (see attached sdc file).
However the Timing Analyzer gives me several setup violations on JTAG signals:
-18.207 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_8 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.240 Slow 950mV 100C Model -18.206 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_9 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.239 Slow 950mV 100C Model -18.157 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_7 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.190 Slow 950mV 100C Model -18.142 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_10 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.175 Slow 950mV 100C Model -18.123 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_11 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.156 Slow 950mV 100C Model -18.120 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_6 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.582 4.153 Slow 950mV 100C Model -17.207 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_1 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.125 3.697 Slow 950mV 0C Model -17.136 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_3 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.125 3.626 Slow 950mV 0C Model -17.069 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_2 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.125 3.559 Slow 950mV 0C Model -17.064 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM_4 altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.125 3.554 Slow 950mV 0C Model -16.972 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|int_tdo_reg~LRTM altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -2.125 3.462 Slow 950mV 0C Model -16.075 auto_fab_0|alt_sld_fab_0|alt_sld_fab_0|jtagpins|atom_inst|atom~jtag_reg__nff altera_reserved_tdo altera_reserved_tck (INVERTED) altera_reserved_tck (INVERTED) 33.333 -0.450 4.240 Slow 950mV 0C Model
The listed registers look similar but not identical to the security reg listing in the jtag.sdc line 86-89 which are to be ignored.
So I'm not sure if these errors are actual errors caused, e.g. by a too high JTAG clock rate, or if these registers are just missing a respective false path due to encrypted core.
The Timing Analyzer does list the falling paths as encrypted:
Please advise how to deal with these JTAG signal in timing analysis.
Thanks
Fabian
After internal testing and discussion, we’ve confirmed the following for Arria 10 devices:
- Only the on-board USB-Blaster II is capable of supporting up to 24 MHz.
- The off-board USB-Blaster II cannot reach 24 MHz due to certain limitations
- That said, if the TDO pin of the Arria 10 is driving the TDI of another device through a short trace, it can still support up to 24 MHz.
In the SDC files, you’ll notice a placeholder such as <<customer here>>. This needs to be updated based on the actual trace length measurements on your board. If you're targeting 24 MHz, the timing constraints will need to be tighter to meet the higher frequency requirements.
I'll attach a sample SDC file that helps close timing at higher speeds. Let me know if you have any further questions.