LUT

NAME_TABLE:

C_Function_Name: cm_d_lut

Spice_Model_Name: d_lut

Description: "digital n-input look-up table gate"

PORT_TABLE:

Port_Name: in out

Description: "input" "output"

Direction: in out

Default_Type: d d

Allowed_Types: [d] [d]

Vector: yes no

Vector_Bounds: [1 -] -

Null_Allowed: no no

PARAMETER_TABLE:

Parameter_Name: rise_delay fall_delay

Description: "rise delay" "fall delay"

Data_Type: real real

Default_Value: 1.0e-9 1.0e-9

Limits: [1.0e-12 -] [1.0e-12 -]

Vector: no no

Vector_Bounds: - -

Null_Allowed: yes yes

PARAMETER_TABLE:

Parameter_Name: input_load

Description: "input load value (F)"

Data_Type: real

Default_Value: 1.0e-12

Limits: -

Vector: no

Vector_Bounds: -

Null_Allowed: yes

PARAMETER_TABLE:

Parameter_Name: table_values

Description: "lookup table values"

Data_Type: string

Default_Value: "0"

Limits: -

Vector: no

Vector_Bounds: -

Null_Allowed: no

  • Description:
    The lookup table provides a way to map any arbitrary n-input, 1-output combinational logic block to XSPICE. The inputs are mapped to the output using a string of length 2^n. The string may contain values "0", "1" or "X", corresponding to an output of low, high, or unknown, respectively. The outputs are only mapped for inputs which are valid logic levels. Any unknown bit in the input vector will always produce an unknown output. The first character of the string table_values corresponds to all inputs value zero, and the last (2^n) character corresponds to all inputs value one, with the first signal in the input vector being the least significant bit. For example, a 2-input lookup table representing the function (A * B) (that is, A AND B), with input vector [A B] can be constructed with a table_values string of "0001"; function (~A * B) with input vector [A B] can be constructed with a table_values string of "0010". The delays associated with an output rise and those associated with an output fall may be specified independently. The model also posts an input load value (in farads) based on the parameter input_load. The output of this model does not respond to the total loading it sees on the output; it will always drive the output strongly with the specified delays.

Example SPICE Usage:

* LUT encoding 3-bit parity function

a4 [1 2 3] 5 lut_pty3_1

.model lut_pty3_1 d_lut(table_values = "01101001"

+ input_load 2.0e-12)