( ESNUG 322 Item 11 ) --------------------------------------------- [6/15/99]
Subject: ( ESNUG 319 #12 321 #9 ) Want To Remove Tied-off/Dead Flip-flops
> The result can be summarized like this: If a cell is not sequential (no
> clk), DC will try to remove it. If a cell does not drive anything, DC
> will try to remove it. But if a cell is sequential (has clk), or it
> drives something, DC is stuck with it, no matter how input pins are
> connected.
>
> If you have time, try the example, then have fun with other combinations.
>
> - William Liao
> MMC Networks
From: "John Patty" <EUSJRPA@am1.ericsson.se>
John,
I've done some more investigating also. The "open output" observation is
correct and is true for any element, not just a sequential element. Logic
that doesn't drive anything is removed automatically.
I ran some other test cases on some D FF's with the following configurations
to see how DC would optimize them. In each case, the test flop is a DFF w/
asynchronous reset. Test case is on the left. Results on the right.
1. Normal configuration (all i/o connected to signals) --> Normal DFF
2. Open output --> All logic removed
3. D input tied low --> DFF w/ D input tied low
4. reset_b tied active low --> DFF w/ reset_b tied low
5. clock tied low --> LATCH w/ D input tied low, reset_b tied to clock_b
6. D input tied high --> DFF w/ D input tied high
7. reset_b tied inactive high --> normal DFF w/o clear
8. clock tied high --> LATCH w/ D input tied low, reset_b tied to clock_b
The optimizations for 1, 2, 6, and 7 seem correct. For 3, 4, 5, and 8, the
output can only be controlled to the low state and should be reduced to a
tie-off.
As an observation, I would say that DC does NOT have the ability to replace
a sequential element with a non-sequential element.
- John Patty
Ericsson Research Triangle Park, NC
|
|