( ESNUG 208 Item 3 ) ---------------------------------------------- [1/26/95]
Subject: (ESNUG 206 #4) Set_Driving_Cell IS A Useless Command
>What you would expect is set_driving_cell compile the block assuming that
>the input port is being driven by the specified cell and that ALL of the
>rules pertaining to that cell would be considered during optimization. (It
>turns out that this is not at all the case.) The only thing that the cell
>is used for is to check timing. What this means is that the max_fanout and
>max_capacitance attributes on the specified cell are ignored during
>optimization!
From: jlohman@boris.convex.com (Jeff Lohman)
We ran into this in August. (I tried to convince them it's a STAR, but who
knows with Synopsys, Inc. sometimes.) The problem is set_driving_cell sets
the transition attribute on the pin but also deletes the attribute(s) which
cause fanout and capacitance violations to be fixed. The set_drive command
sets this/these attribute(s) but deletes the transition attribute. If you're
using the table lookup timing model with input transition and load capacitance
as parameters, you really need the transition attribute -- because of the
default transition if there's no attribute is 0 delay, a perfect edge, which
in our case results in 0 gate delay. We also found this counterintuitive and
expected set_driving_cell to operate as the user describes, i.e.
set_driving_cell replaces and supercedes set_drive.
- Jeff Lohman
Convex Computer Corp.
|
|