FPGA习题答案

发布 2022-09-03 11:44:28 阅读 1813

fpga/cpld应用技术(verilog语言版)

第一章认识数字系统设计开发环境:

一、填空题。

2)45,2d

2. 建立工程;输入设计;编译工程;设计**;器件编程。

3. altera

可编程只读存储器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引脚、可编程布线资源和片内存储块ram

9. 电子设计自动化、electronic design automatic

10. 硬件描述语言、hardware description language

programmable read only memory

programmable 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 计算机辅助设计技术cad

12. 写出下列英文单词的中文意思。

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所示。

图t1.1 quartus ii软件的完整设计流程。

答案:共包括以下5步:①建立工程;②输入设计;③编译工程;④设计**;⑤器件编程,任务实现基本流程如图t1.2所示。

图t1.2 设计步骤。

答案:如图t1.3

图t1.3 可编程逻辑器件的分类。

4. 画出4选1数据选择器的输入输出结构及真值表。

答案:如图t1.4和表t1.1所示。

图t1.4 4选1数据选择器。

表t1.1 4选1数据选择器真值表。

5. 简述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, endmodule

3.模块名字,模块输入输出端口列表。

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位双向端口。

例如:input[3:0] data说明一个4位的输入端口data

output[7:0] q说明一个8位的输出端口q

inout[1:0] out说明一个2位的双向端口out

2.答案。wire连线型相当于组合逻辑电路中的各种连接线,其特点是输出的值紧随输入值的变化而变化,不能暂存。verilog hdl模块中的输入输出信号类型默认定义为wire型。

程序模块中引用实例元件的输出信号变量以及用“assign”语句赋值的变量,一般地都定义为wire型。

reg类型定义的是一种能暂存数据的变量,对应的是具有状态保持作用的电路元件,如触发器、寄存器等。程序模块中需要在always过程语句中赋值的变量都须定义为reg型变量。

reg型变量与wire型变量的根本区别就在于:reg型变量在定义时默认的初始值为不定值x,在设计时要求放在always过程语句内部通过过程赋值语句赋予明确的值。如果寄存器变量没有得到新的赋值,它将一直保持原有的值不变。

3.答案。在电路建模过程中如果使用if条件语句,当分支条件表达式值已将控制表达式的所有可能取值都一一列出的话,则else语句项可以省略不写。但如果没有列出所有可能出现的条件分支的话,在进行逻辑综合时编译器认为条件不满足从而引入一个触发器保持原值,在进行组合电路设计过程中,应避免这种触发器的存在。

为了保证包含所有的条件分支情况,通常是在if语句最后加上else语句将没有罗列出来的情况统统包含进来。

4.答案。一个case语句中只能有一个default语句项。如果分支表达式值已将控制表达式的所有可能取值都一一列出的话,则default语句项可以省略不写。

但由于每一个变量至少有4种取值、z和x,所以一般不可能列出所有的可能取值。如果没有列出所有条件分支的话,在进行逻辑综合时编译器认为条件不满足从而引入一个触发器保持原值,在进行组合电路设计过程中,应避免这种触发器的存在。为了保证包含所有的取值,通常都在case语句的最后加上default语句。

如果是用if条件语句建模的话,通常是在if语句最后加上else语句将没有罗列出来的取值统统包含进来。

FPGA作业答案

1 简述eda的发展历程及各阶段的特点1 手工设计阶段。2 计算机辅助设计 cad 20世纪70年代,属eda技术发展初期。该阶段的特点是一些单独的工具软件,主要有pcb布线设计 电路模拟 逻辑模拟及版图的绘制通过计算机的使用,从而将设计人员从大量繁琐重复的计算和绘图工作中解脱出来。3 计算机辅助工...

FPGA作业和答案

1.顺序语句和并行语句分别有哪些?顺序语句和并行语句主要有什么区别?答 顺序语句 信号赋值语句 进程中 变量赋值语句 流程控制语句 if语句 case语句 等待语句 子程序调用语句 返回语句 空操作语句。并行语句 1 并行信号赋值语句 简单信号赋值语句 eg a 1 条件信号赋值语句 when el...

FPGA作业

可编程逻辑器件有哪些类型?fpga与cpld有什么区别?目前生产和使用的可编程逻辑器件 programmable logic device,pld 产品主要有可编程只读存储器 prom 现场可编程逻辑阵列 field programmable logic array,fpga 可编程阵列逻辑 pro...