[ibis-interconn] Re: Alternate [EMD Parts]

  • From: Walter Katz <wkatz@xxxxxxxxxx>
  • To: <ibis-interconn@xxxxxxxxxxxxx>
  • Date: Wed, 18 Nov 2020 07:59:47 -0500 (EST)

All,

 

There is a simple way to fix this, and that is an if/elseif/else/endif
processor.

 

We have found this to be powerful tool in the IBIS files (and timing an
other files) that we use internally. 

 

All modern compilers have conditional compilation along the lines of the
following:

 

If (condition)

.

elseif(condition)

.

elseif(condition)

.

else

.

endif

 

There are a number of syntaxes for the "condition" with operators like ==,
!=, >, <, &&, .

 

These can be simplified to something like the following example:

 

Condition Config ConfigA ConfigB ConfigC

Default is ConfigA

Checker should run with all values of Config

EDA tool will have its own selector for Config

IBIS check would have to be run with argument (e.g. Config=ConfigB)

If no Config=ConfigB, then checker would use Config=ConfigA

 

When the .ibs, .emd, . file is being read in the EDA tool that is reading
the file can override the value of Config

 

Then in the .ibs, .emd, . file there can be statements like

 

If(Config == ConfigA) 

.

elseif(Config == ConfigB) 

.

else

.

endif

 

 

We can limit the conditions to == and !=, and only case sensitive string
compares.

 

We can also not allow nested conditionals.

 

This makes the implementation of the conditional processor very simple.

 

Walter

 

Walter Katz

Work  508.647-7633

Cell      720.417-3762



 

From: ibis-interconn-bounce@xxxxxxxxxxxxx
<ibis-interconn-bounce@xxxxxxxxxxxxx> On Behalf Of Muranyi, Arpad
Sent: Tuesday, November 17, 2020 7:11 PM
To: ibis-interconn@xxxxxxxxxxxxx
Subject: [ibis-interconn] Re: Alternate [EMD Parts]

 

Randy,

 

Since you said, "I'm not seeing a simple way to fix this", I would suggest
to hold off with

these improvements until this first version of EMD gets released.  I
really don't want to

delay the release of the EMD spec any longer, although I don't question
the importance

of this feature.

 

Thanks,

 

Arpad

====================================================================

 

From: ibis-interconn-bounce@xxxxxxxxxxxxx
<mailto:ibis-interconn-bounce@xxxxxxxxxxxxx>
[mailto:ibis-interconn-bounce@xxxxxxxxxxxxx] On Behalf Of Randy Wolff
Sent: Tuesday, November 17, 2020 5:04 PM
To: ibis-interconn@xxxxxxxxxxxxx <mailto:ibis-interconn@xxxxxxxxxxxxx
Subject: [ibis-interconn] Alternate [EMD Parts]

 

One topic that I'd like to discuss in tomorrow's meeting is the idea of
allowing alternate [EMD Parts] lists.  This would be useful for cases such
as using EMD for multi-die package modeling or modules supporting multiple
I/O voltages or temp range models.  

 

For example, let's look at a Micron LPDDR4 component.

Part number: MT53E2G32D4DT

Die config: 4 die, 2 die per I/O channel

I/O voltage (VDDQ): 0.6V/1.1V

Temp ranges: Wireless, Industrial, Automotive, Ultra

 

With EBD models used currently, this requires one of the following
options:

1.      Customer to edit [Reference Designator Map] to point to 1 of 8
.ibs files for unique temp and I/O voltage model
2.      Micron to supply 8 .ebd files

 

The same problem exists for EMD, but there are potential solutions such
as:

1.      Support multiple [EMD Parts] keywords containing complete sets of
alternative parts lists. EDA tool would need to allow selection of one
list for simulation.
2.      Add an [EMD Parts Selector] keyword as well as option 1, while
also adding a name field to the [EMD Parts] keyword.
3.      Add an [Alternate EMD Parts] keyword 

a.      Allows for a list of only alternate part names without requiring a
complete list of part names found in the original [EMD Parts] keyword. 
b.      This could simplify the list if only one or two parts are changing
out of many listed in [EMD Parts].  
c.      Would also require allowing multiple [Alternate EMD Parts]
keywords.  
d.      Selection mechanism for EDA tools gets more complicated.
[Alternate EMD Parts] would require a name field and the [EMD Parts
Selector] keyword.

 

This all gets complicated by [Voltage List].  A common usage of alternate
[EMD Parts] would be to support multiple I/O operating voltages.  For
example, the VDDQ voltage would need multiple options in [Voltage List]
with dependency on the [EMD Parts] selection.  I'm not seeing a simple way
to fix this.

 

Randy

 

 

 

GIF image

Other related posts: