FPGA习题答案
- 格式:doc
- 大小:35.06 KB
- 文档页数:11
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 LanguageIn System Programming 在系统可编程Look-Up Table 查找表Programmable Logic Device 可编程逻辑器件Logic Array Blocks 逻辑阵列块Computer Aided Design 计算机辅助设计技术CAD12. 写出下列英文单词的中文意思。
(1)工程、项目(2)向导(3)器件(4)封装)系列6()管脚5(.(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所示。
建立工程文件输入设计文件(原理图或其它)工程编译查错Y有错?N软件仿真(功能、时序)Y有错?N选择器件、分配引脚工程编译查错Y有错?N器件编程设计步骤T1.2 图3.T1.3答案:如图(PLD)可编程逻辑器件高密度可编程逻辑器件低密度可编程逻辑器件(HDPLD)(LDPLD)FPGACPLDPALPLAGALEPLDPROM可编程逻辑器件的分类图T1.3数据选择器的输入输出结构及真值表。
4画出选14.T1.1T1.4答案:如图和表所示。
控制选择端S1S0P0F 输出输入P1 P2 P3图T1.4 4选1数据选择器表T1.1 4选1数据选择器真值表控制选择端输出F S1 S0P0 00P1 01P2 10P3115. 简述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型变量的格式如下:wire[n-1:0] 信号名1,信号名2,……;例如:wire[7:0] data; //说明一个8位数据总线data为wire型用Verilog来描述n位总线信号为reg型变量的格式如下:reg[n-1:0] 信号名1,信号名2,……;例如:reg[7:0] a,b;//说明一个8位数据总线a和b为reg型如果用Verilog来描述n位总线型的输入输出端口,则可以按如下格式定义:input[n-1:0] 端口1,端口2,……; //说明端口1,端口2,…为n位输入端口output[n-1:0] 端口1,端口2,……; //说明端口1,端口2,…为n位输出端口inout[n-1:0] 端口1,端口2,……; //说明端口1,端口2,…为n位双向端口data位的输入端口4说明一个input[3:0] data; //例如:output[7:0] q; //说明一个8位的输出端口qinout[1: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,所以一般不可能列出所有的可能取值。
如果没有列出所有条件分支的话,在进行逻辑综合时编译器认为条件不满足从而引入一个触发器保持原值,在进行组合电路设计过程中,应避免这种触发器的存在。