| Login | | Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name. | |
| Who's Online | There are currently, 35 guest(s) and 0 member(s) that are online.
You are Anonymous user. You can register for free by clicking here | |
 | |
|
Verification Guild: Forums |
|
| View previous topic :: View next topic |
| Author |
Message |
joecool Senior


Joined: Jan 09, 2006 Posts: 39 Location: Austin, TX
|
Posted: Thu Oct 25, 2007 5:36 pm Post subject: gate level simulations |
|
|
I was wondering what everyones thoughts are on gate level simluations.
Is it enough to say:
-RTL passes simulations
-a Logic Equavlance check of RTL verses Gate passes
Therefore the gate is working?
Or is it better to run a gate level sim? |
|
| Back to top |
|
 |
jun Senior


Joined: Mar 03, 2007 Posts: 129
|
Posted: Thu Oct 25, 2007 7:47 pm Post subject: |
|
|
Gate level simulation is useful for timing check.
Though there is STA for timing check, STA rely on user's timing constrain. In case user does not constrain timing properly, such as set false path/multicycle path incorrectly, etc, the timing violation may not be found since timing report maybe shows everything is fine.
In this case, the gate level simulation, work as dynamic timing check, can help user to find timing problem. |
|
| Back to top |
|
 |
normandie Senior


Joined: Jul 04, 2007 Posts: 30
|
Posted: Fri Oct 26, 2007 1:46 am Post subject: |
|
|
what he says is true.
you'll find many timing violations when you run a gate-level sim.
in our experience we normally find hold timing violations.
You dont need to run all of your tests though. Gate level sim is slow. some test we run took weeks to hit the 5M cycle mark.
Find good candidate tests for gate-level sim.
FYI even the netlist from post layout is subjected to tests.
Just to verify if everything is ok before really taping out. |
|
| Back to top |
|
 |
joecool Senior


Joined: Jan 09, 2006 Posts: 39 Location: Austin, TX
|
Posted: Fri Oct 26, 2007 12:56 pm Post subject: |
|
|
Thanks for the feedback.
The main reasoin why we do gate is to catch some async issuses. |
|
| Back to top |
|
 |
holger Newbie


Joined: Sep 06, 2007 Posts: 1
|
Posted: Thu Nov 08, 2007 7:58 am Post subject: Re: gate level simulations |
|
|
| joecool wrote: | Is it enough to say:
-RTL passes simulations
-a Logic Equavlance check of RTL verses Gate passes
Therefore the gate is working?
|
I have an example where RTL simulation, STA, and equivalence check are okay, but the netlist still doesn't work. It's a state machine in VHDL with an enum state variable and without reset. The linter caught the problem in this case. However, I wouldn't skip the netlist simulation (post-layout over corners). |
|
| Back to top |
|
 |
jun Senior


Joined: Mar 03, 2007 Posts: 129
|
Posted: Mon Mar 17, 2008 12:22 pm Post subject: |
|
|
| Quote: |
Since functional verification with just the RTL code, will not verify the timing related issues, how to verify if the design meets the timing?
|
Most of timing check done by STA, which is at gate level as well, but as mentioned in previous post, gate level simulation can help to find some holes in STA.
| Quote: |
Should we do a netlist simulation too? Will that identify all the issues, as if we could find from FPGA prototyping? If so what's the need for going in for a FPGA prototyping for any design,
why not we go for the netlist simulation itself?
|
FPGA timing is totally different from chip timing, FPGA is mainly for speed up simulation time, and for functiaonality only. Since gate level simulation is very slow, it is impossible to run all functional testcases with gate level if the design is big.
For mix-signal chip, usually functionality/timing check of digital part and analog part are done separately.
If there is no loop in both of digital and analog part, the whole chip simulation mainly only focus on signal polarity in digital/analog interface, make sure those control/status signal can be input/output with expected polarity. However, timing check in digital/analog interface is tricky, still lots of manual work/eyeball checking is involved.
If there is loop in both of digital and analog part, whole chip simulation need also verify the function, make sure the loop can be converged. However, since this kind of co-simulation is very slow, people just run very limited number of testcases with whole chip netlist. |
|
| Back to top |
|
 |
tessitd Senior


Joined: Sep 05, 2006 Posts: 286 Location: Colorado
|
Posted: Mon Mar 17, 2008 5:42 pm Post subject: |
|
|
As several posters have said Gate Level Simulations are necessary, I call them essential. Here is a quick list of what I have found with Gate Level Simulations:
1) RESET, RESET, RESET - the Chip doesn't get out of reset. Mostly the RTL coder didn't initialize something with reset but used a declared verison (shows up in Synthesis log, but who has time to read those). I spend most of my gate simulations issue here getting the thing running. Start with Gates as soon as you get a decent netlist+SDF and you will be rewarded with going home on time a few night. Don't do this and pull a few all nighters wondering what the heck is going on!
2) PLL Configuration Issues - Assumes your Foundry simulation model is sound. Nothing worse then clocks not starting.
3) Async clock domain crossing issues; should be caught by running Lint and CDC tools, again who has time to read all those reports.
4) IO timing not implemented correctly in STA or not written yet for that new DDR-X memory but we have a simulation model!
5) Checking polarity between blocks - oops we forgot to connect block A and block B in RTL simulations, but we have them in gates. Do they talk to each other (this is the Mixed Signal Example above).
Biggest thing you could do to your BFM models (whatever language) is to allow signals to be checked and generted in simulation within the tolerances allowed. This makes gate level simulation much more interesting and realistic.
Gate Level simultions are necessary, but don't do every test - just basic functionality should get it done. Once you start seeing errors come out of Gate Simulations you can go back to STA and your reports and show what needs to be fixed.
TomT... |
|
| Back to top |
|
 |
sharanbr Senior


Joined: Sep 27, 2004 Posts: 194
|
Posted: Tue Mar 18, 2008 9:54 am Post subject: |
|
|
To add:
We did find an issue in one of our designs where the fifo pointers to two different fifos came out of reset at different times and were off by more than a clock cycle during post route simulations. So, the fifos went out of sync and everything went haywre after that.
This was a very bad sync strategy used by the designer. But similar to bugs, such issues do keep creeping in into designs. We were glad that we did do gate sims.
Probably a constraint on reset would have brought this out. But such things are so easy to miss out. Especially when designer and STA personnel are different. |
|
| Back to top |
|
 |
supertrooper Senior


Joined: Jan 11, 2005 Posts: 270
|
Posted: Thu Mar 20, 2008 5:51 am Post subject: |
|
|
In addition to the aforesaid the following should be noted:
- for checking chip initialization and functional correctness gate-level
simulation with unit-delay timing would be sufficient. It runs much faster
in comparison with full-timing simulation (but still very slow than RTL
simulation). The advantage is that you can start to simulate your netlist
early not waiting for timing constraints to meet.
- in contrast full-timing simulation is used mainly for checking assync logic
and IO timing. As a rule it should incorporate worst and best timings. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
| |
|
|