EDA程序设计试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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’)