>
Home5G NRPHY — Physical LayerPDCCH & DCI
📶 PHY — Physical LayerAdvanced

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.

📚 3GPP-basedTS 38.212TS 38.213

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.

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.

What

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).

Why

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."

How

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.

From REG to CCE to aggregated PDCCH REG 1 RB × 1 symbol = 12 REs (3 DMRS) ×6 1 CCE = 6 REGs 72 REs (54 data + 18 DMRS) Aggregation levels (CCEs per PDCCH) AL1 AL2 AL4 AL8 (AL16 = twice this) more CCEs lower code rate more redundancy → robust for cell-edge / poor SINR (costs control capacity)
Figure 1. 6 REGs build 1 CCE; aggregation level sets how many CCEs carry one PDCCH. Raising the AL lowers the effective code rate for weaker UEs.

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).

RNTIUse
C-RNTIDynamic unicast scheduling for a connected UE (its main identity)
CS-RNTIConfigured-scheduling (semi-persistent) grants: activation, deactivation, retransmission
MCS-C-RNTIUnicast scheduling using an alternative (more robust) MCS table
SI-RNTIScheduling of System Information (SIB) on PDSCH (fixed value 0xFFFF)
RA-RNTI / MsgB-RNTIScheduling of the Random Access Response (Msg2 / MsgB for 2-step RACH)
TC-RNTITemporary C-RNTI during random access, before contention resolution
P-RNTIScheduling of paging (fixed value 0xFFFE)
SP-CSI-RNTIActivation/deactivation of semi-persistent CSI reporting on PUSCH
SFI-RNTISlot Format Indication (DCI 2_0)
INT-RNTIPre-emption indication (DCI 2_1)
TPC-PUCCH-RNTI / TPC-PUSCH-RNTI / TPC-SRS-RNTIGroup power-control commands (DCI 2_2 / 2_3)
CI-RNTI / PS-RNTIUL 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.

FormatPurposeAddressed by
0_0UL grant → PUSCH (fallback, compact, fixed size)C-RNTI, TC-RNTI, CS-RNTI
0_1UL grant → PUSCH (non-fallback, feature-rich)C-RNTI, CS-RNTI, SP-CSI-RNTI, MCS-C-RNTI
0_2UL grant → PUSCH (compact/configurable, URLLC low-latency)C-RNTI, CS-RNTI, MCS-C-RNTI
1_0DL assignment → PDSCH (fallback, compact, fixed size)C-RNTI, SI-RNTI, RA-RNTI, P-RNTI, TC-RNTI
1_1DL assignment → PDSCH (non-fallback, feature-rich)C-RNTI, CS-RNTI, MCS-C-RNTI
1_2DL assignment → PDSCH (compact/configurable, URLLC low-latency)C-RNTI, CS-RNTI, MCS-C-RNTI
2_0Slot Format Indicator (SFI) — DL/UL/flexible layout to a groupSFI-RNTI
2_1Pre-emption indication — which DL resources were pre-empted (URLLC over eMBB)INT-RNTI
2_2TPC (transmit power control) commands for PUCCH and PUSCHTPC-PUCCH-RNTI, TPC-PUSCH-RNTI
2_3TPC commands for SRS transmissions (group)TPC-SRS-RNTI
2_4Uplink cancellation indication — stop UL transmission on indicated resourcesCI-RNTI
2_5Availability of soft resources for an IAB node (integrated access & backhaul)AI-RNTI
2_6Power saving — wake-up / DCP indication outside active-time DRXPS-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)
SizeSmall, fixed fieldsLargest, many optional fieldsConfigurable, often smallest
Search spaceMainly Common (CSS)UE-specific (USS)UE-specific (USS)
Field widthsFixed by specDepend on RRC configIndividually RRC-tunable
FeaturesBasic single-layer schedulingMIMO, BWP switch, CA, ZP-CSI-RSTrimmed subset for latency
Typical useInitial/random access, SIB, pagingSteady-state connected dataURLLC / 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.

FieldTypical sizeMeaning
Identifier for DCI formats1 bitDistinguishes DL (=1) from UL (=0) format sharing the same size/search space
Carrier indicator (CIF)0 or 3 bitsWhich serving cell this grant applies to (cross-carrier scheduling)
Bandwidth part indicator0–2 bitsSwitches the active DL BWP for this and subsequent transmissions
Frequency domain resource assignment (FDRA)variesWhich PRBs in the active BWP carry the PDSCH (type 0 bitmap or type 1 RIV)
Time domain resource assignment (TDRA)0–4 bitsIndex into the PDSCH TDRA table → gives K0 and the SLIV
VRB-to-PRB mapping0 or 1 bitNon-interleaved vs interleaved virtual-to-physical RB mapping
PRB bundling size indicator0 or 1 bitSelects the PRG bundling size for wideband precoding (if dynamic)
Rate matching indicator0–2 bitsWhich configured rate-matching pattern(s) to apply around the PDSCH
ZP CSI-RS trigger0–2 bitsTriggers aperiodic zero-power CSI-RS (resources rate-matched out)
MCS (TB1 / TB2)5 bits eachModulation order and code rate per transport block
New Data Indicator (TB1 / TB2)1 bit eachToggles to signal a new TB vs a retransmission
Redundancy Version (TB1 / TB2)2 bits eachWhich coded redundancy version for HARQ soft-combining
HARQ process number4 bitsWhich of up to 16 HARQ buffers this TB belongs to
Downlink Assignment Index (DAI)0/2/4 bitsCounter/total to build the dynamic HARQ-ACK codebook
TPC command for scheduled PUCCH2 bitsPower-control step for the PUCCH carrying the HARQ-ACK
PUCCH resource indicator3 bitsWhich configured PUCCH resource carries the HARQ-ACK
PDSCH-to-HARQ feedback timing (K1)0–3 bitsSelects K1: slots after PDSCH to send HARQ-ACK
Antenna port(s)4–6 bitsDMRS ports, number of layers, and CDM groups without data
Transmission configuration indication (TCI)0 or 3 bitsQCL/beam state for PDSCH reception (matters in FR2)
SRS request2–3 bitsTriggers aperiodic SRS transmission
DMRS sequence initialization0 or 1 bitSelects 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.

FieldTypical sizeMeaning
Identifier for DCI formats1 bit=0 for an uplink format
Carrier indicator (CIF)0 or 3 bitsServing cell for cross-carrier scheduling
UL/SUL indicator0 or 1 bitSelects the normal UL vs the supplementary uplink carrier
Bandwidth part indicator0–2 bitsSwitches the active UL BWP
Frequency domain resource assignment (FDRA)variesWhich PRBs carry the PUSCH
Time domain resource assignment (TDRA)0–4 bitsIndex into the PUSCH TDRA table → gives K2 and the SLIV
Frequency hopping flag0 or 1 bitEnables intra/inter-slot frequency hopping for the PUSCH
MCS5 bitsModulation order and code rate for the UL transport block
New Data Indicator (NDI)1 bitNew TB vs retransmission
Redundancy Version (RV)2 bitsRedundancy version for UL HARQ
HARQ process number4 bitsWhich UL HARQ process
1st / 2nd downlink assignment index1–4 bitsDAI for HARQ-ACK codebook when multiplexing on PUSCH
TPC command for scheduled PUSCH2 bitsPower-control step for this PUSCH
SRS resource indicator (SRI)variesSelects the SRS resource whose measured beam/precoder to use
Precoding information and number of layers0–6 bitsUL precoder and layer count for codebook-based transmission
Antenna ports2–5 bitsDMRS ports / CDM groups for the PUSCH
SRS request2–3 bitsTriggers aperiodic SRS
CSI request0–6 bitsTriggers aperiodic CSI report multiplexed on the PUSCH
PTRS-DMRS association0 or 2 bitsTies phase-tracking RS ports to DMRS ports (FR2)
beta_offset indicator0 or 2 bitsSelects the beta-offset for UCI-on-PUSCH multiplexing
DMRS sequence initialization0 or 1 bitSelects 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&A 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&A Quick Q&A

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&A Quick Q&A

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&A Quick Q&A

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&A Quick Q&A

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&A Quick Q&A

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.

PDCCH Blind DecodingCORESET & Search SpacePUCCH & UCIHARQ