Skip to content
Snippets Groups Projects

Resolve L2SDP-285

Merged Reinier van der Walle requested to merge L2SDP-285 into master
11 unresolved threads

Closes L2SDP-285

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
170 171 -- SST UDP offload MM address widths
171 172 CONSTANT c_sdp_reg_stat_enable_addr_w :NATURAL := 1;
172 173
174 -- XSUB
175 CONSTANT c_sdp_crosslets_index_w : NATURAL := ceil_log2(c_sdp_N_sub); --8
  • 55 reg_crosslets_info_mosi : IN t_mem_mosi := c_mem_mosi_rst;
    56 reg_crosslets_info_miso : OUT t_mem_miso := c_mem_miso_rst;
    57
    58 reg_bsn_scheduler_xsub_mosi : IN t_mem_mosi := c_mem_mosi_rst;
    59 reg_bsn_scheduler_xsub_miso : OUT t_mem_miso := c_mem_miso_rst;
    60
    61 out_crosslets_info : OUT STD_LOGIC_VECTOR(c_sdp_crosslets_info_reg_w-1 DOWNTO 0)
    62
    63 );
    64 END sdp_crosslets_subband_select;
    65
    66 ARCHITECTURE str OF sdp_crosslets_subband_select IS
    67
    68
    69 CONSTANT c_crosslets_info_dly : NATURAL := 1;
    70 CONSTANT c_row_select_slv_w : NATURAL := ceil_log2(c_Sdp_P_pfb);
  • 13 -- Unless required by applicable law or agreed to in writing, software
    14 -- distributed under the License is distributed on an "AS IS" BASIS,
    15 -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16 -- See the License for the specific language governing permissions and
    17 -- limitations under the License.
    18 --
    19 -------------------------------------------------------------------------------
    20
    21 -------------------------------------------------------------------------------
    22 --
    23 -- Author: R. van der Walle
    24 -- Purpose:
    25 -- Select subbands from incoming blocks
    26 -- Description:
    27 -- The Crosslet subband select selects N_crosslets from each incoming block. Per
    28 -- crosslet there are S_pn = 12 subbands, one from each signal input of the PN.
  • 179 v_offsets(I) := TO_UINT(crosslets_info_reg((I+1)*c_sdp_crosslets_index_w-1 DOWNTO I*c_sdp_crosslets_index_w));
    180 END LOOP;
    181 END IF;
    182
    183 IF in_sosi_arr(0).sync = '1' AND start_trigger = '0' THEN
    184 v.sync_detected := '1';
    185 END IF;
    186
    187 IF r.started = '1' AND in_sosi_arr(0).eop = '1' AND r.sync_detected = '1' THEN -- change offsets 1 packet after the sync due to the buffered packet in reorder_col_wide_select
    188 v.sync_detected := '0';
    189 FOR I IN 0 TO g_N_crosslets-1 LOOP
    190 v_offsets(I) := r.offsets(I) + TO_UINT(crosslets_info_reg(c_sdp_crosslets_info_reg_w-1 DOWNTO c_sdp_crosslets_info_reg_w - c_sdp_crosslets_index_w));
    191 END LOOP;
    192 END IF;
    193
    194 IF col_select_miso.waitrequest = '0' AND r.started = '1' THEN
  • 60
    61 out_crosslets_info : OUT STD_LOGIC_VECTOR(c_sdp_crosslets_info_reg_w-1 DOWNTO 0)
    62
    63 );
    64 END sdp_crosslets_subband_select;
    65
    66 ARCHITECTURE str OF sdp_crosslets_subband_select IS
    67
    68
    69 CONSTANT c_crosslets_info_dly : NATURAL := 1;
    70 CONSTANT c_row_select_slv_w : NATURAL := ceil_log2(c_Sdp_P_pfb);
    71 CONSTANT c_row_select_pipeline : NATURAL := 1;
    72 CONSTANT c_out_sosi_pipeline : NATURAL := 1;
    73
    74 TYPE t_crosslets_control_reg IS RECORD -- local registers
    75 i_offset : NATURAL;
  • 15 -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16 -- See the License for the specific language governing permissions and
    17 -- limitations under the License.
    18 --
    19 -------------------------------------------------------------------------------
    20
    21 -------------------------------------------------------------------------------
    22 --
    23 -- Author: R. van der Walle
    24 -- Purpose:
    25 -- Select subbands from incoming blocks
    26 -- Description:
    27 -- The Crosslet subband select selects N_crosslets from each incoming block. Per
    28 -- crosslet there are S_pn = 12 subbands, one from each signal input of the PN.
    29 -- Remark:
    30 -- .
  • 172 v.i_offset := 0;
    173 v.i_row := 0;
    174 v.i_col := 0;
    175 v.sync_detected := '0';
    176
    177 v.step := TO_UINT(crosslets_info_reg(c_sdp_crosslets_info_reg_w-1 DOWNTO c_sdp_crosslets_info_reg_w - c_sdp_crosslets_index_w));
    178 FOR I IN 0 TO g_N_crosslets-1 LOOP
    179 v_offsets(I) := TO_UINT(crosslets_info_reg((I+1)*c_sdp_crosslets_index_w-1 DOWNTO I*c_sdp_crosslets_index_w));
    180 END LOOP;
    181 END IF;
    182
    183 IF in_sosi_arr(0).sync = '1' AND start_trigger = '0' THEN
    184 v.sync_detected := '1';
    185 END IF;
    186
    187 IF r.started = '1' AND in_sosi_arr(0).eop = '1' AND r.sync_detected = '1' THEN -- change offsets 1 packet after the sync due to the buffered packet in reorder_col_wide_select
  • 206 END IF;
    207 ELSE
    208 v.i_col := r.i_col+1;
    209 END IF;
    210
    211 v.col_select_mosi.rd := '1';
    212 v.col_select_mosi.address(c_sdp_crosslets_index_w-1 DOWNTO 0) := TO_UVEC(c_sdp_Q_fft*v_offsets(r.i_offset) + r.i_col, c_sdp_crosslets_index_w);
    213 v.row_select_slv := TO_UVEC(r.i_row, c_row_select_slv_w);
    214 END IF;
    215 v.offsets := v_offsets;
    216 nxt_r <= v;
    217 END PROCESS;
    218
    219 col_select_mosi <= r.col_select_mosi;
    220
    221 u_pipe_row_select : ENTITY common_lib.common_pipeline
  • 273 dp_rst => dp_rst,
    274 dp_clk => dp_clk,
    275
    276 in_select => row_select_slv,
    277
    278 -- Streaming
    279 input_sosi_arr => col_sosi_arr,
    280
    281 output_sosi_arr(0) => row_sosi
    282 );
    283
    284
    285 ---------------------------------------------------------------
    286 -- Out Crosslet info pipeline
    287 ---------------------------------------------------------------
    288 u_common_pipeline : ENTITY common_lib.common_pipeline
  • 200 200 retrieve_sosi.im <= RESIZE_DP_DSP_DATA(i_col_select_miso.rddata(c_nof_complex*g_dsp_data_w-1 DOWNTO g_dsp_data_w));
    201 201 retrieve_sosi.data <= RESIZE_DP_DATA(i_col_select_miso.rddata( c_nof_complex*g_dsp_data_w-1 DOWNTO 0));
    202 202 retrieve_sosi.valid <= i_col_select_miso.rdval;
    203 retrieve_sosi.sop <= retrieve_sop_dly(c_retrieve_lat);
    204 retrieve_sosi.eop <= retrieve_eop_dly(c_retrieve_lat);
    203 retrieve_sosi.sop <= retrieve_sop_dly(c_retrieve_lat) AND i_col_select_miso.rdval;
  • 15 -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16 -- See the License for the specific language governing permissions and
    17 -- limitations under the License.
    18 --
    19 -------------------------------------------------------------------------------
    20
    21 -------------------------------------------------------------------------------
    22 -- Author : R vd Walle
    23 -- Purpose: Verify sdp_crosslets_subband_select.
    24 -- Usage:
    25 -- > as 10
    26 -- > run -all
    27 -- * The tb is self stopping and self checking,tb_end will stop the simulation by
    28 -- stopping the clk and thus all toggling.
    29 --
    30 -- Description: The tb verifies out_sosi and out_crosslets_info of the dut.
  • added 1 commit

    Compare with previous version

  • merged

  • Eric Kooistra mentioned in commit 85965a51

    mentioned in commit 85965a51

  • Please register or sign in to reply
    Loading