文档库

最新最全的文档下载
当前位置:文档库 > 试卷 vhdl 湖南科技大学

试卷 vhdl 湖南科技大学

简答题20分

填空题10分

选择题10分

程序分析题3题30分

编程题3题30分

1.课本中第八章中逻辑电路设计,是考试重点,一些程序和类似程序会在考试中以程序分析题和编程题形式出现。(以课本及上课PPT为参考)

2.除了第八章外,例1-1 例1-2 例5-2 例5-5

例6-8 例6-9 例6-10 例6-12 例6-13,这些程序也很经典,

1.VHDL 的全称是什么?利用它设计硬件电路有哪些优点?

答:VHDL 的全称Very High Speed Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言,利用VHDL 设计硬件电路具有以下特点:

(1)设计文件齐全、方法灵活、支持广泛

(2)系统硬件描述能力强

(3)VHDL 语言可以与工艺无关编程

(4)VHDL 语言标准、规范、易于共享和复用

2.一个完整的VHDL语言程序由哪几个部分构成,每个部分作用是什么。

答:一个完整的VHDL语言程序由库,包集合,实体,构造体和配置五个部分组成。库包含若干个包集合,确定程序所需要调用的函数,数据类型等;包集合内存有具体函数,数据类型的定义;实体说明系统的端口与类属参数;构造体完成系统内部逻辑关系与具体电路的实现;配置则说明实体与构造体的连接关系,通过配置,同一实体可搭配不同构造体。

3.简述VHDL语言构造体的描述方式及各自特点。

答:行为描述,RTL描述方式,结构描述方式。行为描述主要是对系统数学模型的描述,一般进行仿真难以进行逻辑综合;RTL描述主要是对系统内部构造与逻辑关系的描述,可以进行逻辑综合;结构描述大量使用模块化描述方式,采用component语句,block语句,便于实现积木化结构,能够进行逻辑综合。

4.VHDL 语言中客体的概念及使用范围

VHDL 语言中可以赋予一个值的对象称为客体;客体主要包括三种:信号、常数、变量;信号和常数为全局量,变量为局部量

5.请从申明格式、赋值符号、赋值生效时间、作用范围等方面对信号和变量进行比较分析。

答:①申明时关键字不一样,变量为:V ARIABLE;信号为:SIGNAL。但申明时赋初值均用“:=”符号。

②赋值符号不同:信号赋值用“﹤=”;变量赋值用“:=”。

③赋值生效时间:信号赋值△延时后生效;变量赋值立即生效。

④声明引用范围:信号在构造体内(进程外)申明,整个构造体内有效;变量主要在进程内申明,只在进程内有效。

6.Bit数据类型和std_logic数据类型有什么区别。

答:Bit表示一位的信号值,取值只能为1或0;std-logic取值为9值逻辑系统有1,0,X, 高阻态等;std-logic前需要加入下列语句:Library ieee;Use ieee.std_logic_1164.all; Bit前不需要加。

7.写出五种以上的VHDL语言的标准数据类型。

布尔(BOOLEAN)数据类型、位(BIT)数据类型、位矢量(BIT_VECTOR)数据类型

字符(CHARACTER)数据类型、整数(INTEGER)数据类型、实数(REAL)数据类型

字符串(STRING)数据类型、时间(TIME)数据类型

8.说明下列各定义的意义:

SIGNAL A , B , C : BIT : =’0’;

CONSTANT m1 , m2 : TIME : 10ns ;

V ARIABLE temp1,temp2 : STD_LOGIC :=’x’;

答:○1定义3个位数据类型的信号A、B、C,它们取值为0;

○2定义2个时间数据类型的常量m1、m2,它们值为10ns;

○3定义3个标准逻辑位STD_LOGIC数据类型的变量temp1、temp2,它们的值是X。9、顺序语句和并行语句有什么区别?VHDL编程中需要注意些什么?

答:并行语句主要有一般信号赋值语句、条件信号赋值语句、选择信号赋值语句;顺序语句主要有顺序控制语句(如:if语句、case语句、循环语句等)和wait语句。

并行语句存在于进程外,并发执行,与语句所处的位值无关;顺序语句存在于进程内,语句按顺序执行,与语句所处的位值有关。VHDL编程中,顺序控制语句(如:if语句、case语句、循环语句等)必须存在于进程内。

10.简述VHDL语言中端口模式IN,OUT,BUFFER和INOUT 各自的特点及OUT与BUFFER的主要区别?

答:端口模式中各自的含义与特点为:IN:输入;OUT:输出;BUFFER:带反馈的输出,可读可写;INOUT:双向。

OUT,BUFFER的区别:OUT模式下的信号,在程序中只能作为对象被赋值,不能作为源赋给其他信号;BUFFER模式下的信号,在程序中既可作为对象被赋值,又可作为源赋给其

他信号,对象和源是同时发生,是同一个信号。

11.进程语句是设计人员描述结构体时使用最为频繁的语句,简述其特点。

答:a.它可以与其它进程并发执行,并可存取结构体或实体中所定义的信号;b.进程结构中的所有语句都是按顺序执行的 c.为了启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句;d.进程之间的通信是通过信号量的传递来实现的

12.简述元件例化语句的作用、组成及格式?

答:把已经设计好的设计实体称为一个元件或一个模块,它可以被高层次的设计调用。调用时就会用到元件声明和元件例化语句。二者缺一不可。

元件声明格式如下

COMPONENT 元件实体名

PORT(元件端口信息);

END COMPONENT;

元件例化格式如下

标号名:元件名PORT MAP (端口列表);

1. 数100在VHDL语言中既可以表示整数又可以表示实数。()

2. 在进程中任意交换语句的顺序,其执行结果不变。()

3. WAIT FOR 语句后面要求接敏感信号量。()

4. 在IF语句的条件表达式中只能使用关系运算操作及逻辑运算操作的组合表达()

5. 在使用进程时,敏感信号量必须跟在PROCESS()的括号中。()

6. WORK库是现行作业库。设计者所描述的VHDL语句不需要任何说明,将都存放在WORK 库中。()

7. 在端口方向的描述中,BUFFER定义的信号不能供构造体再使用,而OUT定义的信号则可以再供构造体使用。()

8. 一条信号代入语句,不能用一个进程来描述。()

9. 代入符号两边信号量只要求数据类型一致。()

10.VHDL语言中,逻辑运算左右有优先级别,且是从左至右运算()

VHDL知识点3

1. 硬件描述语言HDL给PLD和数字系统的设计带来了更新的设计方法和理念,产生了目前最常用的并称之为的设计法。(选填自顶向下/自底向上)

2.一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。VHDL语言可以有以下3种形式的子结构描述:语句;语句;UBPROGRAMS语句结构。

3. 目前可编程逻辑器件的两种主要类型是和。

4. 和是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。

5. COMPONENT语句中映射方式包括和。

6. VHDL有、、、四类运算操作符。

7.一个时钟信号CLK的上升沿条件表示为。一个时钟信

号CLK的下降沿条件表示为。

8. 设D0为‘0’, D1为‘0’, D2为‘1’, D2 & D1 & D0 的运算结果是。

9.VHDL的基本描述语句包括一系列和两大基本描述语句。

10. NOT是运算符,表示————,在所有操作符中优先级————。

11. 数字3在VHDL中的整数表示和实数表示分别是和。

12. bit类型和std_logic类型的数值状态分别是和。

13. VHDL中操作符“&”的具体名称是:并置运算符,它的基本功能是:用于位的连接。

14.在VHDL中最常用的库是标准库,最常用的数据包是STD_LOGIC_1164数据包。

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

16. 程序中为变量赋值的符号是为信号赋值的符号是_______

17. 在一个实体的端口方向说明时,输入使用in表示,那么构造体内部不能再使用的输出是用表示;双向端口是用表示;构造体内部可再次使用的输出是用表示。

18.运算操作符是有优先级的,逻辑操作符在所有的操作符中优先级最高。

19. 当前最流行的并成为IEEE标准的硬件描述语言包括______ 和______ 。

20. 表示‘0’‘1’;两值逻辑的数据类型是,表示‘0’‘1’‘X’‘Z’等九值逻辑的数据类型是_____ 。表示空操作的数据类型是_____ 。

21. VHDL程序的基本结构由、、、、和____ 五部分组成。

22. 构造体的描述方式包括三种,分别是、、和。

23. 在VHDL的端口声明语句中,端口方向包括、、和____ 。

24. VHDL的客体包括是、、和,它们是用来存放各种类型数据的容器。

1. 以下哪一种数据类型不属于VHDL的标准数据类型:

(A)ASCII字符(B)错误等级

(C)STD_LOGIC (D)字符串

2. wait until clk ’event and clk=’0’的程序解释是:___。

A.等待clk信号产生下降沿

B.等待clk信号产生上升沿

C.等待clk信号变成高电平

D.等待clk信号变成低电平

3. 以下关于客体的论述,正确的是:

(A)常数一经赋值就无法改变(B)变量的物理载体是系统的中间连线

(C)信号是局部量(D) 变量用“<=”代入,信号用“:=”代入

4. 以下关于进程语句的描述,错误的是:

(A)进程语句的执行与挂起决定于敏感信号量的变化

(B)进程与进程之间是并发的,进程内部的语句是顺序执行的

(C)进程语句可以不设敏感信号量,而使用W AIT语句代替

(D)并发信号代入语句不能用进程语句来代替

5. VHDL最常用的库是。

A、IEEE;

B、STD;

C、WORK;

D、PACKAGE。

6. 以下对于W AIT语句的使用,哪一项是正确的:

(A)process(a,b) (B)process

begin begin

Y<= a and b; Y<=a and b;

wait on a,b; wait for a,b;

end process; end process;

(C)process (a,b) (D)process

begin begin

Y<= a and b; Y<=a and b;

wait for a, b; wait on a,b;

end process; end process;

7、在下列标识符中,()是VHDL合法的标识符。

A、4h_adde

B、h_adde_;

C、h_adder;

D、_h_adde

8、基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。

A、自底向上;

B、自顶向下;

C、积木式;

D、顶层。

9、在VHDL中,()的数据传输是立即发生的,不存在任何延时的行为。

A、信号;

B、常量;

C、数据;

D、变量

10、在VHDL中,()的数据传输是不是立即发生的,目标信号的赋值需要一定的延时时间。

A、信号;

B、常量;

C、数据;

D、变量

11、在VHDL中,为目标变量赋值的符号是()。

A、=:;

B、= ;

C、:= ;

D、<=

12、VHDL的实体声明部分用来指定设计单元的()

A、输入端口;

B、输出端口;

C、引脚;

D、以上均可

13. 下面数据中属于实数的是()。

A. 4.2

B. 3

C. ‘1’

D.“11011”

14、一个设计实体可以拥有一个或多个()

A、设计实体;

B、构造体;

C、输入;

D、输出

15、在元件例化语句中,用()符号实现名称映射,将例化元件端口声明语句中的信号名与PORT MAP中的信号名关联起来。

A、=;

B、:=;

C、=>;

D、<=

16、在VHDL中,为了使已声明的数据类型、子程序、元件能被其它设计实体调用和共享,可以把它们汇集在(D)中。

A、设计实体;

B、程序库;

C、构造体;

D、包集合

17、VHDL中,FOR LOOP语句中的循环变量是一个临时变量,属于LOOP语句的局部变量,()事先声明。

A、必须;

B、不必;

C、其类型要;

D、其属性要

18.在VHDL中,语句“FOR i IN 0TO7LOOP”定义循环次数为()

A、8;

B、7;

C、0;

D、1

19. WITH_SELECT语句属于()语句。

A、顺序

B、顺序或并行

C、并行

D、二者都不是

20.下面数据中属于位矢量的是()。

A. 1.1

B. 5

C. ‘0’

D. “1011”

21. IF语句是_

A. 顺序语句

B.顺序或并行

C. 并行语句

D. 其它

22.在VHDL中,含WAIT语句的进程PROCESS的括号中后()再加敏感信号,否则是非法的。

A、可以;

B、不能;

C、任意;

D、只能

23. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:_____ A.IEEE库 B.VITAL库 C. STD库 D. WORK工作库

24、如果a=0,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是。

A. 0

B. 1

C. 2

D. 不确定

25. 如果a=1,b=0,则逻辑表达式(a XOR b)OR(NOT b AND a)的值是。

A. 0

B. 1

C. 2

D. 不确定

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity JS64 is

port(clk,clr,updn: in std_logic;

qa,qb,qc,qd,qe,qf: out std_logic);

end entity JS64;

architecture rtl of JS64 is

signal count_6:std_logic_vector(5 downto 0);

begin

qa<=count_6(0);

qb<=count_6(1);

qc<=count_6(2);

qd<=count_6(3);

qe<=count_6(4);

qf<=count_6(5);

process(clr,clk) is

begin

if (clr=’1’) then

count_6<=(other=>’0’);

elsif (clk’event and clk=’1’) if (updn=’1’) then

count_6<=count_6+’1’;

else

count_6<=count_6–’1’;

end if;

end if;

end process;

end architecture rtl;

答:该程序采用if多嵌套语句描述的是一个64进制的可逆计数器。clk是时钟信号;clr是高电平信号有效的复位信号;UPDN为控制端,当其为“1”时,进行加法计数,为“0”时进行减法计数。qa,qb,qc,qd,qe,qf为6位输出位。程序第三行调用了标准逻辑无符号程序包。构造体内部使用了进程语句。进程语句内使用if语句,复位信号优先级别最高,时钟信号次之。该计数器是异步复位。

注意:编程题有三道,能根据真值表写出VHDL

程序;能根据电路原理图写出VHDL程序;一般

常用的编程语句能熟练运用