4.VHDL程序文件的后缀名是( ) A.*. vhe B.*. vhd C.*.v D.*.vhh 5. QUARTUS II支持下列哪个公司提供的器件( )。 A.ALTEL B. ALTERA C. XILINX D. LATTICE 三、名词解释,写出下列缩写的英文全称及中文含义:(本题共5小题,每小题2分,共10分) 1、FPGA: 2、HDL: 3、CPLD: 4、ASIC: 5、JTAG: 四、程序填空:(本题共2小题,20个空,每空1分,共20分) 1、下面的程序是采用BLOCK语句来描述全加器电路,全加器的顶层框图如图1,该全加器由两个半加器和必要的组合逻辑构成,内部结构如图2,填写部分语句,使下面程序完整。 library IEEE; use IEEE.std_logic_1164.all; adder IS (ADD1,ADD2,CARIN : BIT; SUM,CAROUT :OUT BIT); 图 1 ADD1 ADD2 CARIN 全加器 SUM CAROUT END adder; ARCHITECTURE exam_of_blk OF IS sum1,c1,c2:bit; BEGIN Half_add1 :BLOCK BEGIN sum1<= ; ADD1 ADD2 半加器 c1 CARIN sum1 SUM 半加器 c2 c1<= ; END BLOCK Half_add1; BEGIN 图 2 or CAROUT Half_add2 :BLOCK ; ; END BLOCK Half_add2; Connecter :BLOCK 第 2 页 共 6 页
BEGIN ; END BLOCK Connecter; END exam_of_blk; 2、下面是一个4选1数据选择器的VHDL程序,填写部分语句,使程序完整。 考 生 信 息 栏 系 专业 级 班级 姓名 学号 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY multi_4v IS 装 订 线 ( S : IN ( DOWNTO ); Y : OUT STD_LOGIC ); A,B,C,D : IN STD_LOGIC; END multi_4v; ARCHITECTURE a OF IS BEGIN PROCESS (S=\"00\") THEN Y <= A; ELSIF (S=\"01\") THEN Y <= B; ELSIF ( ) THEN Y <= C; (S=\"11\") THEN ; END IF; END PROCESS; END a; 五、程序分析:(本题共3小题,共20分) 1、分析该程序,已知CLK波形,试给出qa、qb的输出(6分)。 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; 第 3 页 共 6 页
Entity exam is Port ( clk : in std_logic; qa: out std_logic_vector( 3 downto 0); qb: out std_logic_vector( 3 downto 0)); end exam; architecture svsv of exam is signal b: std_logic_vector(3 downto 0) :=”0000”; begin process(clk) variable a : std_logic_vector( 3 downto 0):=”0000”; begin if clk’event and clk=’1’ then a:=a+1; a:=a+1; b<=b+1; b<=b+1; end if; qa<=a; qb<=b; end process; end svsv; 2、分析该程序,按表格列出给定输入时,相应输出的值,并说明程序所完成的功能(6分)。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity exam1 is port(a, b: in std_logic_vector (2 downto 0); m: out std_logic_vector( 5 downto 0)); end exam1; architecture exam1_arc of exam1 is signal temp1: std_logic_vector( 2 downto 0); signal temp2: std_logic_vector( 3 downto 0); signal temp3: std_logic_vector( 4 downto 0); begin temp1<=a when b(0)='1' else \"000\"; temp2<=(a & '0') when b(1)='1' else \"0000\"; temp3<=(a & \"00\") when b(2)='1' else \"00000\"; m<=temp1+temp2+('0' & temp3); end exam1_arc; 第 4 页 共 6 页
a 001 110 100 考 生 信 息 栏 系 专业 级 班级 姓名 学号 b 101 011 111 m 3、分析该程序,并画出状态转换图(8分)。 ENTITY statmach4 IS PORT( clk : IN BIT; input1: IN BIT; reset : IN BIT; output1: OUT INTEGER RANGE 0 TO 4); END statmach4; ARCHITECTURE a OF statmach4 IS TYPE STATE_TYPE IS (s0, s1,s2,s3); SIGNAL state : STATE_TYPE; BEGIN PROCESS (clk) BEGIN IF reset = '1' THEN state <= s0; ELSIF (clk'event AND clk = '0') THEN CASE state IS WHEN s0=> if input=’1’ then output<=0; state <= s1; else output<=4; state<=s0; end if; WHEN s1=> if input=’1’ then output<=1; state <= s2; else output<=4; state<=s1; end if; WHEN s2=> if input=’1’ then output<=2; state <= s3; else output<=4; state<=s2; end if; WHEN s3=> if input=’1’ then output<=3; state <= s0;
装 订 线 第 5 页 共 6 页
else output<=4; state<=s3; end if; END CASE; END IF; END PROCESS; END a; 六、编程:(本题共2小题,共20分) 1、编写一个程序,将输入的四位二进制数转换成控制七段数码管显示的七位信号输出,该数码管为共阴数码管(8分)。 2、利用VHDL语言设计一个8位二进制数的可逆计数器(可逆即:既可加也可减),该计数器具有异步清零、同步使能、同步预置功能(12分)。 要求:输入端口为:1)clk:计数时钟;2)clr:低电平清零;3)en:高电平使能; 4)load:高电平置数;5)updown:高电平时加计数,低电平时减计数; 6)din[7:0]:预置数输入端。 输出端口为:q[7:0]:计数数据输出。
第 6 页 共 6 页
因篇幅问题不能全部显示,请点此查看更多更全内容