( ESNUG 201 Item 2 ) ---------------------------------------------- [11/10/94]
From: Sean_Atsatt@notes.seagate.com (Sean Atsatt)
Subject: Design Compiler Producing Beaucoup Overdriven Nets
John, We have a problem with Synopsys inserting extremely powerful buffers
to drive nets with small loads (i.e. a buffer designed to drive a fan
out of 180 or more driving a fanout of 1 or 2). The tool appears to do this
in an attempt to meet timing constraints. When you work out the delay
calculations for the instances where the strong buffers are inserted the
stronger buffers may be marginally faster than a normal buffer by a only few
picoseconds. (This turns out to be the case because the intrinsic delays of
the stronger buffers are less than that of the simple buffers, and the drive
strength of the device driving the buffer is enough to overcome the added load
from the strong buffer.)
Synopsys is technically correct for choosing the stronger buffer and our
library is also correctly representing the characteristics of the device.
The problem is that we can't simply not use the strong buffers as
we have many cases where they are actually required (so we can't just put a
dont_use on the strong buffers in the library) -- but we end up with
literally hundreds of overdriven nets (which also costs us significant area).
We have developed scripts which reduce the number of overdriven nets by
iteratively compiling with and without a dont_use on the strong buffers -- but
we still end up with dozens of overdriven nets. Has anyone else, had this
problem? Does anyone know of a good work around ?
- Sean Atsatt
Seagate Technology
|
|