《中北大学200708硬件描述语言试题(共11页).doc》由会员分享,可在线阅读,更多相关《中北大学200708硬件描述语言试题(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上中 北 大 学试题答案及评分标准 硬件描述语言及器件 课程(课程名称须与教学任务书相同)2007/2008 学年 第 一 学期试题类别 A 拟题日期 2008-1-6 拟题教师 李圣昆 课程编号 教师编号 使用班级 /2/3 备注:试题答案要求按指定规格计算机打印,并将其文本与电子稿一并上交: 校级考试课程交评估与考试中心命题科; 院级考试课程交院教务科。 2007/2008 学年第 一 学期末考试试题答案及评分标准(A卷)硬件描述语言及器件使用班级:/2/3总分得分一、 填空题(20分,每空格1分)1、VHDL是否区分大小写? 不区分 。2、digital_ _8标
2、识符合法吗? 不合法 。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,
3、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程序的基本结构。库(1)程序包(2)实体(3)结构体(5) 若答出配置也可加1分2、简述信号与变量的区别。信号延时赋值,变量立即赋值(2)信号的代入使用datadatadatadatadatadatadatadatadat
4、adatadatadatadatadatadatadata=;end case; elsedata:=; -data = “”;(8)end if;(10)end process;end behave;以上architecture中有哪些错误?请在原程序相应位置改正。得分四、 编程(共50分,除特殊声明,实体可只写出PORT语句,结构体要写完整)1、用IF语句编写一个二选一电路,要求输入a、b, sel为选择端,输出q。(本题10分)Entity sel2 isPort (a,b : in std_logic;sel : in std_logic;q : out std_logic);End
5、sel2;(3)Architecture a of sel2 isbeginif sel = 0 thenq = a;(6)elseq = b;(9)end if;end a;(10)2、编写一个4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变高后,在上升沿开始工作;输入时钟信号为clk,输出为q。(本题10分)Process(reset,clk)(2)beginif reset = 0 thenq = “0000”;(4)elsif clkevent and clk = 1 then(6)q = q + 1;(9)end if;end pr
6、ocess;(10)3、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。8 -3线编码器真值表enby0y1y2100010011010101111001101111011110xxxxxxxx高阻态entity eight_tri is port(b:in std_logic_vector(7 downto 0);en:in std_logic;y:outstd_logic_vector(2 downto 0);end eight_tri;(3)architecture a of eight_tri is signal sel: std_logic_vector(
7、8 downto 0);(4)beginsel=en & b;y= “000” when (sel=”)else“001” when (sel=”)else“010” when (sel=”)else“011” when (sel=”)else“100” when (sel=”)else“101” when (sel=”)else“110” when (sel=”)else“111” when (sel=”)else(9)“zzz”;(10)end a;4、根据已给出的全加器的VHDL程序,试写出一个4位逐位进位全加器的VHDL程序。(本题15分)library IEEE;use IEEE.s
8、td_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;carr = (a and b) or (b and c) or (a and c);end adder_arch;entity full
9、_add isport (a,b: instd_logic_vector (3 downto 0);carr: inout std_logic_vector (4 downto 0);sum: outstd_logic_vector (3 downto 0);end full_add;(5)architecture full_add_arch of full_add iscomponent adderport (a,b,c:instd_logic;carr: inoutstd_logic;sum: out std_logic);end component;(10)begincarr(0) oe
10、= 0 ; we= 0 ; IF(ready=1) THEN next_state=decision; ELSE next_state oe= 0 ; we= 0 ; IF(read_write=1) THEN next_state=read; ELSE next_state oe= 1 ; we= 0 ; IF(ready=1) THEN next_state=idle; ELSE next_state oe= 0 ; we= 1 ; IF(ready=1) THEN next_state= idle ; ELSE next_state=write; END IF; END CASE; END PROCESS state_comb; state_clocked:PROCESS(clk) BEGIN IF clkevent and clk = 1 THEN present_state=next_state; END IF; END PROCESS state_clocked;END state_machine;专心-专注-专业