[ibis-macro] Re: Cornering IBIS

  • From: "Muranyi, Arpad" <Arpad_Muranyi@xxxxxxxxxx>
  • To: IBIS-ATM <ibis-macro@xxxxxxxxxxxxx>
  • Date: Wed, 31 Aug 2011 03:40:14 +0000

Walter,

We have discussed the typ/min/max problems in IBIS several
times.  There is no need to go over that topic one more
time.  Regarding:

"So with minor exceptions min==slow and max==fast."

and

"IBIS has confused a consistent way of associating Corner with typ, min and max 
values"

I have to repeat that those minor exceptions are the main
reason for min!=slow and max!=fast in IBIS, (where "!=" means
not equal), most notably with C_comp.  I did explain it in an
earlier email why C_comp should be treated as an independent
variable from the I-V and V-t curves and [Ramp].  So IBIS did
not confuse anything, it did the right thing, allowing the
EDA vendors and users to simulate the various combinations of
those non-tracking model parameters.

But I must emphasize that BIRD 140 was NOT written to solve the
issue of mapping typ/min/max with typ/slow/fast.  I wrote this
BIRD because I found that the current specification (5.0) doesn't
state where the underlying value of "Corner" comes from.  I
believe this should be spelled out.  I only brought up BIRD 124
because in search for an answer I found some text in that BIRD
which mentions Corner.  (Unfortunately, instead of answering the
questions, BIRD 124 seems to further confuse and complicate
matters).  I would like to write BIRD 140 so that it can
proactively pave the way for BIRD 124, if possible, to reduce
the amount of work we need to do there, but we can ignore BIRD
124 if people don't want to include that in this discussion.


In summary, the issues I am trying to solve with BIRD 140 is:

Under "Format", pg. 140 of IBIS 5.0 lists Value, Range, List,
Corner, Increment, Steps, Table.  All of these, except Corner,
are simply a qualifier for what follows.  None of these have
an underlying value upon which the subsequent values are operated
on.  Corner, on the other hand, assumes a value behind the name
Corner, based on which one of the next three values is selected.
The spec doesn't explain this clearly and doesn't explain where
this value is coming from.  The note on the next page (pg. 141):

| Note that in the context of Algorithmic Model for type 'Corner', <slow
| value> and <fast value> align implicitly to slow and fast corners, ...

is a very poor attempt to give such an explanation, because the
words "align to slow and fast corners" do not give an unambiguous
definition for what this alignment is aligning to (not to speak
about the mapping problem between min/slow and max/fast, which
we can't solve with this BIRD).  Even if we are NOT solving this
mapping problem with this BIRD, I would like to at least spell
out in the spec that Corner assumes an underlying value based on
which it will pick one of the three values listed and spell out
where this underlying value is coming from.  Is that too much to
ask for?

Thanks,

Arpad
==================================================================




From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] 
On Behalf Of Walter Katz
Sent: Tuesday, August 30, 2011 4:34 PM
To: IBIS-ATM
Subject: [ibis-macro] Cornering IBIS

All,

Corner is mentioned multiple times in IBIS 5.0.

e.g.


|

| Corner corner_name file_name circuit_name (module)

Corner Typ buffer_typ.v bufferb_io_typ

Corner Min buffer_min.v bufferb_io_min
Corner Max buffer_max.v bufferb_io_max



|

| The required "typ" column for all data represents typical operating

| conditions. For most [Model] keyword data, the "min" column describes slow,

| weak performance, and the "max" column describes the fast, strong

| performance. It is permissible to use slow, weak components or models to

| derive the data for the "min" column, and to use fast, strong components or

| models to derive the data in the "max" columns under the corresponding

| voltage and temperature derating conditions for these columns. It is also
| permissible to use typical components or models derated by voltage

The implication for I-V and Ramp columns is


|

| e. Typ, Min, and Max must all be posted, and are derived at the same

| extremes as the I-V tables, which are:

|

| Ramp rates for CMOS models:

| typ = typical voltage, typical temp deg C, typical process

| min = minimum voltage, max temp deg C, typical process, minus "Y%"

| max = maximum voltage, min temp deg C, typical process, plus "Y%"

|

| Ramp rates for bipolar models:

| typ = typical voltage, typical temp deg C, typical process

| min = minimum voltage, min temp deg C, typical process, minus "Y%"
| max = maximum voltage, max temp deg C, typical process, plus "Y%"

So with minor exceptions min==slow and max==fast.

An EDA tool may support additional corners, but in any case they EDA tool is 
responsible for mapping its "Corner" into IBIS typ, min and max values.

The bottom line is that all EDA tools have a concept of at least three corners 
typ=nominal, min=slow=weak=worst_case, and max=fast=strong=best_case.

Where min and max corners most often map into min and max columns in the IBIS 
file.

The AMI format "Corner typ_value slow_value fast_value" suggest that the EDA 
tool associates typ_value with typ=nominal, slow value with 
min=slow=weak=worst_case and fast_value with max=fast=strong=best_case. The EDA 
tool is not required to make this associating, but by using the AMI format 
Corner, the model make is assuming that the EDA tool will make that association.

The existence of format "Corner" had the implication that the EDA tool was 
going to choose a Corner (typ, slow, fast).

The bottom line is that IBIS has a built in assumption that Corner shall be 
"typ" "min" or "max". IBIS has confused a consistent way of associating Corner 
with typ, min and max values. When AMI was developed 3 years ago, we decided to 
eliminate this confusion by calling the three corners Typ, Slow and Fast.

BIRD 124 (Dependency BIRD) makes the assumption that the EDA tool will select 
one of the three corners for a simulation. The EDA tool must already do this to 
choose the External Model, the IV and VT curves to apply, as well as Model 
Parameters. Since the EDA tool is required to do this to pick External Modles 
and IV/VT data, then the EDA tool knows which Corner to use in AMI Corner 
parameters.

Walter








Walter Katz
wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>
Phone 303.449-2308
Mobile 720.333-1107

Other related posts: