VHDL期末考试题Word格式.docx
《VHDL期末考试题Word格式.docx》由会员分享,可在线阅读,更多相关《VHDL期末考试题Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
12.VHDL的数据类型包括标量类型、复合类型、存储类型和文件类型
请列出3个VHDL语言的数据类型,如实数、位等。
位矢量,字符,布尔量,整数,字符串,时间,错误等级,自然数,正整数。
13.VHDL的操作符包括逻辑、算术、关系和并置四类
14.可编程逻辑器件:
CPLD、FPGA、GAL、PLA、PAL(早期)
CPLD(复杂可编程逻辑器件):
基于乘机项技术构造的可编程逻辑器件,不需要配置外部程序寄存芯片
FPGA(现场可编程门阵列):
基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄存芯片
客体或数据对象:
常量、信号、变量(可被多次赋值)、文件。
16.一个VHDL程序中可以使用多个进程process语句,一个设计实体可以拥有多个结构体。
的预算操作包括:
逻辑运算符、关系运算符、乘法运算符(优先级<
<
逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、
中std_logic类型:
‘Z’表示高阻,‘X’表示不确定
19.将一个信width定义为一个4位标准逻辑向量为:
signalwidth:
std_logic_vector(3downto0)
定义一个变量a,数据类型为4位位向量:
variablea:
bit_vector(3downto0)
20.赋值语句是并行执行,IF语句是串行执行。
21.标准逻辑是一个具有九值逻辑的数据类型
22.表示‘0’‘1’两值逻辑的数据类型是bit,表示‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic,表示空操作的数据类型是NULL
23.<
=是小于等于关系运算符,又是赋值运算操作符
/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。
NOT是逻辑运算符,表示取反,在所有操作符中优先级最高。
30.并置运算符&
的功能是把多个位或位向量合并为一个位向量。
24.位类型的初始化采用字符,位矢量用字符串
25.进程必须位于结构体内部,变量必须定义于进程内部
26.进程执行的机制是敏感信号发生跳变
27.VHDL语言可以有以下3种形式的子结构描述语句:
BLOCK语句结构;
PROCESS语句结构和SUBPROGRAMS结构。
29整型对象的范围约束通常用range关键词,位矢量用downto/to关键词。
31.判断CLK信号上升沿到达的语句是ifclk’eventandclk=‘1’then.
32.IF语句各条件间具有不同的优先级。
33、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时,
其状态才发生改变。
34、Moore状态机输出只依赖于器件的当前状态,与输入信号无关。
35.、IF语句根据指定的条件来确定语句执行顺序,共有3种类型:
用于门闩控制的IF语句、用于二选一控制的IF语句、用于多选择控制的IF语句。
简答题:
1、简述信号与变量的区别。
a.信号延时赋值,变量立即赋值b.信号的代入使用<
=,变量的代入使用:
=;
c.信号在实际的硬件当中有对应的连线,变量没有
2、简述可编程逻辑器件的优点。
a.集成度高,可以替代多至几千块通用IC芯片.极大减小电路的面积,降低功耗,提高可靠性b.具有完善先进的开发工具.提供语言、图形等设计方法,十分灵活.通过仿真工具来验证设计的正确性c.可以反复地擦除、编程,方便设计的修改和升级d.灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间f.保密性好
3、试比较moore状态机与mealy状态机的异同。
Moore输出只是状态机当前状态的函数.Mealy输出为有限状态机当前值和输入值的函数
3、简述VHDL语言与计算机语言的差别。
a.运行的基础。
计算机语言是在CPU+RAM构建的平台上运行。
VHDL设计的结果是由具体的逻辑、触发器组成的数字电路b.执行方式.计算机语言基本上以串行的方式执行.VHDL在总体上是以并行方式工作c.验证方式.计算机语言主要关注于变量值的变化.VHDL要实现严格的时序逻辑关系
4、简述实体端口的模式
输入(Input):
clk、reset、en、addr等
输出(Output):
输出信号,不能内部引用
双向(Inout):
可代替所有其他模式,用于设计双向总线
缓冲(Buffer):
与Output类似,但允许该管脚名作为一些逻辑的输入信号
5、进程语句是设计人员描述结构体时使用最为频繁的语句,简述其特点。
a.它可以与其它进程并发执行,并可存取结构体或实体中所定义的信号;
b.进程结构中的所有语句都是按顺序执行的
c.为了启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句;
d.进程之间的通信是通过信号量的传递来实现的
6、简述如何利用计数器精确控制时序。
a.只要知道晶振频率f,即可知道周期T=1/f;
b.使用一个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT;
上例中以n为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精确时序
编程题:
译码器0
LIBRARYIEEE;
USEdecoder_3_to_8IS
PORT(a,b,c,g1,g2a,g2b:
INSTD_LOGIC;
y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdecoder_3_to_8;
ARCHITECTURErtlOFdecoder_3_to_8IS
SIGNALindata:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
indata<
=c&
b&
a;
PROCESS(indata,g1,g2a,g2b)
BEGIN
IF(g1='
1'
ANDg2a='
0'
ANDg2b='
)THEN
CASEindataIS
WHEN"
000"
=>
y<
="
"
;
001"
=>
010"
011"
100"
101"
110"
111"
01111111"
WHENOTHERS=>
XXXXXXXX"
ENDCASE;
ELSE
ENDIF;
ENDPROCESS;
ENDrtl;
3、填写完成一个3-8线译码器的真值表(5分),并写出其VHDL程序(10分)。
3-8译码器的真值表
en
a2a1a0
y
1
000
00000001
001
00000010
010
00000100
011
00001000
100
00010000
101
00100000
110
01000000
111
xxx
00000000
entitytri_eightis
port(
a:
instd_logic_vector(2downto0);
en:
instd_logic;
y:
outstd_logic_vector(7downto0)
);
endtri_eight;
(2)
architectureaoftri_eightis
signalsel:
std_logic_vector(3downto0);
(4)
begin
sel(0)<
=a(0);
sel
(1)<
=a
(1);
sel
(2)<
=a
(2);
sel(3)<
=en;
(5)
withselselect
y<
00000001"
when"
1000"
"
00000010"
1001"
00000100"
1010"
00001000"
1011"
00010000"
1100"
00100000"
1101"
01000000"
1110"
1111"
00000000"
whenothers;
(9)
enda;
(10)
3、根据下表填写完成一个3-8线译码器的VHDL程序(16分)。
(2)
(6)
)THEN(8)
(10)
(12)
(14)
(16)
E