EDA程序设计试题及答案讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.请画出下段程序的真值表,并说明该电路的功能。
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY aaa IS
PORT( oe,dir :IN STD_LOGIC ;
a,b : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0 ) ;
END aaa ;
ARCHITECTURE ar OF aaa IS
BEGIN
PROCESS(oe , dir ) 输入输出
BEGIN a1 a0 x3 x2 x1 x0 IF oe=’0’THEN a<=”zzzzzzzz”; b<=”zzzzzzzz”; 0 0 0 0 0 1 ELSIF oe=’1’THEN 0 1 0 0 1 0 IF dir=’0’THEN b<=a; 1 0 0 1 0 0
ELSIF dir=’1’THEN a<=b; 1 1 1 0 0 0
ENDIF;
END IF ;
END PROCESS ;
END ar ;
功能为:2-4译码器…………………………………………..4分
2.请说明下段程序的功能,写出真值表,并画出输入输出波形。
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
ENTITY aaa IS
PORT( reset,clk: IN STD_LOGIC;
q: BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END aaa;
ARCHITECTURE bd OF aaa IS
BEGIN
PROCESS(clk,reset)
BEGIN
IF (reset='0') THEN q<="000";
ELSIF (clk'event AND clk='1') THEN
IF (q=5) THEN q<="000";
ELSE q<=q+1;
END IF;
END IF;
END PROCESS;
END bd;
功能为:带进位借位的4位加/减法器。…………………………………..3分
输入输出波形图如下:………………………………………………………7分
m
b[3..0]
c[3..0]
d
1. 试用VHDL语言编程实现74LS273芯片的功能。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; 2’ENTITY ls273 IS 1’PORT(
clr, clk : IN std_logic;
d : IN std_logic_vector(7 DOWNTO 0 );
q : OUT std_logic_vector(7 DOWNTO 0 ); 4’
);
END ls273;
ARCHITECTURE lock8 OF ls273 IS 1’BEGIN
PROCESS ( clk ) 1’BEGIN
IF (CLR=’0’) THEN q<=”00000000” ; 2’
ELSEIF (clk’event AND clk=’1’) THEN q<=d; 3’
ELSEIF ( clk=’0’ ) THEN q<=q; 1’
END IF;
END PROCESS;
END lock8;
3. 请用VHDL语言编程实现一个状态向量发生器。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; 2’ENTITY stas IS 1’PORT(
cp, rst : IN std_logic;
p : BUFFER std_logic_vector(7 DOWNTO 0 ); 2’
);
END stas;
ARCHITECTURE arstas OF stas IS 1’BEGIN
PROCESS (cp ) 1’
BEGIN
IF(rst=”0”) THEN p<=”00000000”; 1’
ELSEIF (cp’event AND cp=’1’ ) 1’
WITH p SELECT
p<= ”10101010”WHEN “00000000”;
”01010101”WHEN “10101010”;
”00001111”WHEN “01010101”;
”11110000”WHEN “00001111”;
”11111111”WHEN “11110000”;
”00000000”WHEN “11111111”;
”00000000”WHEN OTHERS; 6’
END IF
END PROCESS;
END arstas;
1. 阅读下段程序,画出该电路的真值表,并详细说明该电路的功能。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ab_8 IS
PORT( a, b : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
ahb, alb, aeb: OUT STD_LOGIC);
END ab_8;
ARCHITECTURE bd OF ab_8 IS
BEGIN
PROCESS(a,b)
BEGIN
IF a>b THEN ahb<=’1’; alb<=’0’; aeb<=’0’;
ELSIF a
ELSE ahb<=’0’; alb<=’0’; aeb<=’1’;
END IF;
END PROCESS;
END bd;
1.(1
(2)该电路是一个8位两输入比较器,(2’)
a、b是两个8位输入端;(1’)
ahb、alb和aeb为比较结果输出端,某种比较结果为真时,相应的输出端为“1”,其余端输出为“0”。(2’)