-- ############################################################################ -- # Project : VHDL-Modellbibliothek # -- # # -- # Filename : tb_${FILENAME}.vhd # -- # # -- # Schaltung : Testbench fuer JK-Flip-Flops in waehlbarer Anzahl; # -- # mit demselben Taktsignal und Resetsignal fuer # -- # alle Flip-Flops # -- # # -- # # -- # Designer : Wolfgang Sehr # -- # Abteilung : Lehrstul fuer rechnergestuetzten Schaltungsentwurf # -- # Datum : 04.04.1995 # -- ############################################################################ -- ############################################################################ -- # IEEE PACKAGES # -- ############################################################################ Library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; -- ############################################################################ ENTITY TB_jk_ff IS GENERIC (X : INTEGER := ${ANZAHL} -- X: Anzahl der Flip-FLops ); END TB_jk_ff; ARCHITECTURE behaviour OF TB_jk_ff IS SIGNAL tb_j : UNSIGNED ((X-1) DOWNTO 0); SIGNAL tb_k : UNSIGNED ((X-1) DOWNTO 0); SIGNAL tb_q : UNSIGNED ((X-1) DOWNTO 0); SIGNAL tb_nq : UNSIGNED ((X-1) DOWNTO 0); SIGNAL tb_reset : STD_LOGIC; SIGNAL tb_takt : STD_LOGIC; -- tb_j : J-Signal fuer die einzelnen Flip-Flops -- : -- tb_k : K-Signal fuer die einzelnen Flip-Flops -- : -- tb_reset : Reset-Signal fuer alle Flip-Flops -- : -- tb_takt : Taktsignal fuer alle Flip-Flops -- : COMPONENT jk_ff PORT( ${TB_DEKL_EIN_J} ${TB_DEKL_EIN_K} ${TB_DEKL_AUS_Q} ${TB_DEKL_AUS_NQ} takt : IN STD_LOGIC; reset : IN STD_LOGIC ); END COMPONENT; BEGIN UUT: jk_ff PORT MAP (${TB_ZUW_EIN_J} ${TB_ZUW_EIN_K} ${TB_ZUW_AUS_Q} ${TB_ZUW_AUS_NQ} reset => tb_reset, takt => tb_takt ); clock: PROCESS BEGIN tb_takt <= '0'; WAIT FOR 10 ns; LOOP tb_takt <= NOT(tb_takt); WAIT FOR 10 ns; END LOOP; END PROCESS; res: PROCESS BEGIN tb_reset <= '1'; WAIT FOR 30 ns; LOOP tb_reset <= '0'; WAIT FOR 1000 ns; tb_reset <= '1'; WAIT FOR 30 ns; END LOOP; END PROCESS; stim_j: PROCESS BEGIN tb_j <= CONV_UNSIGNED(0, tb_j'LENGTH); WAIT FOR 33 ns; LOOP tb_j <= tb_j + '1'; WAIT FOR 33 ns; END LOOP; END PROCESS; stim_k: PROCESS BEGIN tb_k <= CONV_UNSIGNED(0, tb_k'LENGTH); WAIT FOR 47 ns; LOOP tb_k <= tb_k + '1'; WAIT FOR 47 ns; END LOOP; END PROCESS; END behaviour; CONFIGURATION CFG_TB_jk_ff OF TB_jk_ff IS FOR behaviour FOR UUT: jk_ff USE CONFIGURATION WORK.CFG_jk_ff; END FOR; END FOR; END CFG_TB_jk_ff;