Как исправить вывод 'U' в VHDL - PullRequest
0 голосов
/ 04 января 2019

Мне нужна помощь с моим кодом. Я написал этот код для простого проекта, и теперь, когда я пытаюсь проверить его, все выводится как U. Код для двери, когда значок идет к 1, у вас есть 3 попытки отправить правильный пароль для открытия двери. Когда значок становится равным 0, дверь закрывается.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity Porta is
    Port ( Badge : in  STD_LOGIC;
           Comb : in  STD_LOGIC_VECTOR(15 downto 0);
           Lock : out  STD_LOGIC);
end Porta;

architecture Behavioral of Porta is

signal pass: STD_LOGIC_VECTOR(15 downto 0) := "1001100110011001";
signal tent: unsigned(1 downto 0) := "00"; --Tent
signal l: STD_LOGIC := '0';

begin

p_badge: process(Badge)
begin
    report "Process Badge!";
    if Badge = '1' then
        report "Process Badge dentro IF=1";
        tent <= (others => '0');
    else
        l <= '0';
    end if;
end process p_badge;

--Contatore tentativi e controllo combinazione
p_pass: process(Comb)
begin
    report "Process Confirm!";
    if tent /= "11" then
        if Comb = pass then
            report "Process Confirm, Comb=pass";
            l <= '1';
            tent <= (others => '0');
        elsif Comb /= pass then
            report "Process Confirm, Comb!=pass";
            tent <= tent+"01";
        end if;
    else
    report "tent=11";
    end if;
end process p_pass;

--Processo per il lock
p_lock: process(l)
begin
    report "Process LOCK!!";
    if l = '1' then
        Lock <= '1';
    else
        Lock <= '0';
    end if;
end process p_lock;

end Behavioral;

РЕДАКТИРОВАТЬ: я упрощаю код, но значение блокировки не отображается в ISIM, и ошибка возникает много раз: Instance / porta_tb4 / uut /: Предупреждение: NUMERIC_STD. "/ =": Обнаружен мета-значение, возвращая TRUE.

Выкладываю простой тест, который создаю

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;

ENTITY Porta_tb4 IS
END Porta_tb4;

ARCHITECTURE behavior OF Porta_tb4 IS 

    -- Component Declaration for the Unit Under Test (UUT)

    COMPONENT Porta
    PORT(
         Badge : IN  std_logic;
         Comb : IN  std_logic_vector(15 downto 0);
         Lock : OUT  std_logic
        );
    END COMPONENT;


   --Inputs
   signal Badge : std_logic := '0';
   signal Comb : std_logic_vector(15 downto 0) := (others => '0');

    --Outputs
     signal Lock : std_logic;

   BEGIN

   uut: Porta PORT MAP (
          Badge => Badge,
          Comb => Comb,
          Lock => Lock
        );


   -- Stimulus process
   stim_proc: process
   begin        
      -- hold reset state for 100 ns.
        wait for 100 ns;    
        Badge <= '1';
        wait for 100 ns;
        Comb <= "1001100110010011";
        wait for 100 ns;
        Comb <= "1001100110110011";
        wait for 100 ns;
        Comb <= "1001101110010011";
        wait for 100 ns;
        Comb <= "1011101110010011";
        wait for 100 ns;
        Badge <= '1';
        wait for 100 ns;
        Comb <= "1001100110011001";
        wait for 100 ns;
        Badge <= '0';
    -- insert stimulus here 

   wait;
   end process;

END;
...