Specifying Common Keywords

Required Keywords

file='file_name'

Identifies the IBIS file. file_name must be lower case and specify either the absolute path for the file or the relative path in respect to the directory from which Star-Hspice is run.

Example
file = '.ibis/at16245.ibs'
file = '/home/oneuser/ibis/models/abc.ibs'

model='model_name'

Identifies the model for a buffer from the IBIS file, specified with keyword file='...'. The keyword model_name is case sensitive and must match one of the models from the IBIS file.

Example
model = 'ABC_1234_out'
model = 'abc_1234_IN'

Optional Keywords

All other keywords are optional; if not used, default values will be selected. Optional keywords are enclosed in square brackets [ ] in the buffer cards.

The notation keyword={val_1|val_2|...|val_n} is used to denote that the keyword takes a value from the set val_1, val_2, ... , val_n . The order of the keywords is not important.

buffer= {Buffer_Number | Buffer_Type}

Where buffer_number is an integer from the range 1 <= N <= 17. Each buffer has an assigned number as follows:

Buffer Type

Buffer Number

Number of nodes (nominal or min/max)

Notes

INPUT

1

4

 

OUTPUT

2

4/6

 

INPUT_OUTPUT

3

6/8

 

THREE_STATE

4

5/7

 

OPEN_DRAIN

5

4/6

 

IO_OPEN_DRAIN

6

6/8

 

OPEN_SINK

7

4/6

 

IO_OPEN_SINK

8

6/8

 

OPEN_SOURCE

9

4/6

 

IO_OPEN_SOURCE

10

6/8

 

INPUT_ECL

11

4

 

OUTPUT_ECL

12

3/5

 

IO_ECL

13

5/7

 

THREE_STATE_ECL

14

4/6

was 17

SERIES

15

not implemented

 

SERIES_SWITCH

16

not implemented

 

TERMINATOR

17

not implemented

was 14

The value of buffer_number and buffer_type should match the buffer type specified by keyword model='...' . The keyword buffer= {Buffer_Number | Buffer_Type} provides an extra check for the input netlist. If the keyword is omitted, this checking is not performed.

typ={typ|min|max|fast|slow}

If the value of the buffer parameter typ is either typ , or min , or max , then this value signifies the column in the IBIS file from which the data are used for the current simulation. The default is typ=typ . If min or max data are not available, typ data are used instead.

If the value of the buffer parameter typ is fast or slow , then certain combinations of min and max data are used. The following table specifies the exact type of data used for fast and slow values. Note that the table lists all the parameters and data types for all implemented buffers. Specific buffers use relevant data only. No buffer uses all the data given in the table (for example, parameters Rgnd, Rpower, Rac, Cac are given and used only for the terminator).

 

Parameter/Data

Fast

Slow

C_comp

min

max

Temp_Range

max

min

Voltage_Range

max

min

Pullup_Ref

max

min

Pulldown_Ref

min

max

POWER_Clamp_Ref

max

min

GND_Clamp_Ref

min

max

Rgnd

max

min

Rpower

max

min

Rac

max

min

Cac

min

max

Pulldown

max

min

Pullup

max

min

GND_ Clamp

max

min

POWER_Clamp

max

min

Ramp

max

min

Rising_waveform

max

min

Falling_waveform

max

min

V_fixture

max

min

power={on|off}

Default is power=on. Connect buffers to power sources that are specified in the IBIS file with keywords Voltage Range , Pullup Reference , Pulldown Reference , POWER Clamp Reference , and GND Clamp Reference .

By default, Star-Hspice connects required voltage sources for such external nodes as Pullup , Pulldown , Power_Clamp , and Ground_Clamp if applicable. You should not connect these nodes to voltage sources. However, names for these nodes should be provided, so you can print out the voltage values if required. For example:

.PRINT V(node_pullup)

If power=off is used, then the internal voltage sources are not included in the buffer and you are responsible for adding external voltage sources. Use this option if the voltage source is not connected directly to buffer nodes but through a circuit to account for parasitic RLC, to simulate power/ground bounce, and so on.

interpol={1|2}

Default is interpol=1 (recommended). The I/V curves and V(t) curves need to be interpolated. Keyword interpol=1 uses linear interpolation and interpol=2 uses quadratic bi-spline interpolation.

xv_pu=nd_state_pu
xv_pd=nd_state_pd

The buffers with output function (output, input-output, tristate, and so on) are controlled by one (input) or two (input and enable) controlling signals. Describe the state of a buffer at any moment with two state variables, St_pu and St_pd , which vary from 0 to 1. For example, if the output buffer is in LOW state, then St_pu=0 , St_pd=1 . If the output buffer transitions from a LOW state to HIGH state, then St_pu continuously changes from 0 to 1, while St_pd goes from 1 to 0. The actual time dependence for such a transition is derived from either ramp data or waveform(s).

You may want to know exactly how the transition takes place. The keywords xv_pu=nd_state_pu , xv_pd=nd_state_pd provide such information. Here nd_state_pu and nd_state_pd are names of additional nodes (which must be unique and are treated by Star-Hspice as any other node from the netlist, except for a 16-character limitation). If the keyword(s) are included, then Star-Hspice adds voltage source(s) (with 1MOhm parallel resistor).

The values of the voltages are equal to St_pu and St_pd . They can be printed or displayed as follows:

.PRINT V(nd_state_pu) V(nd_state_pd)].
Figure 19-10: Equivalent Circuit for xv_pu=nd_state_pu Keyword

ramp_fwf={0|1|2}
ramp_rwf={0|1|2}

Default is ramp_fwf=0, ramp_rwf=0 . If ramp and/or waveform(s) data are available, then these options allow you to choose which data to use.

Parameter ramp_fwf controls falling waveform(s)/ramp. Parameter ramp_rwf controls rising waveform(s)/ramp.

If Star-Hspice can not perform a specified type of processing (for example, if ramp_fwf=2 is specified, but only one falling waveform is found), it decrements values of ramp_fwf and/or ramp_rwf by one and attempts to process the new value(s) of ramp_fwf and/or ramp_rwf . In this case, a warning is printed (unless the nowarn option is set).


NOTE: Parameters ramp_fwf and ramp_rwf are independent and can take different values.

fwf_tune=fwf_tune_value
rwf_tune=rwf_tune_value

Keywords fwf_tune_value and rwf_tune_value are numbers between 0 and 1. Default is fwf_tune=0.1, rwf_tune=0.1 .

The following two parameters control the algorithm for processing ramp and waveforms:

The effect of these parameters when switching the output buffer from LOW to HIGH is illustrated in Change in Values of St_pu(t) and St_pd(t) When a Buffer is Switched from LOW to HIGH.

Figure 19-11: Change in Values of St_pu(t) and St_pd(t) When a Buffer is Switched from LOW to HIGH

Initially, we have St_pd=1 , St_pu=0 . Both ramp data and a single rising waveform provide information about the switching process and, in particular, a time interval, delta_T , during which the transition from LOW -> HIGH occurs. The difference between the two data types (ramp and a single rising waveform) is that the shape of the waveform for ramp is fixed as a linearly growing function from LOW to HIGH, while an actual waveform accounts for an arbitrary time dependence.

However, this is not enough information to determine St_pu(t) and St_pd(t) [recall that St_pu(0)=0, St_pd(0)=1, St_pu(delta_T)=1, St_pd(delta_T)=0]. Mathematically, we have one linear equation with two unknowns that have an infinite number of solutions. To resolve this problem, additional conditions on St_pu, St_pd should be imposed (some use St_pu+St_pd=1).

The following approach is adopted in Star-Hspice.

Because the circuitry that goes from ON to OFF (for rising waveforms, pulldown circuitry) usually undergoes this transition much faster than the circuitry that goes from OFF to ON (for rising waveforms, pullup circuitry), we specify a fraction of time in units of delta_T during which the circuitry that goes from ON to OFF undergoes the transition.

Therefore, if rwf_tune=0.1, then during 0.1*delta_T the pulldown circuitry switches from ON to OFF. The transition is a linear function of time. After imposing this additional condition, we can uniquely find the rate of transition for the circuitry that goes from the OFF state to ON state.

This approach is also valid for the fwf_tune parameter.

Parameters fwf_tune and rwf_tune should be considered tuning parameters. The significance of these parameters strongly depends on I/V curves for pullup and pulldown circuitries. A change in fwf_tune and rwf_tune can be insignificant or very significant depending on the I/V curves. We recommend that you adjust these parameters slightly to evaluate the accuracy of the model.

Note, that in the case of two waveforms, the corresponding system of equations is completely defined mathematically and parameters fwf_tune and rwf_tune are not used (ignored if specified). However, if data given in two waveforms are inaccurate or inconsistent with other data, Star-Hspice can use single waveform or ramp data instead of two waveforms (giving a warning). If this occurs, fwf_tune and/or rwf_tune are used even if ramp_fwf=2, ramp_rwf=2.

If the two-waveform data are inconsistent or inaccurate, the results can be less accurate than ramp or one-waveform results. We recommend that two-waveform results be compared against ramp and one-waveform results.

The algorithm used to find the evolution of states in the case of ramp data and single waveform can be augmented by other algorithms if there are such requests from the users.

The keywords, xv_pu=nd_state_pu and xv_pd=nd_state_pd , can be used to print and/or view the state evolution functions St_pu(t) and St_pd(t) .

nowarn

The keyword nowarn suppresses warning messages from the IBIS parser. Note that there is no equal sign "=" and value after the nowarn keyword. Do not use nowarn as the first keyword after the nodes list. There should be at least one keyword followed by "=" and a value between the list of nodes and the keyword nowarn.

c_com_pu = c_com_pu_value
c_com_pd = c_com_pd_value
c_com_pc = c_com_pc_value
c_com_gc = c_com_gc_value

By default (default 1) the die capacitance C_comp is connected between node_out (nd_in for input buffer) and ideal ground. For simulating power bounce and ground bounce it may be desirable to split C_comp into several parts and connect between node_out (nd_in for input buffer) and some (or all) of nodes node_pu , node_pd , node_pc , node_gc.

If at least one of the optional parameters c_com_pu , c_com_pd , c_com_pc , c_com_gc is specified then the default 1 is not applicable and unspecified parameters takes value zero (default 2). Values c_com_pu , c_com_pd , c_com_pc , c_com_gc are dimensionless and denote fractions of C_comp connected between node_out (nd_in for input buffer) and respective nodes (either node_pu , node_pd , node_pc , or node_gc ). In other words C_comp*c_com_pu is capacitance connected between node_out and node_pu, etc.

If given, values of c_com_pu , c_com_pd , c_com_pc , and c_com_gc should be nonnegative.

It is expected that c_com_pu + c_com_pd + c_com_pc + c_com_gc = 1, however Hspice does not enforce this requirement and only gives warning if the requirement is not satisfied. In such case the states are derived under THE assumption that the die has C_comp specified in the IBIS files while during simulation different value of C_comp used, namely C_comp*(c_com_pu+c_com_pd+c_com_pc+c_com_gc). Effectively it means that some additional capacitance is connected in parallel to C_comp (possibly negative).

In the case of buffer types: output, input-output, 3-state, if nodes node_pc and node_gc are not specified in the netlist, c_com_pc is added to c_com_pu and c_com_gc is added to c_com_pd (after that c_com_pc and c_com_gc are not used anymore).

In the case of buffer types: open drain, open sink, input-output open drain, input-output open sink if nodes node_pc and node_gc are not specified in the netlist, c_com_pc if given is ignored, c_com_gc is added to c_com_pd (after that c_com_gc is not used anymore).

In the case of buffer types: open source, input-output open source, if nodes node_pc and node_gc are not specified in the netlist, c_com_gc if given is ignored, c_com_pc is added to c_com_pu (after that c_com_pc is not used anymore).

In the case of buffer types: output ECL, input-output ECL, 3-state ECL if nodes node_pc and node_gc are not specified in the netlist, c_com_pc and c_com_gc are ignored (assign zero values).

In the case of buffer types: output ECL, input-output ECL, 3-state ECL if c_com_pd is not zero, it is added to c_com_pu (after that c_com_pd is not used anymore).

Star-Hspice Manual - Release 2001.2 - June 2001