##// END OF EJS Templates
Renamed the SPW_Light test directory from Validation_SPW_light to Test_SPW_Light....
Renamed the SPW_Light test directory from Validation_SPW_light to Test_SPW_Light. Added Test ADC RHF1401

File last commit:

r687:88431f3070cd Simu-LFR-FM
r687:88431f3070cd Simu-LFR-FM
Show More
tb.vhd
141 lines | 3.8 KiB | text/x-vhdl | VhdlLexer
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
USE IEEE.std_logic_signed.ALL;
USE IEEE.MATH_real.ALL;
LIBRARY techmap;
USE techmap.gencomp.ALL;
LIBRARY std;
USE std.textio.ALL;
LIBRARY opencores;
USE opencores.spwpkg.ALL;
USE opencores.spwambapkg.ALL;
LIBRARY lpp;
USE lpp.lpp_sim_pkg.ALL;
USE lpp.lpp_ad_conv.ALL;
ENTITY testbench IS
END;
ARCHITECTURE behav OF testbench IS
SIGNAL TSTAMP : INTEGER := 0;
SIGNAL clk_25 : STD_LOGIC := '0';
SIGNAL rstn_25 : STD_LOGIC;
SIGNAL clk_24 : STD_LOGIC := '0';
SIGNAL rstn_24 : STD_LOGIC;
SIGNAL end_of_simu : STD_LOGIC := '0';
SIGNAL ADC_smpclk_s : STD_LOGIC;
SIGNAL ADC_data : Samples14;
SIGNAL ADC_OEB_bar_CH_s : STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL sample : Samples14v(8 DOWNTO 0);
SIGNAL sample_val : STD_LOGIC;
BEGIN
-----------------------------------------------------------------------------
-- CLOCK and RESET
-----------------------------------------------------------------------------
PROCESS
BEGIN -- PROCESS
WAIT UNTIL clk_25 = '1';
rstn_25 <= '0';
WAIT UNTIL clk_25 = '1';
WAIT UNTIL clk_25 = '1';
WAIT UNTIL clk_25 = '1';
rstn_25 <= '1';
WAIT UNTIL end_of_simu = '1';
WAIT FOR 10 ps;
ASSERT false REPORT "end of test" SEVERITY note;
-- Wait forever; this will finish the simulation.
WAIT;
END PROCESS;
-----------------------------------------------------------------------------
clk_25_gen : PROCESS
BEGIN
IF end_of_simu /= '1' THEN
clk_25 <= NOT clk_25;
TSTAMP <= TSTAMP+20;
WAIT FOR 20 ns;
ELSE
WAIT FOR 20 ps;
ASSERT false REPORT "end of test" SEVERITY note;
WAIT;
END IF;
END PROCESS;
-----------------------------------------------------------------------------
-- CLOCK and RESET
-----------------------------------------------------------------------------
PROCESS
BEGIN -- PROCESS
WAIT UNTIL clk_24 = '1';
rstn_24 <= '0';
WAIT UNTIL clk_24 = '1';
WAIT UNTIL clk_24 = '1';
WAIT UNTIL clk_24 = '1';
rstn_24 <= '1';
WAIT UNTIL end_of_simu = '1';
WAIT FOR 10 ps;
ASSERT false REPORT "end of test" SEVERITY note;
-- Wait forever; this will finish the simulation.
WAIT;
END PROCESS;
-----------------------------------------------------------------------------
clk_24_gen : PROCESS
BEGIN
IF end_of_simu /= '1' THEN
clk_24 <= NOT clk_24;
WAIT FOR 20345 ps;
ELSE
WAIT FOR 20 ps;
ASSERT false REPORT "end of test" SEVERITY note;
WAIT;
END IF;
END PROCESS;
-----------------------------------------------------------------------------
top_ad_conv_RHF1401_withFilter_1 : top_ad_conv_RHF1401_withFilter
GENERIC MAP (
ChanelCount => 9,
ncycle_cnv_high => 12,
ncycle_cnv => 25,
FILTER_ENABLED => 16#FF#)
PORT MAP (
cnv_clk => clk_24,
cnv_rstn => rstn_24,
cnv => ADC_smpclk_s,
clk => clk_25,
rstn => rstn_25,
ADC_data => ADC_data,
ADC_nOE => ADC_OEB_bar_CH_s,
sample => sample,
sample_val => sample_val);
-----------------------------------------------------------------------------
lfr_input_gen_1: lfr_input_gen
GENERIC MAP (
FNAME => "adc_input.txt")
PORT MAP (
end_of_simu => end_of_simu,
rhf1401_data => ADC_data,
adc_rhf1401_smp_clk => ADC_smpclk_s,
adc_rhf1401_oeb_bar_ch => ADC_OEB_bar_CH_s(7 DOWNTO 0),
adc_bias_fail_sel => '0',
hk_rhf1401_smp_clk => ADC_smpclk_s,
hk_rhf1401_oeb_bar_ch => ADC_OEB_bar_CH_s(8),
hk_sel => "00",
error_oeb => OPEN,
error_hksel => OPEN);
-----------------------------------------------------------------------------
END;