如何使用3-> 1乘法器构建9-> 1乘法器?

时间:2018-08-08 16:33:21

标签: vhdl

我正在尝试使用4多路复用器3-1构建多路复用器9-1, 我需要使用4 sel条目和9条目和一个输出。 这是我写3-> 1多路复用器的方式:

library ieee;
use ieee.std_logic_1164.all;

entity my_mux_1 is
    port(inputt : in std_logic_vector(2 downto 0) ;
        selector : in std_logic_vector(1 downto 0);
        outputt : out std_logic ) ;
end my_mux_1;
architecture arc_my_mux_1 of my_mux_1 is
begin
    outputt <=  inputt(0) when selector="00" else 
               inputt(1) when selector="01" else
                inputt(2) when selector="10" else
                '0';
end arc_my_mux_1 ;

现在我在编写9-> 1乘法器时遇到了麻烦,我基本上是这样写的,因为我注意到,例如,对于ecample来说,Entery 11不会消失,我根据每个二进制数选择了位。到目前为止,:

library ieee;
use ieee.std_logic_1164.all;

entity mux_9_1 is
    port( inputt : in std_logic_vector(8 downto 0) ;
            selector : in std_logic_vector(3 downto 0);
            outputt : out std_logic ) ;
end mux_9_1 ;

architecture arc_mux_9_1 of mux_9_1 is
    component my_mux_1 is
        port(   inputt : in std_logic_vector(2 downto 0) ;
                selector : in std_logic_vector(1 downto 0);
                outputt : out std_logic ) ;
    end component ;

signal y : std_logic_vector(2 downto 0) ;

begin
u0: my_mux port map (inputt(0)=>inputt(0),inputt(1)=>inputt(1),inputt(2)=>inputt(2),selector(0)=>selector(0),selector(1)=>selector(1),outputt=>y(0));
u1: my_mux port map (inputt(0)=>inputt(3),inputt(1)=>inputt(4),inputt(2)=>inputt(5),selector(0)=>selector(0),selector(1)=>selector(1),outputt=>y(1)) ;
u2: my_mux port map (inputt(0)=>inputt(6),inputt(1)=>inputt(7),inputt(2)=>inputt(8),selector(0)=>selector(0),selector(1)=>selector(1),outputt=>y(2)) ;
u3: my_mux port map (inputt(0)=>y(0),inputt(1)=>y(1),inputt(2)=>y(2),selector(0)=>selector(2),selector(1)=>selector(3),outputt=>outputt ) ;
end arc_mux_9_1 ;

有关如何以更简单的方式执行此操作的任何帮助?

1 个答案:

答案 0 :(得分:0)

关于什么是问题,您的问题非常模糊。我假设您遇到一个错误,告诉您找不到my_mux,因为这就是我得到的。替换

u0: my_mux port map

使用

u0: mu_mux_1 port map

允许我编译。我已经运行了一个测试台,很好。