Я работаю над проектом по разработке аппаратного обеспечения для шифрования. После запуска моего тестового стенда в форме волны переменные не определены, это мой основной код
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, пожалуйста, помогите.Есть ли что-нибудь, что нужно сделать для того, чтобы переменные были определены?