VHDL合肥工业大学期末试题(含答案)2007-2008A
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)