欢迎来到天天文库
浏览记录
ID:48248098
大小:1.44 MB
页数:145页
时间:2020-01-18
《第3章 可编程逻辑器件的设计与开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章可编程逻辑器件的设计与开发3.1可编程逻辑器件的设计过程3.2可编程逻辑器件的开发环境3.3硬件描述语言3.4MAX+plusⅡ软件介绍3.5如何使用MAX+plusⅡ习题3.1可编程逻辑器件的设计过程CPLD/FPGA器件的设计一般可以分为设计输入、设计实现、设计校验和下载编程四个步骤,如图3-1所示。图3-1可编程逻辑器件的设计流程1.设计输入设计输入就是将设计者所设计的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中。设计输入有多种表达方式,主要包括原理图输入方式、硬件描述语言输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方
2、式,其中最常用的是原理图输入方式和硬件描述语言输入方式两种。(1)原理图输入方式。原理图是图形化的表达方式,使用元件符号和连线等符号来描述设计。其特点是适合描述连接关系和接口关系,而描述逻辑功能则很繁琐。为提高这种输入方式的效率,应采用自顶向下逻辑分块,把大规模的电路划分成若干小块的方法。一般而言,如果对系统很了解,并且系统速率较高,或在大系统中对时间特性要求较高的部分,可以采用这种方法。原理图输入方式效率较低,但容易实现仿真,便于对信号的观察以及对电路的调整。(2)硬件描述语言输入方式。硬件描述语言采用文本方式描述设计,其逻辑描述能力强,但不适合描述接口和连接关系。如ABE
3、L-HDL、Verilog-HDL、AHDL和VHDL等,它们支持布尔方程、真值表、状态机等逻辑描述方式,适合描述计数器、译码器、比较器和状态机等的逻辑功能,在描述复杂设计时,非常简洁,具有很强的逻辑描述和仿真功能,但硬件描述语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路。对于大量规范的、易于语言描述、易于综合、速率较低的电路,可以采用这种输入方式。2.设计实现设计实现主要由EDA开发工具依据设计输入文件自动生成用于器件编程、波形仿真及延时分析等所需的数据文件。此部分对开发系统来讲是核心部分,但对用户来说,它的实现过程究竟如何,用户并不关心。设计者只能通过设
4、置“设计实现策略”等参数来控制设计实现过程。EDA开发工具进行设计实现时主要完成以下四个相关任务:(1)优化和合并。优化是指逻辑化简,把逻辑描述转变为最适合在器件中实现的形式;合并是将模块化设计产生的多个文件合并为一个网表文件,并使层次设计平面化。(2)映射。映射是把设计分为多个适合器件内部逻辑资源实现的逻辑小块的形式。如对Lattice的ispLSI系列器件,适合用GLB和IOC实现;在Xilinx的XC系列中,适合用CLB和IOB实现。(3)布局和布线。布局是将已分割的逻辑小块放到器件内部逻辑资源的具体位置,并使它们易于连线,且连线最少;布线是利用器件的布线资源完成各功能
5、块之间和反馈信号的连接。在ispLSI器件中,由GRP提供外部输入信号和GLB之间的连线,ORP则提供GLB信号到外部引脚的连接。器件连线、资源布局及设计的复杂程度将影响布线的成功率,即布通率。另外,布局上的问题也会引起布线困难。这就需要修改设计输入或改变设计策略来解决布线问题。(4)生成编程文件。设计实现的最后一步是产生可供器件编程使用的数据文件。对CPLD器件而言,产生熔丝图文件即JEDEC文件;对FPGA器件,则产生位流数据文件Bitstream。3.设计校验设计校验包括仿真和定时分析两部分,这一步通过仿真器和时延分析器来完成,利用编译器产生的数据文件自动完成逻辑功能仿
6、真和延时特性仿真。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,最终达到设计要求。这一部分的最大功能是便于用户查看自己的设计思想是否得到实现。我们可以在设计的过程中对整个系统乃至各个模块进行仿真,即在计算机上用软件验证连接功能是否正确,各部分的时序配合是否准确。如果有问题,可以很方便地修改错误,从而不必在硬件上作改动,极大地节约了成本。高级的仿真软件还可以对整个系统设计的性能进行估计。规模越大的设计,越发需要设计仿真。仿真不消耗资源,仅消耗少许时间,但从节约成本的角度考虑,这种时间消耗是完全值得的。可以认为仿真是EDA的
7、精髓。4.下载编程下载编程是将设计阶段生成的JEDEC文件或位流文件装入到可编程器件中。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。(1)不能进行在系统编程(ISP)的CPLD器件和不能在线可重配置(ICR)的FPGA器件,需要编程专用设备(编程器)完成器件编程。(2)使用查找表(LUT)技术和基于SRAM的FPGA器件(如Altera的FLEX、ACEX、APEX,Xilinx的Spartn、Vertex),下载的编程数据将存入SRAM,而SRAM掉电后所存数据将丢失,为此需将编程数
此文档下载收益归作者所有