《eda技术在fpga设计中的应用研究》由会员分享,可在线阅读,更多相关《eda技术在fpga设计中的应用研究(6页珍藏版)》请在金锄头文库上搜索。
1、EDA 技术在 FPGA 设计中的应用研究 包志家 南京理工大学紫金学院 摘 要: 可编程逻辑器件提供了一种自主设计、研制和生产专用集成电路的解决方案, FPGA 作为可编程逻辑器件的代表, 应用越来越广泛。电子设计自动化 (EDA) 技术为 FPGA 的设计、测试和实现提供了有力的工具, 渗透在 FPGA 设计实现流程的各个步骤中。随着 FPGA 规模的扩大和复杂度的提高, 对 EDA 技术提出了新的要求。笔者详细阐述了 EDA 技术在 FPGA 设计中的应用, 并分析了为应对挑战EDA 技术领域的新发展。关键词: FPGA; EDA; 集成电路; 作者简介:包志家 (1982-) , 男,
2、 江苏南京人, 硕士研究生, 讲师。研究方向:嵌入式系统开发。Research on the Application of EDA Technology in FPGA DesignBao Zhijia Nanjing University of Science and Technology Zijin College; Abstract: Programmable logic devices provide an independent design, development and production of integrated circuits for the solution. As
3、 a representative of programmable logic devices, FPGA is becoming more and more widely used. Electronic Design Automation (EDA) technology provides a powerful tool for the design, testing, and implementation of FPGA, permeating every step of the FPGA design flow. With the increase of FPGA scale and
4、the increase of complexity, new requirements are put forward for EDA technology. The author elaborates the application of EDA technology in FPGA design and analyzes the new development of EDA technology in response to the challenge.Keyword: FPGA; EDA; integrated circuit; 1 引言FPGA (Field Programmable
5、 Gate Array) 是现场可编程门阵列的简称, 在 PAL和 GAL 等可编程器件基础上发展而来, FPGA 器件及其开发系统已成为开发大规模半定制数字电路的主流技术。随着 FPGA 器件集成度的提高和功能的完善, 不断扩大的设计规模和不断提高的制造工艺给 FPGA 芯片的设计带来了新的挑战, 得益于计算机技术和电子系统设计的发展, 基于 EDA 技术的 FPGA 设计展现出了更广阔的应用前景。EDA 技术是一种以硬件描述语言来描述系统逻辑, 以大规模可编程逻辑器件为载体, 以计算机和开发软件为设计工具, 自动完成以软件方式模拟硬件功能的新技术。基于 EDA 技术的设计具有几个明显的特点
6、:以软件的方式设计硬件;设计过程中可以使用硬件描述语言进行多种测试和仿真;软件系统到硬件系统的转换可通过相关软件实现自动化;系统可实现现场编程和在线升级。借助 EDA 技术的优势, FPGA 可以快速实现逻辑编译、逻辑综合、逻辑布线和逻辑仿真, 通过针对特定芯片的适配编译、逻辑映射和编程下载等形成专用电子系统和电子芯片, 大大缩短系统设计周期, 提高产品竞争力。2 FPGA 设计实现方法自从 Xilinx 公司 1984 年推出第一片商用 FPGA 以来, 经过多年的研究与实践, 基于 EDA 技术的 FPGA 芯片得到快速发展, FPGA 设计自动化工具逐渐成熟。FPGA 芯片的设计和应用越
7、来越简单, 成本越来越低廉。目前, 各大主流 FPGA厂商都为其芯片设计了专用的自动化工具。基于 EDA 技术的 FPGA 典型设计流程如图 1 所示。流程入口是 RTL 设计输入, 是以开发系统支持的方式 (通常采用硬件描述语言) 把需要实现的逻辑关系输入计算机。功能仿真模块首先解析出 RTL 设计输入中的数据通路, 如寄存器文件、存储模块和控制逻辑等, 再对识别出的通路进行优化, 包括常数传播、冗余消除和逻辑重组等。功能仿真在布局布线前进行, 可以在下一步的设计流程之前测试出系统的逻辑功能是否满足设计要求, 并纠正设计错误。图 1 基于 EDA 技术的典型 FPGA 设计流程 下载原图逻辑
8、综合是实现软件向硬件电路转换的关键步骤, 该过程将由 RTL 设计输入的HDL 文件转换为与过程映射和体系结构相关的逻辑网表文件。网表文件主要包括各逻辑单元的配置信息和互连信息。逻辑综合根据逻辑连接和单元功能将网表中的逻辑单元组合成逻辑模块。集成的逻辑网络表分为两个互连层次结构, 即逻辑模块中逻辑单元的互连和逻辑模块之间的互连。在设计和实现层面, 将逻辑综合生成的逻辑网表文件和约束文件合并为一个数据库文件, 将网表中的逻辑门互连映射到指定 FPGA 的硬件资源, 逻辑模块延迟信息在 FPGA 中布局逻辑模块的具体位置, 还包括一些优化操作, 如逻辑重组、复制等。这一步还将选择最佳的路由通道连接
9、并提取定时信息, 将提取的定时信息返回到网表文件生成的仿真网表进行时序仿真和时序分析。在设计实现步骤布局布线后, 电路的时序逻辑可能存在毛刺和时序冲突, 进行时序分析和时序仿真可以更加清晰地揭示电路内部的工作机理, 其中时序仿真通常在时序发生严重错乱时才进行。器件编程阶段, 在功能仿真与时序仿真正确的前提下, EDA 设计软件将生成本次设计的位流文件 (Bitstream) 下载到指定的 FPGA 芯片中, 并进行实际器件的物理测试, 比较预期和验证结果。3 FPGA 设计中 EDA 技术的新发展FPGA 作为一种特殊类型的集成电路, 其发展速度总体上快于其他类型集成电路。随着规模的不断扩大,
10、 FPGA 芯片在设计和实现过程中对 EDA 技术提出了新的要求, 主要体现在以下几个方面。(1) FPGA 芯片规模扩大导致版图设计工作量增加, 同时设计周期相应延长。另外, 工艺的快速进步使得在不同工艺间进行版图迁移越来越困难, 工艺升级或更换, FPGA 芯片版图也得重新设计。(2) 集成电路发展得益于工艺的发展, 由于工艺中不可避免的工艺偏差而存在可制造性问题。作为一种集成电路, FPGA 同样存在可制造性问题, 并且随着FPGA 设计规模的不断扩大而越发突出。(3) FPGA 规模扩大导致优化空间复杂度呈指数级上升, 对 EDA 技术中寻优算法的运算时间提出了更高的要求。目前常见的
11、FPGA 的可编程逻辑块规模已达到百万级别, 这种规模下寻找电路配置的最优解往往需要花费数天时间, 这一方面导致在线处理无法实现, 另一方面也极大限制了 FPGA 设计的迭代优化。如何解决出现的新问题促成了一大批新的 EDA 自动化技术, 其中一部分技术与FPGA 特性相关, 另一部分可以推广到其他集成电路的设计中。3.1 版图自动生成技术FPGA 芯片自动生成技术可分为两个步骤:第一步生成瓦片版图, 第二步将生成的瓦片版图拼接成 FPGA 芯片。在 FPGA 瓦片版图自动生成流程中, RTL 设计输入为 FPGA 体系结构描述, 一般采用与 VPR 兼容的格式。当 EDA 逻辑网表生成器接收
12、到体系结构描述文件时, 首先根据体系结构信息分析可编程逻辑模块的结构和路由通道的布局。具体来说就是要确定 FPGA 芯片中可编程逻辑模块中包含的寄存器、多路输入查表、复用器的数量, 以及路由通道中缓冲器和复用器的数量以及连接关系。这些设备连接形成一个单元级网表, 描述了 FPGA 基本构建模块的互连信息。基本构建晶体管级电路网表描述了实现 FPGA 基本单元的内部结构, 当网表生成器根据架构描述文件生成晶体管级网表时, 结合单元级网表, 形成一个完整的 FPGA 晶体管级网表, 进行布局生成工作的下一步:配对、折叠、链接和排序布线。配对是一种版图压缩技术, 通过共享 pmos 和 nmos 晶
13、体管的栅级来节省连接信号线的面积。由于组成晶体管组的晶体管宽度不一致, 为避免出现大量闲置面积, 一般通过晶体管折叠方法而不是直接采用晶体管原始尺寸来优化版图设计。晶体管折叠后通过进行链接操作来确定晶体管的放置次序, 合理的晶体管放置次序能够更大程度共享有源区范围、优化版图面积。遵循标准单元的设计样式的单元将能够被 EDA 设计流程工具接收, 进行后端的布局布线操作。在进行 FPGA 拼接时, 需要关注相邻拼接块拼接边界处的端口位置, 因此, 拼接自动化在很大程度上是处理端口链接的平滑过渡。常用的处理方法是通过计算给定电路拓扑链路的上限和电路拓扑结构的关联来评估引导和替换电路拓扑的能力, 以优
14、化链路结果。3.2 规则化可制造设计在电路设计过程中, 设计者不仅需要保证版图功能的正确性, 还需要考虑所设计的版图在当期的工艺水平下能否被有效制造出来。FPGA 规模扩大对 EDA 技术在这方面的性能要求推动了可制造性设计方法的发展。其中, FPGA 的可印刷性设计是可制造性设计的核心问题。可印刷性设计基于版图规则化, 通过限制版图样式控制 FPGA 制造过程中的工艺偏差和失效率, 设计实现 FPGA 版图。FPGA 规则化特性可分为两类, 即微规则性 (Micro Regularity) 和宏规则性 (Macro Regularity) 。微规则特性定义为不同版图配置的复杂性, 而宏规则性
15、是指版图中版图配置的种类。如果构建出的版图具有较好的宏规则性和微规则性, 则该版图具有较高的可印刷性, 对工艺偏差和失效率也更容易控制。工艺偏差和失效率是评估 FPGA 规则化版图可制造性的两个重要的参数, 直接影响集成电路的性能和成本。基于版图规则化的 FPGA 设计方法, 首先需要确定布局风格参数, 包括单元高度和网格大小。基于布局风格, 使用自动布局设计工具设计单元库, 并包含设计FPGA 布局所需的所有元素。在单元库和逻辑综合中从 FPGA 的体系结构描述翻译的网表文件被同时输入布局布线工具中以生成最终的布局。3.3 并行化自动布线算法在 FPGA 设计自动化流程中, 自动布线是产生编
16、程位流文件之前一个重要的基本步骤, 布线的结果很大程度上决定了 FPGA 芯片的性能。日益扩大的 FPGA 芯片规模导致解优化空间复杂度迅速提高, 传统的电路布线算法搜索时间越来越长, 得到最优解的难度也越来越大。FPGA 自动化布线的基本要求是在满足约束条件的情况下将所需要连接的信号端点连接起来, 目前基本所有的布线算法都是基于布线资源图展开, 布线资源图是针对 FPGA 中布线资源建立的抽象模型。对于逻辑模块较多的 FPGA 版图, 首先建立单个 FPGA 瓦片的布线资源图, 再通过复制和拼接的方式产生整个 FPGA的布线资源图。布线资源图由节点和边等基本单元组成, 其中节点代表可编程逻辑模块的输入输出端口和布线通道的互连线信息, 连接两个节点的边代表可编程开关, 单向开关在图中用一条有向边表示, 而一个双向开关则用一对有向边表示。为充分利用计算资源, 提高系统布线加速比, 通常采用并行化自动布线方法。采用并行布线算法进行布线时, 首先要划分布线区域, 得到子区域信息, 包括子区域描述参数、子区域的工作者、信号线以及他们的对应关系。