复习资料答案_复习资料含答案
复习资料答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“复习资料含答案”。
. MAX Ⅱ 系列芯片的结构有何特点?
MAX Ⅱ系列芯片采用了新的结构,仍然以LAB为主要结构,但布线方法摒弃了以前的全局布线结构(Global Routing),而采用了行列布线结构(Row&Coloumn Routing)。
MAX Ⅱ系列CPLD内部的LAB基于查找表LUT(Look-Up Table)结构,这种结构使其与以前的任一款MAX系列CPLD相比,无论是芯片密度还是面积都有了显著的减小。此外,MAX Ⅱ系列芯片CPLD内部还集成了Flash存储器,这使得MAX Ⅱ系列芯片本身就具备了存储功能。.根据本章的定义,你认为应该如何区别 FPGA 与 CPLD ?
CPLD是Complex Programmable Logic Device(复杂可编程逻辑器件)的缩写,以乘积项结构方式构成逻辑行为的器件,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系。CPLD是粗粒结构,这意味著进出器件的路径经过较少的开关,相应地延迟也小。因此,与等效的FPGA相比,CPLD可工作在更高的频率,具有更好的性能。CPLD的另一个好处是其软件编译快,因为其易于路由的结构使得布放设计任务更加容易执行。
FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。将以查表法结构方式构成逻辑行为的器件。如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。FPGA是细粒结构,这意味著每个单元间存在细粒延迟。如果将少量的逻辑紧密排列在一起,FPGA的速度相当快。然而,随著设计密度的增加,信号不得不通过许多开关,路由延迟也快速增加,从而削弱了整体性能。CPLD的粗粒结构却能很好地适应这一设计布局的改变。
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
⑧CPLD保密性好,FPGA保密性差。
⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
FPGA是细粒器件,其基本单元和路由结构都比CPLD的小。FPGA是“寄存器丰富”型的(即其寄存器与逻辑门的比例高),而CPLD正好相反,它是“逻辑丰富”型的。很多设计人员偏爱CPLD是因为它简单易用和高速的优点。CPLD更适合逻辑密集型应用,如状态机和地址解码器逻辑等。而FPGA则更适用于CPU和DSP等寄存器密集型设计。1 .简述 Quartus Ⅱ的设计流程。
Quartus II作为CPLDFPGA主要开发工具,是由Altera 公司推出的。设计输入----将设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程。
设计输入完成之后,立即进行编译。在编译过程中首先进行语法检验,进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则和潜在不可靠电路的情况以供设计者纠正。
综合的目的:优化是指逻辑化简,把逻辑描述转变为最适合在器件中实现的形式;合并是将模块化设计产生的多个文件合并为一个网表文件,并使层次设计平面化。
在适配和分割过程,确定优化以后的逻辑能否与下载目标器件CPLD或2 FPGA中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。
布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的布线互连。布局和布线以后,软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。
设计处理的最后一步是产生可供器件编程使用的数据文件.建立工程时,工程名与实体名有什么要求?
操作时要求顶层实体名与工程名保持一致。.什么是硬件描述语言?它与一般的高级语言有哪些异同?
所谓硬件描述语言,实际就是一个描述工具,其描述的对象就是待设计电路系统的逻辑功能、实现该功能的算法、选用的电路结构以及其他各种约束条件等。通常要求HDL既能描述系统的行为,又能描述系统的结构。HDL的使用与普通的高级语言相似,编制的HDL程序也需要首先经过编译器进行语法、语义的检查,并转换为某种中间数据格式。
HDL的使用与普通的高级语言相似,编制的HDL程序也需要首先经过编译器进行语法、语义的检查,并转换为某种中间数据格式。但与其他高级语言相区别的是,用硬件描述语言编制程序的最终目的是要生成实际的硬件,因此HDL中有与硬件实际情况相对应的并行处理语句。此外,用HDL编制程序时,还需注意硬件资源的消耗问题(如门、触发器、连线等的数目),有的HDL程序虽然语法、语义上完全正确,但并不能生成与之对应的实际硬件,其原因就是要实现这些程序所描述的逻辑功能,消耗的硬件资源将十分巨大。而计算机程序是顺序执行的,计算机可以执行不同的程序序列,它依靠的是固定的满足语法结构(数据机构)的硬件电路来完成。.用 VHDL 设计电路与传统的电路设计方法有何区别?
传统的系统硬件设计方法是采用自下而上(Bottom Up)的设计方法。即系 3 统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。上述过程从最底层开始设计,直至到最高层设计完毕。
利用VHDL语言设计系统硬件方法是.采用自上而下(Top Down)的设计方法。即从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。硬件设计人员在设计硬件电路时,无须受只能使用通用元器件的限制,而可以根据硬件电路的设计需要,设计自用的ASIC芯片或可编程逻辑器件。在系统设计过程中进行了三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真,从而可以在系统设计早期发现设计中存在的问题。降低了硬件电路设计难度。在用HDL语言设计硬件电路时,可以使设计者免除编写逻辑表达式或真值表之苦。
VHDL与电路图设计电路的方式不同,和电路图设计方式相比:(1)系统功能易改;易测试修改;
(2)设计能力更强;模块可移植共享;VHDL具有电路仿真与验证功能,仿真结果直观、形象
(3)VHDL语言很方便:独立于器件设计;相同的程序代码可以用于不同厂家生产的器件。
(4)打破软硬件屏障、打破软硬件屏障 3 . VHDL 程序有哪些基本的部分?
实体(Entity)、结构体(Architecture)、库(Library)、程序包(Package)与配置(Configuration)是构成一个完整的VHDL语言程序的五个基本结构。4 .什么是进程的敏感信号?进程语句与赋值语句有何异同?
敏感信号就是触发proce动作的信号。一个结构体中可以包含多个进程语句,它们之间为并行关系;每个进程语句内的语句为顺序关系。赋值语句是并行语句,也是一个隐式进程。并行语句之间是并行的关系,当某个信号发生变化时,受此信号触发的所有语句同时执行。顺序语句则是严格按照书写的先后次序顺序执行的。.什么是并行语句、顺序语句?
VHDL的描述语句分为并行语句和顺序语句两种。并行语句主要用来描述模块之间的连接关系,顺序语句一般用来实现模型的算法部分。并行语句之间是并行的关系,当某个信号发生变化时,受此信号触发的所有语句同时执行。顺序语4 句则是严格按照书写的先后次序顺序执行的。由上面的介绍我们可以知道,只有进程和子程序内部才允许使用顺序语句,其他语句都是并行语句。6 .怎样使用库及库内的程序包?列举出三种常用的程序包。
为了方便使用VHDL编程和提高设计效率,可以将预先定义好的数据类型、元件调用声明及一些常用子程序汇集在一起,形成程序包,供VHDL设计实体共享和调用,若干个程序包则形成库。
常用VHDL库有IEEE标准库、STD库和WORK库。
IEEE库包括:
STD_LOGIC_1164是最重要和最常用的程序包,大部分数字系统设计都是以此程序包设定的标准为基础。
STD_LOGIC_ARITH程序包是Synopsys公司加入IEEE标准库的程序包,包括:
STD_LOGIC_SIGNED(有符号数)
STD_LOGIC_UNSIGNED(无符号数)
STD_LOGIC_SMALL_INT(小整型数)7 . BIT 类型与 STD_LOGIC 类型有什么区别?
BIT是一个逻辑型的数据类型,取值只可能是“1”或“0”(“1”或“0”是值逻辑值)。
STD_LOGIC是IEEE在1993年制定的新的标准(IEEE STD1164),它具有9种不同的值
'U'——初始值 'X'——不定 '0'——0 '1'——1 'Z'——高阻 'W'——弱信号不定 'L'——弱信号0 'H'——弱信号1 '-'——不可能的情况
在使用该数据类型时,在程序中必须写出库说明语句和使用包集合的说明语句。8 .信号与变量使用时有何区别?
信号赋值可以有延迟时间,变量赋值无时间延迟
信号除当前值外还有许多相关值,如历史信息等,变量只有当前值 进程对信号敏感,对变量不敏感
信号是全局量,是一个实体内部各部分之间以及实体之间(实际上端口PORT被默认为信号)进行通信的手段;而变量是局部量,只允许定义并作用于进程和子程序中。
信号可以看作硬件的一根连线,但变量无此对应关系
赋值的形式不同,信号值的代入采用符号“
. BUFFER 与 INOUT 有何异同?
BUFFER是INOUT的子集,它与INOUT的区别在于:INOUT是双向信号,既可以输入,也可以输出,而BUFFER也是实体的输出信号,但作输入用时,信号不是由外部驱动,而是从输出反馈得到,即BUFFER类的信号在输出外部电路的同时,也可以被实体本身的结构体读入,这种类型的信号常用来描述带反馈的逻辑电路,如计数器等。
2、复习程序
【例 5-1 】【 例 5-3 】 【例 5-4 】【例 5-6 】【例 5-9 】【例 5-11 】【例 5-13 】【例 5-14 】【例 5-15 】 【例 5-17 】 【例 5-18 】【例 6-9 】【例 6-10 】