R src/jesd204b_rx.vhd => src/jesd204b_link_rx.vhd +32 -35
  
@@ 1,7 1,7 @@
 -------------------------------------------------------------------------------
 -- Title      : JESD204B receiver
 -------------------------------------------------------------------------------
--- File       : jesd204b_rx.vhd
+-- File       : jesd204b_link_rx.vhd
 -------------------------------------------------------------------------------
 -- Description: A top level entity for a JESD204B receiver.
 -- Holds data_link and transport_layers.
@@ 13,36 13,43 @@ use work.transport_pkg.all;
 use work.data_link_pkg.all;
 use work.jesd204b_pkg.all;
 
-entity jesd204b_rx is
+entity jesd204b_link_rx is
   generic (
     K_character  : std_logic_vector(7 downto 0) := "10111100";  -- Sync character
     R_character  : std_logic_vector(7 downto 0) := "00011100";  -- ILAS first
-                                                                -- frame character
+                                        -- frame character
     A_character  : std_logic_vector(7 downto 0) := "01111100";  -- Multiframe
-                                                                -- alignment character
+                                        -- alignment character
     Q_character  : std_logic_vector(7 downto 0) := "10011100";  -- ILAS 2nd
-                                                                -- frame 2nd character
-    K            : integer                      := 1;  -- Number of frames in a
-                                                       -- multiframe
-    CS           : integer                      := 1;  -- Number of control bits per sample
-    M            : integer                      := 1;  -- Number of converters
-    S            : integer                      := 1;  -- Number of samples
-    L            : integer                      := 1;  -- Number of lanes
-    F            : integer                      := 2;  -- Number of octets in a frame
-    CF           : integer                      := 0;  -- Number of control words
-    N            : integer                      := 12;  -- Size of a sample
-    Nn           : integer                      := 16;  -- Size of a word (sample + ctrl if CF
+                                        -- frame 2nd character
+    ADJCNT       : integer                      := 0;
+    ADJDIR       : integer                      := 0;
+    BID          : integer                      := 0;
+    DID          : integer                      := 0;
+    HD           : std_logic                    := '0';
+    JESDV        : integer                      := 1;
+    PHADJ        : integer                      := 0;
+    SUBCLASSV    : integer                      := 0;
+    K            : integer;             -- Number of frames in a
+                                        -- multiframe
+    CS           : integer;             -- Number of control bits per sample
+    M            : integer;             -- Number of converters
+    S            : integer;             -- Number of samples
+    L            : integer;             -- Number of lanes
+    F            : integer;             -- Number of octets in a frame
+    CF           : integer;             -- Number of control words
+    N            : integer;             -- Size of a sample
+    Nn           : integer;             -- Size of a word (sample + ctrl if CF
     ERROR_CONFIG : error_handling_config        := (2, 0, 5, 5, 5);
     SCRAMBLING   : std_logic                    := '0');
   port (
-    ci_char_clk  : in std_logic;        -- Character clock
-    ci_frame_clk : in std_logic;        -- Frame clock
-    ci_reset     : in std_logic;        -- Reset (asynchronous, active low)
+    ci_char_clk     : in std_logic;     -- Character clock
+    ci_frame_clk    : in std_logic;     -- Frame clock
+    ci_reset        : in std_logic;     -- Reset (asynchronous, active low)
     ci_request_sync : in std_logic;     -- Request synchronization
 
-    co_lane_config : out link_config;   -- The configuration of the link
-    co_nsynced     : out std_logic;     -- Whether receiver is synced (active low)
-    co_error       : out std_logic;
+    co_nsynced : out std_logic;  -- Whether receiver is synced (active low)
+    co_error   : out std_logic;
 
     di_transceiver_data : in  lane_input_array(0 to L-1);  -- Data from transceivers
     do_samples          : out samples_array(0 to M - 1, 0 to S - 1);
@@ 50,9 57,11 @@ entity jesd204b_rx is
 -- Output samples
     co_correct_data     : out std_logic);  -- Whether samples are correct user
                                            -- data
-end entity jesd204b_rx;
+end entity jesd204b_link_rx;
 
-architecture a1 of jesd204b_rx is
+architecture a1 of jesd204b_link_rx is
+  constant link_config : link_config :=
+    (ADJCNT, ADJDIR, BID, CF, CS, DID, F, HD, JESDV, K, L, LID, M, N, Nn, PHADJ, S, SCRAMBLING, SUBCLASSV, RES1, RES2, X, 0);
   -- == DATA LINK ==
   -- outputs
   signal data_link_ready_vector : std_logic_vector(L-1 downto 0) := (others => '0');
@@ 74,18 83,6 @@ architecture a1 of jesd204b_rx is
 
   signal all_ones : std_logic_vector(L-1 downto 0) := (others => '1');
 
-  function ConfigsMatch (
-    config_array : lane_configs_array)
-    return std_logic is
-    variable matches : std_logic := '1';
-  begin  -- function ConfigsMatch
-    for i in 0 to L-2 loop
-      if config_array(i) /= config_array(i+1) then
-        matches := '0';
-      end if;
-
-      return matches;
-    end loop;  -- i
   end function ConfigsMatch;
 begin  -- architecture a1
   -- nsynced is active LOW, set '0' if all ready
 
M testbench/jesd204b_rx_data_tb.vhd => testbench/jesd204b_rx_data_tb.vhd +1 -1
  
@@ 147,7 147,7 @@ architecture a1 of jesd204b_rx_data_tb is
   signal co_correct_data : std_logic;
 
 begin  -- architecture a1
-  uut : entity work.jesd204b_rx
+  uut : entity work.jesd204b_link_rx
     generic map (
       K  => K,
       CS => CS,
 
M testbench/jesd204b_rx_ils_tb.vhd => testbench/jesd204b_rx_ils_tb.vhd +1 -1
  
@@ 143,7 143,7 @@ architecture a1 of jesd204b_rx_ils_tb is
   signal co_correct_data : std_logic;
 
 begin  -- architecture a1
-  uut : entity work.jesd204b_rx
+  uut : entity work.jesd204b_link_rx
     generic map (
       K  => K,
       CS => CS,
 
M testbench/jesd204b_rx_kchars_tb.vhd => testbench/jesd204b_rx_kchars_tb.vhd +1 -1
  
@@ 83,7 83,7 @@ architecture a1 of jesd204b_rx_kchars_tb is
   signal co_correct_data : std_logic;
 
 begin  -- architecture a1
-  uut : entity work.jesd204b_rx
+  uut : entity work.jesd204b_link_rx
     generic map (
       K  => K,
       CS => CS,