还剩3页未读,继续阅读
文本内容:
第九章基于可编程逻辑器件的现代数字系统设计
9.1传统数字系统设计方法存在哪些问题?试简述之
1、以实现计算机化为中心的设计方法这种方法具有相当的普遍性,系统化的目的是在企业中可以使用计算机的地方,用计算机取代传统方法,实现计算机化由于这种方法的着眼点不是放在提高企业素质,解决企业中的关键问题上,因此往往以现行手工系统为基础,用计算机代替手工作业其结果是对手工系统中的弊端分析不足,改进措施不利,很难取得理想的效果
2、以改进信息处理手段为中心的系统开发设计方法这种方法的主要目的是提高信息处理的效率但它并未涉及企业经营中的许多重要方面,因此也不是一种系统化的方法
3、面向局部功能的设计方法企业是一个系统,面向局部功能的设计方法,可能在局部功能上取得好的效果,但未必整体功能最佳因此,系统化的过程中必须始终遵循系统化观点进行设计
4、面向业务处理自动化的设计方法业务处理自动化本身,可以提高工作效率,为企业带来一定效益但业务处理自动化对管理方面的支持是有限的,它涉及的面较窄另一方面,单项业务工作受企业整体功能的影响,若考虑不周,则很难满足企业的整体要求,缺乏对环境变化的适应能力
5、归纳的设计方法是至今广泛使用的方法,因此又称为“传统的方法”这里所说的“传统”并不说明这种方法是一种陈腐的、没有效用的方法目前,许多系统设计中还在继续使用这种方法是随着电子数据处理系统的发展而形成的,其历史较长,应用广泛但是随着归纳方法的普及,逐渐暴露出以下一些问题1)、由于归纳方法主要是以现行系统为前提,以改善现行系统为目的,因此很难设计出超出现行系统模式,有很大创造性的系统而今天社会环境的激烈变化,要求企业不断解决经营中的各种问题,不断进行推陈出新,变革经营体制系统也必须适应这种变革的要求2)、随着计算机和通讯技术的发展,今天的信息系统能够实现过去不能想象的许多功能由于归纳方法的局限,设计人员的创造性思维发掘不出来,很难克服时间、空间的限制设计出更优秀的系统
9.2试简述基于可编程逻辑器件的现代数字系统设计方法流程
(1)设计准备在设计之前,首先耍进行方案论证、系统设计和器件选择等设计准备工作设计者首先要根据任务要求,判明系统指标的可行性系统的可行性要受到逻辑合理性、成本、开发条件、器件供应、设计员水平等方面的约束若系统可行,则根据系统所完成的功能及复杂程度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型
(2)设计输入设计输入是设计者将所设计的系统或电路以EDA开发软件要求的某种形式表示出来,并送入计算机的过程它根据EDA开发系统提供的一个电路逻辑的输入环境,如原理图、硬件描述语言HDL等输入等形式进行输入这些方法可以单独构成,也可将多种手段组合来生成一个完整的设计设计输入软件在设计输入时,还会检查语法错误,并产生网表文件,供设计处理和设计校验使用3设计处理设计处理是从设计输入文件到生成编程数据文件的编译过程这是器件设计中的核心环节设计处理是由编译软件自动完成设计处理的过程如下
①逻辑优化和综合由软件化简逻辑,并把逻辑描述转变为最适合在器件中实现的形式综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化逻辑综合应施加合理的用户约束,以满足设计的要求
②映射把设计分为多个适合用具体PLD器件内部逻辑资源实现的逻辑小块的形式映射工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行
③布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现PLD器件内部逻辑元件间的互连
④生成编程数据文件设计处理的最后一步是产生可供器件编程使用的数据文件对CPLD器件而言,产生熔丝图文件即JDEC文件;对FPGA器件则生成位流数据文件4设计校验设计校验过程是使用EDA开发软件对设计进行分析,它包括功能仿真、时序仿真和器件测试功能仿真用于验证设计的逻辑功能,它是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证功能仿真没有延时信息,对于初步的逻辑功能检测非常方便仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化若发现错误,则返回设计输入中修改逻辑设计时序仿真是在选择了具体器件并完成布局、布线之后进行的快速时序检验,并可对设计性能作整体上的分析,这也是与实际器件工作情况基本相同的仿真由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,用户可以得到某一条或某一类路径的时延信息,也可给出所有路径的延时信息,又称延时仿真若设计的性能不能达到要求,需找出影响性能的关键路径,并返回延时信息,修改约束文件,对设计进行重新综合和布局布线,如此重复多次直到满足设计要求为止因此时序仿真对于分析时序关系,估计设计的性能以及检查和消除竞争冒险等是非常有必要的直接进行功能仿真的优点是设计耗时短,对硬件库和综合器没有任何要求,尤其对于规模比较大的设计项目,综合和布局布线在计算机耗时可观,若每次修改都进行时序仿真,显然会降低设计开发效率通常的做法是首先进行功能仿真,待确认设计文件满足设计要求的逻辑功能后,再进行综合、布局布线和时序仿真,把握设计项目在实际器件的工作情况5器件编程编程是把系统设计的下载或配置文件,通过编程电缆按一定的格式装入一个或多个PLD的编程存储单元,定义PLD内部模块的逻辑功能以及它们的相互连接关系,以便进行硬件调试和器件测试器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等随着PLD集成度的不断提高,PLD的编程日益复杂,PLD的编程必须在开发系统的支持下才能完成器件在编程完毕之后,对于具有边界扫描测试能力和在系统编程能力的器件来说,系统测试起来就更加方便,它可通过下载电缆下载测试数据,探测芯片的内部逻辑以诊断设计,并能随时修改设计重新编程在整个设计实现过程中,开发软件还有许多设计规则检查程序可以利用来进行器件测试
9.3可编程逻辑器件的分类方法有哪些?分类结果是怎样的?试简述之答:可编程逻辑器件的分类和特点可编程逻辑器件可根据其结构、集成度以及编程方法进行分类
1.按与阵列和或阵列是否可编程分类1与阵列固定、或阵列可编程可编程逻辑器件最早的产品可编程只读存储器PROMProgrammableReadOnlyMemory,即采用这种形式现在市场上供应的PROM的最高密度可达一个芯片200万位以上这种形式的可编程逻辑器件能够方便地实现多输入多输出组合函数,可以实现任何组合逻辑功能而且由于它以最小项为基础,因此在设计中无须对函数化简对于每一种可能的输入组合,都相应得到一组可以独立编程的输出.大大扩展了可编程逻辑的思想,减少了输入变量的引脚数,并能与TTL电路兼容当输入增加时,与阵列输出即乘积项个数以2的级数增加,这样导致与乘积项成正比的芯片面积、成本和开关延时相应迅速增加,从而使速度变慢,芯片利用率较低2与阵列和或阵列均可编程这类可编程逻辑器件的与阵列采用部分译码方式,通过编程使其产生函数所需的乘积项,乘积项不一定是全部输入的组合它的或阵列可编程,并通过选择所需要的乘积项相或,在输出端产生乘积项之和的函数现场可编程逻辑阵列器件FPLAFieldProgrammableLogicArray即采用了这种结构其优点在于阵列较小,使用灵活,速度快,可以控制器件的全部功能,同时有效地提高了芯片的利用率,缩小了系统体积但制造工艺复杂,编程缺少高质量的支撑软件和编程工具,且价格较高,因而使用不广泛⑶与阵列可编程、或阵列固定这类可编程逻辑器件中,与阵列可编程,或阵列是固定的,每个输出是若干个乘积项之和,其中乘积项的数目是固定的这种结构不仅能实现大多数逻辑功能,而且提供了最高的性能和速度,是目前可编程逻辑器件发展的主流2按集成度分类随着集成I艺的发展,可编程逻辑器件的集成规模越来越大,集成度从每片几百门发展到几千门,甚至几百万门按照其集成度,可编程逻辑器件可分为低密度可编程逻辑器件LDPLDLowDensityPLD和高密度可编程逻辑器件HDPLDHighDensityPLD两大类
3.按编程方法分类⑴掩膜编程最初的ROM是由半导体生产厂家制造的,阵列中各点间的连线由厂家专门为用户设计的掩膜板制作,此种方法称为掩膜编程其设计成本高,一般在批量生产中才有价值,因此它只用来生产存放固定数据、固定程序的ROM以及函数表、字符发生器等器件2熔丝和反熔丝编程熔丝编程器件在每个可编程的互联接点上都有熔丝如果接点需要连接,则保留熔丝;若接点需要断开,则用比工作电流大得多的电流烧断熔丝即可由于熔丝一旦烧断便不能恢复导通,因此这种方法只能一次编程,而且熔丝占芯片面积较大,不利于提高器件集成度反熔丝编程器件以反熔丝作为编程元件反熔丝的核心是介质,未编程时开关呈现很高的阻抗(例如可用一对反向串联的肖特基二极管构成),当编程电压加在开关上将介质击穿后(使一个二极管永久性击穿而短路),开关则呈现导通状态PROM和PAL采用了熔丝编程工艺,而美国Actel公司的FPGA则采用了反熔丝编程工艺
(3)浮栅编程浮栅编程器件采用了浮栅编程技术,包括紫外线擦除、电编程的UVE-PROM和电擦除、电编程的EzPROMo它们都采用浮栅存储电荷的方法来保存数据浮栅编程器件属于非易失可重复擦除器件,GAL、EPLD、CPLD大都采用了这种工艺
(4)SRAM编程器件SRAM印静态存储器,又称配置存储器用来存储决定系统逻辑功能和互联的配置数据属于易失元件,所以每次系统加电时,先要将储存在外部EPROM或硬盘中的编程数据加载到SRAM中采用SRAM技术可以方便地装入新的配置数据,实现在线重置美国Xilinx公司的FPGA采用的即是这种技术
9.4PAL器件和GAL器件有何异同点?试简述之答G.AL和PAL相同之处基本结构都是与阵列可编程,或阵列固定的PLD相异之处PAL的输出结构固定,而GAL的输出结构可由用户编程确定;相当一部分的PAL器件采用熔断丝工艺,而GAL器件采用EECMOS工艺突出特点用PAL器件设计电路时,不同的应用场合,应选用不同型号的PAL器件,且相当一部分的PAL器件为一次性编程同一型号的GAL器件可应用于不同的设计场合,且可多次编程
9.5对于查找表(LUT)结构的FPGA,其LUT的工作原理是怎样的?试简述之答案略
9.6PLD的编程与配置有什么区别?答PLD制造工艺和结构不同,器件编程或配置的方式也就不同
(1)根据与计算机端接口分类
①串口下载下载电缆的一端连接到PC的9针标准串行RS-232接口(COM口),另一端连接到PLD下载控制端
②并口下载下载电缆的一端连接到PC的25针标准并行接口(LPT口),另一端连接到PLD下载控制端
③USB接口下载下载电缆的一端连接到PC的USB口另一端连接到PLD下载控制端
(2)根据PID制造工艺分类
①CPLD编程对采用EPROM、E2PROM和Flash工艺的CPLD器件,由于这类器件存储的编程数据是非失性的,所以只需简单地利用专门的下载电缆,将编程数据下载到编程器即可
②FPGA配置对采用SRAM工艺的FPGA器件,它的配置数据存储在SRAM中由于SRAM具有编程数据的易失性,所似需将配置数据存储在外部的E2PROM、Flash存储器或计算机硬盘中,每次系统上电时,必须重新配置数据,只有在数据配置正确的情况下系统才能正常工作
(3)根据下载过程状态分类
①主动配置方式在这种配置模式下,由PLD引导配置操作过程,并控制外部存储器和初始化过程
②被动配置方式在这种配置模式下,由外部计算机或单片机控制配置过程4根据配置数据传送方式分类
①串行配置方式在这种配置模式下,配置数据以串行位流方式向PID提供数据
②并行配置方式在这种配置模式下,配置数据以并行字节方式向PLD提供数据CPLD1FPGA在器件正常使用和编程数据下载工作状态是不同的,一般分为以下3种
①用户状态此时PLD器件处于正常工作状态,完成预定逻辑功能
②配置状态此时PLD处于编程数据下载的过程,其用户I/O端口无效
③初始化状态此时PLD内部的各类寄存器复位或置位,让I/O引脚为使器件正常工作做好准备
9.7lntel公司的Cyclone系列FPGA的AS、PS及JTAG配置方式各有什么特点?答AS模式:主动串行配置模式将.pof文件烧写到flash掉电不丢失芯片,FPGA器件每次上电时,作为主控制器从配置器件flashEPCS主动读取程序文件并存放至FPGA内部的配置存储器configureRAM,实现逻辑运作,该方法适用于不需要经常升级的场合,一次性读取程序文件PS模式:被动串行配置模式EPCSIflash作为主控制器,把数据写人到FPGA内部的配置存储器configureRAM中,实现对FPGA的编程可以采用微控制器单片机、ARM等或者CPLD,该模式可以实现对FPGA在线可编程,升级方便JTAG:直接烧到FPGA里面的,由于是SRAM,断电后要重烧sof文件,适用于调试,而JTAG可以在线调试,也可以将sof转换为jic后通过JTAG烧录至EPCS中固话到配置芯片中
9.8Intel公司的QuartusPr ime软件有何特点?试简述之答案略
9.9简述QuartusPr ime的原理图输入设计流程答案略
9.10简述QuartusPr ime的HDL输入设计流程答案略
9.11如何用QuartusPr ime的原理图与HDL混合输入设计方法实现层次化设计?答案略
9.12用两片4位二进制加/减计数器74191和必要的门电路,设计一个8位二进制加/减计数器答案略
9.13用、4位二进制移位寄存器
74194、8位二进制锁存器
74273、D触发器等器件构成8位二进制串入并出转换电路,要求在转换过程中数据不变,只有当8位二进制数据全部转换结束后,输出才变化一次答案略
9.14根据例
9.
4.3的双2线/4线译码器例程,用VHDL语言设计一个4线/16线译码器答案略
9.15略
9.16根据例
9.
4.4的4选1多路选择器的例程,用VHDL语言设计一个8选1多路选择器并进一步采用原理图输入设计方法,调用该8选1多路选择器完成一个三人表决器设计答案略
9.17采用原理图输入设计方法,对例
9.
4.13的n位二进制双向计数器进行调用,并设计一个00~99的2位十进制加法计数器答案略。