( ESNUG 250 Item 1 ) -------------------------------------------- [9/6/96]
Subject: ( ESNUG 248 #8 249 #2) Timing Paths Through A Bi-Directional Bus
> 2) Nuke the bidi buses. That's what we eventually did. We were able to
> make a floorplan that had contained the bidi busses in a relatively
> small area, so we restructured it to use muxes instead of tristate
> busses. It ended up much cleaner, and as a bonus the time to do
> update_timing went down by a factor of about 8.
From: Bill Armstrong <army@hlds.com>
John,
Irregardless of whether or not you can get Synopsys to time the design the
way you want, there are other issues to consider depending on how well your
silicon vendor characterizes and models them:
1) Does your vendor's library model the output (drain) load of the
3-state driver? Some vendors do not consider this load in their
models because it is more difficult to characterize, they may
think it to be insignificant compared to the gate (poly) load or
they just overlooked it. What ever the reason, if it is not
there and you have several 3-state drivers attached to the same
net, as is typically the case, simulation accuracy will be
reduced.
2) Does your vendor accurately characterize the turn off time of the
driver, or the time the enable signal propagates through the gate
and the driver actually lets go of the bus? Also, how well is
the skew between enable signals controlled?
3) Routing of 3-state signals is not handled well in most place and
route tools. Typically 3-state cells are small with no feed-thrus
for other signals to route over them. Multiplexers are bigger
and usually have a feedthru or two. 3-state nets with a number
of drivers are usually place in close proximity to each other
because they are highly connected creating a spaghetti, or rats
nest, type of situation and making routing much more difficult
than if there was a single multiplexer.
Now your vendor may handle all of these situations perfectly and you
may have never encounter these problems. That's great and by all
means use 3-state drivers. However, if your planning on targeting
several different vendors with this design, the likely hood of running
into one or more of these situations increases dramatically. In my
opinion, for what it's worth, designing for manufacturability is much
more important than having a slick way for the synthesis tool to
time the design.
My experience suggests avoiding internal 3-state drivers altogether.
- Bill Armstrong
High Level Design Systems
|
|