1、5、一个信号处于高阻(三态)时的值在VHDL中描述为 Z 。6、将一个信号width定义为一个4位标准逻辑向量为 signal width : std_logic_vector(3 downto 0) 。7、/=是 不相等 操作符,功能是 在条件判断是判断操作符两端不相等 。8、设D0为0, D1为1, D2为, D3为, D3 & D2 & D1 & D0的运算结果是 “0110” ,(D3 or D2)and(D1 and not D0)的运算结果是: 1 。9、赋值语句是(并行/串行) 并行 执行的,if语句是(并行/串行) 串行 执行的。10、请列举三种可编程逻辑器件: EEPROM
2、、 GAL 、 FPGA 。二、 简答(20分,每小题5分)1、简述VHDL程序的基本结构。库 (1)程序包 (2)实体 (3) 结构体 (5) 若答出配置也可加1分2、简述信号与变量的区别。信号延时赋值,变量立即赋值 (2)信号的代入使用 data10011000 end case; else data:00000000 -data = “00000000”; (8) end if; (10) end process;end behave;以上architecture中有哪些错误?请在原程序相应位置改正。四、 编程(共50分,除特殊声明,实体可只写出PORT语句,结构体要写完整)1、用IF语
3、句编写一个二选一电路,要求输入a、b, sel为选择端,输出q。(本题10分)Entity sel2 isPort ( a,b : sel : q : out std_logic);End sel2; (3)Architecture a of sel2 is if sel = 0 then q = a; (6)= b; (9)end a; (10)2、编写一个4位加法计数器VHDL程序的进程(不必写整个结构框架),要求复位信号reset低电平时计数器清零,变高后,在上升沿开始工作;输入时钟信号为clk,输出为q。Process(reset,clk) (2) if reset = 0 then=
4、 “0000”; (4) elsif clkevent and clk = 1 then (6)= q + 1; (9)end process; (10)3、填写完成一个8-3线编码器的真值表(5分),并写出其VHDL程序(10分)。8 -3线编码器真值表enby0y1y210000000000000000010001000001000100000100001100010000100001000001010100000011010000000111xxxxxxxx高阻态entity eight_tri is b: in std_logic_vector(7 downto 0); en: y:
5、out std_logic_vector(2 downto 0) );end eight_tri; (3)architecture a of eight_tri is signal sel: std_logic_vector(8 downto 0); (4) begin sel=en & b; y= “000” when (sel=”100000001”)else “001” when (sel=”100000010”)else “010” when (sel=”100000100”)else “011” when (sel=”100001000”)else “100” when (sel=”
6、100010000”)else “101” when (sel=”100100000”)else “110” when (sel=”101000000”)else “111” when (sel=”110000000”)else (9) “zzz”;4、根据已给出的全加器的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 is port ( a,
7、b,c: carr: inout std_logic; sum: );end adder;architecture adder_arch of adder is sum = a xor b xor c; carr = (a and b) or (b and c) or (a and c);end adder_arch;entity full_add is port ( a,b: in std_logic_vector (3 downto 0); carr: inout std_logic_vector (4 downto 0); sum: out std_logic_vector (3 dow
8、nto 0)end full_add; (5)architecture full_add_arch of full_add iscomponent adderport ( a,b,c: );end component; (10) carr(0) oe= 0 ; we IF(ready=) THEN next_state IF(read_write=read;= write ; WHEN read = 1 ; WHEN write = idle ;=write; END CASE; END PROCESS state_comb; state_clocked:PROCESS(clk) IF clkevent and clk = 1 THEN present_state=next_state; END PROCESS state_clocked;END state_machine;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1