- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi.
I'm trying to perform a gate level simulation of my design. Synthesis report doesn mention any kind of setup/hold violation. Nevertheless, when simulation the design in modelsim, i get a lot of messages similar to the below: # Note : StratixII PLL locked to incoming clock# Time: 116209 Instance: testbench.d3.clkgen0_a_astrat2_av_asdclk_pll_a_asden_aaltpll0_apll# ** Error: /home_ext/ecco/grlib-gpl-1.0.22-b4075/designs/leon3-altera-ep2s60-sdr/stratixii_atoms.v(1658): $hold( posedge clk &&& sloaddata:1159477 ps, adatasdata:1159509 ps, 200 ps );# Time: 1159509 ps Iteration: 0 Instance: /testbench/d3/a_amg2_asr1_ar_adata_a27_a# ** Error: /home_ext/ecco/grlib-gpl-1.0.22-b4075/designs/leon3-altera-ep2s60-sdr/stratixii_atoms.v(1658): $hold( posedge clk &&& sloaddata:1159475 ps, adatasdata:1159556 ps, 200 ps ); (...) The gate level simulation never ends though... Any ideas of what is wrong?Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Multiple possibilites come to mind
a) you've not properly constrained your design, timming wise b) your testbench does not comply with the constraints you've specified. For example, if your testbench uses a faster clock than what you've constrained your design for. c) you're hitting a bug or limitation of the STA tool.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- b) your testbench does not comply with the constraints you've specified. For example, if your testbench uses a faster clock than what you've constrained your design for. --- Quote End --- Doesn't really explain a hold violation...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In FPGAs, hold violations are usually due to clock skew and are usually related to ripple clocks or gated clocks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Actually, I have quite the same issue: I have one timing violations located into the stratixii_atoms.v file. In my waveform window, a red triangle shows up and says: "C:/altera/90/modelsim_ase/win32aloem/../altera/verilog/src/stratixii_atoms.v(1572): $hold(posedge clk &&& reset:36531706 ps, ena:36531736 ps, 200 ps);". And the line 1572 of the stratixii_atoms.v file is: "$setuphold (posedge clk &&& reset, ena, 0, 0, ena_viol) ;". Apparently, Modelsim says the hold time is not long enough (30 ps instead of 200 ps), but the stratixii_atoms.v file doesn't specify such hold time. Is it a bug ? And surprising enough, when I save the messages into a text file, this violation timing doesn't show up anymore. Any idea ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually, it appears in the text file also when I save the messages. I didn't see.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page