-- ############################################################################ -- # Project : VHDL-Modellbibliothek # -- # # -- # Filename : tb_${FILENAME}.vhd # -- # # -- # Schaltung : Testbench fuer Multiplexer mit parametrierbarer Anzahl # -- # von Dateneingaengen und parametrierbarer Breite der # -- # einzelnen Dateneingaenge # -- # # -- # Modell : tb_mux # -- # # -- # Designer : Wolfgang Sehr # -- # Abteilung : Lehrstul fuer rechnergestuetzten Schaltungsentwurf # -- # Datum : 23.03.1995 # -- ############################################################################ -- ############################################################################ -- # IEEE PACKAGES # -- ############################################################################ Library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; USE IEEE.math_real.all; -- wird fuer die Erzeugung von Zufallszahlen -- benoetigt -- ############################################################################ -- ############################################################################ -- # Bibliotheks - SPEZIFISCHE PACKAGES # -- ############################################################################ use WORK.local.all; ENTITY TB_mux IS GENERIC (X : INTEGER := ${ANZAHL}; -- X: Anzahl der Dateneingaenge Y : INTEGER := ${BITBR} -- Y: Bitbreite der einzelnen Daten ); END TB_mux; ARCHITECTURE behaviour OF TB_mux IS SIGNAL tb_daten_ein : UNSIGNED ((Y-1) DOWNTO 0); SIGNAL tb_sel : UNSIGNED (LOG_2(X) DOWNTO 0); SIGNAL tb_daten_aus : UNSIGNED ((X*Y-1) DOWNTO 0); -- tb_daten_ein : Dateneingangsvektor von der Testbench -- : erzeugt -- : -- tb_sel : Select-Signal, von der Testbench erzeugt -- : -- tb_daten_aus : Datenausgangsvektor vom UUT empfangen -- : COMPONENT mux PORT( daten_ein : IN UNSIGNED ((Y-1) DOWNTO 0); sel : IN UNSIGNED (LOG_2(X) DOWNTO 0); ${TB_DATEN_AUS} ); END COMPONENT; BEGIN UUT: mux PORT MAP (daten_ein => tb_daten_ein, sel => tb_sel, ${TB_DAT_ZUW} ); stim_1: PROCESS VARIABLE tb_daten_ein_int_var : INTEGER; BEGIN LOOP tb_daten_ein_int_var := RAND; tb_daten_ein <= CONV_UNSIGNED(tb_daten_ein_int_var, tb_daten_ein'LENGTH); WAIT FOR 200 ns; END LOOP; END PROCESS; stim_2: PROCESS BEGIN tb_sel <= CONV_UNSIGNED(0, tb_sel'LENGTH); WAIT FOR 10 ns; LOOP tb_sel <= tb_sel + 1; WAIT FOR 10 ns; END LOOP; END PROCESS; END behaviour; CONFIGURATION CFG_TB_mux OF TB_mux IS FOR behaviour FOR UUT: mux USE CONFIGURATION WORK.CFG_mux; END FOR; END FOR; END CFG_TB_mux;