From eb9138d82a1e06fc70a5dc37257d8cbb0349d805 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Tue, 15 Feb 2022 16:09:47 +0100
Subject: [PATCH] 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.

---
 .../libraries/sdp/tb/vhdl/tb_sdp_info.vhd     | 127 +++++++-----------
 1 file changed, 52 insertions(+), 75 deletions(-)

diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_info.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_info.vhd
index c5af514ec6..552b5ee8f2 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_info.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_info.vhd
@@ -49,21 +49,15 @@ ARCHITECTURE tb OF tb_sdp_info IS
   CONSTANT c_dp_clk_period        : TIME := 5 ns;     -- 200 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
-  CONSTANT c_mm_addr_block_period            : NATURAL := 0; 
-  CONSTANT c_mm_addr_N_rn                    : NATURAL := 1; 
-  CONSTANT c_mm_addr_O_rn                    : NATURAL := 2; 
-  CONSTANT c_mm_addr_N_si                    : NATURAL := 3; 
-  CONSTANT c_mm_addr_O_si                    : NATURAL := 4; 
-  CONSTANT c_mm_addr_beam_repositioning_flag : NATURAL := 5; 
-  CONSTANT c_mm_addr_fsub_type               : NATURAL := 6; 
-  CONSTANT c_mm_addr_f_adc                   : 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;
+  CONSTANT c_mm_addr_block_period            : NATURAL := 0;
+  CONSTANT c_mm_addr_beam_repositioning_flag : NATURAL := 1;
+  CONSTANT c_mm_addr_fsub_type               : NATURAL := 2;
+  CONSTANT c_mm_addr_f_adc                   : NATURAL := 3;
+  CONSTANT c_mm_addr_nyquist_zone_index      : NATURAL := 4;
+  CONSTANT c_mm_addr_observation_id          : NATURAL := 5;
+  CONSTANT c_mm_addr_antenna_band_index      : NATURAL := 6;
+  CONSTANT c_mm_addr_station_id              : NATURAL := 7;
   
   SIGNAL tb_end              : STD_LOGIC := '0';
   SIGNAL tb_mm_reg_end       : STD_LOGIC := '0';
@@ -103,74 +97,61 @@ BEGIN
 
     -- 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_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_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_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_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_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency);
-
-    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_common_wait_cross_clock_domain_latency(dp_clk, mm_clk);
 
-    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);
-    mm_natural_response <= TO_UINT(reg_miso.rddata);  proc_common_wait_some_cycles(mm_clk, 1);
-    ASSERT mm_natural_response = 15 REPORT "wrong O_si" SEVERITY ERROR;
-
-    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);
-    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_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_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);
-    ASSERT mm_natural_response /= 1 REPORT "wrong fsub_type (not read only)" SEVERITY ERROR;
+    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);
+    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);
-    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);
-    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_f_adc, 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 /= 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);
-    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_nyquist_zone_index, 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 = 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);
-    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 (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);
+    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);
-    mm_natural_response <= TO_UINT(reg_miso.rddata);  proc_common_wait_some_cycles(mm_clk, 1);
-    ASSERT mm_natural_response = 17 REPORT "wrong station_id" 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);
+    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
-    -- '0' <= 16,  '1' > 16
-    gn_index <= 32;
-    proc_common_wait_some_cycles(mm_clk, c_cross_clock_domain_latency);
-    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);
-    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;
+    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);
+    mm_natural_response <= TO_UINT(reg_miso.rddata);
+    proc_common_wait_some_cycles(mm_clk, 1);
+    ASSERT mm_natural_response = 17 REPORT "Wrong station_id" SEVERITY ERROR;
 
     -- check block_period if f_adc and fsub_type are changed
     -- f_adc = '0' and fsub_type = '0' => block_period = 6400
@@ -178,28 +159,28 @@ BEGIN
     -- f_adc = '0' and fsub_type = '1' => block_period = 5400
     -- f_adc = '1' and fsub_type = '1' => block_period = 4320
     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_latency(c_mem_reg_rd_latency, mm_clk);
     mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
     proc_common_wait_some_cycles(mm_clk, 1);
     ASSERT mm_natural_response = 6400 REPORT "wrong block_period, expected 6400" SEVERITY ERROR;
     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_latency(c_mem_reg_rd_latency, mm_clk);
     mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
     proc_common_wait_some_cycles(mm_clk, 1);
     ASSERT mm_natural_response = 5120 REPORT "wrong block_period, expected 5120" SEVERITY ERROR;
     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_latency(c_mem_reg_rd_latency, mm_clk);
     mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
     proc_common_wait_some_cycles(mm_clk, 1);
     ASSERT mm_natural_response = 5400 REPORT "wrong block_period, expected 5400" SEVERITY ERROR;
     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_latency(c_mem_reg_rd_latency, mm_clk);
     mm_natural_response <= TO_UINT(reg_miso.rddata(15 DOWNTO 0));
@@ -218,10 +199,6 @@ BEGIN
     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.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.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;
-- 
GitLab