Walter,
If you insist to do it that way:
WMK> What I said was:
* If an I/O pin_name is not in any Model as a victim and is in more
than one Model as an aggressor, then the User or EDA tool would need to choose
which model to use to simulate this pin_name.
I think we should allow multiple aggressor models for pins that are not in a
model as a victim. Perfectly OK if they are aggressor in two or more models.
Problem is only when using them to simulate for waveform and/or timing errors
that the EDA tool does not know which model to use.
then we need to make it clear in the BIRD (spec) what should happen when
a pin has multiple aggressor models and no victim model. I don't want model
makers and/or users to expect the EDA tool to give them a selection GUI to
be able to choose which one should be used in the simulation, because we
said that we will only have one selection mechanism for the Groups. If the
EDA tool is NOT expected to provide a selector, then we need to state what
will happen (i.e. which one should be in effect) in this case so that the model
make and user would know what to expect from the simulation.
Thanks,
Arpad
============================================================
From: ibis-interconn-bounce@xxxxxxxxxxxxx
[mailto:ibis-interconn-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Wednesday, December 13, 2017 4:43 PM
To: IBIS-Interconnect <ibis-interconn@xxxxxxxxxxxxx>; IBIS-ATM
<ibis-macro@xxxxxxxxxxxxx>
Subject: [ibis-interconn] Re: [EXT] [ibis-macro] FW: "Aggressors"
Comments below.
Walter Katz
wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>
978.461-0449 x 133
Mobile 303.335-6156
From:
ibis-interconn-bounce@xxxxxxxxxxxxx<mailto:ibis-interconn-bounce@xxxxxxxxxxxxx>
[mailto:ibis-interconn-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad
Sent: Wednesday, December 13, 2017 2:41 PM
To: IBIS-Interconnect
<ibis-interconn@xxxxxxxxxxxxx<mailto:ibis-interconn@xxxxxxxxxxxxx>>; IBIS-ATM
<ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>
Subject: [ibis-interconn] Re: [EXT] [ibis-macro] FW: "Aggressors"
Walter,
I would like to comment on this paragraph:
"The algorithm for selecting models to do a simulation is simple. The user
selects a list of pins he wants included in his simulation as victims. The EDA
tool makes a list of models that have these pins as victims (there can only be
one such model per pin). If there are no models with one of these pins as a
victim, then add a model with this pin as an aggressor. There is problematic if
a pin that is requested to simulate is not a victim in any model, and is an
aggressor in two or more models. This simulation cannot be done if any pin
occurs in two different models (either as victim or aggressor)."
First, is this within the "frame" of a Group? I mean that all that you wrote
above applies to
the Set(s) listed in a Group, and if there are multiple Groups, does this
happens after the
user selected a Group? Or would you say that the EDA tool would check though
all
available Groups, and present the results to the user and let them choose a
Group if there
are several Groups which could simulate the pins the user wants to simulate?
WMK> The algorithm is applied to all of the Models in the chosen Group (Made
from all of the models in all of the sets in the group). The user can read the
documentation supplied with the interconnect models, or can read the reports
that the parser can run on each group, or use an EDA tool utility that can list
the groups that have models for pin(s) bing simulated.
Regarding the case when there are no victims for the pin the user wants to
simulate, you
suggest to use an aggressor model, and the possibility of multiple aggressor
models being
available on a pin. To solve that problem, we could write a rule into BIRD189
that says
something like:
Within each Group, no pin is allowed to have multiple victim models, and no pin
is allowed
to have multiple aggressor models if that pin does not have a victim model. In
other words,
multiple aggressor models are only allowed for those pins which also have a
victim model.
WMK> What I said was:
* If an I/O pin_name is not in any Model as a victim and is in more
than one Model as an aggressor, then the User or EDA tool would need to choose
which model to use to simulate this pin_name.
I think we should allow multiple aggressor models for pins that are not in a
model as a victim. Perfectly OK if they are aggressor in two or more models.
Problem is only when using them to simulate for waveform and/or timing errors
that the EDA tool does not know which model to use.
This rule would eliminate the problem of having to make a selection from
multiple
aggressor models, without prohibiting those aggressor overlaps which arise from
the
coupling around the victims.
The only thing that is still bugging me is the notion of using aggressor models
if no victim
model is available. I think we should be clear and consistent with the
definition of aggressor.
If I remember correctly, we say it is OK to use these models for uncoupled
simulations, but
they may not be suitable for coupled simulations (because they don't include
all coupling).
We might want to make sure (with a warning, perhaps) that it is clear to the
user and model
maker that if only aggressor models are available that they may only be OK in
uncoupled
simulations but may not be accurate in coupled simulations.
Thanks,
Arpad
========================================================================
From:
ibis-interconn-bounce@xxxxxxxxxxxxx<mailto:ibis-interconn-bounce@xxxxxxxxxxxxx>
[mailto:ibis-interconn-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Wednesday, December 13, 2017 12:19 PM
To: Justin Butterfield (jdbutterfiel)
<jdbutterfiel@xxxxxxxxxx<mailto:jdbutterfiel@xxxxxxxxxx>>; IBIS-Interconnect
<ibis-interconn@xxxxxxxxxxxxx<mailto:ibis-interconn@xxxxxxxxxxxxx>>; IBIS-ATM
<ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>
Subject: [ibis-interconn] Re: [EXT] [ibis-macro] FW: "Aggressors"
Justin,
In my example, one cannot simulate pins 2,3,4,5. One can only simulate 1,2,3 or
3,4,5. The intent of these models is for the EDA tool to simulate 2 as a victim
with 1 and 3 as aggressors, and a separate simulation for pin 4 with pins 3 and
5 as aggressors. If the package vendor wanted to do a simulation with all 100
pins he would have to create a 200 terminal model with all coupling.
The intent is to describe the terminals of a IBIS-ISS subckts (or Touchstone
files).
The algorithm for selecting models to do a simulation is simple. The user
selects a list of pins he wants included in his simulation as victims. The EDA
tool makes a list of models that have these pins as victims (there can only be
one such model per pin). If there are no models with one of these pins as a
victim, then add a model with this pin as an aggressor. There is problematic if
a pin that is requested to simulate is not a victim in any model, and is an
aggressor in two or more models. This simulation cannot be done if any pin
occurs in two different models (either as victim or aggressor).
IC vendor understands the simulations that his customers either need or want to
do, and it is the responsibility of the IC vendor to put models in a group that
when the group is selected the user can generate the simulations he intends to
run.
Walter
Walter Katz
wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>
978.461-0449 x 133
Mobile 303.335-6156
From: Justin Butterfield (jdbutterfiel) [mailto:jdbutterfiel@xxxxxxxxxx]
Sent: Wednesday, December 13, 2017 12:57 PM
To: wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx>; IBIS-Interconnect
<ibis-interconn@xxxxxxxxxxxxx<mailto:ibis-interconn@xxxxxxxxxxxxx>>; IBIS-ATM
<ibis-macro@xxxxxxxxxxxxx<mailto:ibis-macro@xxxxxxxxxxxxx>>
Subject: RE: [EXT] [ibis-macro] FW: "Aggressors"
Walter,
I have a hopefully simple question:
If all 100 of these 6 terminal models are in one Group, and I want to run a
simulation with that Group and all 100 pins. How do you connect up those 6
terminal models in a netlist for all 100 pins? I am just wondering how do
handle the overlap of models.
For instance, your model Pin_1 has terminals Pin 2 and Pad 2 as Aggressors.
Model Pin_2 would also have Pin 2 and Pad 2 but as a Victim. And model Pin_3
would have terminals Pin 2 and Pad 2 as Aggressors. How do you connect models
Pin_1, Pin_2, and Pin_3 considering the overlapping of the terminals?
Thanks,
Justin