VHDL - Поведенческая работа работает правильно, у Post Route есть проблема
Я новичок в Stackru и прошу прощения за возможную ошибку.
Я работаю над VHDL и у меня проблема с Post-Place & Route. В то время как поведенческое поведение работает правильно, Post-Place & Route имеет проблему, и результат остается НЕИЗВЕСТНЫМ на все время.
entity step1 is
port ( d: in std_logic_vector (0 to 5);
clk : in std_logic;
RESET: in std_logic;
q: out std_logic_vector (0 to 5)
);
end step1;
architecture Behavioral of step1 is
begin
ff: process (clk)
begin
if (clk'event and clk='1') then
if (RESET = '1') then
q <= "000000";
else
q <= d;
end if;
end if;
end process;
end Behavioral;
Я размещаю здесь код. Это должен быть триггер D, который я использую для создания конвейерной архитектуры.
Спасибо за ваш ответ, и, пожалуйста, извините меня за любую ошибку.
Вот тестовый стенд:
entity test_step1 is
end test_step1
ARCHITECTURE behavior OF test_step1 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT step1
PORT(
input : IN std_logic_vector(0 to 5);
clk : IN std_logic;
RESET : IN std_logic;
output : OUT std_logic_vector(0 to 5)
);
END COMPONENT;
--Inputs
signal input : std_logic_vector(0 to 5) := (others => '0');
signal clk : std_logic := '0';
signal RESET : std_logic := '0';
--Outputs
signal output : std_logic_vector(0 to 5);
-- Clock period definitions
constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: step1 PORT MAP (
input => input,
clk => clk,
RESET => RESET,
output => output
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
RESET <= '1';
wait for 10 ns;
RESET <= '0';
input <= "111111";
wait for clk_period*10;
input <= "101010";
-- insert stimulus here
wait;
end process;
END;
1 ответ
Первые предупреждающие сообщения для компилятора HDL 89 и 648, найденные в Интернете:
ВНИМАНИЕ: HDL Compiler:89 - "my_module" остается черным ящиком, так как не имеет обязательной сущности.
ВНИМАНИЕ: Симулятор:648 - Строка "Top_LCD_test.vhd" 35. Экземпляр top_lcd является unboundCompiling поведение архитектуры объекта testbench
Это означает, что компилятор не имеет никакой сущности, соответствующей компоненту, используемому в вашей тестовой среде.
В вашем случае имена портов вашей сущности и компонента не совпадают!
Попробуйте использовать одинаковые имена в порте для компонента и объекта:
entity test_step1 is
end test_step1;
ARCHITECTURE behavior OF test_step1 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT step1
PORT(
d : IN std_logic_vector(0 to 5);
clk : IN std_logic;
RESET : IN std_logic;
q : OUT std_logic_vector(0 to 5)
);
END COMPONENT;
--Inputs
signal input : std_logic_vector(0 to 5) := (others => '0');
signal clk : std_logic := '0';
signal RESET : std_logic := '0';
--Outputs
signal output : std_logic_vector(0 to 5);
-- Clock period definitions
constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: step1 PORT MAP (
d => input,
clk => clk,
RESET => RESET,
q => output
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
RESET <= '1';
wait for 10 ns;
RESET <= '0';
input <= "111111";
wait for clk_period*10;
input <= "101010";
-- insert stimulus here
wait;
end process;