VHDL合肥工业大学期末试题(含答案)2007-2008A

  • 格式:doc
  • 大小:114.00 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥工业大学

2007/2008 学年第一学期末考试试题答案及评分标准

(A卷)

一、填空题(20分,每空格1分)

1、VHDL是否区分大小写?不区分。

2、digital_ _8标识符合法吗?不合法。12_bit标识符合法吗?不合法。

signal标识符合法吗?不合法。

3、结构体有三种描述方式,分别是数据流、行为、

和结构化。

4、请分别列举一个常用的库和程序包library ieee 、use ieee.std_logic_1164.all 。

5、一个信号处于高阻(三态)时的值在VHDL中描述为‘Z’。

6、将一个信号width定义为一个4位标准逻辑向量为

signal width : std_logic_vector(3 downto 0) 。

7、/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。

8、设D0为'0', D1为'1', D2为'1', D3为'0', D3 & D2 & D1 & D0的运算结果是

“0110”,(D3 or D2)and(D1 and not D0)的运算结果是:‘1’。

9、赋值语句是(并行/串行)并行执行的,if语句是(并行/串行)串行执行的。

10、请列举三种可编程逻辑器件: EEPROM 、 GAL 、 FPGA 。

二、简答(20分,每小题5分)

1、简述VHDL程序的基本结构。

程序包(2)

实体(3)

结构体(5)若答出配置也可加1分

2、简述信号与变量的区别。

信号延时赋值,变量立即赋值(2)

信号的代入使用<=,变量的代入使用:=;(4)

信号在实际的硬件当中有对应的连线,变量没有(5)

3、简述可编程逻辑器件的优点。

●集成度高,可以替代多至几千块通用IC芯片

–极大减小电路的面积,降低功耗,提高可靠性(1)

●具有完善先进的开发工具

–提供语言、图形等设计方法,十分灵活

–通过仿真工具来验证设计的正确性(2)

●可以反复地擦除、编程,方便设计的修改和升级(3)

●灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间(4)

●保密性好(5)

4、试比较moore状态机与mealy状态机的异同。

Moore输出只是状态机当前状态的函数(3)

Mealy输出为有限状态机当前值和输入值的函数(5)

三、判断题(10分)

library ieee;

use ieee.std_logic_arith.all;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

以上库和程序包语句有无错误?有,有的话请在原程序相应位置改正。(2)

entity rom is

port(

addr: in std_logic_vector(0 to 3);

ce: in std_logic;

data:out std_logic_vector(7 downto 0);

)

end rom;

以上port语句有无错误?有,有的话请在原程序相应位置改正。(4)

architecture behave of rom is

begin

process(ce,addr)(6)begin

if ce='0' then

case addr is

when "0000"=>

data<="10001001";

when "0001"=>

data<="10001010";

when "0010"=>

data<="10001011";

when "0011"=>

data<="10001100";

when "0100"=>

data<="10001101";

when "0101"=>

data<="10001110";

when "0110"=>

data<="10001111";

when "0111"=>

data<="10010000";

when "1000"=>

data<="10010001";

when "1001"=>

data<="10010010";

when "1010"=>

data<="10010011";

when "1011"=>

data<="10010100";

when "1100"=>

data<="10010101";

when "1101"=>

data<="10010110";

when "1110"=>

data<="10010111";

when others=>

data<="10011000"; end case;

else

data:="00000000"; --data <= “00000000”; (8)end if; (10)

end process;

end behave;

以上architecture中有哪些错误?请在原程序相应位置改正。

四、编程(共50分,除特殊声明,实体可只写出PORT语句,结构体要写完整)

1、用IF语句编写一个二选一电路,要求输入a、b, sel为选择端,输出q。(本题10分)

Entity sel2 is

Port (

a,b : in std_logic;

sel : in std_logic;

q : out std_logic

);

End sel2; (3)

Architecture a of sel2 is

begin

if sel = ‘0’ then

q <= a; (6)

else

q <= b; (9)

end if;

end a; (10)

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

Process(reset,clk) (2)

begin

if reset = ‘0’ then

q <= “0000”; (4)