VHDL程序设计题.pptx
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,tmp3:bit;
begin cale:
block
begin tmp1<=d0 and sel;
tmp2<=d1 and (not sel)
tmp3<= tmp1 and tmp2;
q <= tmp3;
(8)
end block cale;
end CONNECT
;
(4) (6)
(10)
2、编写一个 2 输入与门的 VHDL 程序,请写出库、程序包、实体、构造体相关语句,将 端口定义为标准逻辑型数据结构(本题 10 分)
y<=d(3);
else
3
null; end if; end process; end behave;
学海无 涯
2、编写一个数值比较器 VHDL 程序的进程(不必写整个结构框架),要求使能信号 g 低电 平时比较器开始工作,输入信号 p = q,输出 equ 为‘0’,否则为‘1’。(本题 10 分)
entity eight_tri is port( b: in std_logic_vector(7 downto 0); en: in std_logic; y: out std_logic_vector(2 downto 0) );
END decoder_3_to_8;
ARCHITECTURE rtl OF decoder_3_to_8 IS SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);
BEGIN indata <= c & b & a;
PROCESS (indata,g1,g2a,g2b) BEGIN IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN CASE indata IS WHEN "000"=> y <= "11111110"; WHEN "001" => y <= "11111101"; WHEN "010" => y <= "11111011"; WHEN "011" => y <= "11110111"; WHEN "100" => y <= "11101111"; WHEN "101" => y <= "11011111"; WHEN "110" => y <= "10111111"; WHEN "111" => y <= "01111111"; WHEN OTHERS=> y <= "XXXXXXXX"; END CASE; ELSE
(8)
BEGIN
y <= a NAND b; --与 y <=NOT( a AND b);等价
END nand2_1;
(10)
3、根据下表填写完成一个 3-8 线译码器的 VHDL 程序(16 分)。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY decoder_3_to_8 IS PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC; y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
学海无 涯
四、 编程题(共 50 分)
VHDL 程序设计题
1、请补全以下二选一 VHDL 程序(本题 10 分) Entity mux is
port(d0,d1,sel:in bit;
q:out BIT );
(2)
end mux;
architecture connect of MUX
is
signal tmp1, TMP2
(8)
);
end MUX4; architecture behave of MUX4 is
begin
process(s)
begin
if (s="00") then
y<=d(0); elsif (s="01") then
y<=d(1);
elsif (s="10") then
y<=d(2);
elsif (s="11") then
a b
&
y
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY nand2 IS PORT (a,b:IN
STD_LOGIC;
(2) (4)
0
学海无 涯
y:OUT STD_LOGIC); (6)
END nand2;
ARCHITECTURE nand2_1 OF nand2 IS
2
学海无 涯
dout : OUT STD_LOGIC); END tri_gate ; ARCHITECTURE zas OF tri_gate IS BEGIN
PROCESS (din,en) BEGIN
IF (en=‘1') THEN dout <= din; ELSE dout <= ‘Z’; END IF; END PROCESS ; END zas ;
process(p,q)
(2)
begin
if g='0' then
(4)
if p = q then
equ <= '0';
ቤተ መጻሕፍቲ ባይዱ
(6)
else
equ <= '1';
(8)
end if;
else
equ <= '1';
(10)
end if;
end process;
3、填写完成一个 8-3 线编码器的 VHDL 程序(16 分)。 Library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
1
(2) (4) (6) (8) (10) (12)
学海无 涯
y <= "11111111"; END IF; END PROCESS; END rtl;
(14) (16)
4、三态门电原理图如右图所示,真值表如左图所示,请完成其 VHDL 程序构造体部分。 (本题 14 分)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tri_gate IS PORT(din,en:IN STD_LOGIC;
四、 编程题(共 50 分)
1、根据一下四选一程序的结构体部分,完成实体程序部分(本题 8 分)
entity MUX4 is
port(
(2)
s: in std_logic_vector(1 downto 0); d:
(4)
in std_logic_vector(3 downto 0); y:
(6)
out std_logic