Форма волны на испытательном стенде показывает неопределенные переменные - PullRequest
0 голосов
/ 11 марта 2019

Я работаю над проектом по разработке аппаратного обеспечения для шифрования. После запуска моего тестового стенда в форме волны переменные не определены, это мой основной код

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
      entity keygeneration is
    Port ( 
          key : in  STD_LOGIC_VECTOR (127 downto 0);
       rc : in  STD_LOGIC_VECTOR (3 downto 0);
       keyout : out  STD_LOGIC_VECTOR (127 downto 0));
end keygeneration;

 architecture Behavioral of keygeneration is

 component sbox is
     port(a: in std_logic_vector(7 downto 0);
      y: out std_logic_vector(7 downto 0));
 end component;
  component RCON is
 Port ( rc : in  STD_LOGIC_VECTOR (3 downto 0);
           rout : out  STD_LOGIC_VECTOR (31 downto 0));
end component;
signal w0,w1,w2,w3,tem: STD_LOGIC_VECTOR (31 downto 0);
signal rout1: STD_LOGIC_VECTOR (31 downto 0);

begin


w0<=key (127 downto 96);
w1<=key (95 downto 64);
w2<=key (63 downto 32);
w3<=key (31 downto 0);

t1: sbox port map(w3(23 downto 16),tem(31 downto 24));
t2: sbox port map(w3(15 downto 8),tem(23 downto 16));
t3: sbox port map(w3(7 downto 0),tem(15 downto 8));
t4: sbox port map(w3(31 downto 24),tem(7 downto 0));

r1: RCON port map(rc(3 downto 0),rout1(31 downto 0));

keyout(127 downto 96)<=(w0)xor(tem)xor(rout1);
keyout(95 downto 64)<=(w0)xor(tem)xor(rout1)xor(w1);
keyout(63 downto 32)<=(w0)xor(tem)xor(rout1)xor(w1)xor(w2);
keyout(31 downto 0)<=(w0)xor(tem)xor(rout1)xor(w1)xor(w2)xor(w3);



end Behavioral;

это мой тестовый стенд

  LIBRARY ieee;
 USE ieee.std_logic_1164.ALL;



ENTITY keygenerationtb IS
END keygenerationtb;

ARCHITECTURE behavior OF keygenerationtb IS 



    COMPONENT keygeneration
    PORT(
         key : IN  std_logic_vector(127 downto 0);
         rc : IN  std_logic_vector(3 downto 0);
         keyout : OUT  std_logic_vector(127 downto 0)
        );
     END COMPONENT;



   signal key : std_logic_vector(127 downto 0) := (others => '0');
   signal rc : std_logic_vector(3 downto 0) := (others => '0');

    --Outputs
    signal keyout : std_logic_vector(127 downto 0);
    -- No clocks detected in port list. Replace <clock> below with 
    -- appropriate port name 

  --  constant <clock>_period : time := 10 ns;

 BEGIN

 -- Instantiate the Unit Under Test (UUT)
    uut: keygeneration PORT MAP (
           key => key,
          rc => rc,
         keyout => keyout
        );


   -- Stimulus process
    stim_proc: process
    begin       
       -- hold reset state for 100 ns.
            wait for 100ns;
        rc<=x"01000000";
       wait for 100ns;
 key<=x"0F1571C947D9E8590CB7ADD6AF7F6798";
     -- wait for <clock>_period*10;

      -- insert stimulus here 

      wait;
   end process;

END;

при запуске тестового стенда все, что я получаю в выходах, равно 0, а входные переменные в виде U не определены.Я новичок в VHDL, пожалуйста, помогите.Есть ли что-нибудь, что нужно сделать для того, чтобы переменные были определены?

...