12.2 VHDL的ASIC逻辑综合
所谓ASIC逻辑综合是指在给定工艺库的基础上通过映射和优化,将RTL级描述的设计在一定的规约下转化为逻辑结构。它是面向给定的设计约束,将高级的设计描述翻译和优化到工艺库中的门级网表的自动化过程。
ASIC综合器在把可综合的VHDL/Verilog程序转化成硬件电路时,一般要经过两个步骤:第一步是HDL综合器对VHDL/Verilog进行分析处理,并将其转成相应的电路结构或模块,这时是不考虑实际器件实现的,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程;第二步是对应实际实现的目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径等。
综合器的输出文件一般是网表文件,如EDIF格式(Electronic Design Interchange Format.),文件后缀是.edf,是一种用于设计数据交换和交流的工业标准文件格式的文件,或是直接用VHDL/Verilog语言表达的标准格式的网表文件。
应用于ASIC设计的综合器最具代表性的有Synopsys的Design Compiler,Synplicity的Synplify ASIC,Cadence的Synergy等。本书选用Synopsys公司的Design Compiler来介绍。
综合需要准备的文件包括:用户设计文件(VHDL或VERILOG程序等)、厂商提供的逻辑单元库文件(DB文件)。
综合后可得到的文件包括:综合后的网表文件(一般为VERILOG格式)、时序信息文件(SDF文件)。在进入逻辑门层次的电路仿真以及在自动布局布线APR之后的仿真都会使用到SDF文件。
1.启动Design Compiler综合器
打开命令输入窗口。在工作站上登录,并打开一个Terminal,进入综合环境。在命令提示符下输入design_vision&,如图12.2所示。
图12.2 启动DesignCompiler窗口
这时就会弹出一个如图12.3所示的窗口,这个窗口就是Design Compiler综合工具的图形界面。
图12.3 Design Compiler工作界面
2.逻辑单元库加载
逻辑单元库由工艺厂商提供,库中包含丰富的逻辑门资源,比如单元电路(cell schematic)和时序模型(timing model)等。其中,单元电路用于电路综合,以便产生逻辑电路的网表(netlist);时序模型描述各逻辑门精确的时序信息,元件工程师会提取各逻辑门内的寄生电阻及电容进行模拟,进而建立各逻辑门的实际延时参数,包括门延时(gate delay)、输入延时/输出延时(input delay/output delay)及所谓的连线延时(wire delay)等。逻辑单元库文件后缀名为.DB。
在Design Compiler的主界面菜单中打开File→Setup,如图12.4所示。
图12.4 打开逻辑单元库加载界面
选择工艺厂商提供的逻辑单元库,进行设置,如图12.5所示。
图12.5 加载逻辑单元库界面
设置完毕后,如图12.6所示。
图12.6 加载逻辑单元库后的界面
3.用户设计源文件的加载与分析
首先加载用户设计源文件,设计文件可能有多个,而且可能还有调用关系。通过File→Analyze打开用户设计分析界面,如图12.7所示。
图12.7 用户设计源文件分析界面
选择并加载用户设计源文件,如图12.8所示。
图12.8 加载用户设计源文件的操作
用户设计源文件加载后,进行实现(Elaborate)。这里的实现和接下来的综合是有很大区别的,实现只是将设计用Design Compiler自带的广义综合库进行实现,并未映射到厂商的逻辑单元库。打开File→Elaborate,如图12.9所示。
图12.9 实现(Elaborate)的工作界面
选择默认库DEFAULT,在Design中选择设计文件的顶层模块。如图12.10所示。
点击“OK”后,Design Compiler进行初步实现,界面如图12.11所示。
图12.10 实现(Elaborate)的设置界面
图12.11 实现(Elaborate)的结果界面
4.顶层设计文件设置
单击鼠标选中顶层模块,打开Hierarchy→Uniquify→Hierarchy,如图12.2所示。
在出现对话框中选择“OK”。
图12.12 层次化的工作界面
5.时序约束
在执行综合步骤之前,首先要加入设计的各种时序要求,如时钟周期、数据初始化达到高电平的时间等各种限制条件,从而使综合后的时序能够满足我们事先设定的要求。我们可以反复修改各种约束条件,使综合后的文件最终通过后端时序仿真。
打开Attributes→Specify Clock,如图12.13所示。
图12.13 设置时钟约束的界面
设置Clock属性,如周期、沿上升时间、下降时间等。如图12.14所示。
图12.14 设置时钟属性约束的界面
6.综合及优化
在设置完时序约束之后,就可开始综合优化了,打开Design→Compile Design,出现如图12.15所示的工作界面。
图12.15 综合优化的工作界面
选择综合属性,用户可根据设计需求进行设置,比如面积优先、时序优先等,在没有特殊要求的情况下也可以选择默认设置,如图12.16所示。
图12.16 综合优化设置的工作界面
单击“OK”后,有一个较长的综合过程,综合时间的长短取决于设计的大小和时序的约束等情况,请耐心等候。综合完毕后,出现如图12.17所示的网表图。
图12.17 综合优化后的界面
7.综合结果导出
综合后,一般需要导出综合后的Verilog网表文件(后缀名为“.v”)、时序信息文件(后缀名为“.SDF”,主要用于后续的仿真),导出Verilog网表文件的操作如下:
打开File→Save As,如图12.18所示。
图12.18 导出网表文件的工作界面
选择路径及文件名,如图12.19所示。
图12.19 导出网表文件时选择路径及文件名的工作界面
导出时序信息文件,打开File→Save Info→Design Timing,如图12.20所示。
选择路径及文件名,如图12.21所示。
至此,ASIC逻辑综合完成,综合后获得了逻辑电路图、逻辑电路的网表文件和时延信息文件等。
图12.20 导出时延信息文件的界面
图12.21 导出时延文件时选择路径及文件名的界面
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。