数字电路第二次试验

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DECODER38 IS
PORT(
        A2,A1,A0:IN STD_LOGIC;
        YOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END DECODER38;

ARCHITECTURE RTL OF DECODER38 IS
SIGNAL TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
 TEMP<=A2&A1&A0;  ##这个句子很有可能忘掉!!
 YOUT<= "11111110" WHEN TEMP="000" ELSE
        "11111101" WHEN TEMP="001" ELSE
        "11111011" WHEN TEMP="010" ELSE
        "11110111" WHEN TEMP="011" ELSE
        "11101111" WHEN TEMP="100" ELSE
        "11011111" WHEN TEMP="101" ELSE
        "10111111" WHEN TEMP="110" ELSE
        "01111111" WHEN TEMP="111" ELSE
        "11111111";  ##这里容易加when others,记住别加!!
END RTL;

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY MUX41BUS IS
PORT(
        SEL1,SEL0:IN STD_LOGIC;
        A,B,C,D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
        YOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END MUX41BUS;

ARCHITECTURE RTL OF MUX41BUS IS
SIGNAL TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
TEMP<=SEL1&SEL0;
WITH TEMP SELECT
YOUT<=A WHEN "00",
      B WHEN "01",
      C WHEN "10",
      D WHEN OTHERS;
END RTL;


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY PRIENCODER83 IS
PORT(
        INDATA:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
        YOUT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END PRIENCODER83;

ARCHITECTURE RTL OF PRIENCODER83 IS
BEGIN
YOUT<= "000" WHEN INDATA(0)='0' ELSE
       "001" WHEN INDATA(1)='0' ELSE
       "010" WHEN INDATA(2)='0' ELSE
       "011" WHEN INDATA(3)='0' ELSE
       "100" WHEN INDATA(4)='0' ELSE
       "101" WHEN INDATA(5)='0' ELSE
       "110" WHEN INDATA(6)='0' ELSE
       "111" WHEN INDATA(7)='0' ELSE
       "ZZZ";
END RTL;

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY HALFADD IS
PORT(
        A,B:IN STD_LOGIC;
        S,CO:OUT STD_LOGIC);
END HALFADD;

ARCHITECTURE RTL OF HALFADD IS
BEGIN
    S<=A XOR B;
    CO<=A AND B;
END RTL;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FULLADD01 IS
PORT(
        A,B,CIN:IN STD_LOGIC;
        S,CO:OUT STD_LOGIC
);
END FULLADD01;
ARCHITECTURE RTL OF FULLADD01 IS
SIGNAL S1,C1,S2,C2:STD_LOGIC;
COMPONENT HALFADD
PORT(
        A,B:IN STD_LOGIC;
        SUM,CO:OUT STD_LOGIC
);
END COMPONENT;
BEGIN
U1:HALLADD PORTMAP(A,B,S1,C1);
U2:HALLADD PORTMAP(S1,CIN,S2,C2);
S<=S2;
CO<=C1 OR C2;
RTL;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙福林学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值