Генерация входных чисел для тестового стенда с умножителем 16×16 бит

#vivado #16-bit

Вопрос:

У меня возникли некоторые проблемы с созданием тестовой среды для этого кода. Предполагается, что это будет множитель 16×16 бит. В принципе, я хочу создать тестовый стенд, который будет процедурно выдавать значения A и B, чтобы я мог утверждать вывод P.

 library IEEE; use IEEE.STD_LOGIC_1164.ALL;  entity multiplier_tb is -- Port ( ); end multiplier_tb;  architecture Behavioral of multiplier_tb is   -- Component Declaration for the Unit Under Test (UUT)  component multiplier is  Port ( A, B : in STD_LOGIC_VECTOR (17 downto 0);  P : out STD_LOGIC_VECTOR (35 downto 0));  end component multiplier;   --Inputs  signal A : std_logic_vector(17 downto 0) := (others =gt; '0');  signal B : std_logic_vector(17 downto 0) := (others =gt; '0');    --Outputs  signal P : std_logic_vector(35 downto 0) := (others =gt; '0');    -- Clock definition  signal clk : std_logic;  constant clk_period : time := 10 ns;  begin    -- Instantiate the Unit Under Test (UUT)  UUT: multiplier PORT MAP (A =gt; A, B =gt; B, P =gt; P);    stim_proc : process  begin   for i in 0 to 2**18-1 loop  for k in 0 to 2**18-1 loop    wait for 0 ns;    A lt;= conv_std_logic_vector(i, 18);  B lt;= conv_std_logic_vector(k, 18);  end loop;  end loop;  wait;  end process;    end Behavioral;