Tengo que escribir un código de banco de pruebas para un bloque que tiene dos entradas que eran "X" e "Y" con salida "A". El comportamiento del bloque es la adición de dos señales de entrada, el valor agregado se almacena en "A". Dos entradas son valores de 8 bits y la salida tiene un ancho de 9 bits.
Aquí está mi código para testbench pero recibo un error ... por favor, ayúdame.
CÓDIGO:
library IEEE;
USE ieee.std_logic_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.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 intensity1_tb IS
END intensity1_tb;
ARCHITECTURE behavior OF intensity1_tb IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT intensity1
PORT(
X : IN std_logic_vector(7 downto 0);
Y : IN std_logic_vector(7 downto 0);
A : OUT std_logic_vector(8 downto 0)
);
END COMPONENT;
--Inputs
signal X : std_logic_vector(7 downto 0) := '00000000';
signal Y : std_logic_vector(7 downto 0) := '00000000';
--Outputs
signal A : std_logic_vector(8 downto 0) := '000000000';
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: intensity1 PORT MAP (
X => X,
Y => Y,
A => A
);
-- Clock process definitions
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
X <= "00000000";
Y <= "11111111";
A <= "011111111";
wait for 100 ns;
X <= "00001111";
Y <= "11110000";
A <= "011111111";
wait for 100 ns;
X <= "00001100";
Y <= "10011000";
A <= "010100100";
wait for 100 ns;
X <= "01111000";
Y <= "10001110";
A <= "100000110";
end process;
END;