Class timing

Class Documentation

class timing

时序相关全局数据集合(集中管理所有的路径、引脚以及相关的代价数据)。

作为超图分割时序驱动的底层数据库,由 timing 对象将抽象的物理图(graph)同逻辑层面的信号延迟网络绑定起来。

Public Members

vector<TimingPath> timing_paths

从解析器引入的所有敏感时序路径集合的容器,其中含有所需分析跳转和Cut的核心基础结构。

flat_hash_map<pair<int, int>, pinSlack> pin_minslack

(Hyperedge ID, Node ID) 构成的引脚定位符到具体预估得到的冗余量 pinSlack 的扁平哈希关联表。

vector<float> hyperedge_slacks

针对全集中每一条 Hyperedge 所统计的最差引出 Slack,作为边权修正的基准参考。

vector<float> path_timing_cost

预计算的全局时序成本数组(对应到不同的 path_id 上)。用于在进行增益评估时能够快速查表。

vector<float> hyperedge_timing_cost

预计算分配并摊到某指定超边(Net)上的惩罚代价数组,其长度与网表超边数严格对齐。

vector<set<int>> ins_paths

节点映射至相关时序路径编号组合的查询反查表。ins_paths[node_id]包含了经过该节点的所有路径自增索引。

flat_hash_map<int, set<pair<int, int>>> net_insPin_set

从指定的超边映射到参与这根线的具有时序逻辑属性关联的一群引脚定义集 set<pair<Net_ID, Node_ID>>