Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

Post-synthesis gate-level VCS simulation (race condition)

Status
Not open for further replies.

homer2k1

Newbie level 5
Joined
Aug 26, 2009
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,367
post synthesis gate level simulation

Short version:

How to configure VCS to understand multiple clocks for a gate-level simulation after clock tree synthesis and routing?


Long version, with details:

Are there any special tricks/command-line options necessary for running a post-synthesis gate-level simulation in VCS? After synthesis (specifically, after CTS and routing), a simple shift register in my design exhibits a certain race condition.

Specifically, the single clock to the shift register is being split/buffered as multiple clock inputs, distributed to the 32 D flip-flops comprising the register. Although each clock can be traced back to the same root of the clock tree, I think the multiple clocks are being "triggered" or added to the VCS event queues in an unexpected order. As a result, one particular bit in the register shifts early/incorrectly.

Are there commands during clock tree synthesis that I can use to aid the VCS simulation later? Or alternatively, am I using the right flags in VCS? Relevant details:

- everything is written in Verilog
- design works fine pre-synthesis, and is fine right before CTS, but the generated netlist after CTS exhibits this behavior
- using Synopsys CAD flow: Design Compiler (Y-2006.06-SP6) and Astro (Z-2007.03-SP10), with a 90-nm TSMC process
- VCS (B-2008.12) with the following flags: -sverilog +v2k +lint=all -v <path>/tcbn90ghp.v -y <path>/src_ver +libext+.v+ -timescale=100ps/100ps +timopt=300ps

Thanks in advance for your help!
 

aji_vlsi

Advanced Member level 2
Joined
Sep 10, 2004
Messages
646
Helped
84
Reputation
168
Reaction score
12
Trophy points
1,298
Location
Bangalore, India
Activity points
4,975
gate level synthesis

Try turning on -debug or -debug_all for the SAKE of shutting down optimization and see if that helps. If yes, then we can further nail it down to specific code.

Best is if it reproduced in a small testcase - the scenario you've described looks recretable, but does that show race problem?

Ajeetha, CVC
www.cvcblr.com
 

asicdesigner

Newbie level 4
Joined
Aug 28, 2009
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
USA
Activity points
1,303
vcs +race condition

Make sure design is timing clean after CTS i.e. no timing violations. Also you need to use SDF when you do gate level simulation to annotate timing delay properly.

Sanjay
 

Status
Not open for further replies.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top