( ESNUG 360 Item 2 ) --------------------------------------------- [11/02/00]
From: James Andolfo <James.Andolfo@matrox.com>
Subject: Give PhysOpt Rectangular Areas To Place In & Disable Area Recovery
Hi, John,
We just taped out our largest chip yet using a hierarchial PhysOpt G2PG
flow. This is our second PhysOpt tape-out.
I lead the softblock "placement through routing" effort in which PhysOpt
was used to perform the initial placement, placement of ECO cells (both
timing and functional), and to incrementally fix setup and hold violations
for all 15 softblocks. The largest softblock was 1.4 Mgates and the
smallest was about 40 Kgates. The total size of our 0.18 chip was just over
5 Mgates.
How did PhysOpt perform? Well, we were not disappointed. PhysOpt performed
significantly better than our previous Cadence placement flows. For most
nets we saw good correlation between PhysOpt estimated timings and the
backannotated post-placement Primetime timings (a far cry from our past
wire_load_model experiences). One key, though, was to follow some basic RAM
placement guidelines during the floorplanning stage (i.e. to place RAMs such
that the remaining placement area in your design was as rectangular as
possible.) If it wasn't possible to leave a rectangular area for PhysOpt,
we defined the rows such that the resources given PhysOpt were close to
rectangular in shape. Why does this help? Well, one reason could be that
the Steiner estimations do not compensate for the reduced routing resources
when crossing sections of RAMs.
A technique we used to save run time for the 1.4 Mgates module during
placement was to turn off the area recovery mode.
Also a good rule of thumb to improve run time is to define the power
structure such that it isn't necessary to set partial placement blockages
(which, for example, are needed when cells use common metal layers with the
power straps.)
All in all we only experienced a few "teething problems", most of which were
tool database conversion related. Since a lot of our placement was
performed with beta versions and since we froze PhysOpt at revision 1.1d,
these may already have been resolved in the newest version of PhysOpt.
- James Andolfo
Matrox Montreal, Canada
|
|