Control Resource Set

The modules provides the classes and functions that implement Control Resource Set or CORESET. The CORESET defines the set of Resource Blocks (RBs) and the number of symbols that are designed to transmit PDCCH/DCI. The Base Station (BS) transmits the PDCCH using Resource Elements (REs) which belong to a CORESET. The REs which belong to CORESET are defined as Control Channel Elements (CCEs). The PDCCH occupies a specific number of REs according to its aggregation level. An aggregation level is quantified in terms of the number of CCEs that it occupies. The link adaption algorithm within the Base Station assigns a specific aggregation level according to the size of the DCI payload and the UE coverage conditions. Small payloads can be accommodated using lower aggregation levels. UEs which experience poor coverage conditions are normally allocated higher aggregation levels.

The RBs allocated to the CORESET are specified using a higher layer parameter frequencyDomainResources. This information element provides a bit string of 45 bits where each bit corresponds to 6 contiguous RBs with in the active DL BWP. i.e., A maximum of 6*45 = 270 RBs can be allocated. A set of 6 contiguous RBs is included with in the CORESET if the corresponding bit with in the bit string is set to 1.

The number of symbols allocated to CORESET is specified using a higher layer parameter duration. A CORESET can be configured with a duration of 1,2 or 3 symbols.

3GPP has specified both non-interleaved and interleaved mappings between REGs and CCEs. The higher layer parameter cce-REG-MappingType is used to select between the non-interleaved and interleaved options. When using interleaved mapping, REG bundles (number of REGs bundled together) are generated from 2, 3 or 6 REGs, as specified by reg-BundleSize or L. REG bundle size of 2 and 6 are permitted when duration is either 1 or 2. REG bundle size of 3 and 6 are permitted when duration is 3. For non-interleaved, L always equals 6.

CCE are generated by grouping the REG bundles. For example, 2 REG bundles are grouped to generate a CCE when L = 3 for interleaved mapping.

Higher layer parameter interleaverSize or R is configured to determine the number of sections that the CORESET bandwith is divided into when applying interleaving. Higher layer paramter shiftlndex or nshift can be used to apply a cyclic shift to the interleaving pattern. It can take any value from the set {0,1,…,274}.

Note

The Resource Elements (REs) belonging to CORESET are organised into Resource Element Groups (REGs). 1 REG = 1 RB in frequency domain and 1 symbol in time domain. 1 REG = 12 REs, since 1 RB = 12 REs. 1 CCE = 6 REGs = 6*12 = 72 REs.

class toolkit5G.ResourceMapping.CORESET(aggregationLevel, cce_REG_MappingType='interleaved', reg_BundleSize=6, interleaverSize=None, shiftIndex=0)[source]

A class for generating Control Resource Set (CORESET). A control-resource set consists of numRBinCORESET resource blocks in the frequency domain and ``duration``∈{1,2,3} symbols in the time domain. Note that a control-channel element (CCE) consists of 6 resource-element groups (REGs) where a resource-element group (REG) equals one resource block (RB) during one OFDM symbol. i.e., 1 REG = 1 RB with duration of one OFDM symbol. 1 CCE = 6*REGs. REGs within a CORESET are numbered in increasing order in a time-first manner, starting with 0 for the first OFDM symbol and the lowest-numbered RB in the CORESET. A UE can be configured with multiple CORESETs. Each CORESET is associated with one CCE-to-REG mapping only. The CCE-to-REG mapping for a CORESET can be interleaved or non-interleaved and is described by REG bundles.

Parameters:
  • aggregationLevel (int) – Specifies the aggregation level. The aggregation level corresponds to number of Control Channel Elements (CCEs) per PDCCH. Higher level means lower coding rate, and is suitable for UEs with poor channel conditions. Must be a positive int. Aggregation level from 3GPP TS 38.211 Section 7.3.2. Supported PDCCH aggregation levels are {1,2,4,8,16}.

  • cce_REG_MappingType (str) – Specifies the type of REG to CCE mapping type. i.e, how Resource Element Groups (REGs) are being mapped to CCEs. cce_REG_MappingType from 3GPP TS 38.211 Section 7.3.2 Must be a string. Supported mapping types are {“non-interleaved”, “interleaved”}. Defaults to “interleaved”. For “interleaved” mapping, interleaverSize, reg_BundleSize and shiftIndex parameters are expected. For “non-interleaved”, no additional parameter is expected.

  • reg_BundleSize (int) – Specifies reg_BundleSize or ‘L’ from 3GPP TS 38.211 Section 7.3.2. This parameter indicates the number of REGs bundled together to form an REG bundle for “interleaving” type. Supported reg_BundleSize are {2,3,6}. It can take a value from the set {2,6} for duration = 1 and 2 and {3,6} for duration = 3. Must be a positive int and defaults to 6.

  • interleaverSize (int or None) – Specifies interleaverSize or ‘R’ from 3GPP TS 38.211 Section 7.3.2. This parameters indicates the size of interleaver. THe CORESET interleaver divides the available frequency resources into R parts. Each part has C RBs. Interleaver reads the RBs along columns or ‘C’ first and rows or ‘R’ second. It can take a value from the set {2,3,6}. But the configured value should be chosen such that ‘C’ must in an integer or in other words R*C = NumberOfRBs configured for CORESET. Must be a positive int and defaults to None. In the default case it takes value of 6.

  • shiftIndex (int) – Specifies shiftIndex or ‘nshift’ from 3GPP TS 38.211 Section 7.3.2. Indicates the circular shift value while interleaving. It can take any integer value from the interval [0, 274]. Must be a positive int and defaults to 0.

Input:
  • numRBinCORESET (int) – Number of Resource Blocks configured for CORESET using frequencyDomainResources, which is a bit string of size 45 and each bit correspond to a group of 6 RBs. Must be a positive int and can take any value from the set {6,12,18,…,270}.

  • duration (int) – Number of symbols configured for CORESET. Contiguous time duration of the CORESET in number of symbols. Must be a positive int and takes value from the set {1,2,3}.

Return type:

Resource Block (RB) indices configured for transmission of PDCCH.

Raises:

ValueError – If the following condition is false. Where the condition is that C = numREGinCORESET%(reg_BundleSize*interleaverSize)==0 must be true. i.e., Number of columns ‘C’ in the interleaver must be an integer. Where numREGinCORESET = numRBinCORESET*duration

An example of CORESET is given below. The REG to CCE mapping is displayed using a method :method:`displayCORESET`

Example:

Interleaved mapping

# Assuming frequencyDomainResources = 11110000 00000000 00000000 00000000 00000
# i.e., number of RBs allocated to CORESET are 6*4 = 24.
>>> numRBsinCORESET = 24
# duration of CORESET
>>> duration = 3
# Aggregation Level
>>> AL = 4
# REG bundle Size
>>> L = 3
# Interleaver Size
>>> R = 6
# Interleaver Shift Index
>>> nshift = 0
# Instanstiating CORESET object with above choosen parameters.
>>> coresetObj = CORESET(aggregationLevel = AL, cce_REG_MappingType = "interleaved", reg_BundleSize = L,
                  interleaverSize = R, shiftIndex = nShift)
# Physical RB indices where PDCCH can be transmitted
>>> rbIndices  = coresetObj(numRBinCORESET, duration)
# Displays CORESET REG to CCE mapping, REG Bundle indices, and CCE indices.
>>> coresetObj.displayCORESET()

The following figure displays the REG to CCE mapping when interleaved mapping is choosen.

interleaved_reg2cce_mapping

Non-Interleaved mapping

# Assuming frequencyDomainResources = 11000000 00000000 00000000 00000000 00000
# i.e., number of RBs allocated to CORESET are 6*2 = 12.
>>> numRBsinCORESET = 12
# duration of CORESET
>>> duration = 3
# Aggregation Level
>>> AL = 2
# Instanstiating CORESET object with above choosen parameters.
>>> coresetObj = CORESET(aggregationLevel = AL, cce_REG_MappingType = "non-interleaved")
# Physical RB indices where PDCCH can be transmitted
>>> rbIndices  = coresetObj(numRBinCORESET, duration)
# Displays CORESET REG to CCE mapping, REG indices, and CCE indices.
>>> coresetObj.displayCORESET()

The following figure displays the REG to CCE mapping when non-interleaved mapping is choosen.

interleaved_reg2cce_mapping
References:
[3GPPTS38211coreset]

(3GPP TS 38.211 version 17.1.0 Release 17) 5G;NR;Physical channels and modulation ‘7.3.2.2 Control-Resource Set (CORESET)’