Forum Discussion

MRenn's avatar
MRenn
Icon for New Contributor rankNew Contributor
6 years ago

Timing violation with Altera GPIO in DDR mode

I have a setup violation at the register after the input register. The input register is constrained as described in AN433.

set_input_delay -add_delay -clock virt_adc_clk -min -0.6             [get_ports {ADC_DATA[*]}] 
set_input_delay -add_delay -clock virt_adc_clk -min -0.6 -clock_fall [get_ports {ADC_DATA[*]}] 
 
set_input_delay -add_delay -clock virt_adc_clk -max  0.6             [get_ports {ADC_DATA[*]}]
set_input_delay -add_delay -clock virt_adc_clk -max  0.6 -clock_fall [get_ports {ADC_DATA[*]}]
 
set_false_path -setup -fall_from [get_clocks virt_adc_clk] -rise_to \
[get_clocks CLK262]
set_false_path -setup -rise_from [get_clocks virt_adc_clk] -fall_to \
[get_clocks CLK262]
set_false_path -hold -rise_from [get_clocks virt_adc_clk] -rise_to \
[get_clocks CLK262]
set_false_path -hold -fall_from [get_clocks virt_adc_clk] -fall_to \
[get_clocks CLK262]

But now i have the violation after the input register, as you can see in the picture from Timequest.

Do I miss something?

33 Replies

  • KhaiChein_Y_Intel's avatar
    KhaiChein_Y_Intel
    Icon for Regular Contributor rankRegular Contributor

    Hi,

    Logic lock helps in timing but not all the time; it actually depends on the design. I have been working on this for some time and tried different methods to close the timing. Unfortunately, the best result I can get is -0.297ns violation on Slow 900mV -40C Model. Also, I have checked with the team, the suggestion is to use Phylite instead of GPIO for frequency higher than 200MHz. Please use Phylite as this is also suggested in our documentation.

    Thanks.

  • KhaiChein_Y_Intel's avatar
    KhaiChein_Y_Intel
    Icon for Regular Contributor rankRegular Contributor

    Hi,

    An IPS case has been opened for this issue, the case number is 00481849. My colleague will continue to support you through the IPS case.

    Thanks.

    Best regards,

    KhaiY