VHDL - Поведенческая работа работает правильно, у Post Route есть проблема - PullRequest
0 голосов
/ 22 сентября 2018

Я новичок в StackOverflow и прошу прощения за возможную ошибку.
Я работаю над 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 Ответ

0 голосов
/ 24 сентября 2018

Первые предупреждающие сообщения для компилятора HDL 89 и 648, найденные в Интернете:

ПРЕДУПРЕЖДЕНИЕ: HDLCompiler: 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;
...