( ESNUG 341 Item 13 ) -------------------------------------------- [1/26/00]
Subject: ( ESNUG 339 #3 340 #5 ) We Force All Our FF's To Zero On Reset
>> The main point I was trying to make is that spending time crafting X's
>> in the RTL is non-productive and error prone. In addition, as Cummings
>> previously stated, it violates faithful semantics between the RTL and
>> gate level simulation.
>>
>> - Harry Foster
>> Hewlett-Packard Computer Technology Lab
>
> Our approach to finding un-initialized flops on our last design was to
> use several scripts to find flops without resets.
>
> - Greg Brookshire
> Raleigh Technology Corp Cary, NC
From: wsnyder@maker.com (Wilson Snyder)
Hi, John,
I reset very few flops, adding reset hurts the gate count and cycle time
too much, so the technique I use here is almost the opposite; get rid of
all X's and do two state simulation. While originally this technique was
created for a two state simulator, I still use it and like it. It prevents
the classic gate-level simulation problem where you have a multiplexor with
a X select input:
(uninitalized x) -----------
____|____
(initialized 0) ---->| |
| 2:1 MUX |------ Simulator says X
(initialized 0) ---->|_________|
Then the X's tend to propagate to the universe and never settle out. If
the uninitalized element was either 0 or 1, the output would be 0, and all
would be fine. (The simulator is correct in putting the X though.)
So, do what the real hardware does, power up everything 1 or 0.
How do you get rid of them? Write a simple PLI ACC program that loops
through every reg in the design, fetches the value, and if X sets it to 0.
You call this routine during reset, and all X's are gone. You then run an
entire regression.
Yes, but then even if you were missing resets your chip would work, but
fail in silicon! So, run it again, setting all X's to 1. Make many more
runs, with random values assigned to the X's. If you have a good random
regression strategy, you can be pretty certain all is well.
To add some peace of mind, we print out the flops that are X, and do look
through them by hand. But, even after checking them by hand we've had this
strategy detect reset bugs, and have never had a reset bug in silicon.
- Wilson Snyder
Maker Communications Framingham, MA
|
|