Struct TimingPath

Struct Documentation

struct TimingPath

关键时序路径表示结构。

一条时序路径既可视为节点序列,也可视为超边序列; 在该模型中计算延时的时候,时序图是叠加在实际的拓扑分块超图之上。这是时序感知的核心。

Public Functions

TimingPath() = default

默认构造函数定义

inline TimingPath(const vector<int> &path_arg, const vector<int> &arcs_arg, float slack_arg, float cp_arg)

带参构造函数,快速构造一条物理路径基础结构。

Parameters:
  • path_arg – 此条路径节点ID列表。

  • arcs_arg – 此条路径经历的网(Net)ID列表。

  • slack_arg – 在分割前建立的标准化路径余量指标(slack)。

  • cp_arg – 对应时钟域提供的时延周期约束。

Public Members

vector<int> path

节点序列(基于 node-based)。由于分割主要移动node,因此通过该序列确定该路径在哪些分块或FPGA间跳转。

vector<int> arcs

超边序列(基于 net-based)。用来在网络层次评估复用的时序拥塞和跨域TDM跳数损失。

float slack = 0.0

分割之前的初始时序冗余/惩罚度量(相对量),常为预处理时得到的基准值。

float slack_new = 0.0

在进行分块改动之后更新所产生的最新时序冗余/惩罚量(相对量)。这是用于算法驱动计算的新数值。

float cp = 0.0

路径约束发生的源时钟物理周期大小(通常单位纳秒)。

float slack_old = 0.0

评价阶段中给定的未作调整的物理原余量(绝对量),用于对齐基线判断是否超出要求。

float slack_new_abolute = 0.0

发生切分跳转加之之后,物理延时带来的全局最终时序冗余量(绝对量)。

int cut = 0

在当前这条路径的整个跳连序列中,被切分横跨不同分部分/块(如FPGA)边缘的数量。其极大影响整体附加延时。

int dHop = 0

路径序列中切断Die与Die连接的数量估算。

int index = 0

为了方便访问、检索重排序后此路径系统维护的内部偏移号或序列索引。

bool is_path_in_cell = false

标志路径的首尾以及内部逻辑是否其实被完全包裹于某一个层次上的黑盒层级单元内部(未展开)。