ATEMP<=?0?& A; BTEMP<=?0?& B;
SUMTEMP<= (ATEMP+ BTEMP );
SUM<=SUMTEMP(9 DOWNTO 0); COUT<= ( SUMTEMP(10) ); END;
6.在下面横线上填上合适的语句,完成计数器的设计。
说明:设计一个带有异步复位和时钟使能的一位八进制加法计数器(带进位输出端)。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT8 IS
PORT (CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR( 43 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT8;
ARCHITECTURE BEHAV OF CNT8 IS BEGIN
PROCESS(CLK, RST, EN)
( SIGANL ) CQI : STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF RST = '1'
THEN CQI := “000”;
( IF ) CLK'EVENT AND CLK='1' THEN IF EN = '1' THEN
IF CQI < \ CQI :=( CQL+1 ) ; ELSE CQI := ( “000” ) ; END IF; END IF;
END IF; IF CQI = \
ELSE COUT <= '0'; END IF; CQ <= CQI; END PROCESS; END BEHAV; 7、程序注释
library ieee; 定义元件库 use ieee.std_logic_1164.all; ENTITY aa1 is 定义实体
port(a,b,s:in bit; a,b,s为输入端口,数据类型bit end aa1; 实体描述结束
architecture one of aa1 is 定义结构体 y<=a when s='0' else b; 当S=0时 y=a,否则等b end one; 结构体描述结束
逻辑功能: 2选1选择器
signal s1 : bit ; 定义信号s1 begin
process (clk,d) 进程语句 begin
if (clk = ?1?) 判断高电平 then
s1 <= d; d向信号赋值 end if;
q <= s1 ; 信号s1 向q赋值 end process; end bo;
逻辑功能: 锁存器描述 8.阅读以下程序,绘制模块图电路,并简述其功能 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY EXAM3 IS
PORT(rst,clk,plus_sub: IN STD_LOGIC;
dou: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;
ARCHITECTURE ART OF EXAM3 IS BEGIN
PROCESS(clk,rst,plus_sub) IS begin
IF rst=?1? THEN
dout<=(others=>?0?);
ELSIF (CLK?EVENT AND CLK=?1?) THEN If plus_sub=?1? then
If(dout=9) then dout<=”0000”; Else dout<=dout+1; End if;
Elsif plus_sub=?0? then
If (dout=0) then dout<=”1001”; Else dout<=dout-1; End if; End if; END IF;
END PROCESS; END;
答:带异步复位端子的十进制可逆计数器。
9、阅读以下程序,绘制模块图电路,并简述其功能 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY ENCODER IS
PORT (A,B,C,D,E,F,G,H:IN STD_LOGIC: Y_0,Y_1,Y_2:OUT STD_LOGIC); END ENCODER;
ARCHITECTURE ART1 OF ENCODER IS
SIGNAL OUTS:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN
OUTS (2 DOWNTO 0)<= \ \ \SE \
\ \ \ \ \;
Y_0<=OUTS(0); Y_1<=OUTS(1); Y_2<=OUTS(2); END ART1; 答:
8-3优先编码器(模块图略)。
10、阅读以下程序,画出对应的硬件电路图原理图,并描述其功能; LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY EXAMPLE IS
PORT(A,B,C: IN BOOLEAN;
OUTPUT: OUT BOOLEAN); END;
ARCHITECTURE ART OF EXAMPLE IS BEGIN
PROCESS(A,B,C) IS
VARIABLE N: BOOLEAN; BEGIN
IF A THEN N:=B; ELSE N:=C;
END IF;
OUTPUT<=N; END PROCESS;
END;
答:2-1数据选择器。
11、判断下面的程序中是否有错误,请直接给出改正后完整的程序。
Library ieee;
Use ieee.std_logic_1164.all; Entity mux21 is
Port( a , b: in std_logic: Sel: in std_logic; C: out std_logic; );
End sam2;
Architecture one of mux21 is Begin
If sel=?0? then c:=a; Else c:=b; End if; End two; 答:
Library ieee;
Use ieee.std_logic_1164.all; Entity mux21 is
Port( a , b: in std_logic: Sel: in std_logic;
C: out std_logic ;); End mux21;
Architecture one of mux21 is Begin
Process (a,b,sel) begin
If sel=?0? then c<=a; Else c<=b; End if;
End process; End one;
12、执行下列语句后,计算Q的值。 ……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2); ……
E<=(2=>?1?, 4=>?0?, OTHERS=>?1?);
Q<=(2=>E (2), 4=>E (3), 5=>?1?, 7=>E (5), OTHERS=>E (4)); ……
答: Q=“00101101”
13. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL syntax error: signal declaration must have ?;?,but found begin instead. 分析其错误的可能原因。 答: 信号声明缺少分号。
14. VHDL文本编辑中编译时出现如下的报错信息
Error: Can?t open VHDL “WORK” 分析其错误原因。 答:错将设计文件存入了根目录,并将其设定成工程。 15. VHDL文本编辑中编译时出现如下的报错信息
Error: Can?t open VHDL “WORK” 分析其错误原因。 答:错将设计文件的后缀写成.tdf,而非.vhd 。 16. VHDL文本编辑中编译时出现如下的报错信息
Error: VHDL Design File “mux21” must contain an entity of the same name 分析其错误原因。
答:设计文件的文件名与实体名不一致。
17. 在下面横线上填上合适的语句,完成一个逻辑电路的设计, 其布尔方程为 Y=(A+B)(C⊙D)+(B⊕F)。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY COMB IS
PORT(A, B,C,D,E,F,: IN STD_LOGIC; Y: OUT STD_LOGIC); END COMB;
ARCHITECTURE ONE OF COMB IS BEGIN
Y<=(A OR B) AND (C (NXOR D) OR (B ( XOR)F); End;
18. 在下面横线上填上合适的语句,完成 4 位异步计数器的设计。 说明:4 位异步计数器可以用D 触发器器组成。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF1 IS
PORT(D,CLK:IN STD_LOGIC; Q, QB: OUT STD_LOGIC); END DFF1;
ARCHITECTURE BEHAVE OF DFF1 IS BEGIN
PROCESS(CLK) BEGIN
IF CLK= '1' AND CLK'EVENT THEN Q <=D; QB<=NOT D; END IF;
END PROCESS; END BEHAVE; LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY RPLCONT IS
PORT( CLK : IN STD_LOGIC;