DCI
The main purpose of DCI (Downlink Control Information) is the same as DCI in LTE(I strongly recommend you to read LTE DCI page first if you are not so familiar with what the DCI does). That is, it is a special set of information which schedules downlink data channel (e.g, PDSCH) or uplink data channel (e.g, PUSCH).
Followings are the list of DCI types and its contents defined in 38.212 - 7.3 Downlink control information.
< 38.212 - Table 7.3.1-1: DCI formats >
NOTE : The contents of the table shown here is based on 38.212. This specification is very dry. As any other 3GPP spcecification, it just describes 'what should be done' and does not describe anything on the background story. To get any further technical background, you need to follow through a lot of TDocs. However, unless you are a firmware or DSP engineering implementing the physical channel, it will be very difficult to keep track of all the TDocs. One trick that I would recommend is to go through several latest TDocs not far away from TS (Technical Specification) because those TDocs usually have the summary of past stories and more detailed design concept. I put several TDocs under Reference section that might help you to get some background stories.
Format 0_0
This is used for the scheduling of PUSCH in one cell.
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
|
Frequency domain resource assignment
|
N
|
Variable with UL BWP N_RB.
Indicate PRB location within the BWP.
The number of bits and the value is determined as described here.
|
Time domain resource assignment
|
X
|
Carries the row index of the items in pusch_allocationList in RRC
|
Frequency Hopping Flag
|
1
|
|
Modulation and coding scheme
|
5
|
38.214 - 6.1.4 (See this table)
|
New data indicator
|
1
|
|
Redundancy version
|
2
|
0,1,2,3
|
HARQ process number
|
4
|
|
TPC command for scheduled PUSCH
|
2
|
38.213 - Table 7.1.1-1
|
UL/SUL indicator
|
0 or 1
|
0 bit : SUL not figured
1 bit : SUL configured
|
< Frequency domain resource assignment >
The number of bits(bit length) for this field is determined by following formula
The value of this field is determined as follows.
Case 1 : PUSCH hopping = True and Resource allocation type 1
MSB bits are used to indicate the frequency offset
= 1 if Frequency-hopping-offsets-set contains two offset values
= 2 if Frequency-hopping-offsets-set contains four offset values
- Remaining Bits indicates PUSCH RIV
Case 2 : PUSCH hopping = False and Resource allocation type 1
- the whole bits of this field indicates PUSCH RIV
< 38.214 v15.1 - Table 6.1.4.1-1: MCS index table for PUSCH with transform precoding and 64QAM >
MCS Index
I_MCS
|
Modulation Order
Qm
|
Target code Rate
R x 1024
|
Spectral
efficiency
|
0
|
q
|
240/ q
|
0.2344
|
1
|
q
|
314/ q
|
0.3066
|
2
|
2
|
193
|
0.377
|
3
|
2
|
251
|
0.4902
|
4
|
2
|
308
|
0.6016
|
5
|
2
|
379
|
0.7402
|
6
|
2
|
449
|
0.877
|
7
|
2
|
526
|
1.0273
|
8
|
2
|
602
|
1.1758
|
9
|
2
|
679
|
1.3262
|
10
|
4
|
340
|
1.3281
|
11
|
4
|
378
|
1.4766
|
12
|
4
|
434
|
1.6953
|
13
|
4
|
490
|
1.9141
|
14
|
4
|
553
|
2.1602
|
15
|
4
|
616
|
2.4063
|
16
|
4
|
658
|
2.5703
|
17
|
6
|
466
|
2.7305
|
18
|
6
|
517
|
3.0293
|
19
|
6
|
567
|
3.3223
|
20
|
6
|
616
|
3.6094
|
21
|
6
|
666
|
3.9023
|
22
|
6
|
719
|
4.2129
|
23
|
6
|
772
|
4.5234
|
24
|
6
|
822
|
4.8164
|
25
|
6
|
873
|
5.1152
|
26
|
6
|
910
|
5.332
|
27
|
6
|
948
|
5.5547
|
28
|
1
|
reserved
|
29
|
2
|
reserved
|
30
|
4
|
reserved
|
31
|
6
|
reserved
|
< 38.213 v2.0.0 - Table 7.1.1-1: Mapping of TPC Command Field in DCI format 0_0, DCI format 0_1, or DCI format 2_2, or DCI format 2_3 having CRC parity bits scrambled by TPC-PUSCH-RNTI or TPC-SRS-RNTI, to absolute and accumulated d_PUSCH,c values >

Format 0_1
This is used for the scheduling of PUSCH in one cell.
Field (Item)
|
Bits
|
Reference
|
Carrier indicator
|
3
|
|
Identifier for DCI formats
|
1
|
|
Bandwidth part indicator
|
0,1,2
|
Determined by BandwidthPart-Config in higher layer message and 38.212 - Table 7.3.1.1.2-1
|
Frequency domain resource assignment
|
Variable
|
Variable with Resource Allocation Type |
Time domain resource assignment
|
1,2,3,4
|
Carries the row index of the items in pusch_allocationList in RRC
|
VRB-to-PRB mapping
|
1
|
|
Frequency Hopping Flag |
0,1
|
|
Modulation and coding scheme
|
5
|
38.214 - 6.1.4 (See this table)
|
New data indicator
|
1
|
|
Redundancy version
|
2
|
0,1,2,3 |
HARQ process number
|
4
|
|
1st Downlink assignment index
|
1,2
|
|
2nd Downlink assignment index
|
0,2
|
|
TPC command for scheduled PUSCH
|
2
|
|
SRS resource indicator
|
Variable
|
Determined by RRC Parameter SRS-SetUse
|
Precoding information and number of layers
|
0,2,3,4,5,6
|
Determined by ulTxConfig, Number of Antenna ports, PUSCH-tp, ULmaxRank
|
Antenna ports
|
2,3,4,5
|
Determined by PUSCH-tp, DL-DMRS-config-type, DL-DMRS-config-max-len, Rank
|
SRS request
|
2
|
Table 7.3.1.1.2-24 |
CSI request
|
0,1,2,3,4,5,6
|
Determined by ReportTriggerSize in RRC message |
CBG transmission information
|
0,2,4,6,8
|
Determined by maxCodeBlockGroupPerTransportblock in RRC message |
PTRS - DMRS Association
|
0,2
|
Determined by UL-PTRS-present, PUSCH-tp in RRC Message
|
beta_offsetr Indicator |
0,2
|
0 - if uci-on-PUSCH.dynamic = Not Configured
2 - otherwise, see Table 7.3.1.1.2-27
|
DMRS Sequence Initialization |
0,1
|
0 - if PUSCH-tp=Disabled
1 - if PUSCH-tp=Enabled
|
UL/SUL Indicator |
0,1
|
0 - bit for UE not configured with SUL in the cell
1 - bit for UEs configured with SUL in the cell
|
< 38.212 v2.0.0 - Table 7.3.1.1.2-1: Bandwidth part indicator >
Value of BWP indicator field
|
Bandwidth part
|
1 bit
|
2 bits
|
0
|
0
|
First bandwidth part configured
by higher layers
|
1
|
1
|
Second bandwidth part
configured by higher layers
|
|
10
|
Third bandwidth part configured
by higher layers
|
|
11
|
Fourth bandwidth part
configured by higher layers
|
< Frequency domain resource assignment >
The bit length of this field is determined as follows.
Resource Allocation Type
|
Mumber of Bits
|
Resource Allocation Type 0 only
|
, P is defined in 38.214 Table 6.1.2.2.1-1
|
Resource Allocation Type 1 only
|

|
Resource Allocation Type 0 and Type 1
|
Bit Length :

MSB Indicates Resource Allocation Type
0 : Resource Allocation Type 0
1 : Resource Allocation Type 1
|
The value of this field is determined as follows :
- Resource Allocation Type 0 only : Bitmap determined as described here.
- Resource Allocation Type 1 only : Determined depending on PUSCH Hopping field as follows
- Case 1 : PUSCH hopping = True
MSB bits are used to indicate the frequency offset
= 1 if Frequency-hopping-offsets-set contains two offset values
= 2 if Frequency-hopping-offsets-set contains four offset values
- Remaining Bits indicates PUSCH RIV
- Case 2 : PUSCH hopping = False
- the whole bits of this field indicates PUSCH RIV
< 38.214-Table 6.1.2.2.1-1: Nominal RBG size P >
Carrier Bandwidth Part Size
|
Configuration 1
|
Configuration 2
|
[1st Range of RBs]
|
P = [one of {2, 4, 8, 16}]
|
P = [one of {2, 4, 8, 16}]
|
[2nd Range of RBs]
|
P = [one of {2, 4, 8, 16}]
|
P = [one of {2, 4, 8, 16}]
|
[3rd Range of RBs]
|
P = [one of {2, 4, 8, 16}]
|
P = [one of {2, 4, 8, 16}]
|
[4th Range of RBs]
|
P = [one of {2, 4, 8, 16}]
|
P = [one of {2, 4, 8, 16}]
|
NOTE : Which RBG(Resource Block Group) size to be used is determined by PUSCH-Config.rbg-Size in RRC message from gNB
< SRS resource indicator >
SRS-SetUse
|
Bit Length of SRS Resource Indicator
|
CodeBook
|
|
N_SRS is the number of configured SRS resources in the SRS resource set associated with SRS-SetUse
|
NonCodeBook
|

|
|
< Precoding information and number of layers >
ulTxConfig
|
Antenna
|
PUSCH-tp
|
ULmaxRank
|
ULCodebookSubset
|
Bit Length
|
Table
|
NonCodeBook
|
|
|
|
|
0
|
|
CodeBook
|
4 ports
|
Disabled
|
2 or 3 or 4
|
|
4 or 5 or 6
|
7.3.1.1.2-2
|
CodeBook
|
4 ports
|
Disabled
|
|
|
2 or 4 or 5
|
7.3.1.1.2-3
|
Enabled
|
1
|
|
CodeBook
|
2 ports
|
|
2
|
|
3 or 4
|
7.3.1.1.2-4
|
CodeBook
|
2 ports
|
|
1
|
|
2 or 3
|
7.3.1.1.2-5
|
NOTE : PUSCH-tp indicates PUSCH Transform Precoding. Refer to Transform Precoding section in Waveform Page if you want to know what this is.
< Antenna ports >
PUSCH-tp
|
DL-DMRS-config-type
|
DL-DMRS-config-max-len
|
Rank
|
Bit Lenth
|
Table
|
Enabled
|
1
|
1
|
|
2
|
7.3.1.1.2-6
|
1
|
2
|
|
4
|
7.3.1.1.2-7
|
Disabled
|
1
|
1
|
1
|
3
|
7.3.1.1.2-8
|
1
|
1
|
2
|
3
|
7.3.1.1.2-9
|
1
|
1
|
3
|
3
|
7.3.1.1.2-10
|
1
|
1
|
4
|
3
|
7.3.1.1.2-11
|
Disabled
|
1
|
2
|
1
|
4
|
7.3.1.1.2-12
|
1
|
2
|
2
|
4
|
7.3.1.1.2-13
|
1
|
2
|
3
|
4
|
7.3.1.1.2-14
|
1
|
2
|
4
|
4
|
7.3.1.1.2-15
|
Disabled
|
2
|
1
|
1
|
4
|
7.3.1.1.2-16
|
2
|
1
|
2
|
4
|
7.3.1.1.2-17
|
2
|
1
|
3
|
4
|
7.3.1.1.2-18
|
2
|
1
|
4
|
4
|
7.3.1.1.2-19
|
Disabled
|
2
|
2
|
1
|
5
|
7.3.1.1.2-20
|
2
|
2
|
2
|
5
|
7.3.1.1.2-21
|
2
|
2
|
3
|
5
|
7.3.1.1.2-22
|
2
|
2
|
4
|
5
|
7.3.1.1.2-23
|
NOTE : PUSCH-tp indicates PUSCH Transform Precoding. Refer to Transform Precoding section in Waveform Page if you want to know what this is.
< PTRS - DMRS Association >
UL-PTRS-present
|
PUSCH-tp
|
UL PTRS port
|
UL-PTRS-ports
|
Bit Length
|
Table
|
OFF
|
Disabled
|
|
|
0
|
N/A
|
ON
|
Enabled
|
|
|
0
|
N/A
|
ON
|
Disabled
|
|
|
0
|
N/A
|
Otherwise
|
0
|
1
|
2
|
7.3.1.1.2-25
|
0
|
2
|
2
|
7.3.1.1.2-26
|
1
|
2
|
2
|
7.3.1.1.2-26
|
Format 1_0
This is used for the scheduling of PDSCH in one cell.
< DCI format 1_0 with CRC scrambled by C-RNTI >
The meaning of varies depending on the search space where DCI_1_0 is transmitted.
When stransmitted in common search space,
When stransmitted in UE specific search space and meets following criteria
the total number of different DCI sizes monitored per slot <= 4
the total number of different DCI sizes with C-RNTI monitored per slot <= 3
it indicates the size of the Active Bandwidth Part
< DCI format 1_0 with CRC scrambled by RA-RNTI >
: This is used to schedule RAR (Msg2) in RACH Procedure
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
Always set to 1, meaning this is for DL
|
Frequency domain resource assignment
|
Variable
|
Variable with UL BWP N_RB

|
Time domain resource assignment
|
X
|
Carries the row index of the items in pdsch_allocationList in RRC
|
VRB-to-PRB mapping
|
1
|
According to 38.212 Table 7.3.1.1.2-33
0 : Non-Interleaved
1 : Inverleaved
|
Modulation and coding scheme
|
5
|
38.214 - Table 5.1.3.1-1: MCS index table 1 for PDSCH
38.214 - Table 5.1.3.1-2: MCS index table 2 for PDSCH
|
New data indicator
|
1
|
Reserved |
Redundancy version
|
2
|
Reserved
|
HARQ process number
|
4
|
Reserved
|
Downlink assignment index
|
2
|
Reserved
|
TPC command for scheduled PUCCH
|
2
|
Reserved
|
PUCCH resource indicator
|
3
|
Reserved
|
PDSCH-to-HARQ_feedback timing indicator
|
3
|
Reserved
|
The meaning of varies depending on the search space where DCI_1_0 is transmitted.
When stransmitted in common search space in CORESET 0 ,
When stransmitted in UE specific search space and meets following criteria
the total number of different DCI sizes monitored per slot <= 4
the total number of different DCI sizes with C-RNTI monitored per slot <= 3
it indicates the size of the Active Bandwidth Part
< DCI format 1_0 with CRC scrambled by TC-RNTI >
: This is used to schedule Contention Resolution (Msg4) in RACH Procedure
The meaning of varies depending on the search space where DCI_1_0 is transmitted.
When stransmitted in common search space in CORESET 0 ,
When stransmitted in UE specific search space and meets following criteria
the total number of different DCI sizes monitored per slot <= 4
the total number of different DCI sizes with C-RNTI monitored per slot <= 3
it indicates the size of the Active Bandwidth Part
Format 1_1
This is used for the scheduling of PDSCH in one cell.
Field (Item)
|
Bits
|
Reference
|
Carrier indicator
|
0,3
|
|
Identifier for DCI formats
|
1
|
Always set to 1, indicating a DL DCI format
|
Bandwidth part indicator
|
0,1,2
|
|
Frequency domain resource assignment
|
Variable
|
Variable with Resource Allocation Type |
Time domain resource assignment
|
1,2,3,4
|
Carries the row index of the items in pdsch_allocationList in RRC
|
VRB-to-PRB mapping
|
0,1
|
|
PRB bundling size indicator
|
0,1
|
|
Rate matching indicator
|
0,1,2
|
|
Modulation and coding scheme [TB1]
|
5
|
|
New data indicator [TB1]
|
1
|
|
Redundancy version [TB1]
|
2
|
|
Modulation and coding scheme [TB2]
|
5
|
|
New data indicator [TB2]
|
1
|
|
Redundancy version [TB2]
|
2
|
|
HARQ process number
|
4
|
|
Downlink assignment index
|
0,4
|
|
TPC command for scheduled PUCCH
|
2
|
|
PUCCH resource indicator
|
2
|
|
PDSCH-to-HARQ_feedback timing indicator
|
3
|
Row number(index) of K1 |
Antenna port(s) and number of layers
|
1,2,3,4,5,6
|
|
Transmission configuration indication
|
0,3
|
|
CSI request
|
2
|
|
CBG transmission information
|
0,2,4,6,8
|
|
CBG flushing out information
|
0,1
|
|
DMRS sequence initialization
|
1
|
|
Format 2_0
This is used for notifying the slot format.
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
|
Slot format indicator
|
Variable
|
Bit size is determined by RRC message here |
Slot format indicator : a Bit string indicating Slot format indicator 1, Slot format indicator 2, …, Slot format indicator N
Format 2_1
This is used for notifying the PRB(s) and OFDM symbol(s) where UE may assume no transmission is intended for the UE.
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
|
Pre-emption indication
|
Variable
|
|
Format 2_2
This is used for the transmission of TPC commands for PUCCH, PUSCH
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
|
TPC command number 1, TPC command number 2,…, TPC command number N
|
Variable
|
|
Format 2_3
This is used for the transmission of a group of TPC commands for SRS transmissions by one or more UEs. Along with a TPC command, a SRS request may also be transmitted.
Field (Item)
|
Bits
|
Reference
|
Identifier for DCI formats
|
1
|
|
block number 1, block number 2,…, block number B
|
Variable
|
|
SRS Request |
0,2
|
|
TPC Command Number |
2
|
|
Reference
[1] 3GPP TS 38.212 NR;Multiplexing and channel coding
[2] 3GPP TSG RAN WG1 Meeting #92 : R1-1802117 : Discussion on DCI contents
[3] 3GPP TSG-RAN WG1 #92 : R1-1802905 : Remaining issues of the DCI contents and formats
[4] 3GPP TSG RAN WG1 Meeting #92 : R1-1801976 : DCI Contents and Formats
[5] 3GPP TSG RAN WG1 Meeting #92 : R1-1802097 : Remaining issues on MIMO related DCI design
[6] 3GPP TSG RAN WG1 Meeting #92 : R1-1802482 : DCI contents and formats
[7] 3GPP TSG RAN WG1 Meeting #92 : R1-1802597 : Remaining issues in DCI contents and formats
[8] 3GPP TSG RAN WG1 Meeting #92 : R1-1802209 : Remaining issues on DCI contents and formats
[9] 3GPP TSG RAN WG1 Meeting #92 : R1-1801730 : Open issues on DCI contents and formats
[10] 3GPP TSG RAN WG1 Meeting #92 : R1-1801624 : Remaining issues on DCI content
|