2016-10-23 10:38:50 | 人围观 | 评论:
现代数字系统的设计流程是指利用EDA开发软件和编程工具对可编程逻辑器件进行开发的过程。在EDA软件平台上,利用硬件描述语言HDL等逻辑描述手段完成设计。然后结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认。接着利用 EDA工具的逻辑综合功能,把功能描述转换成某一具体目标芯片的网表文件,输出给该器件厂商的布局布线适配器,进行逻辑化简及优化、逻辑映射及布局布线,再利用产生的仿真文件进行包括功能和时序的验证,以确保实际系统的性能,直至对于特定目标芯片的逻辑映射和编程下载等工作。
整个过程包括设计准备、设计输入、设计处理和器件编程四个步骤以及相应的功能仿真、时序仿真和器件测试3个设计校验过程。现代数字系统的设计流程如图所示。
图 现代数字系统的设计流程
(1) 设计准备
在设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。设计者首先要根据任务要求,判明系统指标的可行性。系统的可行性要受到逻辑合理性、成本、开发条件、器件供应、设计员水平等方面的约束。若系统可行,则根据系统所完成的功能及复杂程度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。
(2)设计输入
设计输入是设计者将所设计的系统或电路以EDA开发软件要求的某种形式表示出来,并送入计算机的过程。它根据EDA开发系统提供的一个电路逻辑的输入环境,如原理图、硬件描述语言(HDL)等输入等形式进行输入。这些方法可以单独构成,也可将多种手段组合来生成一个完整的设计。
设计输入软件在设计输入时,还会检查语法错误,并产生网表文件,供设计处理和设计校验使用。
(3) 设计处理
设计处理是从设计输入文件到生成编程数据文件的编译过程。这是器件设计中的核心环节。设计处理是由编译软件自动完成。设计处理的过程如下:
① 逻辑优化和综合。由软件化简逻辑,并把逻辑描述转变为最适合在器件中实现的形式。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化。逻辑综合应施加合理的用户约束,以满足设计的要求。
② 映射。把设计分为多个适合用具体PLD器件内部逻辑资源实现的逻辑小块的形式。映射工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行。
③ 布局和布线。布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现PLD器件内部逻辑元件间的互连。
④ 生成编程数据文件。设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD器件而言,产生熔丝图文件即JDEC文件;对FPGA器件则生成位流数据文件。
(4) 设计校验
设计校验过程是使用EDA开发软件对设计进行分析,它包括功能仿真、时序仿真和器件测试。
功能仿真用于验证设计的逻辑功能,它是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证。功能仿真没有延时信息,对于初步的逻辑功能检测非常方便。仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑设计。
时序仿真是在选择了具体器件并完成布局、布线之后进行的快速时序检验,并可对设计性能作整体上的分析,这也是与实际器件工作情况基本相同的仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,用户可以得到某一条或某一类路径的时延信息,也可给出所有路径的延时信息,又称延时仿真。若设计的性能不能达到要求,需找出影响性能的关键路径,并返回延时信息,修改约束文件,对设计进行重新综合和布局布线, 如此重复多次直到满足设计要求为止。因此时序仿真对于分析时序关系,估计设计的性能以及检查和消除竞争冒险等是非常有必要的。
直接进行功能仿真的优点是设计耗时短,对硬件库和综合器没有任何要求,尤其对于规模比较大的设计项目,综合和布局布线在计算机耗时可观,若每次修改都进行时序仿真,显然会降低设计开发效率。通常的做法是:首先进行功能仿真,待确认设计文件满足设计要求的逻辑功能后,再进行综合、布局布线和时序仿真,把握设计项目在实际器件的工作情况。
(5) 器件编程
编程是把系统设计的下载或配置文件,通过编程电缆按一定的格式装入一个或多个PLD的编程存储单元,定义PLD内部模块的逻辑功能以及它们的相互连接关系,以便进行硬件调试和器件测试。
器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。随着PLD集成度的不断提高,PLD的编程日益复杂,PLD的编程必须在开发系统的支持下才能完成。
器件在编程完毕之后,对于具有边界扫描测试能力和在系统编程能力的器件来说,系统测试起来就更加方便,它可通过下载电缆下载测试数据,探测芯片的内部逻辑以诊断设计,并能随时修改设计重新编程。在整个设计实现过程中,开发软件还有许多设计规则检查程序可以利用来进行器件测试。
全站搜索