该论文“Analog/Mixed-Signal Standard Cell Based Approach for Automated Circuit Generation of Neural Network Accelerators”提出了一种基于模拟/混合信号标准单元的神经网络加速器电路自动生成方法,介绍了相关概念、设计平台以及实际应用结果。
### 1. 引言
- 深度学习发展需要高能效和面积高效的人工智能(AI)加速器,模拟/混合信号AI加速器是一种有前途的方案,但目前的设计流程大多基于手动电路设计,存在设计时间长、易出错且难以迭代等问题。因此需要自动化设计工具,本文提出一种基于模拟/混合信号标准单元的自动化方法和相关平台UnilibPlus。
### 2. 概念
- 模拟/混合信号综合基于模块生成器方法,针对特定加速器架构,从标准单元簇开始,经过面积和寄生参数估计、性能评估等步骤选择合适的单元组合,再进行综合、寄生参数提取和仿真,若不满足要求则更新配置重新综合。UnilibPlus包含八个主要模块,用于实现自动化设计流程。
### 3. UnilibPlus平台
- UnilibPlus是基于Python的Cadence Virtuoso插件,具有自动生成原理图、布局和测试平台的功能。它与Cadence Virtuoso交互,通过Design Tasks实现特定电路的设计,设计过程包括加载任务参数、构建用户界面、用户指定参数、执行任务、读取标准单元信息、创建设计数据并传输给Cadence Virtuoso。该平台还具有数据临时存储和后处理功能。
### 4. 基于标准单元的布局生成
- **标准单元设计和布局** - 电路设计师手动创建模拟块级标准单元,其布局需满足边缘对齐、引脚位于边界且不同类型引脚分开布线等要求,同时电路要能处理负载阻抗、工艺、电压和温度变化以及实际应用中的工作负载。
- **接口定义** - 每个标准单元链接到一个genConfig文件,该文件定义了单元的物理接口,包括不同类别信号的连接目标、布线算法和布线约束等信息。
- **放置和布线** - **放置算法**:从面积关键的标准单元阵列开始,依次放置支持电路、计算阵列间距并放置,最后完成布线,包括模块互连、连接到顶层端口和电源布线。同时介绍了用于实例放置的算法以及边界单元的放置。
- **布线选项**:设计任务中实现了两种基本布线方式,即连接放置(用于阵列内相邻同类型单元之间的连接)和自动布线(用于其他连接),自动布线支持四种通用算法,包括引脚到干线布线、倾斜连接、交叉引脚布线和通道布线,这些算法可组合使用。此外,还讨论了信号流方向以及如何通过旋转实例来简化布线算法的实现。
- **验证**
- 合成系统的最后一步是验证电路,包括物理实现检查(通过布局与原理图对比LVS和设计规则检查DRC)和功能验证(通过电路模拟器仿真,但由于电路规模大,完全仿真耗时且难以评估神经网络准确性,因此目标是抽象标准单元并将电路分段为可管理的块以加速仿真,但尚未实现)。
### 5. 实际结果
- 将该方法应用于两种神经网络加速器架构(ADELIA Gen1和ADELIA Gen2)和不同的半导体工艺,生成的布局通过了LVS和DRC验证,部分设计已制造并进行了测量验证。与手动设计相比,自动化大大减少了电路组装时间,同时介绍了不同设计的运行时间、手动设计所需时间、面积开销等数据,并指出自动化设计避免了原理图和布局层面的错误。