( ESNUG 414 Item 2 ) -------------------------------------------- [06/18/03]
From: Cynthia Parrish <cynthia=user company=magma-da spot calm>
Subject: Choosing Magma BlastPlan glassbox -model type vs. -structural
Hi John,
I'm getting user questions about what, exactly, is going on under the hood
in our glassboxes in BlastPlan, and how to use them. Magma glassbox is a
model of a macro that contains a full physical and electrical copy of the
macro, but reduced so that it only includes data that affects the top level.
It's remotely like the ILM concept that Synopsys has in PrimeTime, but it
has routing and signal integrity data (including extraction) in it.
A typical user question that I get is:
> Hi, I'm doing a bottom up flow with Magma glassboxes. I'm not sure if I
> have to create two glassboxes for each model (run prepare abstract -model
> timing and -model antenna) according to the man page. I thought one
> glassbox model has it all. If I do have to use two seperate models, then
> when (at the top level) do I remap? Do I have to use -model antenna for
> P&R and -model timing for STA??
>
> Can someone explain this flow?
Here's a brief summary of the Magma BlastPlan glassbox types:
STRUCTURAL AND FLOORPLAN: -structural glassboxes keep everything up to the
first flop. This can be thought of as a 'vanilla' glassbox. One problem
users have right now is that high-fanout inputs like resets can cause extra
logic logic to be kept. You can work around this for now by detaching
these pins before glassboxing. Apart from that, -structural glassboxes
are very easy to create and use.
Glassboxes created with -modeling floorplan are structural, and also have
some other features suitable for the prototyping flow. But you can create
-structural glassboxes without any particular modeling type, and you can
use them at any point in the design flow, including at chip assembly time.
(John, some of your older Magma users may know -floorplan as -prototype;
it's now -floorplan.)
TIMING: -timing glassboxes are controlled by slack. They keep everything
with slack below some specific threshhold (which is infinity by default.)
So, normally, -timing glassboxes will keep logic up to the first flop, just
like a structural glassbox. They don't have the high-fanout input problem
because those inputs usually have no required times, and are therefore
infinite-slack. By using a lower slack threshhold, you can get more
reduction, but in practice this should rarely be necessary.
Generating a -timing glassbox requires a timer run. Therefore, you can't
create them on unbudgeted blocks in a very large design. They're also
quite tricky to use because they're affected by timing configs, and because
they're instance-specific.
ANTENNA: -antenna glassboxes keep everything up to the first level of logic.
They therefore have more aggressive data reduction than timing glassboxes,
but you can't run timing with them. They should rarely be necessary. You
can do antenna fixing with any type of glassbox.
As a practical matter, I recommend trying -structural glassboxes first. If
you can't get enough reduction with -structural glassboxes and the
high-fanout workaround doesn't help, then go to -timing glassboxes.
- Cynthia Parrish
Magma Design Automation Cupertino, CA
|
|