public class SCTiming
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
boolean |
characterizationFailed |
java.lang.String |
outputDir |
SCSettings |
settings |
java.lang.String |
topCellName |
Constructor and Description |
---|
SCTiming()
Create a new SCTiming object to run timing characterizations.
|
Modifier and Type | Method and Description |
---|---|
void |
addIgnorableSubckt(java.lang.String subcktName)
Add an ignorable subckt.
|
void |
addResetPin(java.lang.String pin,
boolean activeHigh,
boolean resetState) |
void |
addTimingArc(Arc arc)
Add a timing arc to be characterized
|
void |
addUnusedPin(java.lang.String pin)
Define pins on the subckt that should be completely
ignored.
|
void |
characterize_(SCRunBase.DelayType delayType) |
boolean |
characterize(SCRunBase.DelayType delayType)
Run characterization on all timing arcs added to this SCTiming object,
and write the resulting data to a Liberty file.
|
LibData.Group |
getCellLibData(LibData.Group library)
Get the characeterized cell's data.
|
static java.util.List<java.lang.String> |
getPorts(Cell cell,
java.util.List<java.lang.String> unusedPorts)
Get a list of ports on the cell.
|
void |
setAutoStop(boolean t)
Tells spice to use .option autostop, which stops a transient simulation once (all?)
.measurement statements have completed.
|
void |
setDontTouch()
Set the cell to have don't touch set
|
void |
setDontUse()
Set the cell to have don't use set
|
void |
setFunctionCombinational(java.lang.String outputPin,
java.lang.String function)
Set the function for an output pin in terms of other pins.
|
void |
setFunctionFlipFlop(java.lang.String outputPosPin,
java.lang.String outputNegPin,
java.lang.String inputPin,
java.lang.String clockedOnPin)
Set the function as a simple flip flop.
|
void |
setFunctionFlipFlopDDR(java.lang.String outputPosPin,
java.lang.String outputNegPin,
java.lang.String inputPin,
java.lang.String clockedOnPin)
Set the function as a simple DDR flip flop.
|
void |
setFunctionFlipFlopDDRtoSDR(java.lang.String outputRise,
java.lang.String outputFall,
java.lang.String inputPin,
java.lang.String clockedOnPin)
Set the function as a simple DDR to SDR flop
|
void |
setFunctionFlipFlopSDRtoDDR(java.lang.String outputPosPin,
java.lang.String outputNegPin,
java.lang.String inputRise,
java.lang.String inputFall,
java.lang.String clockedOnPin)
Set the function as a simple SDR to DDR flop
|
void |
setFunctionInterfaceTiming()
Set the function of the cell as an abstracted macro model.
|
void |
setFunctionLatch(java.lang.String outputPosPin,
java.lang.String outputNegPin,
java.lang.String inputPin,
java.lang.String enablePin)
Set the function as a latch.
|
void |
setInputFile(java.lang.String inputFile)
Set the input spice netlist file.
|
void |
setNoTimingMode()
For debug only, turn off timing runs
|
void |
setOutputDir(java.lang.String dir)
Set the output directory.
|
void |
setSettings(SCSettings settings)
Set the settings for this characterization
|
void |
setTestCell(java.lang.String scanInPin,
java.lang.String scanOutPin,
java.lang.String scanEnPin)
Set the test cell block for blocks with scan
|
void |
setThreeStateEnable(java.lang.String pin,
boolean enableStateForOutputZ)
Set the three state enable pin
|
void |
setTopCell(Cell topCell)
Set the top cell.
|
void |
setTopCellName(java.lang.String topCellName)
Set the top cell name.
|
void |
setTopCellNameLiberty(java.lang.String topCellName)
Set the top cell name for the Liberty file.
|
void |
setTopCellParams(java.lang.String list)
A string of name=value parameter values for the top cell instance,
if needed.
|
public java.lang.String topCellName
public java.lang.String outputDir
public SCSettings settings
public boolean characterizationFailed
public SCTiming()
public void setSettings(SCSettings settings)
settings
- public void setInputFile(java.lang.String inputFile)
inputFile
- the input file pathpublic void setTopCell(Cell topCell)
topCell
- public void setTopCellName(java.lang.String topCellName)
topCellName
- public void setTopCellNameLiberty(java.lang.String topCellName)
topCellName
- public void setTopCellParams(java.lang.String list)
list
- space separated list of name=value pairspublic void setOutputDir(java.lang.String dir)
dir
- public void addTimingArc(Arc arc)
arc
- public void setFunctionCombinational(java.lang.String outputPin, java.lang.String function)
outputPin
- the output pin namefunction
- a string describing the function.public void setFunctionFlipFlop(java.lang.String outputPosPin, java.lang.String outputNegPin, java.lang.String inputPin, java.lang.String clockedOnPin)
outputPosPin
- output positive (true) pinoutputNegPin
- output negative (false) pininputPin
- input data pinclockedOnPin
- clock pinpublic void setFunctionFlipFlopDDR(java.lang.String outputPosPin, java.lang.String outputNegPin, java.lang.String inputPin, java.lang.String clockedOnPin)
outputPosPin
- output positive (true - Q) pin (this output changes on both pos and neg edge clk)outputNegPin
- output negative (false - Q bar) pin (this output changes on both pos and neg edge clk)inputPin
- input data pinclockedOnPin
- clock pinpublic void setFunctionFlipFlopSDRtoDDR(java.lang.String outputPosPin, java.lang.String outputNegPin, java.lang.String inputRise, java.lang.String inputFall, java.lang.String clockedOnPin)
outputPosPin
- output positive (Q) pinoutputNegPin
- output negative (Q-bar) pininputRise
- input clocked on the rising edge of the clkinputFall
- input clocked on the falling edge of the clkclockedOnPin
- the clock pinpublic void setFunctionFlipFlopDDRtoSDR(java.lang.String outputRise, java.lang.String outputFall, java.lang.String inputPin, java.lang.String clockedOnPin)
outputRise
- the output that changes on clock risingoutputFall
- the output that changes on clock fallinginputPin
- the input pinclockedOnPin
- the clock pinpublic void setFunctionLatch(java.lang.String outputPosPin, java.lang.String outputNegPin, java.lang.String inputPin, java.lang.String enablePin)
outputPosPin
- output positive (true) pinoutputNegPin
- output negative (false) pininputPin
- input data pinenablePin
- enables in to outpublic void setFunctionInterfaceTiming()
public void setTestCell(java.lang.String scanInPin, java.lang.String scanOutPin, java.lang.String scanEnPin)
scanInPin
- scan in pinscanOutPin
- scan out pinscanEnPin
- scan en pinpublic void setAutoStop(boolean t)
t
- true to set autostop on, false to not set it.public void addIgnorableSubckt(java.lang.String subcktName)
subcktName
- the name of the subcktpublic void addUnusedPin(java.lang.String pin)
pin
- the name of the pinpublic void addResetPin(java.lang.String pin, boolean activeHigh, boolean resetState)
public void setNoTimingMode()
public void setThreeStateEnable(java.lang.String pin, boolean enableStateForOutputZ)
pin
- the name of the enable pin (high enables output, low sets out to high Z)public void setDontTouch()
public void setDontUse()
public boolean characterize(SCRunBase.DelayType delayType)
public void characterize_(SCRunBase.DelayType delayType) throws SCTimingException
SCTimingException
public static java.util.List<java.lang.String> getPorts(Cell cell, java.util.List<java.lang.String> unusedPorts)
cell
- the cellunusedPorts
- a list of unused portspublic LibData.Group getCellLibData(LibData.Group library)
library
- the library group to add it to