( ESNUG 434 Item 5 ) -------------------------------------------- [11/18/04]
From: Andy Lee <syleea=user domain=tsmc spot calm>
Subject: Andy Finds Jupiter-XT 2004.03 Auto Macro Placement Close To Hand
Hi John,
I'm a principal physical design engineer working with TSMC. We did an
eval on automatic macro placement with Synopsys Jupiter-XT recently.
The results show the black placement quality now is usable and helpful to
real design in terms of floorplan and timing closure. I'd like to share
our results with ESNUG.
In our experience, the key to a successful floorplan is the placement of
the hard macros (HM). These days one of our typical SoC designs can have
100s of hard macros in a 1 million instance design. Like everyone else,
we want the floorplanner to place the blocks automatically, but this only
happens in our dreams. There is a huge gap between what a floorplanner
does and what we can do manually. This gap exists because there are many
factors which have to be analyzed and humans need to make the decisions.
For example, we had a 0.13 um design with 400k instances including more
than 300 macros. It took us more than 2 months to tape out the design.
The most critical part of the design was to place these macros in a way
that met timing. Of course the design still had to be routable. We
placed all of the macros by hand and we needed a few iterations to get
the final placement right.
After we finished the design, we were so exhausted that we could not bear
to go through something like this again. I thought there has to be a
better way to do this. Well, EDA salesmen are like the peddlars in our
local market place. They are always trying to sell you some herbal
medicine which will cure all your aches and pains. I'm sure you can
understand why we had a hard time believing the Synopsys salesman who
promised "best in class quality of macro placement" with Juptiter-XT. On
the other hand, I was so tired that I thought "what do we have to lose?"
After all, some of these EDA guys are so hungry you can talk them into
doing some of your work for you.
We started our Jupiter-XT evaluation with a tough design which had 300+
macros. We ran Jupiter-XT version 2004.03 on Sunblade 1000 machine.
After reading the design into Jupiter-XT, the design hierarchy can be
analyzed interactively with the "Hierarchy Browser". You can dive into
each of the blocks and see how many many standard cells and macros there
are in each module. This information is important because it helps me
make decisions on how to virtually ungroup the design and ensure the
proper macro counts in each plangroup. In Jupiter-XT, a plangroup
represents a module which needs to be implemented as a physical block.
The first thing you need to do is a "virtual flat placement" of all the
standard cells and macros simultaneously. It's a good idea to preset the
parameters for auto-packing and pre-rotating macros. Once this was done,
Jupiter-XT placed my entire design, all 400K instances and 300+ macros in
30 minutes! The effect of pre-setting the parameters was that macros had
the orientation I expected and the macros in each plangroup were
auto-packed the way I liked them. This up front work was important because
it limited the time I had to spend hand-tuning the locations of the macros.
I used Jupiter-XT's "Edit Tool Bar" to analyze the locations of macros and
finalize their placement.
Once the floorplan was done, I essentially followed our TSMC reference flow
to finish the design. In my case, I did placement, optimization, & routing
in Astro, extracted the timing with Star-RCXT and verified the timing with
PrimeTime. I stopped the evaluation here. We did not do DRC/LVS with
either Calibre or Hercules. We did not check SI with Celtic or PT-SI.
The result met our eval criteria in terms of timing and routability.
To check this, we ran one more design through Jupiter-XT. The the second
test case was 350K instances with 68 macros. The clock period was 4.5 ns.
The first result wasn't a fluke. Jupiter-XT gave us a good macro placement
once again. We compared the results from Jupiter-XT to our original
hand-placed floorplan. I found the relative locations of macros in the
same module were very close. The only difference was that the placement of
standard cells of a logical block were closer together in the hand-placed
macro floorplan than in our auto generated Jupiter-XT floorplan.
We were worried that this would be a problem and the floorplan from
Jupiter-XT would induce a longer clock skew. It turned out that this was
not a problem since we ran Astro-CTS and it met our skew requirement.
I have to admit we were surprised. The only lie I found coming from our
Synopsys sales guy was "Jupiter-XT does automatic macro placement".
Technically speaking, Jupiter-XT did an "assisted placement". It was not
quite automatic since we had to specify some presets. Of course, this is
just like giving a tool some directions and constraints, but all we had to
do afterwards was some fine-tuning.
The net effect was very positive. Jupiter-XT saved us a lot of time
compared to manually placing and replacing blocks till we got it right.
- Andy Lee
TSMC, Ltd. HsinChu, Taiwan
|
|