From 20254acae9d631bd70db6a4c0841696ec809dbcf Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Mon, 30 May 2022 09:13:23 +0200
Subject: [PATCH] Use constants from tech_jesd204b_pkg.vhd.

---
 .../lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd | 15 +++--
 libraries/technology/jesd204b/hdllib.cfg      |  1 +
 .../technology/jesd204b/tech_jesd204b_pkg.vhd | 59 +++++++++++++++++++
 3 files changed, 69 insertions(+), 6 deletions(-)
 create mode 100644 libraries/technology/jesd204b/tech_jesd204b_pkg.vhd

diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index ed38675826..4a5575370b 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -27,7 +27,7 @@
 -- References:
 -- . [1] https://support.astron.nl/confluence/display/L2M/L3+SDP+Decision%3A+SDP+Parameter+definitions
 -------------------------------------------------------------------------------
-LIBRARY IEEE, common_lib, rTwoSDF_lib, fft_lib, filter_lib, wpfb_lib, diag_lib;
+LIBRARY IEEE, common_lib, rTwoSDF_lib, fft_lib, filter_lib, wpfb_lib, diag_lib, tech_jesd204b_lib;
 USE IEEE.std_logic_1164.ALL;
 USE IEEE.math_real.ALL;
 USE common_lib.common_pkg.ALL;
@@ -39,6 +39,7 @@ USE rTwoSDF_lib.rTwoSDFPkg.ALL;
 USE fft_lib.fft_pkg.ALL; 
 USE filter_lib.fil_pkg.ALL; 
 USE wpfb_lib.wpfb_pkg.ALL;
+USE tech_jesd204b_lib.tech_jesd204b_pkg.ALL;
 
 PACKAGE sdp_pkg is
   -------------------------------------------------
@@ -420,17 +421,19 @@ PACKAGE sdp_pkg is
   CONSTANT c_sdp_reg_nw_10GbE_mac_addr_w    : NATURAL := 13;
   CONSTANT c_sdp_reg_nw_10GbE_eth10g_addr_w : NATURAL := 1;
 
-  -- JESD204
+  -- JESD204B
   CONSTANT c_sdp_jesd204b_freq             : STRING := "200MHz";
-  CONSTANT c_sdp_jesd204b_mm_jesd_ctrl_reg : t_c_mem := (latency  => 1,
+  CONSTANT c_sdp_mm_jesd_ctrl_reg          : t_c_mem := (latency  => 1,
                                                          adr_w    => 1,
                                                          dat_w    => c_word_w,
                                                          nof_dat  => 1,
-                                                         init_sl  => '0');
+                                                         init_sl  => '0');  -- PIO_JESD_CTRL
 
   -- AIT MM address widths
-  CONSTANT c_sdp_jesd204b_addr_w               : NATURAL := ceil_log2(c_sdp_S_pn) + 8; 
-  CONSTANT c_sdp_jesd_ctrl_addr_w              : NATURAL := 1; 
+  CONSTANT c_sdp_jesd204b_addr_w               : NATURAL := ceil_log2(c_sdp_S_pn) + tech_jesd204b_port_span_w;  -- = 4 + 8
+  CONSTANT c_sdp_jesd_ctrl_addr_w              : NATURAL := c_sdp_mm_jesd_ctrl_reg.adr_w;  -- = 1
+  CONSTANT c_sdp_jesd_ctrl_reset_bi            : NATURAL := 31;
+  CONSTANT c_sdp_jesd_ctrl_enable_w            : NATURAL := 31;
   CONSTANT c_sdp_reg_bsn_monitor_input_addr_w  : NATURAL := 8;
   CONSTANT c_sdp_reg_wg_addr_w                 : NATURAL := ceil_log2(c_sdp_S_pn) + 2; 
   CONSTANT c_sdp_ram_wg_addr_w                 : NATURAL := ceil_log2(c_sdp_S_pn) + 10; 
diff --git a/libraries/technology/jesd204b/hdllib.cfg b/libraries/technology/jesd204b/hdllib.cfg
index 490134d658..79a8465a5d 100644
--- a/libraries/technology/jesd204b/hdllib.cfg
+++ b/libraries/technology/jesd204b/hdllib.cfg
@@ -12,6 +12,7 @@ synth_files =
     tech_jesd204b_component_pkg.vhd
     tech_jesd204b_arria10_e1sg.vhd
     tech_jesd204b_arria10_e2sg.vhd
+    tech_jesd204b_pkg.vhd
     tech_jesd204b.vhd
 
 test_bench_files =
diff --git a/libraries/technology/jesd204b/tech_jesd204b_pkg.vhd b/libraries/technology/jesd204b/tech_jesd204b_pkg.vhd
new file mode 100644
index 0000000000..b82c1bbb75
--- /dev/null
+++ b/libraries/technology/jesd204b/tech_jesd204b_pkg.vhd
@@ -0,0 +1,59 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright 2021
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-------------------------------------------------------------------------------
+
+-------------------------------------------------------------------------------
+--
+-- Author: E. Kooistra
+-- Purpose: Test bench parameters for the JESD204B IP.
+-- Description:
+-- Remark:
+-- .
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, technology_lib;
+USE IEEE.std_logic_1164.ALL;
+
+PACKAGE tech_jesd204b_pkg IS
+
+  -- Intel ARRIA10 IP MM interface
+  CONSTANT tech_jesd204b_port_span_w             : NATURAL := 8;
+  CONSTANT tech_jesd204b_port_span               : NATURAL := 2**tech_jesd204b_port_span_w;
+
+  CONSTANT tech_jesd204b_field_rx_err0_adr       : NATURAL := 16#60#;
+  CONSTANT tech_jesd204b_field_rx_err0_w         : NATURAL := 9;
+  CONSTANT tech_jesd204b_field_rx_err0_lo        : NATURAL := 0;
+  CONSTANT tech_jesd204b_field_rx_err0_hi        : NATURAL := tech_jesd204b_field_rx_err0_w-1 + tech_jesd204b_field_rx_err0_lo;
+  CONSTANT tech_jesd204b_field_rx_err1_adr       : NATURAL := 16#64#;
+  CONSTANT tech_jesd204b_field_rx_err1_w         : NATURAL := 10;
+  CONSTANT tech_jesd204b_field_rx_err1_lo        : NATURAL := 0;
+  CONSTANT tech_jesd204b_field_rx_err1_hi        : NATURAL := tech_jesd204b_field_rx_err1_w-1 + tech_jesd204b_field_rx_err1_lo;
+  CONSTANT tech_jesd204b_field_csr_rbd_count_adr : NATURAL := 16#80#;
+  CONSTANT tech_jesd204b_field_csr_rbd_count_w   : NATURAL := 8;
+  CONSTANT tech_jesd204b_field_csr_rbd_count_lo  : NATURAL := 3;
+  CONSTANT tech_jesd204b_field_csr_rbd_count_hi  : NATURAL := tech_jesd204b_field_csr_rbd_count_w-1 + tech_jesd204b_field_csr_rbd_count_lo;
+  CONSTANT tech_jesd204b_field_csr_dev_syncn_adr : NATURAL := 16#80#;
+  CONSTANT tech_jesd204b_field_csr_dev_syncn_w   : NATURAL := 1;
+  CONSTANT tech_jesd204b_field_csr_dev_syncn_lo  : NATURAL := 0;
+  CONSTANT tech_jesd204b_field_csr_dev_syncn_hi  : NATURAL := tech_jesd204b_field_csr_dev_syncn_w-1 + tech_jesd204b_field_csr_dev_syncn_lo;
+
+END tech_jesd204b_pkg;
+
+PACKAGE BODY tech_jesd204b_pkg IS
+END tech_jesd204b_pkg;
-- 
GitLab