Recovery/Removal Characterization

022_cell : Recovery/Removal Characterization

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

This example explains the basics of AccuCell's recovery and removal characterization and modeling options for a D Flip-Flop with rising edge clock and asynchronous preset and clear using the embedded SmartSpice SPICE engine to perform characterization.

Characterization options specifically for controling the various recovery/removal conditions separate from the rest of the basic combinational delay and power parameters can be defined in the Cell_EX8.cfg file using many of the same .cfg file commands that control setup/hold in the SETHOLD_, SH_ parameters group. The use of pin-wise definitions permits the option of defining recovery and removal differently from setup and hold for commands that permit pin-wise definitions. See the AccuCell Reference Manual for addition details on pin-wise commands. The main parameters for recovery and removal are CHAR_RECREM, SH_SLOPE_TABLE, SETHOLD_DIMENSION, SETHOLD_ACCUR, SETHOLD_MAXIT.

NOTE: AccuCell will automatically control the SETHOLD_HREM parameter which should NOT be defined by the user except in special cases as directed by a SILVACO AE for issue debug purposes.

CHAR_RECREM controls enabling recovery and removal characterization and modeling for cells with asynchronous preset/clear functions and NOT synchronous set/reset functions which should be addressed by use of setup/hold characterization.

In the Liberty .lib timing model file, a latch or ff section definition will define preset, clear, clear_preset_var1, clear_preset_var2 which if necessary can be directly specified by the use of the .cfg command SYNOPSYS_FUNC_FILE and specifying a .func file to override the tools result. Use of this will be required anytime that a .tbl table vector file is needed.

NOTE: SH_CLK_SLOPE_TABLE, SH_DATA_SLOPE_TABLE are NOT to be used for recovery and removal, ONLY for setup and hold definition. If specifying SH_CLK_SLOPE_TABLE, SH_DATA_SLOPE_TABLE and SH_SLOPE_TABLE ensure that SH_SLOPE_TABLE uses a pin-wise definition for the preset/clear pins and occurs AFTER SH_CLK_SLOPE_TABLE, SH_DATA_SLOPE_TABLE or a non-pin-wise SH_SLOPE_TABLE or SLOPE_TABLE definition in the .cfg file, otherwise the LAST command(s) in the .cfg file will override the prior ones and ALL setup/hold/recovery/removal pins will use the SAME slope values.

SH_SLOPE_TABLE specifies pin-wise slopes for recovery/removal (and setup/hold) characterization and modeling.

SETHOLD_DIMENSION specifies the structure of the recovery/removal (and setup/hold) timing constraint tables.

NOTE: At present setup/hold and recovery/removal characterization MUST be the SAME table dimension and CANNOT be defined independently. In the vast majority of situations this does NOT present and significant issue.

SETHOLD_ACCUR specifies the accuracy threshold for terminating the bisection iteration search for the recovery/removal (and setup/hold) tolerance. Smaller values will require more iterations to reach their error goal.

SETHOLD_MAXIT specifies the maximum number of bisection search iterations for recovery/removal (and setup/hold) to control runtime and in case of cell characterization failure before accepting a final value or bypassing the characterization for the next arc or cell condition.

ASYNCH_DOMINANT 1 specifies including a timing check between asynchronous preset and clear pins when both exist.

NOTE: It is recommended to leave this parameter in its default 0 state for most cells.