Vhdl 带4个2x1多路复用器和1个4x1的多路复用器8x1

Vhdl 带4个2x1多路复用器和1个4x1的多路复用器8x1,vhdl,Vhdl,该代码使用2x1和4x1显示多路复用器8x1。我尝试了这段代码,它显示了一个错误,即组件mux8x1没有默认绑定。端口I不在实体上,我不明白代码中的错误在哪里我反复检查,没有发现错误,如果有人能帮助我,我将不胜感激 -- Code your design here library IEEE; use IEEE.std_logic_1164.all; --declaration for 8x1 entity mux8x1 is port( I : in std_logic_vect

该代码使用2x1和4x1显示多路复用器8x1。我尝试了这段代码,它显示了一个错误,即组件mux8x1没有默认绑定。端口I不在实体上,我不明白代码中的错误在哪里我反复检查,没有发现错误,如果有人能帮助我,我将不胜感激

-- Code your design here
library IEEE;
use IEEE.std_logic_1164.all;

--declaration for 8x1
entity mux8x1 is   
    port( I : in std_logic_vector(7 downto 0); -- input that need 8x1
           s: in std_logic_vector(2 downto 0); --is the enable
           Y: out std_logic -- output of 8x1 is the output
    );
end mux8x1;

architecture behavioral of mux8x1 is
    signal f0,f1,f2,f3 : std_logic;
begin
    process(I,S)
    begin
        if s(0)='0' then 
            f0<=I(7);
            f1<=I(5);
            f2<=I(3);
            f3<=I(1);
        else 
            f0<=I(6);
            f1<=I(4);
            f2<=I(2);
            f3<=I(0);
        end if;

        if (s(1)='0' and s(0)='0')then
            Y<=f0;
            if (s(1)='0' and s(0)='1')then
                Y<=f1;
                if (s(1)='1' and s(0)='0')then
                    Y<=f2;
                    if (s(1)='1' and s(0)='1')then
                        Y<=f3;
                    end if;
                end if;
            end if;
        end if;
    end process;
end behavioral;
您的测试台必须有被测试实体/组件以外的其他名称,仅此而已! 将测试台重命名为mux8x1_tb
这证明你应该把测试台代码放在这里让我们帮助你…

你有测试用例吗?该错误可能是由于两个文件之间的差异造成的。你没有应该使用的mux2和4的实体吗?我为你做了一些代码美化,只是修复了缩进。您现在看到错误了吗?@mfro-编号IEEE Std 1076-2008附件一绑定:将设计实体和架构(可选)与组件实例关联的过程。可以在显式或默认绑定指示中指定绑定。3.4, 7.3.2, 7.3.3, 14.4.3.3, 14.5.4. 默认绑定指示的问题只能在存在与实例关联的设计实体的情况下发生,此处未显示该实体。@user1155120:可能是XY问题?只要TO的逻辑中似乎存在严重缺陷,他就不需要处理绑定。那么问题出在哪里?我觉得组件mux8x1没有默认绑定。请帮助我理解我的代码到底出了什么问题,如果可以的话请解释我,因为我刚刚开始学习该语言,我不知道有多少关于响应的链接,如果可以的话,这个链接是我的代码,显示测试台检查
ARCHITECTURE behavior OF mux8x1 IS 
   COMPONENT mux8x1 is