Как добавить 4-битные полные сумматоры и 4: 1 mux вместе? - PullRequest
0 голосов
/ 21 сентября 2018

// это 4: 1 mux

Library ieee;
use ieee.std_logic_1164.all; 

ENTITY fourMux IS
PORT(B : IN BIT_VECTOR (0 to 3);
sel : IN BIT_VECTOR(0 to 1);
clk : IN BIT;
output : OUT BIT);
END fourMux;

ARCHITECTURE example OF fourMux IS
BEGIN
PROCESS (clk)
    VARIABLE temp : BIT;
    BEGIN
        IF(clk = '1') THEN
            IF sel = "00" THEN
                temp := B (0);
            ELSIF sel = "01" THEN
                temp := B (1);
            ELSIF sel = "10" THEN
                temp := B (2);
            ELSE
                temp := B (3);
            END IF;
            output <= temp AFTER 5ns;
        END IF;
    END PROCESS;
END example;

// это полный сумматор

Library ieee;
use ieee.std_logic_1164.all; 


entity fullAdders is
port(x,y,Cin :in std_logic; 
        sum, Cout:out std_logic);
end fullAdders;


architecture level of fullAdders is
begin 
    sum <= (x xor y xor Cin); 
    Cout <= (x and y) or (x and Cin) or (x and Cin); 
end level; 

// четырехбитный сумматор

entity Fourbit is
port(a,b :in bit_vector(3 downto 0); 
        Cin :in bit; 
        Cout, sum :out bit); 
end Fourbit;

architecture struct of Fourbit is
component fullAdders
    port(x,y,Cin :in bit; 
            Cout, sum :out bit);
end component; 

component fourMux
     port( A,B,C,D : in STD_LOGIC;
            S0,S1: in STD_LOGIC;
            Z: out STD_LOGIC);
end component; 

Это то, что я до сих пор.и я не понимаю, как использовать мой fourMux с полным сумматором?любое предложение?Что мне делать отсюда?Я пытаюсь использовать карту портов из компонента, но она не работает.

...