.tbl Table File Basics

020_cell : .tbl Table File Basics

Minimum Required Versions: AccuCell 2.6.0.R, SmartSpice 4.6.2.R

This example explains the basics of .tbl table file creation and editing. .tbl table files are the primary method of controlling the AccuCell vector generation process which determines what and how to characterize a cell.

It is assumed that the user is fully familar with the various characterization measurements and their proper vector construction methods. This example is intended ONLY to help demonstrate and explain the basic capabilities and limitations of the AccuCell .tbl table vector file method and its construction. For additional review material, please refer to the SILVACO web site Technical Library -> Training Materials -> Digital CAD -> Introduction to Cell Characterization.

In AccuCell when automatic processing either fails or an alternate specific set of vector conditions are desired for characterization, the use of a .tbl table vector file for that cell is necessary.

The .tbl table vector file syntax is VERY flexible, powerful and compact, permitting detailed control over the types of characterization to be done on each pin and the vectors that pin should utilize. The user is NOT restricted in how to program the .tbl table vector file beyond a few sensible basic rules. The most basic point to be understood is that, unlike the DIRECT and unassisted vector process that other vendors chose to utilize which results in the need to generate very large numbers of vectors down to every last detail, AccuCell's .tbl table vector method uses an INTERPRETED vector input. The contents of the file give the tool "clues" to the cell function which permits the tool to expand the given vectors into a final full vector set that will be DIRECTLY applied and thereby simplifying the number of vectors that need to be specified. Once THIS behavior is fully understood, the creation of .tbl table vector files will become relatively straight forward. This misconception of the roll and use of the .tbl table vector file in the overall vector generation process is the main source of confusion for most beginning users.

The file can be broken down into several basic groups:

  • Header
  • I/O pin declarations
  • I/O pin relationships
  • Characterization measurement vector groups
  • Footer

The header identifies the table uniquely for a given cell for a specific mode of operation. ANY table name is permited if it is unique for a given cell. More than one .tbl table vector file can be specified if the cell has more than one operating mode or configuration. (ex. bi-directional pin use)

NOTE: ONLY one table header statement is permitted per .tbl table vector file, but multiple files may be referenced with the .cfg command TBL_FILE_NAMES in lieu of the TBL_FILE_NAME command.

The I/O pin declarations define the order of the pins in the vector and the pin type which define how the pin is to be treated and the allowed pin relationships that may be later defined.

The I/O pin relationships section defines the relationships between each output pin and the various input pins. Unateness(relative pin polarity), active edge, basic functional use (but NOT detailed function realtionship), etc. This is used in conjunction with the .cfg file definitions to further define cell and pin behavior. Aspects of the actual cell function will be derived, but the COMPLETE cell function will NOT. Commonly, a detailed Liberty .lib syntax function description will be required to be provided by the user in a separate .func file to be inserted into the final Liberty .lib timing model because the full automatic function extraction process is bypassed whenever a .tbl table vector file is utilized.

Each characterization measurement vector group can be defined uniquely or can be merged with others, but ONLY if ALL vector sequences in the vector group can be fully shared.

Vector groups can contain MULTIPLE vector sequences and each vector sequence contains two or more vectors and each vector contains EXACTLY the number of vector elements as the cell has input pins.

NOTE: for the purposes of vector generation CLOCKS are INPUTS but are defined separately since they are a different signal type.

The order of the vector elements in a vector are based on the order of their declaration in the .tbl table vector file.

Each vector sequence is enclosed in "[]" and each vector is separated by a ";" (semi-colon). The vector sequence is terminated by a ";" (semi-colon) after defining the edge conditions of the outputs which are separated from the input vectors by a ":" (colon). ALL outputs MUST be defined in the order they where declared in the .tbl table vector file I/O declarations. Outputs that are to be ignored from measurement can be specified with a "-" instead of either a "r" (rising) or "f" (falling) edge event. ALL vectors MUST contain conditions for ALL inputs even if they are don't cares , since the simulation MUST continuously drive every input pin to avoid unknown states.

If only one pin changes between the last two vectors in a vector sequence, then AccuCell can automatically determine the timing arc or state condition to which the vector sequence applies, otherwise the vector sequence MUST also define the arc or state as well. If a specific set of Initial Conditions (IC) are desired, these can be defined for a vector sequence as well.

To aid the creation process the AccuCell .cfg command GENERATE_TBL_FILE 1 may be specified to enable the possible creation of a "best guess" .tbl table vector file <cell_name> _internal.tbl in the cell sub-dir as a starting point for editing or re-generation.

NOTE: If editing a tool created internal.tbl file, remove ALL mwindow statements in a given characterization measurement vector group and reformat the vector sequences in non-mwindow format if ANY part of that group requires editing as ANY edits may invalidate the existing vectors due to state dependency issues.

Remember to end the .tbl file with a end_table footer statement.

For additional details on the syntax and interpretation of .tbl table vector files, please refer to the AccuCell Reference Manual and AccuCell User's Manual.