public class TimingModel
extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
TimingModel.GetTileAt |
Modifier and Type | Field and Description |
---|---|
float |
BOUNCE_DELAY |
float |
CARRY_CO_DELAY |
boolean |
debug |
boolean |
debugFile |
int |
FAR_MAX |
int |
FAR_MIN |
HashMap<String,List<TimingGroup>> |
forDebugTimingGroupByPorts |
float |
LOGIC_FF_DELAY |
float |
LOGIC_LUT_A1_DELAY |
float |
LOGIC_LUT_A2_DELAY |
float |
LOGIC_LUT_A3_DELAY |
float |
LOGIC_LUT_A4_DELAY |
float |
LOGIC_LUT_A5_DELAY |
float |
LOGIC_LUT_A6_DELAY |
int |
MID_MAX |
int |
MID_MIN |
int |
NEAR_MAX |
int |
NEAR_MIN |
float |
SITEPIN_A_I_DELAY |
float |
SITEPIN_A1_DELAY |
float |
SITEPIN_A2_DELAY |
float |
SITEPIN_A3_DELAY |
float |
SITEPIN_A4_DELAY |
float |
SITEPIN_A5_DELAY |
float |
SITEPIN_A6_DELAY |
float |
SITEPIN_AX_DELAY |
float |
SITEPIN_CKEN1_DELAY |
float |
SITEPIN_CKEN2_DELAY |
float |
SITEPIN_CKEN3_DELAY |
float |
SITEPIN_CKEN4_DELAY |
float |
SITEPIN_SRST1_DELAY |
float |
SITEPIN_SRST2_DELAY |
float |
SITEPIN_WCKEN_DELAY |
static String |
TIMING_DATA_DIR |
boolean |
verbose |
Constructor and Description |
---|
TimingModel(Device device)
A TimingModel is the object for calculating the net delay between two pins on a net.
|
Modifier and Type | Method and Description |
---|---|
void |
build()
This performs the initialization of the timing model.
|
float |
calcDelay(List<TimingGroup> groups)
Estimates the delay of a timing group in picoseconds.
|
float |
calcDelay(SitePinInst startPinInst,
SitePinInst endPinInst,
BELPin sourceBELPin,
BELPin sinkBELPin,
List<TimingGroup> groups)
Estimates the delay of a timing group in picoseconds.
|
float |
calcDelay(SitePinInst startPinInst,
SitePinInst endPinInst,
BELPin sourceBELPin,
BELPin sinkBELPin,
Net net)
Calculates the delay in picoseconds between a pair of pins on a physical "Net" object.
|
float |
calcDelay(SitePinInst startPinInst,
SitePinInst endPinInst,
Net net)
Calculates the delay in picoseconds between a pair of pins on a physical "Net" object.
|
float |
calcDelay(TimingGroup tGroup)
Estimates the delay of a timing group in picoseconds.
|
int |
checkTileType(Tile testT,
GroupDelayType swt)
This checks in the horizontal direction a given tile and returns the value associated with
type of tile used by the model.
|
int |
computeHorizontalDistFromArray(int left,
int right,
GroupDelayType swt)
Computes the Horizontal Distance used later by the delay calculation.
|
int |
computeVerticalDistFromArray(int top,
int bottom,
GroupDelayType swt)
Computes the Vertical Distance used later by the delay calculation.
|
TimingGroup[] |
filter(GroupDistance groupDistance,
TimingDirection targetDirection,
TimingGroup[] unfiltered)
Used for the router example to filter the unfiltered list based on a given group direction
and given distance.
|
TimingGroup[] |
filter(int targetDist,
TimingDirection targetDirection,
TimingGroup[] unfiltered)
Used for the router example to filter the unfiltered list based on a given direction and
given distance.
|
TimingGroup[] |
filter(TimingDirection targetDirection,
TimingGroup[] unfiltered)
Used for the router example to filter the unfiltered list based on a given direction.
|
DelayModel |
getDelayModel() |
Map<GroupDelayType,List<Short>> |
getDistArrayInIntTileGrid(int maxCoor,
int[] sDistArray,
int[] dDistArray,
int[] qDistArray,
int[] lDistArray,
int step,
Pattern pattern,
TimingModel.GetTileAt tileAt) |
Map<GroupDelayType,List<Short>> |
getHorDistArrayInIntTileGrid() |
Map<GroupDelayType,Float> |
getHorK0Coefficients() |
Map<GroupDelayType,Float> |
getHorK1Coefficients() |
Map<GroupDelayType,Float> |
getHorK2Coefficients() |
Map<GroupDelayType,Short> |
getHorLCoefficients() |
Map<String,Short> |
getInputSitePinDelay() |
float |
getIntraSiteDelay() |
Tile |
getRefIntTile()
Get the interconnect tile used as the starting point to point the model.
|
TimingManager |
getTimingManager()
Gets the TimingManager that created this TimingModel object.
|
Map<GroupDelayType,List<Short>> |
getVerDistArrayInIntTileGrid() |
Map<GroupDelayType,Float> |
getVerK0Coefficients() |
Map<GroupDelayType,Float> |
getVerK1Coefficients() |
Map<GroupDelayType,Float> |
getVerK2Coefficients() |
Map<GroupDelayType,Short> |
getVerLCoefficients() |
public boolean debug
public boolean debugFile
public boolean verbose
public static final String TIMING_DATA_DIR
public float BOUNCE_DELAY
public float LOGIC_FF_DELAY
public float CARRY_CO_DELAY
public float LOGIC_LUT_A1_DELAY
public float LOGIC_LUT_A2_DELAY
public float LOGIC_LUT_A3_DELAY
public float LOGIC_LUT_A4_DELAY
public float LOGIC_LUT_A5_DELAY
public float LOGIC_LUT_A6_DELAY
public float SITEPIN_A1_DELAY
public float SITEPIN_A2_DELAY
public float SITEPIN_A3_DELAY
public float SITEPIN_A4_DELAY
public float SITEPIN_A5_DELAY
public float SITEPIN_A6_DELAY
public float SITEPIN_A_I_DELAY
public float SITEPIN_AX_DELAY
public float SITEPIN_CKEN1_DELAY
public float SITEPIN_CKEN2_DELAY
public float SITEPIN_CKEN3_DELAY
public float SITEPIN_CKEN4_DELAY
public float SITEPIN_SRST1_DELAY
public float SITEPIN_SRST2_DELAY
public float SITEPIN_WCKEN_DELAY
public int NEAR_MIN
public int NEAR_MAX
public int MID_MIN
public int MID_MAX
public int FAR_MIN
public int FAR_MAX
public HashMap<String,List<TimingGroup>> forDebugTimingGroupByPorts
public TimingModel(Device device)
device
- A device supported by RapidWright.public void build()
public Tile getRefIntTile()
public float calcDelay(SitePinInst startPinInst, SitePinInst endPinInst, Net net)
startPinInst
- Source SitePinInst from the Net.endPinInst
- A selected sink SitePinInst from the Net.net
- RapidWright physical "Net" object.public float calcDelay(SitePinInst startPinInst, SitePinInst endPinInst, BELPin sourceBELPin, BELPin sinkBELPin, Net net)
startPinInst
- Source SitePinInst from the Net.endPinInst
- A selected sink SitePinInst from the Net.sourceBELPin
- The site BELPin connected to the source SitePinInst.sinkBELPin
- The site BELPin connected to the sink SitePinInst.net
- RapidWright physical "Net" object.public int computeHorizontalDistFromArray(int left, int right, GroupDelayType swt)
left
- Leftmost tile column coordinate of a wire within a TimingGroup.right
- Rightmost tile column coordinate of a wire within a TimingGroup.swt
- Type of TimingGroup, for example SINGLE, DOUBLE, etc. The type is enumerated.public int computeVerticalDistFromArray(int top, int bottom, GroupDelayType swt)
top
- Topmost tile column coordinate of a wire within a TimingGroup.bottom
- Bottom most tile column coordinate of a wire within a TimingGroup.swt
- Type of TimingGroup, for example SINGLE, DOUBLE, etc. The type is enumerated.public Map<String,Short> getInputSitePinDelay()
public Map<GroupDelayType,Float> getHorK0Coefficients()
public Map<GroupDelayType,Float> getHorK1Coefficients()
public Map<GroupDelayType,Float> getHorK2Coefficients()
public Map<GroupDelayType,Short> getHorLCoefficients()
public Map<GroupDelayType,Float> getVerK0Coefficients()
public Map<GroupDelayType,Float> getVerK1Coefficients()
public Map<GroupDelayType,Float> getVerK2Coefficients()
public Map<GroupDelayType,Short> getVerLCoefficients()
public Map<GroupDelayType,List<Short>> getHorDistArrayInIntTileGrid()
public Map<GroupDelayType,List<Short>> getVerDistArrayInIntTileGrid()
public Map<GroupDelayType,List<Short>> getDistArrayInIntTileGrid(int maxCoor, int[] sDistArray, int[] dDistArray, int[] qDistArray, int[] lDistArray, int step, Pattern pattern, TimingModel.GetTileAt tileAt)
public int checkTileType(Tile testT, GroupDelayType swt)
testT
- Test tile to check the type.swt
- Type of the TimingGroup crossing the given tile.public float calcDelay(TimingGroup tGroup)
tGroup
- TimingGroup to be analyzed.public float calcDelay(List<TimingGroup> groups)
groups
- List of TimingGroups to be analyzed.public float getIntraSiteDelay()
public DelayModel getDelayModel()
public float calcDelay(SitePinInst startPinInst, SitePinInst endPinInst, BELPin sourceBELPin, BELPin sinkBELPin, List<TimingGroup> groups)
startPinInst
- Source pin as a SitePinInst for the physical Net.endPinInst
- Sink pin as a SitePinInst for the physical Net.groups
- List of TimingGroups to be analyzed.public TimingGroup[] filter(TimingDirection targetDirection, TimingGroup[] unfiltered)
targetDirection
- Enumerated type TimingDirection representing the given direction.unfiltered
- Unfiltered array of TimingGroup objects.public TimingGroup[] filter(int targetDist, TimingDirection targetDirection, TimingGroup[] unfiltered)
targetDist
- The given distance for filtering.targetDirection
- Enumerated type TimingDirection representing the given direction.unfiltered
- Unfiltered array of TimingGroup objects.public TimingGroup[] filter(GroupDistance groupDistance, TimingDirection targetDirection, TimingGroup[] unfiltered)
groupDistance
- Enumerated type for given group distance for filtering.targetDirection
- Enumerated type TimingDirection representing the given direction.unfiltered
- Unfiltered array of TimingGroup objects.public TimingManager getTimingManager()