Class Refinement

Class Documentation

class Refinement

细化阶段门面类。

封装 FM、PM、DSFM、HER 等多种细化策略的选型与调度, 对外仅暴露构造器与 refinement() 入口,屏蔽内部策略工厂与增益桶细节。

Public Functions

Refinement(const PartitionConstraintConfig &constraints, const RefineStageConfig &refine, const fpga &fpgas, int thread)

构造器:从子结构体组装内部配置,完成策略选型与会话初始化。

Parameters:
  • constraints[in] 跨阶段硬约束(has_fix, has_io, has_timing 等)。

  • refine[in] 细化阶段参数(迭代次数、策略开关等)。

  • fpgas[in] FPGA 平台约束。

  • thread[in] 并发线程数。

Metrics refinement(MultilevelCoarsener &mc, vector<vector<int>> &candidate_parts, vector<vector<VectorXi>> &candidate_occupied_resources, int COCP_flag, HSFullTiming::HSPartitionFlow &pFlow)

细化阶段主入口。

对所有候选解执行迭代优化,包括解的层间投影、最佳节点选择、管脚更新等。

Parameters:
  • mc[in] 当前多层级图上下文,用于访问层级图和映射关系。

  • candidate_parts[inout] 输入候选分区解,函数返回时写回细化后的候选分区解。

  • candidate_occupied_resources[inout] 与候选分区解对应的 FPGA 资源占用。

  • COCP_flag[in] 是否由 COCP 流程调用。

  • pFlow[in] 静态时序分析上下文。

Returns:

细化后最佳候选解的指标。

Private Functions

void finalizeStrategyChoices()

根据参数中的策略开关,确定 primary+suffix 组合与默认策略名。

void initSession()

初始化运行会话,写入时序开关与 TDM 状态。

Private Members

RefinementConfig config_

细化阶段的约束、策略开关与运行参数。

RefinementSession session_

跨层级细化的运行时状态(时序开关、惩罚值、图栈)。