《2007-08硬件描述语言试题A(共11页).doc》由会员分享,可在线阅读,更多相关《2007-08硬件描述语言试题A(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上中 北 大 学 硬件描述语言及器件 课程考试 试题2007/2008 学年 第 一 学期试题类别 A 拟题日期 2007.12.20 拟题教师 李圣昆 课程编号 教师编号 教学院长 系主任 课程结束时间 08.1.11 印刷份数 使用班级 /2/3 备注:(1)试题要求按指定规格计算机打印,并将其电子稿于课程结束前20天交评估与考试中心命题科。 (2)试题类别指A卷或B卷。 (3)试题印制手续由院教务科统一到评估与考试中心命题科办理。 2007/2008 学年第 一 学期末考试试题(A卷)硬件描述语言及器件使用班级:/2/3总分得分一、 填空题(20分,每空格1分)1
2、、VHDL是否区分大小写? 。2、digital_ _8标识符合法吗? 。12_bit标识符合法吗? 。signal标识符合法吗? 。 3、结构体有三种描述方式,分别是 、 、和 。4、请分别列举一个常用的库和程序包 、 。5、一个信号处于高阻(三态)时的值在VHDL中描述为 。6、将一个信号width定义为一个4位标准逻辑向量的语句为 。7、/=是 操作符,功能是 。8、设D0为0, D1为1, D2为1, D3为0, D3 & D2 & D1 & D0的运算结果是 ,(D3 or D2)and(D1 and not D0)的运算结果是: 。9、赋值语句是(并行/串行) 执行的,if语句是(
3、并行/串行) 执行的。10、请列举三种可编程逻辑器件: 、 、 。得分二、 简答(20分,每小题5分)1、简述VHDL程序的基本结构。2、简述信号与变量的区别。3、简述可编程逻辑器件的优点。4、试比较moore状态机与mealy状态机的异同。得分三、判断题(10分)library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;以上库和程序包语句有无错误? ,有的话请在原程序相应位置改正。entity rom is port(addr: in std_logic_vector(0 to 3);ce:in std
4、_logic;data:out std_logic_vector(7 downto 0);)end rom;以上port语句有无错误? ,有的话请在原程序相应位置改正。architecture behave of rom isbeginprocessbegin if ce=0 thencase addr iswhen 0000=datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadata=;end case; elsedata:=;end process;end behave;以上architecture中有哪些错误?请在原程
5、序相应位置改正。得分四、 编程(共50分,除特殊声明,实体可只写出PORT语句,结构体要写完整)1、用IF语句编写一个二选一电路,要求输入a、b, sel为选择端(低电平选择a端,高电平选择b端),输出q。(本题10分)2、编写一个4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变高后,在上升沿开始工作;输入时钟信号为clk,输出为q。(本题10分)3、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。8 -3线编码器真值表enby0y1y2100010011010101111101111110xxxxxxxx高阻态4
6、、根据已给出的全加器的VHDL程序,试写出一个4位逐位进位全加器的VHDL程序。(本题15分)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity adder isport (a,b,c:in std_logic;carr: inout std_logic;sum: out std_logic);end adder;architecture adder_arch of adder isbeginsum = a xor b xor c
7、;carr oe= ; we= ; IF(ready=1) THEN next_state=decision; ELSE next_state oe= ; we= ; IF(read_write=1) THEN next_state=read; ELSE next_state oe= ; we= ; IF(ready=1) THEN next_state=idle; ELSE next_state oe= ; we= ; IF(ready=1) THEN next_state= ; ELSE next_state=write; END IF; END CASE; END PROCESS state_comb; state_clocked:PROCESS(clk) BEGIN IF THEN present_state=next_state; END IF; END PROCESS state_clocked;END state_machine;专心-专注-专业