Этот вопрос, вероятно, относится к иерархии.
Таким образом, у вас есть компонент , называемый триггер "главный-подчиненный".Допустим, это описывается как:
library ieee;
use ieee.std_logic_1164.all;
entity dff is port(
clk, rst, d : in std_logic;
q : out std_logic);
end entity;
architecture rtl of dff is begin
q <= d and not rst when rising_edge(clk);
end architecture;
Так что это закрытый дизайн .Вы не добавляете входы внутри этого: вы используете интерфейс сущностей.Сравнимо, что вы не подключили бы клавиатуру компьютера напрямую внутри вашего процессора.Вместо этого у вас есть оболочка, которая обрабатывает вход и выход.
В вашем случае вам нужен новый объект, который создает экземпляр компонента dff
.Например,
library ieee;
use ieee.std_logic_1164.all;
entity dff_wrapper is port(
SW : in std_logic_vector(1 downto 0);
LEDR : out std_logic_vector(2 downto 0));
end entity;
architecture rtl of dff_wrapper is
signal D, Q, Clk : std_logic;
begin
D<=SW(0);
LEDR(0) <=D;
Clk <=SW(1);
LEDR(1) <=Clk;
LEDR(2) <=Q;
dff_inst : entity work.dff port map (
clk => Clk, d => D, q => Q);
end architecture;
Видите?Теперь ваш код работает.
PS, внутрисхемное тестирование обычно не подходит для этого в VHDL.Вы хотите использовать испытательные стенды.