自顶向下异构综合优化 (Top-Down Heterogeneous Optimization)
自顶向下异构优化 (Top-Down Heterogeneous Optimization, TDHO) 是 Martens & Gielen《High-Level Modeling and Synthesis of Analog Integrated Systems》(2008) Ch.6 提出的新算法,用于模拟/混合信号系统的高层级综合。核心思想是通过设计群体和变换操作同时探索架构拓扑和参数值,结合满意度函数驱动进化式优化。
优化架构(Fig. 6.1-6.2)
中心控制算法(Listing 6.1)
population = [embryonic_design];
while (!termination_condition(population)) {
for each design D in population {
P = evaluate(D); // 性能计算器
S = assess(P, targets); // 评估器 → 满意度
if (S < threshold)
transformation_set = select_transformations(D, S);
for each T in transformation_set
D' = apply(D, T);
population.add(D');
}
population = select_best(population, pop_size);
}
五核心组件
| 组件 | 职责 | 类比 |
|---|---|---|
| 设计群体 (Population) | 管理和维护候选设计集合 | 遗传算法群体 |
| 胚基设计 (Embryonic Design) | 优化的起点:最简功能抽象 | 染色体初始态 |
| 性能计算器 (Performance Calculator) | 计算某架构的性能向量 | 适应度函数 |
| 评估器 (Evaluator) | 将性能映射为满意度 | 非线性规划 |
| 变换操作 (Transformations) | 产生新设计的操作算子 | 遗传算子 |
设计群体 (Design Population)(Fig. 6.3-6.4)
设计表示
每个设计表示为从胚基出发的变换序列:
群体结构
- 群体形成树结构(Fig. 6.4)
- 每个节点是一个具体设计
- 边是变换操作
- 簇 (Cluster):共享相同拓扑架构的节点聚集
- 树的分支对应不同的架构选择路径
树的演化
胚基 (Embryo)
├── T1: 选择ΔΣ架构
│ ├── T2a: 单环 1-bit
│ │ └── T3a: 增加积分器 (L=2→L=3)
│ └── T2b: MASH 2-2
│ └── T3b: 优化NTF零点
└── T1': 选择Pipeline架构
└── T2c: 选择1.5-bit/级
胚基设计 (Embryonic Design)(Fig. 6.5)
胚基:最简单的可行设计起点,仅定义输入/输出和功能,无内部结构。
ADC 胚基示例(Example 6.2):
- 输入:模拟电压
- 输出:数字码
- 功能:,理想无限精度
- 内部:空(无架构、无模块)
胚基的意义:
- 消除设计者的初始架构偏好
- 让优化算法自主决定最佳架构
- 减少设计师偏见对综合结果的影响
性能计算器 (Performance Calculator)
每个架构类型(ΔΣ、Pipeline、SAR、Flash)有专用的性能计算器。
计算器类型:
ct_dsm_calculator:基于通用行为模型的瞬态仿真pipeline_calculator:基于方程的快速计算sar_calculator:混合查表+方程
输出:性能向量 ,包含 ENOB、功耗 、面积 、SNDR、SFDR 等。
角色分离:计算器只负责”计算”,评估器负责”判断”。这种分离使计算器可替换(仿真/方程/查表)而不影响优化逻辑。
满意度函数 (Satisfaction Level)(Fig. 6.6)
定义
将单一性能值映射为 满意度分数。
五种基本类型
- (越小越好):
用于 SNDR、SFDR
-
(精确值):目标值附近满意度最高,用于增益、带宽
-
(范围):指定范围内满意,范围外线性退化
-
(排除):排除特定值(如避免振荡条件)
总体满意度
其中 为用户指定的权重。
四类变换 (Transformations)(§6.3.7, Fig. 6.7-6.8)
详见 设计变换与架构探索 概念页。此处仅列出各类型概要:
| 类型 | 原理 | 实例 | 图中标注 |
|---|---|---|---|
| Rule-based | 模拟专家知识 | 增加积分器阶数、增加 DAC 位数 | Fig. 6.7 |
| Math-equiv | 利用数学恒等式 | 反馈结构重排、多相滤波 | Fig. 6.8 |
| Recombination | 交叉操作 | 两父设计合并 | Fig. 6.9 |
| Mutation | 参数扰动 | 随机变化 | — |
Antigone 程序(§6.4, Fig. 6.11-6.15)
Oedipus 库(Fig. 6.11)
专用 C++ 库,封装 TDHO 核心:
Design— 抽象基类,含变换序列和参数Population— 群体管理,含选择和替换策略Transformer— 变换引擎Calculator— 性能计算器接口Evaluator— 评估器接口
设计空间
Antigone 覆盖的 ADC 架构空间:
- ΔΣ:单环(1-5 阶)、MASH(2-1, 2-2, 2-1-1)
- Pipeline:1.5-bit/级、2.5-bit/级
- SAR:二进制搜索、冗余 SAR
- Flash:标准 Flash、插值 Flash
- 两步式:粗/细组合
非理想性覆盖
- kT/C 噪声
- op amp 有限增益和摆率
- 比较器失调
- 时钟抖动
- DAC 失配
综合结果(Fig. 6.12, Table 6.1)
8 次优化运行结果:
| 实例 | ENOB | 架构 | FoM (pJ/conv) | |
|---|---|---|---|---|
| A | 8 | 1 MHz | 二阶 ΔΣ | 1.2 |
| B | 16 | 10 kHz | 四阶 MASH ΔΣ + DEM | 0.7 |
| C | 12 | 10 MHz | Pipeline 6-stage 1.5-bit | 0.9 |
| D | 6 | 100 MHz | Flash + 插值 | 0.5 |
| E | 14 | 100 kHz | 三阶 ΔΣ 单环 | 1.5 |
| F | 10 | 50 MHz | Pipeline 4-stage 2.5-bit | 1.1 |
| G | 12 | 500 kHz | SAR + 冗余 | 0.6 |
| H | 8 | 20 MHz | 两步式 Flash | 2.5 |
架构树示例(Fig. 6.14)
跟踪设计演化路径:胚基 → ΔΣ → MASH → 2-2 结构 → 选择 DAC 位数 → 选择积分器参数。每个决策点显示施加的变换类型和满意度变化。
满意度进化(Fig. 6.15)
- 总满意度随代数单调上升
- 初期(1-50 代):快速上升,架构选择产生主要效果
- 中期(50-200 代):平稳提升,参数调优
- 后期(200+ 代):精细调整,接近收敛
- 典型收敛代数:100-500 代
核心创新总结
| 方面 | 传统方法 | TDHO |
|---|---|---|
| 架构空间 | 单一架构 | 多异构架构 |
| 参数优化 | 固定拓扑 | 拓扑+参数联合 |
| 设计知识 | 隐含 | 显式变换规则 |
| 探索策略 | 局部搜索 | 树形结构化搜索 |
| 性能评估 | 统一模型 | 架构特定计算器 |
| 用户交互 | 需指定架构 | 只需功能规格 |
与其他概念的关系
- 通用行为建模方法 — GBM 作为 TDHO 的性能计算引擎
- 设计变换与架构探索 — TDHO 中变换操作的具体实现
- 性能函数与性能模型 — 评估器使用性能函数判断
- 描述与抽象层设计框架 — TDHO 位于行为级抽象
- 高层级模拟综合集成 — TDHO 是高层级综合的综合策略