完整word版VHDL期末考试题.docx

上传人:b****9 文档编号:25368935 上传时间:2023-06-07 格式:DOCX 页数:19 大小:109.92KB
下载 相关 举报
完整word版VHDL期末考试题.docx_第1页
第1页 / 共19页
完整word版VHDL期末考试题.docx_第2页
第2页 / 共19页
完整word版VHDL期末考试题.docx_第3页
第3页 / 共19页
完整word版VHDL期末考试题.docx_第4页
第4页 / 共19页
完整word版VHDL期末考试题.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

完整word版VHDL期末考试题.docx

《完整word版VHDL期末考试题.docx》由会员分享,可在线阅读,更多相关《完整word版VHDL期末考试题.docx(19页珍藏版)》请在冰豆网上搜索。

完整word版VHDL期末考试题.docx

完整word版VHDL期末考试题

1.结构体的三种描述方式:

-行为描述-数据流描述-结构化描述

2.一般将一个完整的VHDL程序称为设计实体

3.VHDL设计实体的基本结构由库、程序包、实体、结构体和配置组成。

4.VHDL不区分大小写。

5.常用的库:

libraryieee,程序包:

useieee.std_logic_1164.all

6.VHDL程序的基本结构至少应包括实体、结构体和对库的引用声明。

7.在VHDL程序中使用的文字、数据对象、数据类型都需要事先声明。

8.VHDL的实体由实体声明和结构体组成。

VHDL的实体声明部分指定了设计单元的输入出端口或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分。

VHDL的结构体用来描述实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。

9.端口方向模式:

IN(输入)、OUT(输出<构造体内部不能再使用>)、INOUT(双向)、BUFFER(缓冲<构造体内部可再使用>)

10.VHDL的标识符名必须以(字母开头),后跟若干字母、数字或单个下划线构成,但最后不能为(下划线),不能连续两个下划线相连。

11.为信号赋初值的符号是(:

=);程序中,为变量赋值的符号是(:

=),为信号赋值的符号是(<=)

12.VHDL的数据类型包括标量类型、复合类型、存储类型和文件类型

请列出3个VHDL语言的数据类型,如实数、位等。

位矢量,字符,布尔量,整数,字符串,时间,错误等级,自然数,正整数。

13.VHDL的操作符包括逻辑、算术、关系和并置四类

14.可编程逻辑器件:

CPLD、FPGA、GAL、PLA、PAL(早期)

CPLD(复杂可编程逻辑器件):

基于乘机项技术构造的可编程逻辑器件,不需要配置外部程序寄存芯片

FPGA(现场可编程门阵列):

基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄存芯片

15.VHDL客体或数据对象:

常量、信号、变量(可被多次赋值)、文件。

16.一个VHDL程序中可以使用多个进程process语句,一个设计实体可以拥有多个结构体。

17.VHDL的预算操作包括:

逻辑运算符、关系运算符、乘法运算符(优先级<<<)

逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、

18.VHDL中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为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精确时序

编程题:

1.3-8译码器0

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYdecoder_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='0')THEN

CASEindataIS

WHEN"000"=>y<="11111110";

WHEN"001"=>y<="11111101";

WHEN"010"=>y<="11111011";

WHEN"011"=>y<="11110111";

WHEN"100"=>y<="11101111";

WHEN"101"=>y<="11011111";

WHEN"110"=>y<="10111111";

WHEN"111"=>y<="01111111";

WHENOTHERS=>y<="XXXXXXXX";

ENDCASE;

ELSE

y<="11111111";

ENDIF;

ENDPROCESS;

ENDrtl;

3、填写完成一个3-8线译码器的真值表(5分),并写出其VHDL程序(10分)。

3-8译码器的真值表

en

a2a1a0

y

1

000

00000001

1

001

00000010

1

010

00000100

1

011

00001000

1

100

00010000

1

101

00100000

1

110

01000000

1

111

10000000

0

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"when"1001",

"00000100"when"1010",

"00001000"when"1011",

"00010000"when"1100",

"00100000"when"1101",

"01000000"when"1110",

"10000000"when"1111",

"00000000"whenothers;(9)

enda;(10)

3、根据下表填写完成一个3-8线译码器的VHDL程序(16分)。

 

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYdecoder_3_to_8IS

PORT(a,b,c,g1,g2a,g2b:

INSTD_LOGIC;

y:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

(2)

ENDdecoder_3_to_8;

ARCHITECTURErtlOFdecoder_3_to_8IS

SIGNALindata:

STD_LOGIC_VECTOR(2DOWNTO0);(4)

BEGIN

indata<=c&b&a;(6)

PROCESS(indata,g1,g2a,g2b)

BEGIN

IF(g1='1'ANDg2a='0'ANDg2b='0')THEN(8)

CASEindataIS

WHEN"000"=>y<="11111110";

WHEN"001"=>y<="11111101";

WHEN"010"=>y<="11111011";(10)

WHEN"011"=>y<="11110111";

WHEN"100"=>y<="11101111";

WHEN"101"=>y<="11011111";

WHEN"110"=>y<="10111111";(12)

WHEN"111"=>y<="01111111";

WHENOTHERS=>y<="XXXXXXXX";

ENDCASE;

ELSE

y<="11111111";(14)

ENDIF;

ENDPROCESS;(16)

ENDrtl;

2.二选一VHDL程序

Entitymuxis

port(d0,d1,sel:

inbit;

q:

outBIT);

endmux;

architectureconnectofMUXis

signaltmp1,TMP2,tmp3:

bit;

begin

cale:

block

begin

tmp1<=d0andsel;

tmp2<=d1and(notsel)

tmp3<=tmp1andtmp2;

q<=tmp3;

endblockcale;

endCONNECT;

2.2二选一IF语句编写

Entitysel2is

Port(a,b:

instd_logic;

sel:

instd_logic;

q:

outstd_logic);

Endsel2;

Architectureaofsel2is

begin

ifsel=‘0’thenq<=a;

elseq<=b;

endif;

enda;

3.三态门电原理图如右图所示,真值表如左图所示,请完成其VHDL程序构造体部分。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYtri_gateIS

PORT(din,en:

INSTD_LOGIC;

dout:

OUTSTD_LOGIC);

ENDtri_gate;

ARCHITECTUREzasOFtri_gateIS

BEGIN

PROCESS(din,en)

BEGIN

IF(en=‘1')THENdout<=din;

ELSEdout<=‘Z’;

ENDIF;

ENDPROCESS;

ENDzas;

4.四选一、用IF语句编写一个四选一电路,要求输入d0~d3,s为选择端,输出y。

entityMUX4is

port(

(2)

s:

instd_logic_vector(1downto0);(4)

d:

instd_logic_vector(3downto0);(6)

y:

outstd_logic(8)

);

endMUX4;

architecturebehaveofMUX4is

begin

process(s)

begin

if(s="00")then

y<=d(0);

elsif(s="01")then

y<=d

(1);

elsif(s="10")then

y<=d

(2);

elsif(s="11")then

y<=d(3);

else

null;

endif;

endprocess;

endbehave;

5、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。

8-3线编码器真值表

en

b

y0y1y2

1

00000000

000

1

00000010

001

1

00000100

010

1

00001000

011

1

00010000

100

1

00100000

101

1

01000000

110

1

10000000

111

0

xxxxxxxx

高阻态

entityeight_triis

port(

b:

instd_logic_vector(7downto0);

en:

instd_logic;

y:

outstd_logic_vector(2downto0)

);

endeight_tri;(3)

architectureaofeight_triis

signalsel:

std_logic_vector(8downto0);(4)

begin

sel<=en&b;

y<=“000”when(sel=”100000001”)else

“001”when(sel=”100000010”)else

“010”when(sel=”100000100”)else

“011”when(sel=”100001000”)else

“100”when(sel=”100010000”)else

“101”when(sel=”100100000”)else

“110”when(sel=”101000000”)else

“111”when(sel=”110000000”)else(9)

“zzz”;(10)

enda;

6.图中给出了4位逐位进位全加器,请完成其VHDL程序。

(本题16分)

libraryIEEE;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_arith.all;

useIEEE.std_logic_unsigned.all;

entityfull_addis

port(a,b:

instd_logic_vector(3downto0);

carr:

inoutstd_logic_vector(4downto0);

sum:

outstd_logic_vector(3downto0));

endfull_add;

architecturefull_add_archoffull_addis

componentadder

port(a,b,c:

instd_logic;

carr:

inoutstd_logic;

sum:

outstd_logic);

endcomponent;

begin

carr(0)<='0';

u0:

adderportmap(a(0),b(0),carr(0),carr

(1),sum(0));

u1:

adderportmap(a

(1),b

(1),carr

(1),carr

(2),sum

(1));

u2:

adderportmap(a

(2),b

(2),carr

(2),carr(3),sum

(2));

u3:

adderportmap(a(3),b(3),carr(3),carr(4),sum(3));

endfull_add_arch;

7.数值比较器VHDL程序的进程(不必写整个结构框架),要求使能信号g低电平时比较器开始工作,输入信号p=q,输出equ为‘0’,否则为‘1’。

(本题10分)

process(p,q)

begin

ifg='0'then

ifp=qthenequ_tmp<='0';

elseequ_tmp<='1';

endif;

elseequ_tmp<='1';

endif;

endprocess;

8.编写一个2输入与门的VHDL程序,请写出库、程序包、实体、构造体相关语句,将端口定义为标准逻辑型数据结构(本题10分)

 

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYnand2IS

PORT(a,b:

INSTD_LOGIC;

y:

OUTSTD_LOGIC);

ENDnand2;

ARCHITECTUREnand2_1OFnand2IS

BEGIN

y<=aNANDb;

ENDnand2_1;

9设计异或门逻辑:

(本题20分)

如下异或门,填写右边的真值表。

(此项5分)

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

0

 

其表达式可以表示为:

这一关系图示如下:

 

试编写完整的VHDL代码实现以上逻辑。

可以采用任何描述法。

libraryieee;

useieee.std_logic_1164.all;

entityyihuo1is

port(a,b:

instd_logic;

y:

outstd_logic);

endyihuo1;

architectureyihuo1_behaviorofyihuo1is

begin

y<=axorb;

endyihuo1_behavior;

10.4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变高后,在上升沿开始工作;输入时钟信号为clk,输出为q。

(本题10分)

Process(reset,clk)

begin

ifreset=‘0’thenq<=“0000”;

elsifclk’eventandclk=‘1’thenq<=q+1;endif;

endprocess;

11、根据已给出的二-十(BCD)进制优先权编码器功能表,试写出其VHDL程序。

(本题15分)

二-十(BCD)进制优先权编码器功能表

输入

输出

I1

I2

I3

I4

I5

I6

I7

I8

I9

Y3

Y2

Y1

Y0

1

1

1

1

1

1

1

1

1

1

1

1

1

X

X

X

X

X

X

X

X

0

0

1

1

0

X

X

X

X

X

X

X

0

1

0

1

1

1

X

X

X

X

X

X

0

1

1

1

0

0

0

X

X

X

X

X

0

1

1

1

1

0

0

1

X

X

X

X

0

1

1

1

1

1

0

1

0

X

X

X

0

1

1

1

1

1

1

0

1

1

X

X

0

1

1

1

1

1

1

1

1

0

0

X

0

1

1

1

1

1

1

1

1

1

0

1

0

1

1

1

1

1

1

1

1

1

1

1

0

entityprioris

port(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1