5G/NR - PUCCH                                           Home : www.sharetechnote.com

 

 

 

 

 

PUCCH / UCI

 

PUCCH is an uplink physical channel that carries UCI (Uplink Control Information). As DCI (Downlink Control Information) is carried by PDCCH, UCI is carried by PUCCH.  A big difference between DCI and UCI is that UCI can be carried either by PUCCH or PUSCH depending on situation whereas DCI can be carried only by PDCCH (not by PDSCH in any case).

 

 

 

Contents of UCI

 

The contents of UCI is as follows (this is same as LTE). Not all of these are carried by single UCI. Depending on situation, sometimes only CSI is carried, sometimes ACK/NACK only, sometimes SR only and sometimes CSI & ACK/NACK etc.

  • CSI
  • ACK/NAK
  • Scheduling Request (SR)

 

 

 

Summary of PUCCH Formats

 

There are 5 different formats of PUCCH and which one of them is used is determined by how many bits of information should be carried and how many symbols are assigned, as summarized in the following table.

 

< Based on 38.211 - Table 6.3.2.1-1: PUCCH formats.>

Format Types

Lengh of Symbols

Number of bits

Descriptions (based on 38.300 - 5.3.3)

Format 0

1~2

<= 2

Short PUCCH.

with UE multiplexing in the same PRB.

Based on sequence selection.

Format 1

4~14

<= 2

Long PUCCH.

with multiplexing in the same PRB.

time-multiplex the UCI and DMRS

Format 2

1~2

> 2

Short PUCCH.

with no multiplexing in the same PRB.

frequency multiplexes UCI and DMRS

Format 3

4~14

> 2

Long PUCCH.

with moderate UCI payloads and with some multiplexing capacity in the same PRB.

time-multiplex the UCI and DMRS

Format 4

4~14

> 2

Long PUCCH.

with large UCI payloads and with no multiplexing capacity in the same PRB

 

I think the description from 38.300 - 5.3.3 would give you another aspects of the description as below.   

    The short PUCCH format of up to two UCI bits is based on sequence selection, while the short PUCCH format of more than two UCI bits frequency multiplexes UCI and DMRS. The long PUCCH formats time-multiplex the UCI and DMRS. Frequency hopping is supported for long PUCCH formats and for short PUCCH formats of duration of 2 symbols. Long PUCCH formats can be repeated over multiple slots.

 

Following is the summary of PUCCH formats with more detailed parameter. For the overview of PUCCH parameters, I think this table would be enough but if you want to know of the detailed meaning of each of these parameters, you would need to go through the whole page.

 

Parameter

Format 0

Format 1

Format 2

Format 3

Format 4

UCI Bit Length

<= 2

<= 2

> 2

> 2

> 2

PUCCH Length

Short

Long

Short

Long

Long

UE Multiplexing in Same PRB

YES

(CS)

YES

(CS&OCC)

NO

YES

YES

(PreDFT OCC)

UCI/DMRS Multiplexing Method

N/A

TDM

FDM

TDM

FDM

starting PRB/PRB offset

PRB-Id

PRB-Id

PRB-Id

PRB-Id

PRB-Id

nrofPRBs

1

1

1~16

1~16

 

intraSlotFrequencyHopping

enabled

enabled

enabled

enabled

enabled

secondHopPRB

PRB-Id

PRB-Id

PRB-Id

PRB-Id

PRB-Id

startingSymbolIndex

0~13

0~10

0~13

0~10

0~10

nrofSymbols

1~2

4~14

1~2

4~14

4~14

initialCyclicShift

0~11

0~11

N/A

N/A

N/A

timeDomainOCC

N/A

0~6

N/A

N/A

N/A

occ-Length

N/A

N/A

N/A

N/A

2,4

occ-Index

N/A

N/A

N/A

N/A

0,1,2,3

interslotFrequencyHopping

N/A

enabled

enabled

enabled

enabled

additionalDMRS

N/A

true

true

true

true

maxCodeRate

N/A

 

 

 

 

nrofSlots

N/A

2,4,8

2,4,8

2,4,8

2,4,8

pi2BPSK

N/A

enabled

enabled

enabled

enabled

simultaneousHARQ_ACK_CSI

N/A

true

true

true

true

 

 

 

 

How to Determine PUCCH location ?

 

Following is the illustration for the description on 38.213 - 9.2.1 PUCCH Resource Sets. As you see in the following illustration, some parameters applies to all PUCCH format but some parameters applies to only specific formats as below.

 

 

 

 

How to define PUCCH baseband signal ?

 

As in LTE PUCCH(format 1,1a,1b, format 2,2a,2b and format 3), the baseband generation process for NR PUCCH is also very complicated. As you know, all the purpose of PUCCH is just to send a few bits to gNB. I've been thinking on why we need this kind of complicated way just to send a few bits.

Actually PUCCH is not the only one that is designed in such a complicated way. Every channel processing in cellular technology is complicated. Main reason behind this complexity is for reliability of the delivery of the contents and for some channels we put some additional complication for handling multiple users with very limited physical resources.

Anyway, I don't think I can explain fully about the design concept of PUCCH baseband generation in plain words and I don't want to pretend that I myself knows about the full detail.

Full understanding on this process will be required only for a few physical layer development engineer and those engineer would not need this type of notes since they've already had bettern knowledge than I just by reading 3GPP documents.

The main purpose of writing this note is to make a cheat sheet for overall PUCCH baseband process and figure out the link between RRC parameter and baseband process. Even if I don't completely understand the process, at least I can say 'Hmm... this RRC parameter seems to be related to this part of the baseband process'.

PUCCH baseband process is made up of roughly three steps :

This three steps applies to all PUCCH formats (Format 0,1,2,3,4) but depending on PUCCH format a little different parameters(see here) are used during this process and some format would require some extra steps in addition to this common part.

 

 

< PUCCH Baseband Sequence Generation >

 

 

 

< Group and sequence hopping >

 

 

 

< Cyclic Shift >

 

 

 

< PUCCH Format 0 Baseband Sequence >

 

 

 

< PUCCH Format 1 Baseband Sequence >

 

 

 

<  38.211 - Table 6.3.2.4.1-1: Number of PUCCH symbols and the corresponding   >

 

 

< 38.211 - Table 6.3.2.4.1-2: Orthogonal sequences for PUCCH format 1  >

 

 

< PUCCH Format 2 Baseband Sequence >

 

 

 

< PUCCH Format 3 Baseband Sequence >

 

 

 

< PUCCH Format 4 Baseband Sequence >

 

 

 

 

< Baseband Parameters for PUCCH Format >

 

RRC Parameters

Related PUCCH Format

Description

PUCCH-F0-F1-initial-cyclic-shift

Format 0 / 1

The index of the cyclic shift = {0,1,...11}
PUCCH-F1-time-domain-OCC

Format 1

The index of the orthogonal cover code

dataScramblingIdentityPUSCH

Format 2 / 3 / 4

Initialization of scrambling
PUCCH-F4-preDFT-OCC-index

Format 4

The index of the orthogonal cover code = {0,1,2,3}
PUCCH-F4-preDFT-OCC-length

Format 4

The length of the orghogonal cover code = {2,4}

 

 

 

Frequeny Hopping

 

It is possible to enable or disable PUCCH using RRC Parameter PUCCH-frequency-hopping

 

 

 

Modulation

 

QPSK or BPSK is used depending on cases as below.

  • Long PUCCH with 2 or more bits of information : QPSK
  • Short PUCCH with more than 2 bits of information : QPSK
  • Long PUCCH with 1 bit information : BPSK

 

 

 

Channel Coding

 

Various types of Channel coding is applied to UCI(Uplink Control Information) depending on the number of bits to be carried.

 

UCI size including CRC, if present

Channel Code

1

Repetition code

2

Simplex Code

3-11

Reed Muller Code

> 11

Polar Code

 

 

 

 

UCI / PUSCH Multiplexing

 

Is it allowed to transmit UCI and PUSCH at the same time ? This (transmition of UCI and PUSCH at the same time) is called Multiplexing and the UCI/PUSCH multiplexing is supported. This multiplexing happens in the way described as follows (38.300 - 5.3.3)

  • UCI carrying HARQ-ACK feedback with 1 or 2 bits is multiplexed by puncturing PUSCH;
  • In all other cases UCI is multiplexed by rate matching PUSCH.

 

 

 

What is PUCCH Resource and what constitues it ?

 

As described above, there are various parameters to define a specific PUCCH. The set of parameters for defining a specific PUCCH is called 'PUCCH Resource'. The list of parameters that are used to define a PUCCH Resource are as follows.

  • startingPRB/PRB offset
  • intraSlotFrequencyHopping
  • secondHopPRB
  • First symbol (Starting Symbol)/startingSymbolIndex
  • Number of symbols/nrofSymbols
  • initial CS indexes(initialCyclicShift)
  • Number of PRBs/nrofPRBs
  • timeDomainOCC
  • occ-Length
  • occ-Index
  • interslotFrequencyHopping
  • additionalDMRS
  • maxCodeRate
  • nrofSlots
  • pi2BPSK
  • simultaneousHARQ_ACK_CSI

Not every PUCCH format uses all of these parameters. Depending on PUCCH format, a PUCCH uses different set of parameters. Following table shows which parameter is used for which PUCCH format.

 

Parameter

Applicable PUCCH Format

starting PRB/PRB offset Common to All format(Format 0, Format 1, Format 2Format 3, Format 4)
intraSlotFrequencyHopping

Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4)

secondHopPRB

Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4)

startingSymbolIndex

Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4)

nrofSymbols

Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4)

initialCyclicShift

Format 0, Format 1

nrofPRBs

Format 2, Format 3

timeDomainOCC

Format 1

occ-Length

Format 4

occ-Index

Format 4

interslotFrequencyHopping

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

additionalDMRS

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

maxCodeRate

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

nrofSlots

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

pi2BPSK

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

simultaneousHARQ_ACK_CSI

Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig)

 

 

 

How does UE figure out which resource to apply ?

 

In previous section, we learned a lot of parameters are involved in defining a specific PUCCH. Then how the gNB transfer those information to UE ? In other words, how UE can figure out what kind of pucch format and parameters should be used for at the specific moment of PUCCH transmission ?

 

 

 

 

 

How the PUCCH Resource table is defined ?

 

There are two different ways of defining PUCCH Resource List(Table). One is to use the table predefined in 3GPP specification and the other one is to arbitrarily defined table using RRC message.

 

 

< Case 1 > Using the predefined table

 

This case is used in a specific case as stated below (38.213-9.2.1). It means that this table is used when there is no PUCCHResourceSet defined in PUCCH-Config in RRC. There are two RRC messages that would carry PUCCH-Config. One is RRCSetup and the other one is RRCReconfiguration in case of SA or RRCConnectionReconfiguration in case of NSA. So if PUCCH-Config is configured in RRCSetup, this table is used for only a few steps before RRCSetup message. If PUCCH-Config is not configured in RRCSetup, this table is used for pretty long time until the rrc procedure reaches RRCReconfiguration.

    If a UE does not have dedicated PUCCH resource configuration, provided by higher layer parameter PUCCHResourceSet in PUCCH-Config, a PUCCH resource set is provided by higher layer parameter pucch-ResourceCommon in SystemInformationBlockType1 through an index to a row of Table 9.2.1-1 for transmission of HARQ-ACK information on PUCCH in an initial active UL BWP of N_size_BWP PRBs provided by SystemInformationBlockType1

 

<38.213 v15.3 - Table 9.2.1-1: PUCCH resource sets before dedicated PUCCH resource configuration >

 

When this table is used, only one of these items (resource) can be used for a specific cell and the specific resource to be used for the cell is configured by PUCCH-ConfigCommon.pucch-ResourceCommon in SIB1 as shown below.

 

    PUCCH-ConfigCommon ::= SEQUENCE {

         pucch-ResourceCommon               INTEGER (0..15) OPTIONAL, -- Need R

         pucch-GroupHopping                    ENUMERATED { neither, enable, disable },

         hoppingId                                   INTEGER (0..1023) OPTIONAL, -- Need R

         p0-nominal                                 INTEGER (-202..24) OPTIONAL, -- Need R

         ...

    }

 

As you see, pucch-ResourceCommon can specify a number between 0 and 15 which indicate the table Index in 38.213 Table 9.2.1-1.

For example, if pucch-ResourceCommon = 1. Following PUCCH configuration (resource) is used

    PUCCH Format = Format 0

    FirstSymbol = 12

    Number of Symbols = 2

    PRB Offset = 0

    Set of Initial CS Indexes = {0,4,8}

 

 

< Case 2 > Using the table defined in RRC message

 

PUCCH Resource table is defined in RRC message(e.g, RRCSetup(NR), RRCReconfiguration(NR), RRCConnectionReconfiguration(LTE for NR Addition). One example of creating the table is shown below. Basically it has a structure and steps as follows.

 

    Step 1 : Define all the possible PUCCH Format resource a gNB would use in the IE resourceToAddModList

    Ste[ 2 : Define one or multipe Set of resources by combining the elements of resourceToAddModList

 

Example 1 :

    pucch_Config

       setup

          resourceSetToAddModList

             pucch-ResourceSetID  = 0

             resourceList

                {

                   0, // these are the pucch-ResourceId defined in resourceToAddModList.

                   1, // you can make any combination of the list here

                   2, //   example : {0,1,2,3,4,5,6,7}

                   3, //   example : {0,1,2,3,0,1,2,3}

                   4, //   example : {0,0,0,0,0,0,0,0}

                   5,

                   6,

                   7

                }

            maxPayloadMinus1

          resourceToAddModList

             {

                pucch-ResourceId = 0

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 0

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 1

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 1

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 2

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 3

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 3

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 7

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

             {

                pucch-ResourceId = 4

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 0

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 5

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 1

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 6

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 3

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

            {

                pucch-ResourceId = 7

                startingPRB = 0

                intraSlotFrequencyHopping = Omitted

                secondHopPRB = 0

                format = format0

                   format 0

                      {

                         initialCyclicShift = 7

                         nrofSymbols = 1

                         startingSymbolIndex = 13

                      }

            }

         ........

 

 

 

RRC Parameters

 

Based on 38.331 v15.3

 

PUCCH-Config ::=        SEQUENCE {

    resourceSetToAddModList         SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF

                                             PUCCH-ResourceSet             OPTIONAL,   -- Need N

    resourceSetToReleaseList        SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF

                                             PUCCH-ResourceSetId           OPTIONAL,   -- Need N

    resourceToAddModList            SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF

                                             PUCCH-Resource               OPTIONAL,   -- Need N

    resourceToReleaseList           SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF

                                             PUCCH-ResourceId             OPTIONAL,   -- Need N

    format1                         SetupRelease { PUCCH-FormatConfig }  OPTIONAL,   -- Need M

    format2                         SetupRelease { PUCCH-FormatConfig }  OPTIONAL,   -- Need M

    format3                         SetupRelease { PUCCH-FormatConfig }  OPTIONAL,   -- Need M

    format4                         SetupRelease { PUCCH-FormatConfig }  OPTIONAL,   -- Need M

 

    schedulingRequestResourceToAddModList   SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF

                                   SchedulingRequestResourceConfig     OPTIONAL, -- Need M

    schedulingRequestResourceToReleaseList  SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF

                                   SchedulingRequestResourceId         OPTIONAL, -- Need M

 

    multi-CSI-PUCCH-ResourceList   SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId  OPTIONAL,-- Need M

    dl-DataToUL-ACK                SEQUENCE (SIZE (8)) OF INTEGER (0..15)   OPTIONAL,   -- Need M

    spatialRelationInfoToAddModList    SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF

                                       PUCCH-SpatialRelationInfo   OPTIONAL,   -- Need N

    spatialRelationInfoToReleaseList   SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF

                                       PUCCH-SpatialRelationInfoId OPTIONAL,   -- Need N

 

    pucch-PowerControl                 PUCCH-PowerControl   OPTIONAL,   -- Need M

    ...

}

 

maxNrofPUCCH-ResourceSets = 4

 

maxNrofPUCCH-Resources = 127

 

resourceSetToAddModList  : List of PUCCH-ResourceSet

 

resourceToAddModList   :  Lists for adding  PUCCH resources applicable for the UL BWP and serving cell in which the PUCCH-Config is defined. The resources defined herein are referred to from other parts of the configuration to determine which resource the UE shall use for which report.  

 

format1  : Parameters that are common for all PUCCH resources of format 1

 

format2  : Parameters that are common for all PUCCH resources of format 2

 

format3  : Parameters that are common for all PUCCH resources of format 3

 

format4  : Parameters that are common for all PUCCH resources of format 4

 

dl-DataToUL-ACK : List of timiing for given PDSCH to the DL ACK. In this version of the specification only the values [0..8] are applicable. Corresponds to L1 parameter 'Slot-timing-value-K1'

 

spatialRelationInfoToAddModList : Configuration of the spatial relation between a reference RS and PUCCH. Reference RS can be SSB/CSI-RS/SRS. If the list has more than one element, MAC-CE selects a single element. Corresponds to L1 parameter 'PUCCH-SpatialRelationInfo'

 

 

PUCCH-FormatConfig ::=                  SEQUENCE {

    interslotFrequencyHopping               ENUMERATED {enabled}  OPTIONAL,   -- Need R

    additionalDMRS                          ENUMERATED {true}     OPTIONAL,   -- Need R

    maxCodeRate                             PUCCH-MaxCodeRate     OPTIONAL,   -- Need R

    nrofSlots                               ENUMERATED {n2,n4,n8}   OPTIONAL,   -- Need S

    pi2PBSK                                 ENUMERATED {enabled}    OPTIONAL,   -- Need R

    simultaneousHARQ-ACK-CSI                ENUMERATED {true}       OPTIONAL    -- Need R

}

 

PUCCH-MaxCodeRate ::=         ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35,

                                          zeroDot45, zeroDot60, zeroDot80}

 

interslotFrequencyHopping : Enabling inter-slot frequency hopping when PUCCH Format 1, 3 or 4 is repetead over multiple slots. The field is not applicable for format 2

 

additionalDMRS : Enabling 2 DMRS symbols per hop of a PUCCH Format 3 or 4 if both hops are more than X symbols when FH is enabled (X=4). Enabling 4 DMRS sybmols for a PUCCH Format 3 or 4 with more than 2X+1 symbols when FH is disabled (X=4). Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS'. The field is not applicable for format 1 and 2.  

 

maxCodeRate : Max coding rate to determine how to feedback UCI on PUCCH for format 2, 3 or 4. Corresponds to L1 parameter 'PUCCH-F2-maximum-coderate', 'PUCCH-F3-maximum-coderate' and 'PUCCH-F4-maximum-coderate' . The field is not applicable for format 1.

 

nrofSlots : Number of slots with the same PUCCH F1, F3 or F4. When the field is absent the UE applies the value n1. Corresponds to L1 parameter 'PUCCH-F1-number-of-slots', 'PUCCH-F3-number-of-slots' and 'PUCCH-F4-number-of-slots'. The field is not applicable for format 2.

 

pi2PBSK : Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK'. The field is not applicable for format 1 and 2.

 

simultaneousHARQ-ACK-CSI : Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format 2, 3 or 4. Corresponds to L1 parameter 'PUCCH-F2-Simultaneous-HARQ-ACK-CSI', 'PUCCH-F3-Simultaneous-HARQ-ACK-CSI' and 'PUCCH-F4-Simultaneous-HARQ-ACK-CSI'. When the field is absent the UE applies the value OFF. The field is not applicable for format 1.

 

 

PUCCH-SpatialRelationInfo ::=               SEQUENCE {

    pucch-SpatialRelationInfoId                 PUCCH-SpatialRelationInfoId,

    referenceSignal                             CHOICE {

        ssb-Index                                   SSB-Index,

        csi-RS-Index                                NZP-CSI-RS-ResourceId,

        srs                                         SRS-ResourceId

    },

    pucch-PathlossReferenceRS-Id                PUCCH-PathlossReferenceRS-Id,

    p0-PUCCH-Id                                 P0-PUCCH-Id,

    closedLoopIndex                             ENUMERATED { i0, i1 }

}

 

PUCCH-SpatialRelationInfoId ::=             INTEGER (1..maxNrofSpatialRelationInfos)

 

PUCCH-ResourceSet ::=                       SEQUENCE {

    pucch-ResourceSetId                         PUCCH-ResourceSetId,

    resourceList                                SEQUENCE (SIZE (8..maxNrofPUCCH-ResourcesPerSet))

                                                          OF PUCCH-ResourceId,

    maxPayloadMinus1                            INTEGER (4..256)  OPTIONAL    -- Need R

}

 

maxNrofPUCCH-ResourcesPerSet ::= 4

PUCCH-ResourceSetId ::=                         INTEGER (0..maxNrofPUCCH-ResourceSets-1)

 

PUCCH-Resource ::=                              SEQUENCE {

    pucch-ResourceId                                PUCCH-ResourceId,

    startingPRB                                     PRB-Id,

    intraSlotFrequencyHopping                       ENUMERATED { enabled } OPTIONAL,   -- Need R

    secondHopPRB                                    PRB-Id      OPTIONAL,   -- Need R

 

    format             CHOICE {

        format0               PUCCH-format0,     - Cond InFirstSetOnly

        format1               PUCCH-format1,     - Cond InFirstSetOnly

        format2               PUCCH-format2,     - Cond NotInFirstSet

        format3               PUCCH-format3,     - Cond NotInFirstSet

        format4               PUCCH-format4      - Cond NotInFirstSet

    }

}

 

PUCCH-ResourceId ::=                            INTEGER (0..maxNrofPUCCH-Resources-1)

 

PUCCH-format0 ::=                               SEQUENCE {

    initialCyclicShift                              INTEGER(0..11),

    nrofSymbols                                     INTEGER (1..2),

    startingSymbolIndex                             INTEGER(0..13)

}

 

PUCCH-format1 ::=                               SEQUENCE {

    initialCyclicShift                              INTEGER(0..11),

    nrofSymbols                                     INTEGER (4..14),

    startingSymbolIndex                             INTEGER(0..10),

    timeDomainOCC                                   INTEGER(0..6)

}

 

PUCCH-format2 ::=                               SEQUENCE {

    nrofPRBs                                        INTEGER (1..16),

    nrofSymbols                                     INTEGER (1..2),

    startingSymbolIndex                             INTEGER(0..13)

}

 

PUCCH-format3 ::=                               SEQUENCE {

    nrofPRBs                                        INTEGER (1..16),

    nrofSymbols                                     INTEGER (4..14),

    startingSymbolIndex                             INTEGER(0..10)

}

 

PUCCH-format4 ::=                               SEQUENCE {

    nrofSymbols                                     INTEGER (4..14),

    occ-Length                                      ENUMERATED {n2,n4},

    occ-Index                                       ENUMERATED {n0,n1,n2,n3},

    startingSymbolIndex                             INTEGER(0..10)

}

 

SchedulingRequestResourceConfig ::=    SEQUENCE {

    schedulingRequestResourceId              SchedulingRequestResourceId,

    schedulingRequestID                      SchedulingRequestId,

    periodicityAndOffset                     CHOICE {

        sym2                                    NULL,                       

        sym6or7                                 NULL,                       

        sl1                                     NULL,      -- Recurs in every slot

        sl2                                     INTEGER (0..1),

        sl4                                     INTEGER (0..3),

        sl5                                     INTEGER (0..4),

        sl8                                     INTEGER (0..7),

        sl10                                    INTEGER (0..9),

        sl16                                    INTEGER (0..15),

        sl20                                    INTEGER (0..19),

        sl40                                    INTEGER (0..39),

        sl80                                    INTEGER (0..79),

        sl160                                   INTEGER (0..159),

        sl320                                   INTEGER (0..319),

        sl640                                   INTEGER (0..639)

    }         OPTIONAL,   -- Need M

    resource                                    PUCCH-ResourceId     OPTIONAL    -- Need M

}

 

 

PUCCH-PowerControl ::=      SEQUENCE {

    deltaF-PUCCH-f0            INTEGER (-16..15)      OPTIONAL,   -- Need R

    deltaF-PUCCH-f1            INTEGER (-16..15)      OPTIONAL,   -- Need R

    deltaF-PUCCH-f2            INTEGER (-16..15)      OPTIONAL,   -- Need R

    deltaF-PUCCH-f3            INTEGER (-16..15)      OPTIONAL,   -- Need R

    deltaF-PUCCH-f4            INTEGER (-16..15)      OPTIONAL,   -- Need R

    p0-Set                     SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF

                                  P0-PUCCH            OPTIONAL, -- Need M

    pathlossReferenceRSs       SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF

                                  PUCCH-PathlossReferenceRS OPTIONAL, -- Need M

    twoPUCCH-PC-AdjustmentStates     ENUMERATED {twoStates} OPTIONAL, -- Need R

    ...

}

 

P0-PUCCH ::=                            SEQUENCE {

    p0-PUCCH-Id                             P0-PUCCH-Id,

    p0-PUCCH-Value                          INTEGER (-16..15)

}

 

P0-PUCCH-Id ::=                         INTEGER (1..8)

 

PUCCH-PathlossReferenceRS ::=           SEQUENCE {

    pucch-PathlossReferenceRS-Id                PUCCH-PathlossReferenceRS-Id,

    referenceSignal                             CHOICE {

        ssb-Index                                   SSB-Index,

        csi-RS-Index                                NZP-CSI-RS-ResourceId

    }

}

 

PUCCH-PathlossReferenceRS-Id ::=  INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)

 

 

PUCCH-ConfigCommon ::= SEQUENCE {

     pucch-ResourceCommon               INTEGER (0..15) OPTIONAL, -- Need R

     pucch-GroupHopping                    ENUMERATED { neither, enable, disable },

     hoppingId                                   INTEGER (0..1023) OPTIONAL, -- Need R

     p0-nominal                                 INTEGER (-202..24) OPTIONAL, -- Need R

     ...

}

 

 

 

Reference

 

[1]