PDCCH & DCI Formats in 5G NR
The downlink control channel and every DCI format — what schedules the DL, what schedules the UL, and the fields inside.
Every scheduled transmission in 5G NR begins with a small control message. Before a gNB can hand your phone a chunk of downlink data or let it send uplink data, it must first tell the UE where that data lives, how it is coded, and what to do with it afterwards. That message is Downlink Control Information (DCI), and it rides on the Physical Downlink Control Channel (PDCCH). This page walks through how the PDCCH is physically built, how a DCI is protected and addressed, the complete menu of DCI formats, and a field-by-field dissection of the two workhorse formats 1_1 and 0_1.
Introduction
DCI is the control payload that makes dynamic scheduling possible in NR, and the PDCCH is the physical channel that carries it. Every time the gNB wants to send you downlink data, grant you uplink resources, page you, adjust your power, or tell you the slot format, it packs the instruction into a DCI of a specific format, protects it, and transmits it on the PDCCH inside a region the UE is already monitoring (see CORESET & Search Space).
DCI is used at every stage of the UE lifecycle. During initial and random access it carries SIB and RAR scheduling with robust fallback formats. Once connected, it delivers the steady stream of unicast grants that move data on PDSCH and PUSCH, plus a family of group-common commands (slot format, pre-emption, power control, wake-up). The formats are defined in TS 38.212; how the UE monitors and interprets them is in TS 38.213.
It matters because the data channels carry no self-describing header — without a correctly decoded DCI, the resources underneath are unusable. Control reliability therefore gates everything: this is why DCI is fixed at the most robust modulation, protected by a long CRC, and coded so it can be found by brute-force blind decoding rather than any explicit pointer.
On this page
Why DCI on PDCCH is needed
In plain words: think of the shared data channel as a huge parcel-sorting warehouse and your data as one parcel among thousands. A parcel with no label is useless — nobody knows whose it is, where it goes, or how to open it. The DCI is that label, and the PDCCH is the conveyor belt that always delivers the label just before the parcel. The label is written in a code only your key reads, so you pick out your parcel without anyone spelling out your name.
Concretely, the shared channels PDSCH and PUSCH are pure data pipes with no embedded header describing their own contents. Something external must tell the UE which PRBs and symbols the data occupies, which modulation and code rate were used, which HARQ process it belongs to, and when to act. DCI is that "something." And because control must be understood even before dedicated configuration exists — during access, paging and random access — it is engineered for robustness first: a fixed low-order modulation, a strong CRC, and short-blocklength coding that degrades gracefully. If the control is lost, the data underneath is lost with it, no matter how well the data was coded.
PDCCH carries DCI
The PDCCH is the channel; the DCI is the payload it carries. When the gNB decides to schedule you, it builds a DCI message, protects it, and transmits it on the PDCCH inside a region of time and frequency the UE is already watching. The UE blindly decodes candidate locations, and if a decode succeeds and passes its CRC check, it acts on the grant.
DCI is a bit-field message defined in TS 38.212 that conveys scheduling grants and control commands. The PDCCH is its physical carrier, monitored inside a CORESET and search space (TS 38.213).
The shared data channels (PDSCH/PUSCH) carry no self-describing header. Something must tell the UE which resources, which MCS, which HARQ process, and when. DCI is that "something."
The DCI payload gets a 24-bit CRC scrambled by an RNTI, is encoded with Polar coding, modulated with QPSK, and mapped onto the PDCCH candidates the UE blindly decodes.
Three processing choices define the physical DCI. First, the CRC attached to the DCI is scrambled by an RNTI (Radio Network Temporary Identifier) — this is how addressing works without spending bits on an explicit UE ID. Second, the channel coding is Polar coding, the same family used for the Broadcast Channel. Third, the modulation is fixed at QPSK: a DCI is never higher-order QAM-modulated, because robustness matters far more than spectral efficiency for control. Get the control wrong and the data underneath is lost regardless of how well it was coded.
One-line intuition: PDCCH is the envelope, DCI is the letter, and the RNTI-scrambled CRC is the address on the envelope — only the addressed UE can open it cleanly.
PDCCH physical structure: REG, CCE, and aggregation levels
A PDCCH is not sprayed arbitrarily across the grid. It is tiled from small, standardised units so the UE knows exactly which resource elements to combine when it attempts a decode. Two units matter, and one derived quantity governs robustness.
REG(Resource Element Group) = 1 resource block × 1 OFDM symbol = 12 resource elements. Of those 12 REs, 3 carry the PDCCH-DMRS (the demodulation reference signal, at subcarriers 1, 5, 9) and the remaining 9 carry coded control data.CCE(Control Channel Element) = 6 REGs = 72 REs, of which 54 carry data and 18 carry DMRS. The CCE is the currency of PDCCH allocation — everything is counted in CCEs.- Aggregation Level (AL) = the number of CCEs used for one PDCCH transmission. NR supports AL 1, 2, 4, 8, and 16.
The PDCCH-DMRS is what makes the control channel demodulable at all. Because control is decoded before any data, the UE cannot rely on data-region reference signals; instead each PDCCH candidate carries its own DMRS, scrambled by pdcch-DMRS-ScramblingID (0–65535, defaulting to the physical cell ID when absent), so the receiver can estimate the channel across exactly the CCEs it is combining. Whether that estimate can be shared across REGs depends on precoderGranularity.
The point of aggregation levels is link adaptation for control. A DCI payload is a fixed number of bits; spreading it across more CCEs simply lowers the effective code rate and adds redundancy. A UE near the cell centre with strong SINR decodes reliably at AL 1 or AL 2 (spending few CCEs, leaving control capacity for other UEs). A cell-edge UE in poor SINR is given AL 8 or AL 16, buying reliability at the cost of consuming a large slice of the CORESET. The gNB estimates the downlink quality (often from CSI or from the UL SINR) and picks the AL per transmission — there is no explicit AL field in the DCI, because the AL is implicit in which candidate the UE successfully decodes.
Polar coding, the 24-bit CRC, and RNTI scrambling
The journey from DCI bits to PDCCH symbols is short but exact. The gNB first appends a 24-bit CRC to the DCI payload. It then scrambles (XORs) that CRC with an RNTI. The combined block is Polar-encoded (with interleaving and rate-matching to fit the chosen aggregation level), scrambled, QPSK-modulated, and mapped to the CCEs of a candidate.
The UE never sees an explicit "this is for UE #7" field. Instead, at each monitoring occasion it takes each candidate, Polar-decodes it, and then de-scrambles the recovered CRC with the RNTI(s) it currently owns. If the CRC checks out against, say, the UE's C-RNTI, the DCI is for that UE and carries the meaning associated with that RNTI. If no de-scrambling passes, the candidate was not for this UE and is discarded. This is elegant because it does double duty: the RNTI both addresses the UE and selects the interpretation — the very same DCI format decoded with SI-RNTI means "system information scheduling," while decoded with C-RNTI it means "a dynamic unicast grant for you."
Polar coding is used because it performs well at the short block lengths typical of control (tens to low hundreds of bits) and degrades gracefully. The 24-bit CRC is long enough to keep the false-alarm rate negligible (on the order of 2-24 per hypothesis) even though the UE runs many blind decodes per slot across multiple RNTIs and aggregation levels. RNTI values themselves are 16-bit (0x0001–0xFFEF for assignable identities such as C-RNTI, with the top of the range reserved for fixed system RNTIs).
| RNTI | Use |
|---|---|
C-RNTI | Dynamic unicast scheduling for a connected UE (its main identity) |
CS-RNTI | Configured-scheduling (semi-persistent) grants: activation, deactivation, retransmission |
MCS-C-RNTI | Unicast scheduling using an alternative (more robust) MCS table |
SI-RNTI | Scheduling of System Information (SIB) on PDSCH (fixed value 0xFFFF) |
RA-RNTI / MsgB-RNTI | Scheduling of the Random Access Response (Msg2 / MsgB for 2-step RACH) |
TC-RNTI | Temporary C-RNTI during random access, before contention resolution |
P-RNTI | Scheduling of paging (fixed value 0xFFFE) |
SP-CSI-RNTI | Activation/deactivation of semi-persistent CSI reporting on PUSCH |
SFI-RNTI | Slot Format Indication (DCI 2_0) |
INT-RNTI | Pre-emption indication (DCI 2_1) |
TPC-PUCCH-RNTI / TPC-PUSCH-RNTI / TPC-SRS-RNTI | Group power-control commands (DCI 2_2 / 2_3) |
CI-RNTI / PS-RNTI | UL cancellation indication (DCI 2_4) / power-saving wake-up (DCI 2_6) |
Spec anchor: CRC attachment, RNTI scrambling, and Polar coding are defined in TS 38.212; RNTI usage and UE monitoring procedures in TS 38.213; the RNTI value ranges in TS 38.321.
The full DCI format catalogue
DCI comes in a fixed catalogue of formats, grouped by job: uplink grants (0_x), downlink assignments (1_x), and a family of group-common control messages (2_x). A UL grant schedules the PUSCH; a DL assignment schedules the PDSCH. The 2_x formats are broadcast-style commands read by a group of UEs, each addressed by a shared RNTI.
| Format | Purpose | Addressed by |
|---|---|---|
0_0 | UL grant → PUSCH (fallback, compact, fixed size) | C-RNTI, TC-RNTI, CS-RNTI |
0_1 | UL grant → PUSCH (non-fallback, feature-rich) | C-RNTI, CS-RNTI, SP-CSI-RNTI, MCS-C-RNTI |
0_2 | UL grant → PUSCH (compact/configurable, URLLC low-latency) | C-RNTI, CS-RNTI, MCS-C-RNTI |
1_0 | DL assignment → PDSCH (fallback, compact, fixed size) | C-RNTI, SI-RNTI, RA-RNTI, P-RNTI, TC-RNTI |
1_1 | DL assignment → PDSCH (non-fallback, feature-rich) | C-RNTI, CS-RNTI, MCS-C-RNTI |
1_2 | DL assignment → PDSCH (compact/configurable, URLLC low-latency) | C-RNTI, CS-RNTI, MCS-C-RNTI |
2_0 | Slot Format Indicator (SFI) — DL/UL/flexible layout to a group | SFI-RNTI |
2_1 | Pre-emption indication — which DL resources were pre-empted (URLLC over eMBB) | INT-RNTI |
2_2 | TPC (transmit power control) commands for PUCCH and PUSCH | TPC-PUCCH-RNTI, TPC-PUSCH-RNTI |
2_3 | TPC commands for SRS transmissions (group) | TPC-SRS-RNTI |
2_4 | Uplink cancellation indication — stop UL transmission on indicated resources | CI-RNTI |
2_5 | Availability of soft resources for an IAB node (integrated access & backhaul) | AI-RNTI |
2_6 | Power saving — wake-up / DCP indication outside active-time DRX | PS-RNTI |
Mnemonic: formats starting 0_ go up (PUSCH), formats starting 1_ come down (PDSCH), and everything in the 2_ family is a broadcast to many UEs at once.
Fallback (x_0) vs non-fallback (x_1) vs compact (x_2)
Within each scheduling direction the three variants trade robustness, richness, and latency. Understanding the split explains why NR carries three DL formats and three UL formats rather than one.
Formats 0_0 and 1_0 are the fallback DCIs: compact, with a size that is fixed and predictable from minimal configuration, and monitored primarily in the Common Search Space (CSS). They are robust and always understood, which is exactly what you want during initial access, random access, paging, and any moment the UE and gNB might disagree about configuration. The SI-RNTI, RA-RNTI, P-RNTI, and TC-RNTI procedures all rely on these fallback formats because they must be decodable before dedicated RRC configuration exists.
Formats 0_1 and 1_1 are the non-fallback DCIs: larger, feature-rich, and monitored in the UE's UE-specific Search Space (USS). They unlock the advanced features a fully configured connected UE needs — multi-layer MIMO with antenna-port and TCI signalling, bandwidth-part switching, carrier-aggregation fields, ZP/rate-matching control, and richer HARQ handling.
Formats 0_2 and 1_2 are the compact / configurable variants introduced in Release 16 for URLLC. Many of their field widths are RRC-configurable, so the network can shrink the DCI to the minimum bits a low-latency service needs, improving reliability (fewer bits at a given AL) and enabling faster, smaller-footprint scheduling.
Fallback (x_0) | Non-fallback (x_1) | Compact (x_2) | |
|---|---|---|---|
| Size | Small, fixed fields | Largest, many optional fields | Configurable, often smallest |
| Search space | Mainly Common (CSS) | UE-specific (USS) | UE-specific (USS) |
| Field widths | Fixed by spec | Depend on RRC config | Individually RRC-tunable |
| Features | Basic single-layer scheduling | MIMO, BWP switch, CA, ZP-CSI-RS | Trimmed subset for latency |
| Typical use | Initial/random access, SIB, paging | Steady-state connected data | URLLC / low-latency services |
Size budget interplay: a UE monitors at most 4 distinct DCI sizes per cell, and at most 3 of those scrambled by C-RNTI (TS 38.213). Because 0_0 and 1_0 are aligned to a common size, they cost one budget slot together; adding 0_2/1_2 on top of 0_1/1_1 is what most often pushes a configuration against this cap.
Field-by-field: DCI 1_1 (downlink assignment)
The non-fallback DL format is where the real scheduling detail lives. Many field widths depend on RRC configuration, so the bit counts below are typical rather than fixed. The time-domain field is an index into a configured PDSCH TDRA table; the selected row expands to the slot offset K0 and the SLIV (start symbol and length). Note that MCS/NDI/RV appear per transport block when two-codeword MIMO is configured.
| Field | Typical size | Meaning |
|---|---|---|
Identifier for DCI formats | 1 bit | Distinguishes DL (=1) from UL (=0) format sharing the same size/search space |
Carrier indicator (CIF) | 0 or 3 bits | Which serving cell this grant applies to (cross-carrier scheduling) |
Bandwidth part indicator | 0–2 bits | Switches the active DL BWP for this and subsequent transmissions |
Frequency domain resource assignment (FDRA) | varies | Which PRBs in the active BWP carry the PDSCH (type 0 bitmap or type 1 RIV) |
Time domain resource assignment (TDRA) | 0–4 bits | Index into the PDSCH TDRA table → gives K0 and the SLIV |
VRB-to-PRB mapping | 0 or 1 bit | Non-interleaved vs interleaved virtual-to-physical RB mapping |
PRB bundling size indicator | 0 or 1 bit | Selects the PRG bundling size for wideband precoding (if dynamic) |
Rate matching indicator | 0–2 bits | Which configured rate-matching pattern(s) to apply around the PDSCH |
ZP CSI-RS trigger | 0–2 bits | Triggers aperiodic zero-power CSI-RS (resources rate-matched out) |
MCS (TB1 / TB2) | 5 bits each | Modulation order and code rate per transport block |
New Data Indicator (TB1 / TB2) | 1 bit each | Toggles to signal a new TB vs a retransmission |
Redundancy Version (TB1 / TB2) | 2 bits each | Which coded redundancy version for HARQ soft-combining |
HARQ process number | 4 bits | Which of up to 16 HARQ buffers this TB belongs to |
Downlink Assignment Index (DAI) | 0/2/4 bits | Counter/total to build the dynamic HARQ-ACK codebook |
TPC command for scheduled PUCCH | 2 bits | Power-control step for the PUCCH carrying the HARQ-ACK |
PUCCH resource indicator | 3 bits | Which configured PUCCH resource carries the HARQ-ACK |
PDSCH-to-HARQ feedback timing (K1) | 0–3 bits | Selects K1: slots after PDSCH to send HARQ-ACK |
Antenna port(s) | 4–6 bits | DMRS ports, number of layers, and CDM groups without data |
Transmission configuration indication (TCI) | 0 or 3 bits | QCL/beam state for PDSCH reception (matters in FR2) |
SRS request | 2–3 bits | Triggers aperiodic SRS transmission |
DMRS sequence initialization | 0 or 1 bit | Selects the DMRS scrambling seed (n_SCID) |
Reading tip: the FDRA and TDRA never carry raw RE/symbol numbers directly. FDRA is a bitmap (type 0) or an RIV (type 1); TDRA is an index into a configured table whose row expands to K0 plus the SLIV.
Field-by-field: DCI 0_1 (uplink grant)
The non-fallback UL format mirrors much of 1_1 but points at a PUSCH and adds the fields needed to control uplink transmission — the SRS-based beam/precoder selection, codebook precoding, and CSI/beta-offset triggering. Its time-domain field indexes the PUSCH TDRA table, yielding the slot offset K2 and the SLIV. There is no PUCCH/HARQ-timing field, because the UE is transmitting data, not feeding back ACKs.
| Field | Typical size | Meaning |
|---|---|---|
Identifier for DCI formats | 1 bit | =0 for an uplink format |
Carrier indicator (CIF) | 0 or 3 bits | Serving cell for cross-carrier scheduling |
UL/SUL indicator | 0 or 1 bit | Selects the normal UL vs the supplementary uplink carrier |
Bandwidth part indicator | 0–2 bits | Switches the active UL BWP |
Frequency domain resource assignment (FDRA) | varies | Which PRBs carry the PUSCH |
Time domain resource assignment (TDRA) | 0–4 bits | Index into the PUSCH TDRA table → gives K2 and the SLIV |
Frequency hopping flag | 0 or 1 bit | Enables intra/inter-slot frequency hopping for the PUSCH |
MCS | 5 bits | Modulation order and code rate for the UL transport block |
New Data Indicator (NDI) | 1 bit | New TB vs retransmission |
Redundancy Version (RV) | 2 bits | Redundancy version for UL HARQ |
HARQ process number | 4 bits | Which UL HARQ process |
1st / 2nd downlink assignment index | 1–4 bits | DAI for HARQ-ACK codebook when multiplexing on PUSCH |
TPC command for scheduled PUSCH | 2 bits | Power-control step for this PUSCH |
SRS resource indicator (SRI) | varies | Selects the SRS resource whose measured beam/precoder to use |
Precoding information and number of layers | 0–6 bits | UL precoder and layer count for codebook-based transmission |
Antenna ports | 2–5 bits | DMRS ports / CDM groups for the PUSCH |
SRS request | 2–3 bits | Triggers aperiodic SRS |
CSI request | 0–6 bits | Triggers aperiodic CSI report multiplexed on the PUSCH |
PTRS-DMRS association | 0 or 2 bits | Ties phase-tracking RS ports to DMRS ports (FR2) |
beta_offset indicator | 0 or 2 bits | Selects the beta-offset for UCI-on-PUSCH multiplexing |
DMRS sequence initialization | 0 or 1 bit | Selects the DMRS scrambling seed (n_SCID) |
Timing recap: K0 (DCI→PDSCH) and K2 (DCI→PUSCH) come out of the TDRA row; K1 (PDSCH→HARQ-ACK on PUCCH) comes from the PDSCH-to-HARQ feedback field in 1_1/1_0. All are per-grant, chosen by the scheduler.
LTE ↔ NR: LTE's DCI (formats 0, 1, 1A, 2, 2A…) also used a CRC XORed with an RNTI, but it was convolutionally coded (tail-biting) and mapped across the whole-bandwidth PDCCH region, with a separate PCFICH signalling the control-region size and an PHICH carrying HARQ ACK/NACK. NR replaces the convolutional code with Polar coding, drops PCFICH and PHICH entirely (control lives in a bounded CORESET; DL HARQ feedback is implicit via NDI/RV in the next grant), splits each direction into fallback/non-fallback/compact variants, and adds beam signalling (TCI) that LTE never needed.
Summary
The PDCCH is the physical control channel and the DCI is the bit-field it carries. A DCI is built from REGs (12 REs, 3 DMRS) grouped six-to-a-CCE, aggregated over 1/2/4/8/16 CCEs to trade capacity for robustness, protected by a 24-bit CRC that is XOR-scrambled with an RNTI, Polar-coded, and QPSK-modulated. The RNTI does double duty — it both addresses the UE and selects the interpretation — and there is no explicit AL field, so the UE learns both which grant is its and how big it is only by a CRC that unmasks cleanly.
The format catalogue splits by job (0_x uplink, 1_x downlink, 2_x group-common) and by richness (fallback / non-fallback / compact). Fallback formats keep access and paging decodable before configuration exists; the non-fallback 1_1/0_1 carry the full feature set of a connected UE, with FDRA/TDRA pointing indirectly at resources and TDRA rows yielding K0/K2 while K1 comes from the feedback-timing field. Keeping the per-cell DCI-size budget (at most 4, at most 3 with C-RNTI) in mind is what keeps the whole scheme within the UE's blind-decode limits.
Quick Q&A
Q. What are the physical building blocks of a PDCCH?
A. A REG is 1 RB × 1 OFDM symbol (12 REs, 3 of them PDCCH-DMRS). Six REGs make one CCE. A PDCCH occupies an aggregation of 1, 2, 4, 8, or 16 CCEs.
Q. How does a UE know a decoded DCI is addressed to it, and how is the DCI protected?
A. A 24-bit CRC is appended and scrambled (XORed) with an RNTI; the block is Polar-coded and QPSK-modulated. The UE de-scrambles each candidate's CRC with its RNTIs; a clean CRC means the DCI is for it, and the RNTI used also fixes the interpretation.
Q. Why raise the aggregation level, and is there an AL field in the DCI?
A. More CCEs lower the effective code rate, adding redundancy so a poor-SINR UE can still decode — at the cost of control capacity. There is no AL field; the AL is implicit in which candidate the UE successfully decodes.
Q. Fallback vs non-fallback vs compact DCI?
A. Fallback (x_0) is compact, fixed-size, mostly in the CSS, robust for access. Non-fallback (x_1) is larger, in the USS, with MIMO/BWP/CA features. Compact (x_2) has RRC-configurable field widths tuned for URLLC low latency.
Q. What do DCI formats 2_4, 2_5, and 2_6 carry?
A. 2_4 is uplink cancellation indication (CI-RNTI), 2_5 is IAB soft-resource availability (AI-RNTI), and 2_6 is the power-saving wake-up / DCP outside DRX active time (PS-RNTI).
Q. Which DCI fields yield K0, K1, and K2?
A. K0 (DCI→PDSCH) and K2 (DCI→PUSCH) come from the TDRA row selected in 1_1/0_1; K1 (PDSCH→HARQ-ACK) comes from the PDSCH-to-HARQ feedback timing field.
Where this grant leads next
A DCI is only the start of the schedule. It is decoded inside a CORESET & Search Space, it points at data on the PDSCH or PUSCH, its K1 field aims the HARQ-ACK at a resource on PUCCH & UCI, and the whole retransmission dance is governed by HARQ. For how the UE actually finds a DCI — CCE, aggregation levels and blind decoding — see PDCCH Blind Decoding.