设计变换与架构探索 (Design Transformation and Architectural Exploration)
设计变换 (Design Transformation) 是 Martens & Gielen《High-Level Modeling and Synthesis of Analog Integrated Systems》(2008) 中高层级综合的核心操作算子。Ch.6 §6.3.7 系统定义四类变换:基于规则、数学等价、重组和变异,构成自顶向下异构优化的拓扑和参数变化引擎。
变换的形式化定义
在通用设计流框架中,变换 (Transformation) 定义为:
在相同描述层 和相同抽象级 下,改变系统拓扑/架构的操作。
变换总是由两部分组成:
- 架构生成:选择 的新子集和 的新组合
- 参数设置:为新的基本元素定义参数值
变换与动机绑定 — 每次变换应有明确的原因(如”SNR 不足”、“功耗过高”)。
四类变换
1. 基于规则的变换 (Rule-based Transformations)(Fig. 6.7)
原理:将模拟设计专家的经验编码为可执行的变换规则。
规则形式:
IF (condition_on_performance_or_architecture) THEN (apply_transformation)
典型规则:
| 规则 | 条件 | 变换操作 | 效果 |
|---|---|---|---|
| R1 | SNR 不足 | 增加积分器阶数 | 提高噪声整形阶数 |
| R2 | 功耗过高 | 切换到单比特量化 | 降低比较器复杂度 |
| R3 | 带宽不足 | 增加 OTA GBW | 扩展环路带宽 |
| R4 | 面积过大 | 切换到 SC 更小的 | 减小电容面积 |
| R5 | 动态范围不够 | 增加 DAC 位数 | 降低量化噪声 |
| R6 | 稳定裕度不足 | 调整 NTF 零点位置 | 改善稳定性 |
实例:增加积分器阶数(Fig. 6.7):
- 输入设计:二阶 ΔΣ 调制器(L=2),SNDR=60dB,目标=80dB
- 变换:增加一个积分器(L=3)
- 新设计:三阶 ΔΣ 调制器,NTF 从 变为
- 效果:SNDR 提升约 15dB(相同 OSR),代价:稳定性降低
实例:增加 DAC 位数(Fig. 6.7):
- 输入设计:1-bit ΔΣ,量化噪声
- 变换:
- 新设计:3-bit ΔΣ, 缩小 4×,量化噪声降低 16×(约 12dB)
2. 数学等价变换 (Mathematical Equivalence Transformations)(Fig. 6.8)
原理:利用数学恒等式改变拓扑结构,不改变理想传递函数。
典型变换:
| 变换 | 数学基础 | 实际效果 |
|---|---|---|
| SFG 重排 | Mason 增益公式 | 改变信号路径数量 |
| 反馈拓扑变换 | Blackman 定理 | 改变环路属性 |
| 多相滤波 | Hilbert 变换 | 改善镜像抑制 |
| 零极点重分配 | 代数等价 | 改变模块间约束 |
实例:改善 IRR(Fig. 6.8):
- 问题:混频器增益失配导致 IRR 差
- 数学等价变换:添加多相滤波级
- 理想传递函数不变,但失配容忍度提升
- 公式:,补偿滤波
实例:降低 NF(Fig. 6.8):
- 问题:NF 高于规格
- 变换:前级 LNA 增加增益
- 公式:,增加 降低后级噪声贡献
- 代价:LNA 功耗增加
3. 重组变换 (Recombination Transformations)(Fig. 6.9)
原理:类似遗传算法的交叉操作,从两个父设计生成子设计。
机制:
父设计 A: (T_A1, T_A2, ..., T_Ak)
父设计 B: (T_B1, T_B2, ..., T_Bl)
↓ 交叉点选择(随机/启发式)
子设计: (T_A1, ..., T_Ai, T_Bj+1, ..., T_Bl)
交叉率进化(Fig. 6.9):
其中 为代数, 初始交叉率, 衰减常数。
- 早期(小 ):高交叉率,促进架构探索
- 晚期(大 ):低交叉率,保护已收敛的优质设计
4. 变异变换 (Mutation Transformations)
原理:对现有设计进行小幅度随机修改。
两种变异类型:
参数变异:
- 连续参数:( 均匀随机变化)
- 离散参数:从可选集合中随机选取新值
拓扑变异:
- 功能等价替换:用结构不同但功能相同的模块替换指定模块
- 参数结构变化:如从单极点模型变为双极点模型
变换选择策略(Fig. 6.10)
选择流程
性能向量 P = [P_1, P_2, ..., P_K]
↓
满意度向量 S = [s_1, s_2, ..., s_K]
↓
识别最低满意度维度 i_min = argmin(s_i)
↓
查询可应用于维度 i_min 的变换集合 T_set
↓
偏好排序(成功率权重 + 随机扰动)
↓
选择 T* ∈ T_set 执行
优先级队列
- 多变换按优先级入队
- 优先级基于历史成功率
- 引入随机扰动避免确定性死锁
- 成功率动态更新(Baysian 更新)
实例:ADC 架构树生成
变换从胚基开始逐步生成 ADC 架构(Fig. 6.14):
Embryo (A/D 转换)
│
├─ Rule: 选 ΔΣ 架构
│ ├─ Rule: 增阶数 L=2
│ │ └─ Rule: 增 DAC 位 1→3
│ └─ Rule: 增阶数 L=3
│ └─ Math-equiv: NTF 零点优化
│
├─ Rule: 选 Pipeline
│ ├─ Mutation: 1.5bit/级
│ │ └─ Rule: 6级
│ └─ Recomb: 从 ΔΣ 分支获取技术
│
├─ Rule: 选 SAR
│ └─ Mutation: 冗余电容
│
└─ Rule: 选 Flash
└─ Rule: +插值
每个节点显示满意度值,红/绿标注未达/已达标。
变换的成功条件
| 条件 | 描述 |
|---|---|
| 语法有效 | 变换后的架构必须合法 |
| 参数有效 | 所有参数在有效范围内 |
| 功能完整 | 变换后仍满足原始功能 |
| 非退化 | 变换不会回退到无效设计 |
| 收敛性 | 变换在有限步内终止 |
与其他概念的关系
- 自顶向下异构综合优化 — 变换是 TDHO 的核心算子
- 通用行为建模方法 — 变换后性能由 GBM 评估
- 描述与抽象层设计框架 — 变换是四种基本操作之一
- 高层级模拟综合集成 — 变换规则来源于综合设计知识
- 性能函数与性能模型 — 满意度指导变换选择