Skip to content
Snippets Groups Projects
Commit eb9138d8 authored by Eric Kooistra's avatar Eric Kooistra Committed by Pieter Donker
Browse files

Made antenne_band_index RW in sdp_info. Removed O_si, N_si from sdp_info...

Made antenne_band_index RW in sdp_info. Removed O_si, N_si from sdp_info because not used. Moved O_rn, N_rn to ring_info.
parent 61d222bd
No related branches found
No related tags found
1 merge request!207Made antenne_band_index RW in sdp_info. Removed O_si, N_si from sdp_info...
...@@ -49,21 +49,15 @@ ARCHITECTURE tb OF tb_sdp_info IS ...@@ -49,21 +49,15 @@ ARCHITECTURE tb OF tb_sdp_info IS
CONSTANT c_dp_clk_period : TIME := 5 ns; -- 200 MHz CONSTANT c_dp_clk_period : TIME := 5 ns; -- 200 MHz
CONSTANT c_mm_clk_period : TIME := 20 ns; -- 50 MHz CONSTANT c_mm_clk_period : TIME := 20 ns; -- 50 MHz
CONSTANT c_cross_clock_domain_latency : NATURAL := 20;
-- used mm_adresses on mm bus -- used mm_adresses on mm bus
CONSTANT c_mm_addr_block_period : NATURAL := 0; CONSTANT c_mm_addr_block_period : NATURAL := 0;
CONSTANT c_mm_addr_N_rn : NATURAL := 1; CONSTANT c_mm_addr_beam_repositioning_flag : NATURAL := 1;
CONSTANT c_mm_addr_O_rn : NATURAL := 2; CONSTANT c_mm_addr_fsub_type : NATURAL := 2;
CONSTANT c_mm_addr_N_si : NATURAL := 3; CONSTANT c_mm_addr_f_adc : NATURAL := 3;
CONSTANT c_mm_addr_O_si : NATURAL := 4; CONSTANT c_mm_addr_nyquist_zone_index : NATURAL := 4;
CONSTANT c_mm_addr_beam_repositioning_flag : NATURAL := 5; CONSTANT c_mm_addr_observation_id : NATURAL := 5;
CONSTANT c_mm_addr_fsub_type : NATURAL := 6; CONSTANT c_mm_addr_antenna_band_index : NATURAL := 6;
CONSTANT c_mm_addr_f_adc : NATURAL := 7; CONSTANT c_mm_addr_station_id : NATURAL := 7;
CONSTANT c_mm_addr_nyquist_zone_index : NATURAL := 8;
CONSTANT c_mm_addr_observation_id : NATURAL := 9;
CONSTANT c_mm_addr_antenna_band_index : NATURAL := 10;
CONSTANT c_mm_addr_station_id : NATURAL := 11;
SIGNAL tb_end : STD_LOGIC := '0'; SIGNAL tb_end : STD_LOGIC := '0';
SIGNAL tb_mm_reg_end : STD_LOGIC := '0'; SIGNAL tb_mm_reg_end : STD_LOGIC := '0';
...@@ -103,74 +97,61 @@ BEGIN ...@@ -103,74 +97,61 @@ BEGIN
-- default all register hold value 0, try to write 1 in all registers -- default all register hold value 0, try to write 1 in all registers
proc_mem_mm_bus_wr(c_mm_addr_block_period ,11 ,mm_clk, reg_miso, reg_mosi); -- RO proc_mem_mm_bus_wr(c_mm_addr_block_period ,11 ,mm_clk, reg_miso, reg_mosi); -- RO
proc_mem_mm_bus_wr(c_mm_addr_N_rn ,12 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_O_rn ,13 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_N_si ,14 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_O_si ,15 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_beam_repositioning_flag,1 ,mm_clk, reg_miso, reg_mosi); proc_mem_mm_bus_wr(c_mm_addr_beam_repositioning_flag,1 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_fsub_type ,1 ,mm_clk, reg_miso, reg_mosi); -- RO proc_mem_mm_bus_wr(c_mm_addr_fsub_type ,1 ,mm_clk, reg_miso, reg_mosi); -- RO
proc_mem_mm_bus_wr(c_mm_addr_f_adc ,1 ,mm_clk, reg_miso, reg_mosi); -- RO proc_mem_mm_bus_wr(c_mm_addr_f_adc ,1 ,mm_clk, reg_miso, reg_mosi); -- RO
proc_mem_mm_bus_wr(c_mm_addr_nyquist_zone_index ,3 ,mm_clk, reg_miso, reg_mosi); proc_mem_mm_bus_wr(c_mm_addr_nyquist_zone_index ,3 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_observation_id ,16 ,mm_clk, reg_miso, reg_mosi); proc_mem_mm_bus_wr(c_mm_addr_observation_id ,16 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_antenna_band_index ,1 ,mm_clk, reg_miso, reg_mosi); -- RO proc_mem_mm_bus_wr(c_mm_addr_antenna_band_index ,1 ,mm_clk, reg_miso, reg_mosi);
proc_mem_mm_bus_wr(c_mm_addr_station_id ,17 ,mm_clk, reg_miso, reg_mosi); proc_mem_mm_bus_wr(c_mm_addr_station_id ,17 ,mm_clk, reg_miso, reg_mosi);
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response /= 11 REPORT "wrong block_period (not read only)" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_N_rn, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 12 REPORT "wrong N_rn" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_O_rn, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 13 REPORT "wrong O_rn" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_N_si, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 14 REPORT "wrong N_si" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_O_si, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response = 15 REPORT "wrong O_si" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
proc_mem_mm_bus_rd(c_mm_addr_beam_repositioning_flag, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); ASSERT mm_natural_response /= 11 REPORT "Wrong block_period (not read only)" SEVERITY ERROR;
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 1 REPORT "wrong beam_repositioning_flag" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_fsub_type, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_beam_repositioning_flag, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response /= 1 REPORT "wrong fsub_type (not read only)" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 1 REPORT "Wrong beam_repositioning_flag" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_f_adc, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_fsub_type, mm_clk, reg_mosi);
proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response /= 1 REPORT "wrong f_adc (not read only)" SEVERITY ERROR; ASSERT mm_natural_response /= 1 REPORT "Wrong fsub_type (not read only)" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_nyquist_zone_index, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_f_adc, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response = 3 REPORT "wrong nyquist_zone_index" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response /= 1 REPORT "Wrong f_adc (not read only)" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_observation_id, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_nyquist_zone_index, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response = 16 REPORT "wrong observation_id" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 3 REPORT "Wrong nyquist_zone_index" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_antenna_band_index, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_observation_id, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response /= 1 REPORT "wrong antenna_band_index (not read only)" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 16 REPORT "Wrong observation_id" SEVERITY ERROR;
proc_mem_mm_bus_rd(c_mm_addr_station_id, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd(c_mm_addr_antenna_band_index, mm_clk, reg_mosi);
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
ASSERT mm_natural_response = 17 REPORT "wrong station_id" SEVERITY ERROR; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 1 REPORT "Wrong antenna_band_index" SEVERITY ERROR;
-- check if antenna_band_index is changed on change of gn_index proc_mem_mm_bus_rd(c_mm_addr_station_id, mm_clk, reg_mosi);
-- '0' <= 16, '1' > 16 proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
gn_index <= 32; mm_natural_response <= TO_UINT(reg_miso.rddata);
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_some_cycles(mm_clk, 1);
proc_mem_mm_bus_rd(c_mm_addr_antenna_band_index, mm_clk, reg_mosi); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); ASSERT mm_natural_response = 17 REPORT "Wrong station_id" SEVERITY ERROR;
mm_natural_response <= TO_UINT(reg_miso.rddata); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 1 REPORT "wrong antenna_band_index" SEVERITY ERROR;
-- check block_period if f_adc and fsub_type are changed -- check block_period if f_adc and fsub_type are changed
-- f_adc = '0' and fsub_type = '0' => block_period = 6400 -- f_adc = '0' and fsub_type = '0' => block_period = 6400
...@@ -178,28 +159,28 @@ BEGIN ...@@ -178,28 +159,28 @@ BEGIN
-- f_adc = '0' and fsub_type = '1' => block_period = 5400 -- f_adc = '0' and fsub_type = '1' => block_period = 5400
-- f_adc = '1' and fsub_type = '1' => block_period = 4320 -- f_adc = '1' and fsub_type = '1' => block_period = 4320
f_adc <= '0'; fsub_type <= '0'; f_adc <= '0'; fsub_type <= '0';
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi); proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi);
proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0)); mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
proc_common_wait_some_cycles(mm_clk, 1); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 6400 REPORT "wrong block_period, expected 6400" SEVERITY ERROR; ASSERT mm_natural_response = 6400 REPORT "wrong block_period, expected 6400" SEVERITY ERROR;
f_adc <= '1'; fsub_type <= '0'; f_adc <= '1'; fsub_type <= '0';
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi); proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi);
proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0)); mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
proc_common_wait_some_cycles(mm_clk, 1); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 5120 REPORT "wrong block_period, expected 5120" SEVERITY ERROR; ASSERT mm_natural_response = 5120 REPORT "wrong block_period, expected 5120" SEVERITY ERROR;
f_adc <= '0'; fsub_type <= '1'; f_adc <= '0'; fsub_type <= '1';
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi); proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi);
proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0)); mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
proc_common_wait_some_cycles(mm_clk, 1); proc_common_wait_some_cycles(mm_clk, 1);
ASSERT mm_natural_response = 5400 REPORT "wrong block_period, expected 5400" SEVERITY ERROR; ASSERT mm_natural_response = 5400 REPORT "wrong block_period, expected 5400" SEVERITY ERROR;
f_adc <= '1'; fsub_type <= '1'; f_adc <= '1'; fsub_type <= '1';
proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency); proc_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi); proc_mem_mm_bus_rd(c_mm_addr_block_period, mm_clk, reg_mosi);
proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk); proc_mem_mm_bus_rd_latency(c_mem_reg_rd_latency, mm_clk);
mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0)); mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
...@@ -218,10 +199,6 @@ BEGIN ...@@ -218,10 +199,6 @@ BEGIN
proc_common_wait_until_high(mm_clk, tb_mm_reg_end); -- wait for p_mm_reg_stimuli done proc_common_wait_until_high(mm_clk, tb_mm_reg_end); -- wait for p_mm_reg_stimuli done
ASSERT TO_UINT(sdp_info.block_period) = 4320 REPORT "wrong sdp_info.block_period value" SEVERITY ERROR; ASSERT TO_UINT(sdp_info.block_period) = 4320 REPORT "wrong sdp_info.block_period value" SEVERITY ERROR;
ASSERT TO_UINT(sdp_info.N_rn) = 12 REPORT "wrong sdp_info.N_rn value" SEVERITY ERROR;
ASSERT TO_UINT(sdp_info.O_rn) = 13 REPORT "wrong sdp_info.O_rn value" SEVERITY ERROR;
ASSERT TO_UINT(sdp_info.N_si) = 14 REPORT "wrong sdp_info.N_si value" SEVERITY ERROR;
ASSERT TO_UINT(sdp_info.O_si) = 15 REPORT "wrong sdp_info.O_si value" SEVERITY ERROR;
ASSERT sdp_info.beam_repositioning_flag = '1' REPORT "wrong sdp_info.beam_repositioning_flag value" SEVERITY ERROR; ASSERT sdp_info.beam_repositioning_flag = '1' REPORT "wrong sdp_info.beam_repositioning_flag value" SEVERITY ERROR;
ASSERT sdp_info.fsub_type = '1' REPORT "wrong sdp_info.fsub_type value" SEVERITY ERROR; ASSERT sdp_info.fsub_type = '1' REPORT "wrong sdp_info.fsub_type value" SEVERITY ERROR;
ASSERT sdp_info.f_adc = '1' REPORT "wrong sdp_info.f_adc value" SEVERITY ERROR; ASSERT sdp_info.f_adc = '1' REPORT "wrong sdp_info.f_adc value" SEVERITY ERROR;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment