-- 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;