Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics 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.

mixed RTL and Gate-level simulation

Status
Not open for further replies.

tariq786

Advanced Member level 2
Joined
Feb 24, 2004
Messages
562
Helped
67
Reputation
134
Reaction score
53
Trophy points
1,308
Location
USA
Activity points
3,048
Some verification people perform mixed RTL + Gate-level simulation for various reasons including

1) when full RTL design is not synthesized yet . That is Only some part of RTL is synthesized and the synthesized gate-level portion is simulated with the remaining RTL.
2) validating ECO (engineering change order) where one gate-level block is simulated with the rest of the RTL
3) speed up compared to pure gate-level simulation.

The question is

Doing mixed RTL+Gate-level simulation does get a speedup over pure gate-level simulation but does n't this hide bugs due to X pessimism or X optimism?

For example, if pure gate-level simulation is done, a certain net/register would be X. By mixing RTL and gate-level simulation, it is possible that you would hide the X bug.


How to address the kinds of issues related to X pessimism or optimism in mixed RTL + gate-level simulation.


How to learn from your point of view.

THanks

Kind Regards,
 
If you want to catch x propagation kind of issues at RTL level before you move to GLS you have to do coding in such manner. For example if we know a clock can go to x then in rtl we have to capture such a way that the ouput corrupts if clock is x
 
Your question is very similar to the question "what shall I do to make sure that what I simulate in RTL is exactly what I got from Gate-level simulation ?" . And the answer is not so easy but I can list some of things in my mind that can help in partially answering this question :
1) You have to follow RTL coding guidelines . These guidelines wasn't made for just annoying RTL designers but rather to make sure you don't got fake results in RTL simulations
2) have a complete sensitivity lists for computational blocks
3) make sure that you don't have timing issue using Static-timing Analysis
4) make sure you are handling all CTS "clock-domain-crossings" in the right way.
5) if you are using multi-power domains in your design you have to take care alot for all signals crossing from one power-domain to another , by adding the proper isolation cells / retention cells and make sure that you are controlling these isolation/retention cells in the right way
6) Avoid the usage of computational loops completely
7) as much as you can don't use non-standard logic styles (e.g. asynchronous logic)

There must be other things that I don't recall now.
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top