nicoxp31
Newbie level 6

hold violation fpga
Hi,
After having used the traditional design flow on Xilinx ISE tool (FPGA Virtex-5), i have still some hold timing violations.
Here is one example:
Timing constraint: TS_XXXXX = PERIOD TIMEGRP "XXXXX" 166 ns HIGH 50%;
167 items analyzed, 15 timing errors detected. (0 setup errors, 15 hold errors)
Minimum period is 3.550ns.
--------------------------------------------------------------------------------
Hold Violations: TS_XXXXX = PERIOD TIMEGRP "XXXXX" 166 ns HIGH 50%;
--------------------------------------------------------------------------------
Hold Violation: -2.349ns (requirement - (clock path skew + uncertainty - data path))
Source: XXXX/gap_cnt[3] (FF)
Destination: XXXXXX/gap[1] (FF)
Requirement: 0.000ns
Data Path Delay: 0.911ns (Levels of Logic = 2)
Positive Clock Path Skew: 3.225ns
Source Clock: XX.cmil[7] rising at 0.000ns
Destination Clock: YY/clk13_rf_cl_i_0 rising at 166.000ns
Clock Uncertainty: 0.035ns
Clock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
Total System Jitter (TSJ): 0.070ns
Total Input Jitter (TIJ): 0.000ns
Discrete Jitter (DJ): 0.000ns
Phase Error (PE): 0.000ns
So all my timing violations are due to some positive clock path skew and the clock path skew is much bigger as the data path delay.
SO here are my questions in order to remove these HOLD Violations:
- Should i play rather on synthesis or PAR options?
- Is it normal that clock path skew delay is much bigger than the data path delay?
- How should I play with the (SDC or UCF) constraints options in order to reduce this?
Thanks a lot,
Jerome
Hi,
After having used the traditional design flow on Xilinx ISE tool (FPGA Virtex-5), i have still some hold timing violations.
Here is one example:
Timing constraint: TS_XXXXX = PERIOD TIMEGRP "XXXXX" 166 ns HIGH 50%;
167 items analyzed, 15 timing errors detected. (0 setup errors, 15 hold errors)
Minimum period is 3.550ns.
--------------------------------------------------------------------------------
Hold Violations: TS_XXXXX = PERIOD TIMEGRP "XXXXX" 166 ns HIGH 50%;
--------------------------------------------------------------------------------
Hold Violation: -2.349ns (requirement - (clock path skew + uncertainty - data path))
Source: XXXX/gap_cnt[3] (FF)
Destination: XXXXXX/gap[1] (FF)
Requirement: 0.000ns
Data Path Delay: 0.911ns (Levels of Logic = 2)
Positive Clock Path Skew: 3.225ns
Source Clock: XX.cmil[7] rising at 0.000ns
Destination Clock: YY/clk13_rf_cl_i_0 rising at 166.000ns
Clock Uncertainty: 0.035ns
Clock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
Total System Jitter (TSJ): 0.070ns
Total Input Jitter (TIJ): 0.000ns
Discrete Jitter (DJ): 0.000ns
Phase Error (PE): 0.000ns
So all my timing violations are due to some positive clock path skew and the clock path skew is much bigger as the data path delay.
SO here are my questions in order to remove these HOLD Violations:
- Should i play rather on synthesis or PAR options?
- Is it normal that clock path skew delay is much bigger than the data path delay?
- How should I play with the (SDC or UCF) constraints options in order to reduce this?
Thanks a lot,
Jerome