TU-VHDL/05_Fulladder_allVariants/testbench.vhd
2025-02-10 20:28:13 +01:00

142 lines
4.9 KiB
VHDL

-- Code your testbench here
library IEEE;
use IEEE.std_logic_1164.all;
entity testbench is
-- empty
end testbench;
architecture tb of testbench is
-- DUT components
component fulladder_struct is
port (afa_s_i : in std_logic;
bfa_s_i : in std_logic;
cinfa_s_i : in std_logic;
sumfa_s_o : out std_logic;
coutfa_s_o : out std_logic);
end component;
component fulladder_sel is
port (afa_sel_i : in std_logic;
bfa_sel_i : in std_logic;
cinfa_sel_i : in std_logic;
sumfa_sel_o : out std_logic;
coutfa_sel_o : out std_logic);
end component;
component fulladder_proc is
port (afa_proc_i : in std_logic;
bfa_proc_i : in std_logic;
cinfa_proc_i : in std_logic;
sumfa_proc_o : out std_logic;
coutfa_proc_o : out std_logic);
end component;
signal sig_afa_s, sig_bfa_s, sig_cinfa_s, sig_sumfa_s, sig_coutfa_s: std_logic;
signal sig_afa_sel, sig_bfa_sel, sig_cinfa_sel, sig_sumfa_sel, sig_coutfa_sel: std_logic;
signal sig_afa_proc, sig_bfa_proc, sig_cinfa_proc, sig_sumfa_proc, sig_coutfa_proc: std_logic;
begin
-- Connect DUTs
DUT_s: fulladder_struct port map(
afa_s_i => sig_afa_s,
bfa_s_i => sig_bfa_s,
cinfa_s_i => sig_cinfa_s,
sumfa_s_o => sig_sumfa_s,
coutfa_s_o => sig_coutfa_s);
DUT_sel: fulladder_sel port map(
afa_sel_i => sig_afa_sel,
bfa_sel_i => sig_bfa_sel,
cinfa_sel_i => sig_cinfa_sel,
sumfa_sel_o => sig_sumfa_sel,
coutfa_sel_o => sig_coutfa_sel);
DUT_proc: fulladder_proc port map(
afa_proc_i => sig_afa_proc,
bfa_proc_i => sig_bfa_proc,
cinfa_proc_i => sig_cinfa_proc,
sumfa_proc_o => sig_sumfa_proc,
coutfa_proc_o => sig_coutfa_proc);
stim :process is
begin
sig_afa_s <= '0'; sig_bfa_s <= '0'; sig_cinfa_s <= '0';
sig_afa_sel <= '0'; sig_bfa_sel <= '0'; sig_cinfa_sel <= '0';
sig_afa_proc <= '0'; sig_bfa_proc <= '0'; sig_cinfa_proc <= '0';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 000 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 000 NOK" severity failure;
sig_afa_s <= '1'; sig_bfa_s <= '0'; sig_cinfa_s <= '0';
sig_afa_sel <= '1'; sig_bfa_sel <= '0'; sig_cinfa_sel <= '0';
sig_afa_proc <= '1'; sig_bfa_proc <= '0'; sig_cinfa_proc <= '0';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 001 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 001 NOK" severity failure;
sig_afa_s <= '0'; sig_bfa_s <= '1'; sig_cinfa_s <= '0';
sig_afa_sel <= '0'; sig_bfa_sel <= '1'; sig_cinfa_sel <= '0';
sig_afa_proc <= '0'; sig_bfa_proc <= '1'; sig_cinfa_proc <= '0';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 010 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 010 NOK" severity failure;
sig_afa_s <= '1'; sig_bfa_s <= '1'; sig_cinfa_s <= '0';
sig_afa_sel <= '1'; sig_bfa_sel <= '1'; sig_cinfa_sel <= '0';
sig_afa_proc <= '1'; sig_bfa_proc <= '1'; sig_cinfa_proc <= '0';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 011 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 011 NOK" severity failure;
sig_afa_s <= '0'; sig_bfa_s <= '0'; sig_cinfa_s <= '1';
sig_afa_sel <= '0'; sig_bfa_sel <= '0'; sig_cinfa_sel <= '1';
sig_afa_proc <= '0'; sig_bfa_proc <= '0'; sig_cinfa_proc <= '1';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 100 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 100 NOK" severity failure;
sig_afa_s <= '1'; sig_bfa_s <= '0'; sig_cinfa_s <= '1';
sig_afa_sel <= '1'; sig_bfa_sel <= '0'; sig_cinfa_sel <= '1';
sig_afa_proc <= '1'; sig_bfa_proc <= '0'; sig_cinfa_proc <= '1';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 101 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 101 NOK" severity failure;
sig_afa_s <= '0'; sig_bfa_s <= '1'; sig_cinfa_s <= '1';
sig_afa_sel <= '0'; sig_bfa_sel <= '1'; sig_cinfa_sel <= '1';
sig_afa_proc <= '0'; sig_bfa_proc <= '1'; sig_cinfa_proc <= '1';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 110 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 110 NOK" severity failure;
sig_afa_s <= '1'; sig_bfa_s <= '1'; sig_cinfa_s <= '1';
sig_afa_sel <= '1'; sig_bfa_sel <= '1'; sig_cinfa_sel <= '1';
sig_afa_proc <= '1'; sig_bfa_proc <= '1'; sig_cinfa_proc <= '1';
wait for 10 ns;
assert (sig_sumfa_s = sig_sumfa_sel) report "Test sum 111 NOK" severity failure;
assert (sig_coutfa_s = sig_coutfa_sel) report "Test carry 111 NOK" severity failure;
wait;
end process stim;
end tb;