可编程逻辑器件的设计过程
扫描二维码
随时随地手机看文章
可编程逻辑器件的设计流程如图10-2所示,它主要包括设计准备、设计输入、设计处理和器件编程四个步骤,同时包括相应的功能仿真、时序仿真和器件测试三个设计验证过程。
1.设计准备
采用有效的设计方案是PLD设计成功的关键,因此在设计输入之前首先要考虑两个问题:一是选择系统方案,进行抽象的逻辑设计;二是选择合适的器件,满足设计的要求。
对于低密度PLD,一般可以进行书面逻辑设计,将电路的逻辑功能直接用逻辑方程、真值表状态图或原理图等方式进行描述,然后根据整个电路输入、输出端数以及所需要的资源(门、触发器数目)选择能满足设计要求的器件系列和型号。器件的选择除了应考虑器件的引脚数、资源外,还要考虑其速度、功耗以及结构特点。
对于高密度PLD,系统方案的选择通常采用“自顶向下”的设计方法。首先在顶层进行功能框图的划分和结构设计,然后再逐级设计低层的结构。一般,描述系统总功能的模块放在最上层,称为顶层设计;描述系统某一部分功能的模块放在下层,称为底层设计。底层模块还可以再向下分层。这种“自顶向下”和分层次的设计方法使整个系统设计变得简洁和方便,并且有利于提高设计的成功率。目前系统方案的设计工作和器件的选择都可以在计算机上完成,设计者可以采用国际标准的两种硬件描述语言-VHDL或Verilog-对系统级进行功能描述,并选用各种不同的芯片进行平衡、比较,选择最佳结果。
2.设计输入
设计者将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程,称为设计输入。它通常有原理图输入、硬件描述语言输入及波形输入等多种方式。
原理图输入是一种最直接的输入方式,它大多数用于对系统或电路结构很熟悉的场合。但系统较大时,这种方法的相对输入效率较低。
硬件描述语言是用文本方式描述设计,它分为普通的硬件描述语言和行为描述语言。行为描述语言是指高层硬件描述语言VHDL和Verilog,它们有许多突出的优点:语言的公开可利用性、便于组织大规模系统的设计、具有很强的逻辑描述和仿真功能,而且输入效率高、在不同的设计输入库之间转换也非常方便。
普通硬件描述语言有ABEL-HDL、CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式。
3.设计处理
从设计输入完成以后到编程文件产生的整个编译、适配过程,通常称为设计处理或设计实现。它是器件设计中的核心环节,是由计算机自动完成的,设计者只能通过设置参数来控制其处理过程。在编译过程中,编译软件对设计输入文件进行逻辑化简、综合和优化,并适当地选用一个或多个器件自动进行适配和布局、布线,最后产生编程用的编程文件。
编程文件是可供器件编程使用的数据文件。对于阵列型PLD来说,是产生熔丝图文件(简称JED)文件,它是电子器件工程联合会制定的标准格式;对于FPGA来说,是生成位流数据文件。
4.设计校验
设计校验过程包括功能仿真和时序仿真,这两项工作是在设计输入和设计处理过程中同时进行的。功能仿真是在设计输入完成以后的逻辑功能检证,又称前仿真,它没有延时信息,对于初步功能检测非常方便。时序仿真在选择好器件并完成布局、布线之后进行,又称后仿真或定时仿真,它可以用来分析系统中各部分的时序关系以及仿真设计性能。
5.器件编程
编程是指将编程数据放到具体的PLD中去。对阵列型PLD来说,是将JED文件“下载”到PLD中去;对FPGA来说,是将位流数据文件“配置”到器件中去。
器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的PLD和一次性编程的FPGA需要专用的编程器完成器件的编程工作;基于SRAM的FPGA可以由EPROM或微处理器进行配置;ISP在系统编程器件则不需要专门的编程器,只要一根下载编程电缆就可以了。
更多资讯请关注:21ic模拟频道