VHDL学习:4位/8位全加器

1、4位全加器

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity adder4b is
port(C4: in std_logic;
	  A4: in std_logic_vector(3 downto 0);//输入
	  B4: in std_logic_vector(3 downto 0);//输入
	  S4: out std_logic_vector(3 downto 0);//输出
	  CO4: out std_logic);//进位
end entity adder4b;

architecture ART of adder4b is
	signal S5: std_logic_vector(4 downto 0);
	signal A5,B5: std_logic_vector(4 downto 0);
	begin
		A5 <= '0'& A4;
		B5 <= '0'& B4;
		S5 <= A5 + B5 + C4;
		S4 <= S5(3 downto 0);
		CO4 <= S5(4);
end architecture ART;

仿真图

在这里插入图片描述

2、8位全加器

将两个4位全加器组合成一个8位全加器

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity adder88 is 
	port(C8: in std_logic;
		  A8: in std_logic_vector(7 downto 0);
		  B8: in std_logic_vector(7 downto 0);
		  S8: out std_logic_vector(7 downto 0);
		  CO8: out std_logic);
end entity adder88;

architecture ART of adder88 is
	component adder4b is
		port(C4: in std_logic;
			  A4: in std_logic_vector(3 downto 0);
			  B4: in std_logic_vector(3 downto 0);
			  S4: out std_logic_vector(3 downto 0);
			  CO4: out std_logic);
	end component adder4b;//例化4位全加器
signal SC: std_logic;
begin
	U1:adder4b
		port map(C4=>C8, A4=>A8(3 downto 0),B4=>B8(3 downto 0),
					S4=>S8(3 downto 0), CO4=>SC);
	U2:adder4b
		port map(C4=>C8, A4=>A8(7 downto 4),B4=>B8(7 downto 4),
					S4=>S8(7 downto 4), CO4=>CO8);//组合两个4位全加器
end architecture ART;

仿真图

在这里插入图片描述
源代码在资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值