[ibis-macro] Re: What happens when Init_Returns_Impulse = False?

  • From: "Todd Westerhoff" <twesterh@xxxxxxxxxx>
  • To: <ibis-macro@xxxxxxxxxxxxx>
  • Date: Mon, 26 Apr 2010 17:18:04 -0400 (EDT)

Resend . looks like the graphic got mangled.

 

--------------------

 

Arpad,

 

Here's a cut at what I think a full truth table could look like:

 

 

 

"Invalid" means the combination is not allowed.  Use_Init_Output really
only has meaning when Init_Returns_Impulse and Getwave_Exists are both
true . you could argue that when either Init_Returns_Impulse or
Getwave_Exists is False, Use_Init_Output is N/A.  I chose not to represent
it that way because I found this representation to be simpler.

 

While I'm not fond of the names of these reserved parameters (I don't like
the terms "Init" and "Getwave" much either), there are many models out
there already that use them.  I'm (personally) not strictly against
deprecating these parameter names and replacing them, but there'd better
be a darn good argument for it.  Since these switches are basically used
only by model makers and EDA companies, I'd say we live with the current
names and do a better job of documenting how they are to be used.

 

Strict minimalists will point out that since we have three Boolean
variables and only four legal states, it ought to be possible to use only
two Boolean variables to encode what we need.  While I agree that should
be possible, I'll also state that I don't want to go there, nor do I think
there's any tangible benefit in doing so.

 

Todd.

 

 

 

________________________


Todd Westerhoff
VP, Software Products
SiSoft
6 Clock Tower Place, Suite 250
Maynard, MA 01754
(978) 461-0449 x24
twesterh@xxxxxxxxxx
www.sisoft.com

  _____  

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad
Sent: Monday, April 26, 2010 12:43 PM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False?

 

Thanks Todd for the "truth table".  I think it makes sense, but I

wonder what approach we should take to fix the spec.  Here is the

problem.

 

As the spec is written now, there is no mention that Use_Init_Output

applies to time domain simulations only.  As a consequence, the first

two cases you describe come across as having two controls which have

basically the same effect, i.e. duplicate controls.  After having

gone through the email thread last week I understand now that this

was not the intent, but the spec can be interpreted this way without

fixing it.

 

So the question is this:  We can tailor the spec to the controls or

the controls to the spec.  Which way should we try to fix this?

Should we just change the explanation text in the spec to reflect

these intentions and then draw the flow diagrams accordingly, or

should try to find a flow diagram that may work in both time domain

and statistical modes with perhaps eliminating one or the other of

these Booleans?  To be honest, I really don't like these two controls

the way they do almost the same, and that their name doesn't reflect

what the real difference is between them, i.e. that one is only

effecting time domain simulations but the other affects both...

 

Thanks,

 

Arpad

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

 

 

  _____  

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Todd Westerhoff
Sent: Friday, April 23, 2010 3:13 PM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False?

Arpad,

 

Sorry for the delay in reply.

 

Given: Use_Init_Output only applies to Time Domain simulation,

 

Then:

 

Init_Returns_Impulse = False, Use_Init_Output = False, Getwave_Exists =
True

 

and

 

Init_Returns_Impulse = True, Use_Init_Output = False, Getwave_Exists =
True

 

are functionally equivalent from a Time Domain simulation point of view.

 

Extra credit: the two cases are not the same from a Statistical simulation
point of view.  The eye produced by the first case will not include the
model's equalization, while the eye produced by the second case will.

 

Therefore, models that conform to:

 

                        Init_Returns_Impulse = True, Use_Init_Output =
False, Getwave_Exists = True

 

Fully support both Statistical and Time Domain simulation.  Is that the
answer to the question you were asking?

 

Todd.

 

________________________


Todd Westerhoff
VP, Software Products
SiSoft
6 Clock Tower Place, Suite 250
Maynard, MA 01754
(978) 461-0449 x24
twesterh@xxxxxxxxxx
www.sisoft.com

  _____  

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad
Sent: Thursday, April 22, 2010 7:31 PM
To: IBIS-ATM
Subject: [ibis-macro] Re: What happens when Init_Returns_Impulse = False?

 

Todd,

 

In that case, how is Init_Returns_Impulse = False

different from Use_Init_Output = False?

 

I admit, I may have to brainwash myself now with

the recent revelations about section 2.3, but I

would appreciate your (or any one else's) insight

on this one...

 

Thanks,

 

Arpad

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

 

  _____  

From: Todd Westerhoff [mailto:twesterh@xxxxxxxxxx] 
Sent: Thursday, April 22, 2010 12:13 PM
To: Muranyi, Arpad; 'IBIS-ATM'
Subject: RE: [ibis-macro] What happens when Init_Returns_Impulse = False?

All,

 

As I understand it, Init is expected to modify the impulse response in
place in memory.  The simulator passes the model a pointer to the impulse
response, and uses that same pointer to access the result when the Init
call returns control to the simulator.

 

If the model doesn't touch the impulse response at all, it's there in
memory just as the simulator supplied it.

 

Todd.

 

________________________


Todd Westerhoff
VP, Software Products
SiSoft
6 Clock Tower Place, Suite 250
Maynard, MA 01754
(978) 461-0449 x24
twesterh@xxxxxxxxxx
www.sisoft.com

  _____  

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad
Sent: Thursday, April 22, 2010 12:00 PM
To: IBIS-ATM
Subject: [ibis-macro] What happens when Init_Returns_Impulse = False?

 

I would like to get some ideas from the authors

of the AMI specification on what the intent was

when Init_Returns_Impulse = False.

 

I would also like to get some suggestions on what

the Init function should return when

Init_Returns_Impulse = False.

 

Options:

 

- return the same thing that was sent into Init

- return impulse response of the filter

- return uninitialized memory (garbage or noise)

 

It seems that either the first or second answer

may be the correct one if I consider that the

calculations are supposed to be done "in place",

i.e. in the same memory space where the input

was placed.  If nothing is done, the memory will

still contain the input data in that place.  If

something is done, like returning the filter only

impulse response, we will get that in that memory

space.  It is hard to turn that memory space into

uninitialized memory, unless we use a random number

generator to do something that can mimic that effect.

 

Thanks,

 

Arpad

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

 

GIF image

JPEG image

Other related posts: