Я хочу реализовать 4-битный полный сумматор в VHDL, используя поведенческий метод. Тем не менее, я не получаю никакого вывода для S
и Cout
. Когда я запускаю осциллограмму на Modelsim, я получаю только строки, направленные на ноль, в то время как вывод соответствует правильному треку в соответствии с вводом, который я использую в каждый момент.
Вот код полного сумматора:
library ieee;
use ieee.std_logic_1164.all;
entity fa is port(
A, B, Cin: in std_logic;
S, Cout : out std_logic);
end fa;
architecture dataflow of fa is
begin
S <= A xor B xor Cin;
Cout <= (A and B) or ((A xor B) and Cin);
end dataflow;
Вот код для 4-битного полного сумматора:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity bit_adder is
Port ( A : in STD_LOGIC_VECTOR (3 downto 0);
B : in STD_LOGIC_VECTOR (3 downto 0);
S : out STD_LOGIC_VECTOR (3 downto 0);
Cout : out STD_LOGIC);
end bit_adder;
architecture dataflow10 of bit_adder is
signal Cin: std_logic_vector(3 downto 0);
component fa is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Cin : in STD_LOGIC;
S : out STD_LOGIC;
Cout : out STD_LOGIC);
end component;
begin
Cin(0) <= '0';
FA1: fa port map( A(0), B(0), Cin(0), S(0), Cin(1));
FA2: fa port map( A(1), B(1), Cin(1), S(1), Cin(2));
FA3: fa port map( A(2), B(2), Cin(2), S(2), Cin(3));
FA4: fa port map( A(3), B(3), Cin(3), S(3), Cout);
end dataflow10;
Спасибо !!