( ESNUG 297 Item 8 ) ---------------------------------------------- [7/30/98]
From: Gregg Lahti <glahti@sedona.intel.com>
Subject: IPO -- Got Messy Functional Equivalents When I Wanted Buffering!
John,
Anyone know how to get Synopsys *not* to change the cell-type during an
-in_place optimziation compile (98.02-2)? Specifically, it will change
functional equivalents like the following:
from Z = !(A*B!)
to Z = (A + B!) ( with nets to A & B swapped )
(Yes, it's convoluted but they ARE functional equivalents if you think it
out -- but this really isn't what I had in mind.) I was intending to freeze
the netlist & layout and just add any buffering or swap out cells with
higher/lower drive to meet the min/hold design rules. I had everything
defaulted except "compile_ok_to_buffer_during_inplace_opt = true". In the
case above, DC decided that the funky NAND (for lack of a better term) was
slower than the other and swapped the cell rather than add a buffer. Size
of the cells were identical, but the input net connections got reversed in
the process and not reported in the change log.
Of course, this blows the LVS checks.
Also, anyone else not really happy with the change log contents? I would
think it would be more beneficial to have more info (such as the net changes
that were done on the above cell swap, as well as the start/endpoint
insertion for any buffering.) Anyone have a better idea or methodology on
this?
- Gregg D. Lahti
Intel Corporation
|
|