cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Fields
PdschDmrsParams Struct Reference

Struct that tracks all necessary parameters for PDSCH DMRS computation. This struct is also used in PDSCH modulation. There is one PdschDmrsParams struct per TB.

#include <cuphy.h>

Data Fields

float beta_dmrs
 
float beta_qam
 
uint16_t BWP_start_PRB
 
uint32_t cell_id
 
uint8_t cell_index_in_cell_group
 
void * cell_output_tensor_addr
 
uint64_t data_sym_loc
 
uint32_t dmrs_scid
 
uint16_t dmrs_sym_loc
 
uint8_t enablePrcdBf
 
uint32_t n_scid
 
uint8_t Np
 
uint16_t num_BWP_PRBs
 
uint8_t num_data_symbols
 
uint8_t num_dmrs_symbols
 
uint8_t num_layers
 
uint16_t num_Rbs
 
__half2 pmW [MAX_DL_LAYERS_PER_TB *MAX_DL_PORTS]
 
uint8_t port_ids [MAX_DL_LAYERS_PER_TB]
 
uint8_t ref_point
 
uint32_t slot_number
 
uint16_t start_Rb
 
uint8_t symbol_number
 
uint8_t ueGrp_idx
 

Field Documentation

◆ beta_dmrs

float PdschDmrsParams::beta_dmrs

DMRS amplitude scaling

◆ beta_qam

float PdschDmrsParams::beta_qam

QAM amplitude scaling

◆ BWP_start_PRB

uint16_t PdschDmrsParams::BWP_start_PRB

start PRB for this bandwidth part. Used only if ref_point is 1.

◆ cell_id

uint32_t PdschDmrsParams::cell_id

gnb_pars.cellId

◆ cell_index_in_cell_group

uint8_t PdschDmrsParams::cell_index_in_cell_group

Different than cell_id.

◆ cell_output_tensor_addr

void* PdschDmrsParams::cell_output_tensor_addr

output address for the cell this TB belong to. NB: replicates information across all TBs in the same cell. Could alternatively add a field with the cell index in cell group, and maintain a separate array of cell indices to be used both by DMRS and modulation.

◆ data_sym_loc

uint64_t PdschDmrsParams::data_sym_loc

Starting from least significant bit the first 4 * num_data_symbols bits are valid and specify the location of the data symbols. 4 bits are used for each position.

◆ dmrs_scid

uint32_t PdschDmrsParams::dmrs_scid

DMRS scrambling Id

◆ dmrs_sym_loc

uint16_t PdschDmrsParams::dmrs_sym_loc

Starting from least significant bit the first 4 * num_drms_symbols bits are valid and specify the location of the DMRS symbols. 4 bits are used for each position.

◆ enablePrcdBf

uint8_t PdschDmrsParams::enablePrcdBf

is pre-coding enabled

◆ n_scid

uint32_t PdschDmrsParams::n_scid

scrambling Id used

◆ Np

uint8_t PdschDmrsParams::Np

number of antenna ports for this UE when precoding is enabled (enablePrcdBf true); 0 otherwise.

◆ num_BWP_PRBs

uint16_t PdschDmrsParams::num_BWP_PRBs

number of PRBs in this bandwidth part.

◆ num_data_symbols

uint8_t PdschDmrsParams::num_data_symbols

number of data symbols

◆ num_dmrs_symbols

uint8_t PdschDmrsParams::num_dmrs_symbols

number of DMRS symbols

◆ num_layers

uint8_t PdschDmrsParams::num_layers

number of layers

◆ num_Rbs

uint16_t PdschDmrsParams::num_Rbs

number of allocated RBs (Resource Blocks), at most 273. 0=Don't format modulator output

◆ pmW

__half2 PdschDmrsParams::pmW[MAX_DL_LAYERS_PER_TB *MAX_DL_PORTS]

pre-coding matrix to be used only if enablePrcdBf is true with num_layers rows and Np columns

◆ port_ids

uint8_t PdschDmrsParams::port_ids[MAX_DL_LAYERS_PER_TB]

at most 8 ports supported for DMRS configuration type 1 per UE, but this is per TB; only the first num_layers values are valid; actual port is +1000

◆ ref_point

uint8_t PdschDmrsParams::ref_point

DMRS reference point: 0 or 1

◆ slot_number

uint32_t PdschDmrsParams::slot_number

from gnb_pars.slotNumber

◆ start_Rb

uint16_t PdschDmrsParams::start_Rb

initial RB (0 indexing)

◆ symbol_number

uint8_t PdschDmrsParams::symbol_number

index of initial symbol (0-based).

◆ ueGrp_idx

uint8_t PdschDmrsParams::ueGrp_idx

UE group identifier associated with this TB