( ESNUG 206 Item 4 ) ---------------------------------------------- [1/13/95]
From: uunet!fmicos!splinter!flieder (Jeff Flieder)
Subject: Set_Driving_Cell IS A Useless Command
John,
I just got an answer to a query to the support center that I thought all your
readers would be interested in. It has to do with the set_driving_cell
command in dc_shell. The problem is in the way that design_compiler uses this
command.
What you would expect the command to do is 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!
In my opinion, this makes the command almost useless because now the designer
has to know what the max_fanout and max_capacitance limits are and put them
on the port manually. This is tedious if the designer has access to the
source for the library, and impossible if the library is only available in
compiled form.
I have filed a STAR with Synopsys to fix the problem, but I thought that your
readers would want to know about it. This is one of those things that is not
obvious from the documentation but it can really kill you in real life.
- Jeff Flieder
Ford Microelectronics, Inc.
|
|