当前位置:文档之家› EDA期末试卷

EDA期末试卷

《EDA》期末试卷
一、选择题(每小题3分,共30分)
1、在下图中,F0的逻辑关系为:
A.A0⊕A1 B.A0⊙A1 C.A0·A1 D.A0·A1
2、在VHDL中,用语句()表示clock的下降沿。

A.clock='1'
B.clock'EVENT AND clock='1'
C.clock='0'
D.clock'EVENT AND clock='0'
3、如果p1=’1’,p2=’1’,则执行z <= a WHEN p1 = '1' ELSE b WHEN p2 = '1' ELSE c ;之后z 的值为:
A.a
B.b
C.c
D.不确定
4、进程中的信号赋值语句,其信号更新是:
A.按顺序完成 B.比变量更快完成 C.在进程最后完成 D.都不对
5、不完整的IF语句,其综合结果可实现:
A.时序逻辑电路
B.组合逻辑电路
C.双向电路
D.三态控制电路
6、reg的数据类型为std_logic_vector(7 downto 0),初值为FF,执行reg(0)<=’0’;reg(7 downto 1)<=reg(6 downto 0);之后,reg的值为:
A.FF B.FE C.FC D.FD
7、在VHDL中()不能将信息带出对它定义的当前进程。

A. 信号
B. 常量
C. 数据
D. 变量
8、执行下列语句后Q的值等于:
……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);
……
E<=(2=>’1’, 4=>’1’, OTHERS=>’0’);
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));
……
A.”11011011”
B.”00110100”
C.”11011001”
D.”00101100”
9、在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。

A.idata <= “00001111”;
B.idata <= b”0000_1111”;
C.idata <= X”AB”;
D.idata <= B”21”;
10、在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的。

A.idata := 32;
B.idata <= 16#A0#;
C.idata <= 16#7#E1;
D.idata := B#1010#;
二、分析题(每题8分,共40分)
1、下图为1位全减器的电路图,其中h_suber为半减器。

减法运算为x-y-sub_in=diffr,sub_in为低位借位,sub_out为结果借位。

给出半减器和全减器的真值表。

2、利用一位全减器设计出四位全减器的电路图,简要说明工作原理。

3、分析下图,用VHDL语言实现该电路图的功能。

4、分析下面的分频器程序,回答下面的问题:
FOUT与CLK的频率之比、FULL与CLK的频率之比、FULL与CNT2的频率之比和CNT2与FOUT的频率之比,说明原因。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DVF IS
PORT ( CLK : IN STD_LOGIC;
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
FOUT : OUT STD_LOGIC );
END;
ARCHITECTURE one OF DVF IS
SIGNAL FULL : STD_LOGIC;
BEGIN
P_REG: PROCESS(CLK)
VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF CLK'EVENT AND CLK = '1' THEN
IF CNT8 = "11111111" THEN
CNT8 := D;
FULL <= '1';
ELSE CNT8 := CNT8 + 1;
FULL <= '0';
END IF;
END IF;
END PROCESS P_REG ;
P_DIV: PROCESS(FULL)
VARIABLE CNT2 : STD_LOGIC;
BEGIN
IF FULL'EVENT AND FULL = '1' THEN
CNT2 := NOT CNT2;
IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0';
END IF;
END IF;
END PROCESS P_DIV ;
END;
5、分析下段程序,说明代码表达的是什么类型的状态机,详述其功能和逻辑过程,并画出它的状态图。

LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY xulie IS
PORT(DIN,CLK,CLR : IN STD_LOGIC;
AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END xulie;
ARCHITECTURE behav OF xulie IS
TYPE states IS (S0,S1,S2,S3,S4,S5,S6,S7,S8);
SIGNAL Q : states ;
SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
D <= "11100101" ;
PROCESS( CLK, CLR )
BEGIN
IF CLR = '1' THEN Q <= S0 ;
ELSIF CLK'EVENT AND CLK='1' THEN
CASE Q IS
WHEN S0=> IF DIN = D(7) THEN Q <= S1 ; ELSE Q <= S0 ; END IF ;
WHEN S1=> IF DIN = D(6) THEN Q <= S2 ; ELSE Q <= S0 ; END IF ;
WHEN S2=> IF DIN = D(5) THEN Q <= S3 ; ELSE Q <= S0 ; END IF ;
WHEN S3=> IF DIN = D(4) THEN Q <= S4 ; ELSE Q <= S0 ; END IF ;
WHEN S4=> IF DIN = D(3) THEN Q <= S5 ; ELSE Q <= S0 ; END IF ;
WHEN S5=> IF DIN = D(2) THEN Q <= S6 ; ELSE Q <= S0 ; END IF ;
WHEN S6=> IF DIN = D(1) THEN Q <= S7 ; ELSE Q <= S0 ; END IF ;
WHEN S7=> IF DIN = D(0) THEN Q <= S8 ; ELSE Q <= S0 ; END IF ;
WHEN OTHERS => Q <= S0 ;
END CASE ;
END IF ;
END PROCESS ;
PROCESS( Q )
BEGIN
IF Q = S8 THEN AB <= "1010" ;
ELSE AB <= "1011" ;
END IF ;
END PROCESS ;
END behav ;
三、设计题(每题10分,共30分)
1、用VHDL语言设计一个带有异步复位和同步时钟使能的25进制加法计数器(从0计数到24)。

2、用VHDL语言设计一个10分频电路,要求高低电平时间宽度之比为2:3。

3、用VHDL语言实现下图的逻辑关系,其中CLK为输入信号,LOCK、CLR为输出信号。

(提示:实现一个4位二进制加法计数器:从0计数到15,当计数器计数到某一个值时,LOCK变为高电平,其余时刻都为低电平,同理CLR)。

相关主题