以下列代码为基础,用vhdl设计一个八位全加器并提供代码。library ieee;use ieee.std_logic_1164.all;entity fa isport(a,b,ci : in std_logic; s,co : out std_logic);end fa;architecture b_fa of fa isbegin s<=a xor b xor ci; co<=((a xor b) and ci) or (a and b);end b_fa;
时间: 2023-05-30 21:07:38 浏览: 120
用vhdl实现一位全加器
3星 · 编辑精心推荐
library ieee;
use ieee.std_logic_1164.all;
entity eight_bit_adder is
port (
a, b : in std_logic_vector(7 downto 0);
c_in : in std_logic;
sum : out std_logic_vector(7 downto 0);
c_out : out std_logic
);
end eight_bit_adder;
architecture behav of eight_bit_adder is
signal carry : std_logic_vector(7 downto 0);
component fa is
port (
a, b, ci : in std_logic;
s, co : out std_logic
);
end component;
begin
fa_0 : fa port map (a(0), b(0), c_in, sum(0), carry(0));
fa_1 : fa port map (a(1), b(1), carry(0), sum(1), carry(1));
fa_2 : fa port map (a(2), b(2), carry(1), sum(2), carry(2));
fa_3 : fa port map (a(3), b(3), carry(2), sum(3), carry(3));
fa_4 : fa port map (a(4), b(4), carry(3), sum(4), carry(4));
fa_5 : fa port map (a(5), b(5), carry(4), sum(5), carry(5));
fa_6 : fa port map (a(6), b(6), carry(5), sum(6), carry(6));
fa_7 : fa port map (a(7), b(7), carry(6), sum(7), c_out);
end behav;
architecture rtl of fa is
begin
s <= a xor b xor ci;
co <= (a and b) or (a and ci) or (b and ci);
end rtl;
阅读全文