没有合适的资源?快使用搜索试试~ 我知道了~
VHDL程序的设计题.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 195 浏览量
2021-10-04
15:05:30
上传
评论
收藏 233KB DOC 举报
温馨提示
试读
19页
VHDL程序的设计题.doc
资源推荐
资源详情
资源评论
VHDL 程序设计题
四、 编程题(共 50 分)
1、请补全以下二选一 VHDL 程序(本题 10 分)
Entity mux is
port(d0,d1,sel:in bit;
q:out BIT ); (2)
end mux;
architecture connect of MUX is (4)
signal tmp1, TMP2 ,tmp3:bit; (6)
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 ; (10)
2、编写一个 2 输入与门的 VHDL 程序,请写出库、程序包、实体、构造体相关语句,将
端口定义为标准逻辑型数据结构(本题 10 分)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; (2)
ENTITY nand2 IS
PORT (a,b:IN STD_LOGIC; (4)
&
a
b
y
y:OUT STD_LOGIC); (6)
END nand2;
ARCHITECTURE nand2_1 OF nand2 IS (8)
BEGIN
y <= a NAND b; --与 y <=NOT( a AND b);等价 (10)
END nand2_1;
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)); (2)
END decoder_3_to_8;
ARCHITECTURE rtl OF decoder_3_to_8 IS
SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); (4)
BEGIN
indata <= c & b & a; (6)
PROCESS (indata,g1,g2a,g2b)
BEGIN
IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN (8)
CASE indata IS
WHEN "000"=> y <= "11111110";
WHEN "001" => y <= "11111101";
WHEN "" => y <= "11111011"; (10)
WHEN "011" => y <= "11110111";
WHEN "100" => y <= "11101111";
WHEN "101" => y <= "11011111";
WHEN "110" => y <= "10111111"; (12)
WHEN "111" => y <= "01111111";
WHEN OTHERS=> y <= "XXXXXXXX";
END CASE;
ELSE
1 / 19
y <= "11111111"; (14)
END IF;
END PROCESS; (16)
END rtl;
4、三态门电原理图如右图所示,真值表如左图所示,请完成其 VHDL 程序构造体部分。
(本题 14 分)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY tri_gate IS
PORT(din,en:IN STD_LOGIC;
2 / 19
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 ;
四、 编程题(共 50 分)
1、根据一下四选一程序的结构体部分,完成实体程序部分(本题 8 分)
entity MUX4 is
port( (2)
s: in std_logic_vector(1 downto 0); (4)
d: in std_logic_vector(3 downto 0); (6)
y: out std_logic (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
y<=d(3);
else
3 / 19
剩余18页未读,继续阅读
资源评论
huayuya123
- 粉丝: 26
- 资源: 31万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功