摘要:综合问题是FPGA设计过程中的关键环节,综合的结果就是系统设计的硬件结构,决定了系统的性能.文章通过RTI 电路模型来分析代码风格对综合结果的影响,介绍了著名的DC综合器的综合约束模型.为FPGA设计者提供最佳的综合设计策略.
随着计算机技术和微电子技术的发展,ASIC(Application Specific Integrated Circuit,专用集成电路)设计或SoC(System on a Chip,单片系统)设计成为电子电路设计的重要课题.使用硬件描述语言Verilog(或VHDL)在FPGA(Field Programmable Gate Array,现场可编程门阵列)器件上开发产品或进行ASIC的原型设计与验证的EDA(Electronic Design Automation,电子设计自动化)技术可有效降低产品上市风险,降低开发成本,缩短产品上市周期,受到了电子工程师的青睐.
这种以硬件描述语言和综合技术为核心的EDA技术,综合问题在设计中起着关键作用.综合就是逻辑综合器根据约束条件把Verilog(或VHDL)描述的RTL(Register Transfer Level,寄存器传输级)设计,转换为可与FPGA/CPLD的门阵列基本结构相映射的网表文件(如图1).
图1 综合的原理
网表文件包含使用工艺库的标准逻辑单元构建系统的硬件电路的信息,决定了系统的功能、性能、时序特性等.而Verilog代码风格和综合器的性能将对逻辑综合的生成的网表结果产生重要的影响.
1 Verilog代码风格对逻辑综合的影响
1.1 设计思想对逻辑综合的影响
设计思想是整个FPGA设计的灵魂 ,它决定了系统设计中Verilog代码编写策略和逻辑综合后获得的硬件架构,直接影响系统性能.对系统时钟设计而言,有同步设计与异步设计;而对工程实现而言,常采用的设计思想有:层次化设计、串行设计、并行设计和流水线设计.
一个规范的FPGA设计尽可能使用同步设计.同步设计具有时序分析方便、可靠性好的优点,现代EDA软件是以同步设计为基准做分析的.但同步设计中最长的组合逻辑延迟,即关键路径(Critical Path)将影响整个系统的运行速度.而基于锁存器的异步设计比触发器占据更小的面积,没有时钟树的耗电问题,但现代EDA工具几乎无法对复杂的异步电路模型做出有效的分析.
层次化设计使得用户可以采用自上而下(Top-down)及自下而上(bottom-up)相结合的混合设计,在进行系统级和模块级设计的同时进行底层关键模块的划分和设计.对输入的处理是分步进行,且后一步骤依赖于前一步骤的结果的功能模块使用串行设计,并在串行模块之问加入FIFO(先进先出队列)缓冲;对几个可同时处理流程的功能模块使用并行设计,注意同步并行输出的结果.若系统要求高性能的处理效率,可在系统的关键路径加人流水线设计.
1.2 Verilog代码与锁存器(1atch)
多数EDA工具都是基于同步电路模型进行分析的.在FPGA设计时,Verilog代码的综合由EDA工具自动完成.在使用Verilog语言设计控制代码时,常因Verilog代码风格缺陷导致综合时产生非预期的锁存器,产生异步电路,使EDA工具无法对系统进行时序分析与验证.产生非预期的锁存器常见情况有:嵌套if语句;使用不完整的敏感列表(Sensitivity List);条件不完备的case语句.锁存器产生原因往往是在Verilog代码设计时没有为所有输出指定输出状态,综合工具就会使用锁存器保存该输出原来的状态,从而影响系统的可靠性.此时,设计者必须要修改代码,消除锁存器.
1.3 代码风格与综合的RTL电路的时延
1.3.1 If语句与Case语句
在FPGA控制电路设计中,常常使用if与case语句来进行逻辑条件的判断和信号的选择.在多if结构的语句中,选择信号的判断是有优先级的,综合出的电路的输入输出路径也有区别,这意味着信号的时延随着优先级而不同,设计中注意合理处理较大时延的信号路径.
采用单if和case语句中,各输入信号到最终的结果输出所经过的路径长度是相同的,时延也基本相同.图2~图4描述了if与case语句与RTL电路结构的对应关系.两个语句都能完成4选1多路选择器的功能,但其时延是不一样的.图3中,输入a具有最低优先级,其输出延时最长,图4采用无优先级信号判断的case语句,输入a,b,e,d到输出的延时是基本相同的.在设计时要根据系统的时序和功能要求,合理选择if与case语句风格.
…… z=0: if(sel[0]) z=a; if(sel[1]) z=b; if(sel[2]) z=c; if(sel[3]) z=d; end …… |
…… case x(se1) 4b1xxx z=d; 4bx1xx z=c; 4bxx1x z=b; 4bxxx1 z=a; default z=1b0; endcase …… |
2 Design Complier综合器
随着系统设计复杂度的增加,FPGA综合依靠EDA工具自动完成.加州大学洛杉矶分校(UCLA)Jason Cong教授研究指出,现有的综合工具所生成的电路规模比已知综合基准的最优方案可能要大70到500倍.新思(synopsys)公司在逻辑综合市场占据85% 的市场份额,其逻辑工具DC(Design Complier)得到全球60多个半导体厂商、380多个工艺库的支持,是Synopsys最核心的产品.它根据设计描述和约束条件并针对特定的工艺库自动综合出优化的门级电路,并产生多种性能报告,在缩短设计时问的同时提高设计性能.通过熟悉DC(Design Complier)综合器的综合约束模型,为设计者选择Verilog代码风格及综合策略提供依据.
DC综合约束设置有两种:一是设计规则约束(Design Rule Constraint);二是逻辑优化约束(Optimization Constraint),其涵盖的约束范围如图9.
图9 DC的综合约束模型
DC在综合过程中,总是力图同时满足这两种约束,并遵循表1所示的优先级对综合结果进行优化.
约束类型 | 优先级(降序) |
设计规则 | min capacitance max transition max fanout max capacitance cell degradation |
优化规则 | max delay min delay power area |
3 结论
通过研究代码风格对综合结果的影响以及DC综合器的综合约束条件模型,设计者不仅可通过选择合理的Verilog语言风格来优化综合结果,还可以借助优异的综合工具(如DC等)对综合结果进行优化设计.对于复杂的设计,DC综合器对逻辑资源的优化率町达到30%.综合器可根据代码描述的系统功能要求和综合约束,尽最大可能地输出符合用户设计要求的功能、时序、功耗的结果,并输出多种性能报告和网表,从而缩短产品的研发周期.
文章评论(0条评论)
登录后参与讨论