[ibis-macro] Re: Analog BIRD overview slide

  • From: "Walter Katz" <wkatz@xxxxxxxxxx>
  • To: <Arpad_Muranyi@xxxxxxxxxx>, "'IBIS-ATM'" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Fri, 06 Jan 2012 15:59:22 -0500 (EST)

Arpad,

Let me bring this concept one step further. As per Kumar's suggestion,
this might be a good time to consider changing the IBIS file to a
parameter tree format.

The following should make this clear as mud:

(Components 
   (Component
      (Name <component>)
      (Pins
          (Pin (Number "1") (Signal "DQ0") (Model "DQOUT") 
                  (Package (PMI_File "pkg.pmi") (Params (pkglen .01) (Zo
(Corner 50 45 55))))))
          (Pin (Number "2") (Signal "DQ1") (Model "DQOUT") 
                  (Package (PMI_File "pkg.pmi") (Params (pkglen .01) (Zo
(Corner 50 45 55))))))
       )
       (Diff_Pin
                 (Labels diff_pin  inv_pin  vdiff tdelay_typ tdelay_min
tdelay_max)
                 (                    1                2          0.1
NA                 NA                 NA)
       )
   )
)
(Models
    (Model 
        (Name "DQOUT")
        (Model_type "Output")
        (C_comp (Corner 744.002f 744.002f 744.002f))
        (Vmeas  .25)
        (Vref  0.0)
        (Rref   50)
        (Algorithmic_Model 
             (Executable ("Windows_VisualStudio_32"  "dqout.dll"
"dqout.ami")  
             (Executable ("Executable Linux_gcc3.2.3_32       "
"dqout.so"   "dqout.ami")  
        )
        (Temperature_Range (Corner 25 100 0))
        (Voltage Range (Corner 1.2  1.2  1.2))
        (Pulldown
              (-2.50000E+00       -5.00000E-02        -5.00000E-02
-5.00000E-02)
              (-0.00000E+00         0.00000E-02         0.00000E-02
0.00000E-02)
              (-2.50000E+00         5.00000E-02         5.00000E-02
5.00000E-02)
         )
         (Pullup]
              (-2.50000E+00          5.00000E-02         5.00000E-02
5.00000E-02)
              (- 0.00000E+00         0.00000E-02         0.00000E-02
0.00000E-02)
              (-2.50000E+00        -5.00000E-02        -5.00000E-02
-5.00000E-02)
         )
        (Ramp (dV/dt_r (Corner .3/60p .3/60p .3/60p))
                      (dV/dt_f  (Corner.3/60p .3/60p .3/60p))
         )
         (GND Clamp
                    (-2.50000E+00         0     0     0)
                    ( 0.00000E+00         0     0     0)
                    ( 2.50000E+00         0     0     0)
        )
        (Power Clamp
                    (-2.50000E+00         0     0     0)
                    ( 0.00000E+00         0     0     0)
                    ( 2.50000E+00         0     0     0)
       )
   )
)
                     
Walter

-----Original Message-----
From: Walter Katz [mailto:wkatz@xxxxxxxxxx] 
Sent: Wednesday, January 04, 2012 1:11 PM
To: 'Arpad_Muranyi@xxxxxxxxxx'; 'IBIS-ATM'
Subject: RE: [ibis-macro] Analog BIRD overview slide

Arpad,

Let me propose a new approach to Analog Models. I will go for the gold,
and assume that we have defined IBIS-BSS (Buffer Spice Subckts). An
IBIS-BSS will be one (or more) .bss files. There is similar complexities
of interfacing to a SPICE subkt as there are to interfacing to an AMI DLL.
My suggestion is that the interface to the subckt be a .bsi file using the
parameter tree language we defined for .ami files.

Using the various Formats, Usage and Types we can use the .bsi file to
handle more than three corners, and defining additional subckt ports and
parameters that would be passed to the subckt. Here is an example of what
an IO buffer .bsi file might look like:

(Model_Type (Value "I/O") (Usage Info) (Type String)) (Supporting_Files
(List "typ.bss" "slow.bss" "fast.bss") (Usage Info) (Type String))
(File         (Corner "typ.bss" "slow.bss" "fast.bss") (Usage Info) (Type
String))
(Subckt  ( Corner "typ"        "slow"         "fast"        ) (Usage Info)
(Type String))
(Ports     (Usage Info) (Type String String String String String String
String))
                 (Table  ("Stimulus" "Enable" "Pad" "Z" "PuRef" "PdRef")))
(Stimulus (Rise_Time (Corner 50e-12 70e-12 30e-12) (Usage Info)(Type
Float))
                    (VoL (Value 0.) (Usage Info)(Type Float))
                    (VoH (Value 1.) (Usage Info)(Type Float))) (Enable
(Rise_Time (Corner 50e-12 70e-12 30e-12) (Usage Info)(Type Float))
                    (On (Value 0.) (Usage Info)(Type Float))
                    (Off (Value 1.) (Usage Info)(Type Float))) (PdRef
(Value 0.) (Usage Info)(Type Float)) (PuRef (Corner 1.3 1.1 1.5)  (Usage
Info)(Type Float)) (Params (Vref (Corner .65 .55 .75) (Usage In)(Type
Float))
                 (Framis (Corner 53 87 24) (Usage In)(Type Float)))   


An AMI ISS Tx .bsi file might be:

(Model_Type (Value "Differential_Output") (Usage Info) (Type String))
(File         (Value "AMI(subckt_file)") (Usage Info) (Type String))
(Subckt  (Value "AMI(subckt)") (Usage Info) (Type String))
(Ports     (Usage Info) (Type String String String String))
                 (Table  ("Stimulus_H" "Stimulus_L" "Pad_H" "Pad_L")))
(Stimulus (Rise_Time (Value AMI(Trf)) (Usage Info)(Type Float))
                    (VoL (Value 0.) (Usage Info)(Type Float))
                    (VoH (Value AMI(Voh)) (Usage Info)(Type Float)))
(Params (Rs (Value AMI(Trf)) (Usage In)(Type Float))
                   (Framis (Value AMI(Framis)) (Usage In)(Type Float)))   


I think both of these example are self-documenting, and describe exactly
how a model instance would be instantiated in a SPICE netlist.

Of course, this syntax can be included directly in the .ibs file, but it
may be convenient to have them in separate files that get delivered with
the .bss and .iss files. This way multiple .ibs files that used the same
buffer model would only need a pointer to the .bsi file in the [Model]
section.

I think package modeling could use a similar approach. For example, all of
the pin models of a package can often use the same subckt on each pin,
parameterized by a length. So associated with each pin might be a .ips
file e.g. in the [Pin] section, instead of NA NA NA for RLC as in: 
     <pin> <signal> <mode> NA NA NA
one might have
     <pin> <signal> <mode> pkg.ips pkglen=.01

And then the pkg.ips file might be

(Model_Type (Value "Single_Ended") (Usage Info) (Type String))
(File         (Value "pkg.iss") (Usage Info) (Type String))
(Subckt  (Value "pkg") (Usage Info) (Type String))
(Ports     (Usage Info) (Type String String))
                 (Table  ("Pad" "Pin"))) (Params (pkglen (Range .015 .05
.3) (Usage In)(Type Float))
                  (Impedance (Range 50 45 55) (Usage In)(Type Float)))   


Walter


-----Original Message-----
From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Muranyi, Arpad
Sent: Tuesday, January 03, 2012 4:22 PM
To: IBIS-ATM
Subject: [ibis-macro] Analog BIRD overview slide

Hello everyone,

Now that we have submitted BIRD 123.3 to the IBIS Open Forum, I would like
to dive into the discussion of our next major topic, the analog modeling
BIRDs.

As promised in the ATM meeting today, I am distributing this slide to
serve as a discussion starter.  This slide is just the beginning of a
summary I would like to put together on the various analog modeling BIRDs.
I would like to add more detail as we go with our discussions to summarize
the content of each proposal appropriately so that at the end we can make
decisions on what to keep, what to merge and what to discard.

Comments, questions, suggestions welcome.

Thanks,

Arpad
==========================================================
---------------------------------------------------------------------
IBIS Macro website  :  http://www.eda.org/pub/ibis/macromodel_wip/
IBIS Macro reflector:  http://www.freelists.org/list/ibis-macro
To unsubscribe send an email:
  To: ibis-macro-request@xxxxxxxxxxxxx
  Subject: unsubscribe

Other related posts: