FPGA习题答案.doc_第1页
FPGA习题答案.doc_第2页
FPGA习题答案.doc_第3页
FPGA习题答案.doc_第4页
FPGA习题答案.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA/CPLD应用技术(Verilog语言版) 第一章 认识数字系统设计开发环境:一、填空题1. (1)11001,19(2)45,2D(3)111111,632. 建立工程;输入设计;编译工程;设计仿真;器件编程3. Altera4. 可编程只读存储器PROM(Programmable Read Only Memory)可编程逻辑阵列PLA(Programmable Logic Array)可编程阵列逻辑PAL(Programmable Array Logic)通用阵列逻辑器件GAL(Generic Array Logic)可擦除可编程逻辑器件EPLD(Erasable Programmable Logic Device)复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)现场可编程门阵列FPGA(Field Programmable Gate Array)5. 低密度可编程逻辑器件(LDPLD)、高密度可编程逻辑器件(HDPLD)6. “与或阵列”、“门阵列”、 “与或阵列”7. 输入电路、与阵列、或阵列、输出电路8. 可编程功能单元、可编程I/O引脚、可编程布线资源和片内存储块RAM9. 电子设计自动化、Electronic Design Automatic10. 硬件描述语言、Hardware Description Language11. Programmable Read Only MemoryProgrammable Logic Array可编程逻辑阵列Programmable Array Logic可编程阵列逻辑Generic Array Logic通用阵列逻辑器件Erasable Programmable Logic Device可擦除可编程逻辑器件Complex Programmable Logic Device复杂可编程逻辑器件Field Programmable Gate Array现场可编程门阵列Very-High-Speed Hardware Description Language 超高速硬件描述语言In System Programming 在系统可编程Look-Up Table 查找表Programmable Logic Device 可编程逻辑器件Logic Array Blocks 逻辑阵列块Computer Aided Design 计算机辅助设计技术CAD12. 写出下列英文单词的中文意思。(1)工程、项目 (2)向导(3)器件 (4)封装(5)管脚 (6)系列 (7)原理图 (8)图表 (9)块 (10)符号 (11)输入 (12)输出 (13)编译 (14)信息 (15)分析 (16)综合(17)装配、布局 (18)汇编、装配 (19)报告 (20)波形 (21)节点 (22)仿真器 (23)功能的 (24)时序的(25)分配 (26)熔丝(27)互连 (28)宏单元(29)乘积项 (30)进位二、问答题1. 画出Quartus II软件的完整设计流程。答案:如图T1.1所示。设计输入完成设计的输入;设计输入可以有多种形式综合完成设计综合,生成综合网表文件布局布线完成综合网表文件到器件的布局布线时序分析完成综合后电路的时序分析仿真完成电路的仿真,包括功能仿真和时序仿真两种工具器件编程与配置完成生成器件下载文件约束输入完成约束的输入;如速度约束、面积与速度的优先关系、引脚设置设计输入可以有多种形式文本编辑器块与符号编辑器宏向导插件管理器分配编辑器引脚规划器设置对话框布局图编辑器设计分割窗口分析和综合器RTL查看器辅助工具布局布线器分配编辑器布局图编辑器增量布局连线工具芯片编辑器Fitter工具时序分析报告窗口技术映射查看器仿真器波形编辑器汇编器编程器转换编程文件图T1.1 Quartus II软件的完整设计流程2.答案:共包括以下5步:建立工程;输入设计;编译工程;设计仿真;器件编程,任务实现基本流程如图T1.2所示。建立工程文件输入设计文件(原理图或其它)工程编译查错有错?软件仿真(功能、时序)有错?选择器件、分配引脚工程编译查错有错?器件编程YYYNNN图T1.2 设计步骤3. 答案:如图T1.3图T1.3 可编程逻辑器件的分类4. 画出4选1数据选择器的输入输出结构及真值表。答案:如图T1.4和表T1.1所示。S1S0控制选择端输出FP0P1输入P2P3图T1.4 4选1数据选择器 表T1.1 4选1数据选择器真值表控制选择端输出S1 S0F00011011P0P1P2P35. 简述FPGA的一般设计流程。答案:FPGA/CPLD进行电路设计的过程是指在计算机上利用EDA工具软件对FPGA/CPLD器件进行开发设计的过程,一般包括设计准备、设计输入、功能仿真、设计实现、时序仿真、下载编程和器件测试七个步骤。(1)设计准备设计准备阶段是FPGA/CPLD进行电路设计的第一步,包括方案论证、系统设计、器件选择等工作。(2)设计输入设计输入阶段就是设计者将设计电路以某种方式输入到计算机中。设计输入通常有以下几种方式:原理图输入方式、HDL硬件描述语言输入方式、波形输入方式、层次设计输入方式、状态机图表输入方式等,前两种是比较常用的输入方式,下面分别简单介绍。原理图输入方式与传统的原理图设计类似,用最直接的图形化的方式描述设计电路,使用工具软件提供的元件库中的符号,用连线画出原理图。这种输入方式是大家最习惯的方式,直观简单,便于仿真,但原理图设计效率低,对设计人员要求高。HDL硬件描述语言输入方式是用文本方式输入设计电路,是EDA设计的基本特征之一。目前常用的硬件描述语言有VHDL(Very High speed Description Language)、Verilog-HDL等。因为语言与工艺无关,采用这种方式输入设计电路,设计人员对底层电路和PLD结构不必太熟悉,而且便于实现大规模系统的设计;缺点是硬件描述语言必须依赖综合器,综合器的好坏直接影响到生成电路的质量。(1) 功能仿真功能仿真也称为前仿真。在编译之前对设计的电路进行逻辑功能验证,初步检测电路功能是否正确。仿真时首先要建立波形文件或测试向量,仿真结果一般是输出信号波形和报告文件等。(2) 设计实现设计电路的逻辑功能验证正确后,可以进入电路的设计实现环节了。设计实现是FPGA/CPLD进行电路设计的关键步骤,工具软件将对设计输入文件(原理图或文本等)进行逻辑化简、综合优化和适配,最后产生编程下载需要的编程文件。(3) 时序仿真时序仿真一般称为后仿真,是把设计电路与具体实现器件(FPGA/CPLD)结合起来的仿真。因为不同的器件内部延时不一样,不同的布局布线方案也会产生不同的延时。因此,时序仿真是增加了延时信息后对设计电路的仿真,是仿真电路在器件中实现后,作为实际器件工作的情况。(4) 下载编程下载编程是将设计实现阶段生成的编程文件装入到目标器件FPGA/CPLD中,也就是将设计电路在具体器件中实现。(5) 器件测试器件测试就是指器件在编程实现后,可以用编译产生的文件对器件进行校验、加密等工作,当然,利用实验板对器件的性能进行现场测试也是十分必要的。第二章 Verilog设计基础一、填空题1模块2. module, endmodule3模块名字,模块输入输出端口列表4输入(input),输出(output),输入输出双向(inout)5分号6结构描述方式,行为描述方式,数据流描述方式7门级原语,已建立好的电路模块8 wire连线型,reg寄存器型,memory存储器型9 wire类型10 reg类型二、问答题1 答案:在实际电路系统中,经常会遇到总线,比如地址总线、数据总线等,它们具有多位数据线。用Verilog来描述n位总线信号为wire型变量的格式如下:wiren-1:0 信号名1,信号名2,; 例如:wire7:0 data; /说明一个8位数据总线data为wire型用Verilog来描述n位总线信号为reg型变量的格式如下:regn-1:0 信号名1,信号名2,; 例如:reg7:0 a,b; /说明一个8位数据总线a和b为reg型如果用Verilog来描述n位总线型的输入输出端口,则可以按如下格式定义:inputn-1:0 端口1,端口2,; /说明端口1,端口2,为n位输入端口outputn-1:0 端口1,端口2,; /说明端口1,端口2,为n位输出端口inoutn-1:0 端口1,端口2,; /说明端口1,端口2,为n位双向端口例如:input3:0 data; /说明一个4位的输入端口data output7:0 q; /说明一个8位的输出端口q inout1:0 OUT; /说明一个2位的双向端口OUT2答案wire连线型相当于组合逻辑电路中的各种连接线,其特点是输出的值紧随输入值的变化而变化,不能暂存。verilog HDL模块中的输入输出信号类型默认定义为wire型。程序模块中引用实例元件的输出信号变量以及用“assign”语句赋值的变量,一般地都定义为wire型。reg类型定义的是一种能暂存数据的变量,对应的是具有状态保持作用的电路元件,如触发器、寄存器等。程序模块中需要在always过程语句中赋值的变量都须定义为reg型变量。reg型变量与wire型变量的根本区别就在于:reg型变量在定义时默认的初始值为不定值x,在设计时要求放在always过程语句内部通过过程赋值语句赋予明确的值。如果寄存器变量没有得到新的赋值,它将一直保持原有的值不变。3答案在电路建模过程中如果使用if条件语句,当分支条件表达式值已将控制表达式的所有可能取值都一一列出的话,则else语句项可以省略不写。但如果没有列出所有可能出现的条件分支的话,在进行逻辑综合时编译器认为条件不满足从而引入一个触发器保持原值,在进行组合电路设计过程中,应避免这种触发器的存在。为了保证包含所有的条件分支情况,通常是在if语句最后加上else语句将没有罗列出来的情况统统包含进来。4答案一个case语句中只能有一个default语句项。如果分支表达式值已将控制表达式的所有可能取值都一一列出的话,则default语句项可以省略不写。但由于每一个变量至少有4种取值0、1、z和x,所以一般不可能列出所有的可能取值。如果没有列出所有条件分支的话,在进行逻辑综合时编译器认为条件不满足从而引入一个触发器保持原值,在进行组合电路设计过程中,应避免这种触发器的存在。为了保证包含所有的取值,通常都在case语句的最后加上default语句。如果是用if条件语句建模的话,通常是在if语句最后加上else语句将没有罗列出来的取值统统包含进来。5答案Verilog HDL支持采用自顶向下的结构化设计方法进行复杂电路系统设计。将一个复杂的系统设计分割成许多较小的、较简单的功能单元模块,这些小模块与大系统相比,设计更容易、测试更简单。对这些小模块分别进行设计和验证通过后,再调用这些小模块嵌套在更大的功能单元模块中进行设计和验证,最后组合为一个完整的电路系统。 在Verilog HDL的层次化设计中调用小单元模块的方法有两种:一种是和调用门原语方法类似的位置映射法;一种是将例化模块的端口名对应信号名的信号映射法。用位置映射法引用一个模块,需要先在引用语句前面写上这个模块的名字,然后在一个空格后写上此模块引用的实例名,在其后圆括号内按模块端口顺序写上连接到各个端口的信号线名。其引用的语法如下:模块名 实例名(连接端口1的信号名, 连接端口2的信号名,);用信号映射法引用一个模块,不必严格遵守端口顺序,只需将所调用的模块端口逐一对应到信号线上列出。信号映射法引用模块的语法如下: 模块名 实例名(.端口名1(连接端口1的信号名),.端口名2(连接端口2的信号名),);三、操作题1(1)结构描述方式 module circuit1( A, B, C, D, F ); input A,B,C,D; output F; nand(W1,A,B); and(W2,B,C,D); or(F,W1,W2); endmodule (2)数据流描述方式 module circuit2( A, B, C, D, F ); input A,B,C,D; output F; assign F=(AB)|(BCD); endmodule (3)行为描述方式 module circuit1( A, B, C, D, F ); input A,B,C,D; output F; reg F; always (A or B or C or D) begin F=(AB)|(BCD); end endmodule2. module tri_circuit( IN, E, OUT ); input IN,E; output OUT; assign OUT=E?IN:1bz; /若E=1,则OUT=IN;若E=0,则OUT为高阻态 endmodule3 module 7segLED( IN, OUT, ); input3:0 IN; output6:0 OUT; always (IN) begin case(IN) 4d0:OUT=7b1111110; 4d1:OUT=7b0110000; 4d2:OUT=7b1101101; 4d3:OUT=7b1111001; 4d4:OUT=7b0110011; 4d5:OUT=7b1011011; 4d6:OUT=7b1011111; 4d7:OUT=7b1110000; 4d8:OUT=7b1111111; 4d9:OUT=7b1111011; default:OUT=7bx; endcase end endmodule第三章 组合逻辑电路一、填空题1. 两;输入;reg;if-else;case。2. always;initial。3. 并行;顺序执行。4. reg;wire。5. (1)0001 0000 0001(2)0001 0011(3)0110 0110(4)0100 0010(5)0101 0110(6)1000 01107. 电路当前的输出仅取决于当前的输入信号,输出信号随输入信号的变化而改变,与电路原来的状态无关,这种电路无记忆功能。8. =;=。9. 共阴极;共阳极;静态显示;动态显示。二、判断题三、问答题1. (1)4位;(2)寄存器类型;(3)会错,a应该为wire类型变量;(4)4b1001;(5)1b0;(6)m=3b10;2. 基于硬件描述语言的组合逻辑设计方法如下:第一步,文字描述的逻辑命题,转换规格书。首先,分析事件的因果关系,确定输入和输出变量。一般总是把引起事件的原因定为输入变量,把事件引起的结果定为输出变量。然后,定义逻辑状态的含义。即确定 0,1 分别代表输入、输出变量的两种不同状态。最后,画出电路的结构框图,并且定义好相关信号含义,写出电路规格书。第二步,根据规格书的要求,用RTL的硬件描述语言描述电路(一般需要通过仿真验证)。第三步,根据已有的库进行综合,得到可以与实际直接对应的网表并最终实现电路。第4章 时序逻辑电路设计一、填空题1. 同步电路、异步电路2. 非阻塞赋值3. 全局时钟(同步时钟)4. Mealy型状态机、Moore型状态机5. 有限状态机6. Mealy、Moore7. 时钟沿8. 有限状态机、Finite State Machine。二、简答题1.答案:(1)在用Verilog HDL进行数字逻辑设计时,只使用一个主时钟,同时只使用同一个时钟沿(上升沿或下降沿)。(2)在FPGA设计中,推荐所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑。(3)当全部电路不能用同步电路思想设计时,即需要多个时钟来实现,则可以将全部电路分成若干局部电路(尽量以同一时钟为一个模块),局部电路之间接口当异步接口考虑。(4)电路中所有的寄存器、状态机在上电复位时必须有一个确定的初始态。(5)电路的实际最高频率不应大于理论最高频率,应留有设计余地。2.答案:异步复位是指在复位信号有效时,系统立即进行复位,而不管时钟信号的状态,在用Verilog HDL的always块描述异步复位时,always块中的敏感信号列表必须包括复位信号,如always(posedge clk or posedge reset)。同步复位是指在复位信号和时钟信号同时有效时,系统才进行复位。在用Verilog HDL的always块描述同步复位时,always块中的敏感信号列表不包含复位信号。3.答案:触发器是时钟沿敏感的器件,而锁存器是电平敏感的器件,在项目设计中,锁存器会带来诸多问题,如额外延时,DFT问题等,因此,在实际设计中必须尽量避免锁存器的出现。4.答案:RS触发器是一种危险的触发器,R=S=1会导致不稳定态,初始状态不确定。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论