>
Home5G NRPHY — Physical LayerPDSCH
📶 PHY — Physical LayerIntermediate

PDSCH — Downlink Shared Channel in 5G NR

How downlink user data is carried — mapping types, resource allocation, DMRS, layers and the TBS chain.

📚 3GPP-basedTS 38.211TS 38.214

The Physical Downlink Shared Channel (PDSCH) is where the downlink actually pays off. Every other downlink signal — synchronisation, control, reference signals — exists so that this one channel can deliver bits to you reliably. PDSCH carries the transport channel called the DL-SCH (Downlink Shared Channel): your streamed video and web traffic, but also several system-critical messages. It is never self-scheduling — a matching DCI on the PDCCH always tells you where it lives and how to decode it. This page walks through what PDSCH carries, how it is placed in time and frequency, how its reference signals are arranged, how it climbs to eight spatial layers, how the transport block size is computed step by step, and how it is scrambled, rate-matched and retransmitted — grounded in TS 38.211, TS 38.212 and TS 38.214.

Introduction

PDSCH is the workhorse downlink channel in 5G NR: the physical channel that carries the DL-SCH transport channel, and therefore essentially all downlink payload the network ever sends you. When you stream video, load a page, or receive a system message, the bits arrive on PDSCH.

It sits at the centre of the downlink lifecycle. A UE must be able to receive PDSCH before it has any dedicated configuration at all — because SIB1, paging, the Random Access Response (Msg2/RAR) and the Msg4 contention-resolution message all ride PDSCH, scheduled by the compact fallback DCI 1_0 in a common search space. Once connected, the richer formats DCI 1_1/1_2 unlock the full feature set: up to eight MIMO layers, 256QAM, bandwidth-part switching, and code-block-group retransmission.

What makes PDSCH worth studying in depth is that it is a shared, scheduled channel: nothing about it is fixed in advance. Every transmission is described by a downlink-assignment DCI that supplies the time and frequency allocation, the modulation and coding, the reference-signal layout, the layer/port mapping, and the HARQ state. This page follows that description end to end — from where the data lands in the grid to how many information bits it ultimately carries and how a failed block is repaired.

Why PDSCH is needed

💡

In plain words: PDSCH is the downlink cargo hold of the cell, and it is shared — like a delivery truck that is not pre-assigned to anyone. Each slot, the scheduler decides whose parcels ride in which part of the hold, and sends a separate manifest (the DCI) telling that UE which crates are theirs and how to open them. Sharing the hold slot-by-slot is exactly what makes bursty mobile traffic efficient: idle users take no space, and whoever has data right now can fill the truck.

The alternative — pre-assigning fixed downlink resources to each UE — would waste almost all of them, because mobile traffic is bursty and idle most of the time. A shared channel lets the scheduler hand the same time-frequency resources to whichever UE needs them in that slot, and reclaim them the instant that UE goes quiet. That flexibility is why PDSCH must be dynamically scheduled and self-describing: since the resources are not fixed, every transmission has to be pointed to by a DCI that spells out where it is and how to decode it. And because the earliest broadcast and access messages (SIB1, paging, RAR, Msg4) must reach a UE that has no configuration yet, PDSCH also has to work from broadcast-only defaults using the fallback DCI 1_0.

What

A shared, dynamically scheduled downlink data channel carrying the DL-SCH — user data plus SIB1, paging, RAR (Msg2) and Msg4 — always pointed to by a DCI on the PDCCH.

Why

"Shared" means resources are handed out slot by slot to whichever UE needs them, which is what makes bursty mobile traffic efficient. Fixed per-UE resources would sit idle most of the time.

How

A downlink-assignment DCI supplies the time/frequency allocation, MCS, HARQ process, NDI, RV, antenna ports and DMRS init; the RNTI that de-scrambles the DCI CRC also selects the payload's meaning.

What PDSCH carries

PDSCH is the physical channel that carries the DL-SCH transport channel. Most of the time that means user-plane data, but the same channel is reused for several essential control messages that simply travel as DL-SCH payload.

What

A shared, dynamically scheduled data channel carrying the DL-SCH. Beyond user data it also carries SIB1 (and other system information), paging, the Random Access Response (Msg2 / RAR), and Msg4 for contention resolution.

Why

"Shared" means the resources are not pre-assigned; the scheduler hands them out slot by slot to whichever UE needs them, which is exactly what makes bursty mobile traffic efficient.

How

Every PDSCH is pointed to by a DCI on the PDCCH. The RNTI that de-scrambles that DCI's CRC also selects the meaning — SI-RNTI for SIB1, P-RNTI for paging, RA-RNTI for RAR, C-RNTI for your unicast data.

Because SIB1, paging, RAR and Msg4 all ride PDSCH, a UE must be able to receive PDSCH before it has any dedicated configuration. That is why those transmissions are scheduled by the compact fallback DCI 1_0 in a common search space, using the simplest allocation rules. Once you are connected and have a PDSCH-Config from RRC, the feature-rich formats 1_1 and 1_2 unlock multi-layer MIMO, bandwidth-part switching and code-block-group retransmission.

A downlink-assignment DCI supplies everything the shared channel cannot describe about itself: the time-domain resource assignment, the frequency-domain resource assignment, the modulation-and-coding scheme (MCS), the HARQ process number, the new-data indicator (NDI), the redundancy version (RV), the antenna-port field, the DMRS sequence initialisation, and — in the richer formats — the VRB-to-PRB mapping and PRB-bundling indicators. The UE combines these fields to know precisely which resource elements to demodulate and how to turn them back into a transport block.

🎯

One-line intuition: PDSCH is the downlink cargo hold; the DCI is the manifest that says which crates are yours and how to open them.

Payload on PDSCHScheduling DCIRNTI (CRC scramble)Search space
SIB1 / other SIDCI 1_0SI-RNTIType0/Type0A CSS
PagingDCI 1_0P-RNTIType2-PDCCH CSS
RAR (Msg2)DCI 1_0RA-RNTIType1-PDCCH CSS
Msg4 (contention res.)DCI 1_0TC-RNTI / C-RNTIType1-PDCCH CSS
Unicast user dataDCI 1_0/1_1/1_2C-RNTI (or CS-RNTI/MCS-C-RNTI)UE-specific SS

Mapping type A vs B, time/frequency allocation and VRB-to-PRB

The DCI's time-domain resource assignment is an index into a TDRA table (the RRC list pdsch-TimeDomainAllocationList, or a default table when none is configured). The selected row yields three things: the slot offset K0, the PDSCH mapping type, and a SLIV (Start and Length Indicator Value) that jointly packs the start symbol S and the number of consecutive symbols L. The exact packing is covered on the SLIV / RIV page; the key idea is that one integer encodes both start and length so the DCI stays compact.

The mapping type decides where the front-loaded DMRS sits and how long the allocation may be. Type A is slot-based: the allocation is referenced from the start of the slot and the first DMRS symbol is fixed at symbol 2 or 3 (chosen by dmrs-TypeA-Position). Type B is mini-slot based: the allocation can start on almost any symbol and the front-loaded DMRS sits on the first allocated symbol of the PDSCH, which is what makes it suitable for low-latency URLLC bursts squeezed between other transmissions.

Type A (slot-based)Type B (mini-slot)
DMRS referenceFixed to the slot: first DMRS at symbol 2 or 3 (dmrs-TypeA-Position)First DMRS at the first allocated PDSCH symbol
Start symbol S0–3Any symbol (flexible)
Length L3–14 (typically spans most of the slot)2, 4 or 7 symbols (short mini-slot)
Typical useNormal eMBB schedulingLow latency / URLLC

The frequency-domain resource assignment says which resource blocks in the active bandwidth part carry your PDSCH. There are two resource-allocation types. Type 0 is a bitmap of Resource Block Groups (RBGs) — each bit turns one RBG on or off, so the allocation can be non-contiguous, which lets the scheduler place different UEs in frequency-selective chunks. The RBG size (2/4/8/16 RBs) follows the BWP size and rbg-Size. Type 1 is a contiguous block of RBs described by a single RIV that packs the start RB and the length; it is compact but cannot skip RBs. The fallback DCI 1_0 always uses Type 1.

Whatever the DCI describes, it describes virtual resource blocks (VRBs). VRB-to-PRB mapping then translates those into physical resource blocks. It is either non-interleaved (VRB n maps straight to PRB n) or interleaved (VRBs are spread across the band in a defined bundle pattern of 2 or 4 RBs) to buy frequency diversity for a small, robust allocation. For 1_0 in a common search space the interleaving rule and bundle size are fixed by the specification.

📄

Spec anchor: mapping types, DMRS positions and the physical mapping are in TS 38.211; the resource-allocation procedures, SLIV/RIV and VRB-to-PRB rules are in TS 38.214.

DMRS configuration, additional symbols, CDM groups and PT-RS

To equalise the channel you need reference symbols embedded in the PDSCH itself: the DMRS (Demodulation Reference Signal). NR defines two DMRS configurations, chosen by RRC in dmrs-Type. Configuration type 1 is comb-based: DMRS occupies every other subcarrier (6 REs per RB per DMRS symbol) and supports up to 8 ports across two CDM (code-division-multiplexed) groups. Configuration type 2 uses pairs of adjacent subcarriers (4 REs per RB per DMRS symbol) grouped into three CDM groups, supporting up to 12 ports — better for high-order MU-MIMO where more orthogonal ports matter more than density.

The front-loaded DMRS appears early in the allocation so the receiver can start channel estimation without waiting for the whole slot. For fast-moving UEs a single early estimate goes stale by the end of the slot, so RRC can add additional DMRS symbols via dmrs-AdditionalPosition (0, 1, 2 or 3 extra positions) — more positions track a faster-varying channel at the cost of resource elements. Each DMRS occasion can be a single symbol or a double (two-symbol) symbol (maxLength); the double-symbol form doubles the number of orthogonal ports (via time-domain CDM), which is how PDSCH reaches its highest layer counts.

A crucial scheduling knob is the number of DMRS CDM groups without data, signalled in the DCI antenna-port field. If a CDM group is marked "without data", none of its resource elements in a DMRS symbol carry PDSCH data — they are either DMRS or left empty to protect orthogonality. This directly changes how many REs are usable for data, and therefore the transport block size (see the TBS section).

PropertyDMRS config type 1DMRS config type 2
Frequency patternComb-2 (every other subcarrier)Adjacent subcarrier pairs
REs per RB per DMRS symbol64
CDM groups23
Max ports (single symbol)46
Max ports (double symbol)812
Best forSU-MIMO, dense channel estimatesHigh-order MU-MIMO

At high frequencies (FR2 mmWave) oscillator phase noise smears the constellation, especially at high modulation orders. To track and correct it, PDSCH can carry a PT-RS (Phase-Tracking Reference Signal), configured by phaseTrackingRS in DMRS-DownlinkConfig. PT-RS is sparse in frequency (every 2nd or 4th RB, set by frequencyDensity) and dense in time (every 1st, 2nd or 4th symbol, set by timeDensity) — the densities are tied to the scheduled MCS and bandwidth so the overhead scales with need. PT-RS is associated with one DMRS port and only appears when the modulation order and allocation are large enough to warrant it.

Mapping Type A slot — front-loaded DMRS at symbol 3, one additional DMRS subcarriers symbols → DMRS add’l DMRS PDSCH data REs fill the rest PT-RS pilots (sparse in freq, dense in time) ride the data region in FR2
Figure 1. A Type A slot: a front-loaded DMRS near symbol 3 plus one additional DMRS position track the channel across the slot; PDSCH data occupies the remaining resource elements, with optional PT-RS at high bands.

Layers, codewords, antenna ports and PRB bundling

PDSCH supports spatial multiplexing of up to 8 layers. A codeword is one independently coded transport block. The rule is simple: up to 4 layers use a single codeword; when 5–8 layers are scheduled a second codeword is added so the two transport blocks can carry independent MCS, NDI, RV and HARQ. Splitting into two codewords keeps the per-codeword layer count (and thus the effective SINR spread across layers) manageable, and lets link adaptation target each codeword separately.

LayersCodewordsNotes
1–41Single transport block; one MCS/RV/NDI in the DCI
5–82Two transport blocks; independent MCS/RV/NDI per codeword

The DCI's antenna-port field selects which DMRS ports (hence which layers) are yours, jointly indicating the number of layers, the DMRS ports, and the number of CDM groups without data via a table keyed to the DMRS type and single/double-symbol setting. When several UEs share the same time-frequency resources on different DMRS ports, that is MU-MIMO; one UE on multiple ports is SU-MIMO.

For coherent demodulation the UE must know over how wide a frequency span the gNB kept its precoder constant. That is PRB bundling, configured by prb-BundlingType. In static bundling the bundle size is fixed (e.g. 2 or 4 PRBs, or wideband); in dynamic bundling a DCI bit chooses between two configured sizes per grant. Within a precoding-RB-group (PRG) the UE may assume the same precoder across all PRBs, so it can average channel estimates across the bundle for a cleaner estimate — the wider the bundle, the better the estimate but the coarser the frequency-selective precoding.

Transport block size determination, step by step

The transport block size (TBS) is not signalled directly; both ends compute it from the MCS and the allocation using the procedure in TS 38.214. The point of the procedure is that the encoder and decoder agree on exactly how many information bits the granted resources carry, then quantise that number to a code-friendly value.

Step 1 — REs per PRB: N′RE = 12 · Nsymb − NDMRS − Noh
Step 2 — total REs: NRE = min(156, N′RE) · nPRB
Step 3 — intermediate info bits: Ninfo = NRE · R · Qm · ν
Step 4 — quantise Ninfo to the nearest valid TBS (branch on Ninfo ≤ 3824 vs > 3824)

Reading the terms: N_symb is the number of allocated OFDM symbols (from the SLIV); N_DMRS is the DMRS REs per PRB across the allocation (driven by DMRS type, number of symbols and CDM groups without data); N_oh is a configured overhead allowance for other signals (xOverhead ∈ {0, 6, 12, 18}); n_PRB is the number of allocated PRBs; R is the target code rate and Q_m the modulation order, both read from the MCS table; and ν is the number of layers for this codeword. The cap of 156 REs per PRB keeps very long allocations from overstating the count.

Quantisation (Step 4). If Ninfo ≤ 3824 the spec rounds down to a table of standardised small TBS values (so short blocks stay byte-aligned and match the LDPC segmentation). If Ninfo > 3824 it computes n = ⌊log2(Ninfo − 24)⌋ − 5, snaps Ninfo to a multiple of 2n, then chooses a TBS that divides evenly into an integer number of code blocks (each with its 24-bit CRC).

Worked example. Take an eMBB grant: n_PRB = 50, N_symb = 12 (Type A), a single front-loaded DMRS symbol of config type 1 with 2 CDM groups without data (so N_DMRS = 12), xOverhead = 6, one layer, and MCS index 19 from the 64QAM table (Q_m = 6, target rate R = 666/1024 ≈ 0.6504).

StepComputationResult
1. REs per PRB12·12 − 12 − 6 = 144 − 18N′RE = 126
2. Total REsmin(156, 126) · 50 = 126 · 50NRE = 6300
3. Info bits6300 · 0.6504 · 6 · 1Ninfo ≈ 24585
4a. n⌊log2(24585 − 24)⌋ − 5 = 14 − 5n = 9, 2n = 512
4b. Snap512 · round(24561 / 512) = 512 · 48N′info = 24576
4c. Code blocksC = ⌈(24576 + 24)/8424⌉C = 3
4d. TBS8·3·⌈24600/(8·3)⌉ − 24TBS = 24576 bits

So this grant delivers a 24576-bit (3072-byte) transport block. Change any input — more PRBs, a higher MCS, a second additional DMRS symbol, or more layers — and the same chain gives a new TBS. This is precisely the backbone of the throughput-calculation page.

MCS tables and scrambling

The 5-bit MCS field indexes one of three tables in TS 38.214, selected by RRC (mcs-Table) and the RNTI. The 64QAM table (5.1.3.1-1) is the default, spanning QPSK up to 64QAM. The 256QAM table (5.1.3.1-2) reaches 256QAM for high-SINR UEs that can carry 8 bits per symbol. The low-spectral-efficiency (low-SE) table (5.1.3.1-3) packs very low code rates for cell-edge and high-reliability (URLLC) operation, trading throughput for robustness. Each row gives a modulation order Q_m and a target code rate R (as a fraction of 1024), which is what Step 3 above consumes; the top indices in each table are reserved to signal modulation order only for retransmissions (TBS then kept from the initial transmission).

TableExample indexQm (modulation)Target R × 1024
64QAM (5.1.3.1-1)0 / 10 / 19 / 282 (QPSK) / 4 (16QAM) / 6 (64QAM) / 6 (64QAM)120 / 340 / 666 / 948
256QAM (5.1.3.1-2)0 / 10 / 20 / 272 (QPSK) / 4 (16QAM) / 8 (256QAM) / 8 (256QAM)120 / 616 / 682.5 / 948
low-SE (5.1.3.1-3)0 / 5 / 15 / 282 (QPSK) / 2 (QPSK) / 4 (16QAM) / 6 (64QAM)30 / 116 / 434 / 616

Once the transport block is coded and modulated, the bit stream is scrambled before modulation mapping. Scrambling randomises the bits with a sequence seeded from the C-RNTI (or the relevant RNTI), the codeword index q, and a cell/scrambling identity (dataScramblingIdentityPDSCH, defaulting to the physical cell ID). This decorrelates transmissions from neighbouring cells and different UEs so that interference looks like noise rather than a correlated signal, which is what lets the receiver treat it benignly. The two codewords in a 5–8-layer transmission are scrambled with different q, keeping them distinct.

Rate matching, HARQ and CBG retransmission

PDSCH must not overwrite resources that carry other things, so it is mapped around obstacles by rate matching. The encoder skips resource elements that belong to the UE's own CORESET regions, configured CSI-RS resources, the SSB, and explicitly configured reserved resources — the RRC rateMatchPattern list, including LTE-CRS patterns for dynamic spectrum sharing (DSS) coexistence. Because both ends know these patterns, no coded bits are lost; the PDSCH simply flows into the remaining REs. Rate matching also chooses which coded bits to actually transmit from the LDPC circular buffer, governed by the redundancy version (RV) in the DCI.

The data is protected with LDPC coding. The DL-SCH uses one of two base graphs — base graph 1 for larger blocks and higher code rates, base graph 2 for smaller blocks and lower rates — chosen from the TBS and target rate. A large transport block is segmented into code blocks, each carrying its own 24-bit CRC, and the whole transport block also carries a 24-bit CRC. This is why the TBS quantisation in Step 4 forces an integer number of equal code blocks.

When a transmission fails, HARQ (Hybrid ARQ) retransmits. The DCI's HARQ process number, NDI and RV let the UE combine a retransmission with the soft bits it already holds (soft-combining / incremental redundancy) rather than starting over. For large allocations, retransmitting the whole transport block when only a fraction failed is wasteful — so when codeBlockGroupTransmission is configured, code blocks are bundled into Code Block Groups (CBGs) and a bitmap in the DCI (CBGTI) marks which CBGs are being (re)sent. Only the failed CBGs go back on the air, and a CBG flush indicator (CBGFI) tells the UE whether its buffered soft bits for those CBGs are still combinable. This fine-grained retransmission is a substantial air-time saving when just part of a big TB was corrupted.

One transport block → segmented into code blocks → grouped into CBGs Transport block CB0 CB1 CB2 CB3 CBG 0 CBG 1 CBG 1 failed → retransmit only CBG 1 (CBGTI bitmap) Whole-TB HARQ retransmits everything; CBG HARQ retransmits just the bad groups.
Figure 2. A transport block is segmented into code blocks, bundled into CBGs; with CBG retransmission only the failed group is resent instead of the entire transport block.
🔀

LTE ↔ NR: LTE's downlink shared channel is PDSCH too, carrying the DL-SCH, but NR generalises it heavily. LTE uses Turbo coding with a signalled TBS index table; NR switches to LDPC with the computed-then-quantised TBS shown above. LTE fixes the DMRS/reference-signal layout (cell-specific CRS across every subframe) and always spans the whole subframe; NR replaces CRS with scheduled, front-loaded DMRS, adds PT-RS for FR2 phase noise, and allows mini-slot (Type B) placement. NR also adds code-block-group (CBG) retransmission and up to 8 layers / two codewords, where LTE topped out at similar layer counts but without CBG-level HARQ. The CRS-aware rateMatchPattern exists precisely so NR PDSCH can coexist with an LTE carrier under DSS.

Summary

PDSCH is the shared, dynamically scheduled downlink data channel that carries the DL-SCH — user traffic plus SIB1, paging, RAR and Msg4 — and it is always described by a downlink-assignment DCI, with the DCI's RNTI selecting the payload's meaning. Its placement comes from the TDRA row (K0, mapping type, SLIV) in time and the FDRA field (Type 0 RBG bitmap or Type 1 RIV, then VRB-to-PRB mapping) in frequency. Mapping Type A anchors DMRS near the slot start for normal traffic; Type B carries DMRS in the first allocated symbol for mini-slot URLLC.

Its reference signals — front-loaded plus optional additional DMRS (config type 1 or 2, single/double symbol, CDM groups) and, at FR2, PT-RS — determine both channel estimation and how many REs remain for data. That RE count feeds the TS 38.214 TBS procedure (REs per PRB, capped at 156, times PRBs, times R·Qm·layers, then quantised to an integer number of LDPC code blocks). The MCS field picks R and Qm from the 64QAM/256QAM/low-SE tables; scrambling decorrelates cells and UEs; and LDPC coding with rate matching around CORESET/CSI-RS/SSB/reserved resources, plus whole-TB or CBG-level HARQ, delivers and repairs the block. Master those seven stages and you can read any PDSCH grant — from a first DCI 1_0 SIB1 to an 8-layer 256QAM unicast transmission — end to end.

Quick Q&A

Q&A Quick Q&A

Q. Mapping Type A vs Type B — what actually differs?

A. Type A is slot-based with the front-loaded DMRS fixed near symbol 2 or 3 and start symbols 0–3; Type B is mini-slot based with DMRS on the first allocated symbol and a flexible start, used for low latency.

Q. How many codewords for 6 layers, and why?

A. Two. Up to 4 layers map to one codeword; above 4 a second codeword is added so each transport block gets independent MCS, RV and HARQ, keeping the per-codeword layer count manageable.

Q. In the TBS chain, what does N_DMRS depend on?

A. The DMRS configuration type, the number of DMRS symbols (front-loaded plus dmrs-AdditionalPosition, single vs double), and the number of CDM groups without data — all of which remove REs from the per-PRB data count.

Q. What is DMRS config type 1 vs type 2?

A. Type 1 is comb-based (6 REs/RB/symbol, 2 CDM groups, up to 8 ports); type 2 uses adjacent-subcarrier pairs (4 REs/RB/symbol, 3 CDM groups, up to 12 ports) for higher-order MU-MIMO.

Q. Why CBG-based retransmission?

A. So only the failed code-block groups of a large transport block are resent instead of the whole TB, saving air-time when just part of a big allocation was corrupted.

Q. Why is PT-RS mainly an FR2 feature?

A. Phase noise from the oscillator grows with carrier frequency and hurts high-order modulation most; PT-RS tracks and corrects that phase drift across the slot, which matters at mmWave.

Where to go next

You now know how the downlink data channel is carried, placed, referenced, layered, sized and retransmitted. Continue with the related topics below.

PDCCH & DCI — the control that schedules every PDSCHThroughput Calculation — turning REs and TBS into data rateHARQ — soft-combining and retransmission timing