Web Simulation 

 

 

 

 

SSB & CORESET#0 Placement on the Resource Grid : 5G 

When a 5G NR UE switches on, the very first thing it finds is the SSB (Synchronization Signal Block) on the synchronization raster. From the SSB alone — plus a handful of numbers carried in MIB and SIB1 — the UE reconstructs the entire frequency-domain anatomy of the carrier: where Point A is, where CORESET#0 sits, and how wide the initial DL BWP and the carrier itself are.

This tutorial visualizes that chain. You set the MIB / SIB1 parameters in the global configuration panel, and the simulator draws the resulting frequency layout (SSB, CORESET#0, BWP, carrier, Point A) and shows the exact 3GPP tables — TS 38.213 Table 13-x, the GSCN raster, and the ARFCN raster — that were used to place every box on the plot.

Mathematical Foundation

1. Channel Raster (ARFCN)

Every absolute frequency in NR signalling (e.g. absoluteFrequencyPointA, absoluteFrequencySSB) is an NR-ARFCN number NREF on a global raster defined in TS 38.104 Table 5.4.2.1-1:

FREF = FREF-Offs + ΔFGlobal · (NREF − NREF-Offs)

For 0–3000 MHz the granularity ΔFGlobal is 5 kHz; for 3000–24250 MHz it is 15 kHz with offsets 3000 MHz / 600000.

2. Synchronization Raster (GSCN)

The UE cannot afford to blind-search every ARFCN, so SSBs may only be placed on a much sparser synchronization raster (TS 38.104 Table 5.4.3.1-1). Each allowed centre frequency SSREF has a Global Synchronization Channel Number:

3000–24250 MHz:   SSREF = 3000 MHz + N × 1.44 MHz,   GSCN = 7499 + N
0–3000 MHz:   SSREF = N × 1200 kHz + M × 50 kHz,   GSCN = 3N + (M − 3)/2

The SSB occupies exactly 20 RB at the SSB subcarrier spacing, centred on SSREF:

SSB_Low = SSREF − 10 × 12 × SCSSSB
3. From SSB down to Point A

Point A is the common reference for every resource grid of the carrier: subcarrier 0 of common resource block 0 for every numerology. The UE walks down from the detected SSB to Point A in two steps signalled in MIB and SIB1 (FR1 units shown):

Point A = SSB_Low − kSSB × 15 kHz − offsetToPointA × 12 × 15 kHz
  • k_SSB (MIB ssb-SubcarrierOffset): subcarrier offset from the common RB grid to the first SSB subcarrier, counted in 15 kHz subcarriers for FR1 regardless of the SSB SCS.
  • offsetToPointA (SIB1 frequencyInfoDL): RB offset from Point A to the lowest common RB (at subCarrierSpacingCommon) that overlaps the first RB of the SSB, counted in 15 kHz RBs for FR1. Note it points at the common-grid RB boundary, not at SSB_Low itself — the two coincide only when kSSB = 0. With 30 kHz common SCS that boundary lies on the 30 kHz grid, so offsetToPointA is always even and the residue (up to 23 subcarriers) is carried entirely by kSSB — which is exactly why kSSB ranges 0–23 instead of 0–11.
Units trap: for FR1, offsetToPointA and k_SSB are always in 15 kHz units even when the SSB and the carrier use 30 kHz SCS. The CORESET#0 table offset, in contrast, is counted in RBs of the PDCCH (common) SCS. Mixing these units up is the single most common mistake when computing Point A by hand.

In practice (and in this simulator) the carrier is planned first: the operator picks the carrier centre frequency (an ARFCN, e.g. from the network configuration) and the carrier width, which fixes Point A from the other direction:

Point A = Fcentre − CBW/2 − offsetToCarrier × 12 × SCScarrier

Both derivations must land on the same Point A. The simulator anchors Point A from the centre ARFCN and treats the signalled offsetToPointA as a consistency cross-check against the SSB position: if the entered value does not match the geometry, a warning reports the value that would.

4. CORESET#0 Placement

MIB carries pdcch-ConfigSIB1, whose 4 MSBs (controlResourceSetZero, index 0–15) select one row of a table in TS 38.213 clause 13. Which table applies is decided by the pair {SSB SCS, PDCCH SCS} and the minimum channel bandwidth of the band — Tables 13-1 to 13-6 for FR1. The chosen row gives the CORESET#0 size (24 / 48 / 96 RB), its duration (1–3 symbols) and a frequency offset:

CORESET#0_Low = CRBSSBLow − offset × 12 × SCSPDCCH

where CRBSSBLow is the lowest common RB (at PDCCH SCS) that overlaps the first RB of the SSB. The simulator shows the entire applicable table below the plot with the selected row highlighted.

5. Initial DL BWP (RIV Encoding)

SIB1 describes the initial DL BWP with a single integer locationAndBandwidth, a Resource Indicator Value evaluated with NsizeBWP = 275:

RIV = 275 (L − 1) + S   if (L − 1) ≤ 137,   else   RIV = 275 (275 − L + 1) + (274 − S)

where S is the starting RB and L the length in RBs of the BWP. In this simulator locationAndBandwidth is not typed in — it is derived, following the usual deployment where the initial DL BWP spans the whole carrier: S = offsetToCarrier and L = carrierBandwidth (both from scs-SpecificCarrierList). The derived RIV is displayed read-only in the SIB1 panel.

Worked Example (default preset)

Step

Computation

Result

SSB centre

GSCN 7838 → 3000 + (7838 − 7499) × 1.44

3488.16 MHz (ARFCN 632544)

SSB_Low

3488.16 − 10 × 12 × 0.030

3484.56 MHz

Carrier

51 RB × 12 × 30 kHz

18.36 MHz (out of the 20 MHz channel)

Point A

Centre ARFCN 632628 = 3489.42 MHz → 3489.42 − 18.36/2 − 0 (offsetToCarrier)

3480.24 MHz (ARFCN 632016)

offsetToPointA check

(3484.56 − 0 (kSSB) − 3480.24) / 0.18

24 ✔ matches SIB1

CORESET#0

Table 13-4 index 13 → 48 RB, 2 sym, offset 12 → 3484.56 − 12 × 0.36

3480.24 MHz = Point A, span 17.28 MHz

locationAndBandwidth

derived: BWP = full carrier → RIV = 275 × (51 − 1) + 0

13750

Try this: change controlResourceSetZero from 13 to 10, 11 or 12 — same 48 RB CORESET#0, but the offset changes to 12 / 14 / 16 RB and the red bar slides relative to the SSB. Then pick a Reserved index and watch the warning.

How the SSB Auto Config Works

With SSB Auto Config on (the default), you only steer the carrier — the simulator solves for a valid SSB placement, exactly the problem a network planning tool solves when you give it a band, a centre frequency and a bandwidth.

You set

Auto derives

freqBandIndicatorNR, Center Freq (ARFCN), carrierBandwidth, carrier SCS, offsetToCarrier

GSCN, SSB SCS, subCarrierSpacingCommon, kSSB, offsetToPointA, min channel BW (Table 13-x family), controlResourceSetZero (only if the current row no longer fits)

Selection algorithm
  1. Snap the centre ARFCN onto the band channel raster (the internal band table holds first <step> last per band, e.g. n1: 422000 <20> 434000, n41 @30 kHz: 499200 <6> 537999).
  2. Fix the SCS family: subCarrierSpacingCommon = carrier SCS; SSB SCS = carrier SCS if the band's sync raster supports it, otherwise the band's only option; minimum channel BW from the band (only n79 selects the 40 MHz tables 13-5/13-6).
  3. Compute the carrier geometry: CBW = NRB × 12 × SCS, carrier low = Fcentre − CBW/2, Point A = carrier low − offsetToCarrier × RB.
  4. Scan every GSCN of the band sync raster (first <step> last). A candidate is valid if both conditions hold:
(1) the whole 20-RB SSB fits inside the carrier:   SSB_Low ≥ carrier_low  and  SSB_High ≤ carrier_high
(2) SSB_Low lands on the 15 kHz grid above Point A:   SSB_Low − PointA = k × 15 kHz,   k integer ≥ 0

Condition (2) is what makes offsetToPointA / kSSB exist at all: if the residue is not a whole number of 15 kHz subcarriers, MIB/SIB1 simply cannot signal that SSB position on this carrier.

  1. Pick one candidate per the policy: close to center minimises |SSREF − Fcentre|; close to low limit takes the smallest SSREF; close to high limit the largest.
  2. Decompose k against the common-SCS grid: with 30 kHz common SCS one CRB = 24 fifteen-kHz subcarriers, so offsetToPointA = 2 × ⌊k/24⌋ (always even) and kSSB = k mod 24; with 15 kHz common SCS it is ⌊k/12⌋ and k mod 12.
  3. Re-validate CORESET#0: the current controlResourceSetZero row is kept if it is not Reserved and the CORESET#0 stays inside the carrier; otherwise the first fitting index of the applicable Table 13-x is selected.
Example 1 — n78, ARFCN 632640, 51 RB @ 30 kHz: the three policies

Centre = 3489.60 MHz, carrier = 3480.42 – 3498.78 MHz, Point A = 3480.42 MHz. The SSREF window for a fully-contained SSB is [3484.02, 3495.18] MHz, which the n78 raster hits with GSCN 7836–7842 (seven candidates, 1.44 MHz apart, all 15 kHz-aligned since 1.44 MHz = 96 × 15 kHz):

Policy

GSCN

SSREF

k

offsetToPointA

kSSB

CORESET#0

close to center

7839

3489.60 MHz (= centre, Δ = 0)

372

30

12

#13 kept (48 RB ends exactly at the carrier edge)

close to low limit

7836

3485.28 MHz

84

6

12

#13 would underflow Point A → falls back to #0 (24 RB)

close to high limit

7842

3493.92 MHz

660

54

12

#0

Following the close to center row through step 6: k = (SSB_Low − PointA)/15 kHz = (3486.00 − 3480.42)/0.015 = 372 subcarriers → ⌊372/24⌋ = 15 CRBs at 30 kHz → offsetToPointA = 30 (15 kHz RBs), kSSB = 372 − 360 = 12.

Example 2 — switching the band to n41 (raster snap + kSSB residue)

Starting from Example 1 and selecting band n41: ARFCN 632640 is outside n41, so Auto snaps it to the closest raster point 537996 (raster 499200 <6> 537999 for 30 kHz) = 2689.98 MHz, near the top of the band. Carrier = 2680.80 – 2699.16 MHz. Only two n41 GSCNs put a whole SSB inside it (6711, 6714); close to center picks GSCN 6714 (SSREF = 2685.75 MHz). Then k = (2682.15 − 2680.80)/0.015 = 90 → 3 CRBs at 30 kHz → offsetToPointA = 6, and the residue of 18 subcarriers (270 kHz) goes into kSSB = 18 — a value > 11 that can only occur with 30 kHz common SCS, illustrating why the field ranges 0–23. Index #13 no longer fits below the SSB, so CORESET#0 falls back to #0.

Example 3 — when Auto cannot find a valid GSCN

Band n79 at its lowest ARFCN 693333 with a 51 RB / 30 kHz carrier (18.36 MHz): the n79 sync raster is GSCN 8480 <16> 8880, i.e. one SSB position every 16 × 1.44 = 23.04 MHz — wider than the whole carrier. No raster point lands inside, so Auto raises “no valid GSCN of band n79 places a full SSB inside this carrier” and leaves the SSB fields untouched (the stale values then trip the normal consistency warnings). The fix is exactly what the message says: widen the carrier (e.g. 106 RB) or move the centre ARFCN toward a raster point.

Try this: reproduce Example 1 (band n78, ARFCN 632640, Auto = close to center), then flip the policy dropdown between center / low / high and watch the SSB slide while offsetToPointA, kSSB and the highlighted Table 13-4 row follow — all three configurations stay warning-free.

Simulation

The interactive simulator is below. Set the MIB / SIB1 parameters in the global configuration panel (or pick a preset); the Frequency View tab redraws the placement plot, the derived-value table, and the applicable 3GPP tables on every change.

Global Configuration
MIB / SSB
0
SIB1 (ServingCellConfigCommonSIB)
-
Derived Values
3GPP TS 38.104 Table 5.4.3.1-1 — GSCN parameters for the global frequency raster
3GPP TS 38.104 Table 5.4.2.1-1 — NR-ARFCN parameters for the global frequency raster

 

Usage

  1. Pick a preset. The default reproduces the worked example above (n78, 20 MHz, SSB 30 kHz, Table 13-4 index 13, CORESET#0 lowest RB landing exactly on Point A). Presets apply a complete, self-consistent configuration as-is.
  2. SSB Auto Config (default On): with Auto on, you only steer the band, centre ARFCN, bandwidth and carrier SCS — the simulator picks a valid GSCN on the band synchronization raster (per the selected policy: SSB close to the centre frequency, the low edge, or the high edge of the carrier), then derives k_SSB, offsetToPointA, the SSB / common SCS, the band minimum channel BW, and fixes controlResourceSetZero if the current row does not fit. The derived fields are greyed out. Select Auto Off (Manual) to edit everything yourself.
  3. Raster-valid stepping: the up/down buttons of the Center Freq ARFCN and GSCN inputs step only through values that are valid for the selected band (channel raster step and per-band GSCN range from the internal band table, e.g. step 20 for 100 kHz-raster bands, step 6 for n41 at 30 kHz, step 16 for n79 GSCN). Changing the band snaps both numbers onto its raster.
  4. Read the plot bottom-up: Point A (yellow) → offsetToPointA → (+ k_SSB) → SSB_Low → SSB (blue). The red CORESET#0 bar hangs below the SSB by the table offset.
  5. Change controlResourceSetZero and watch both the red bar and the highlighted row of the TS 38.213 table move together.
  6. Switch SSB SCS / common SCS / min channel BW to change which Table 13-x applies; the full table shown below the plot is swapped accordingly.
  7. Edit the Center Freq ARFCN, carrierBandwidth or offsetToCarrier to move the carrier — Point A follows, and the derived locationAndBandwidth in the SIB1 panel updates.
  8. Edit offsetToPointA, k_SSB, GSCN to move the SSB relative to Point A. Inconsistent settings (e.g. an offsetToPointA that does not match the SSB/carrier geometry, or CORESET#0 falling below the carrier edge) produce a warning instead of a silently wrong plot.
  9. The second tab is a placeholder for an upcoming subcarrier-level resource grid view driven by the same configuration.

Parameters

Control

3GPP origin

Effect on the plot

SSB SCS

band-dependent (TS 38.101, SSB case A–C)

SSB height (20 RB × SCS) and which Table 13-x applies

SSB GSCN

TS 38.104 Table 5.4.3.1-1

Absolute SSB centre frequency SSREF; everything else is derived downward from it

subCarrierSpacingCommon

MIB

SCS of CORESET#0, the carrier and the initial BWP; RB size of the table offset

ssb-SubcarrierOffset (kSSB)

MIB

Sub-RB shift between the SSB and the common RB grid (15 kHz subcarriers, FR1)

controlResourceSetZero

MIB pdcch-ConfigSIB1 (4 MSB)

Row of TS 38.213 Table 13-x → CORESET#0 size, symbols, offset

Band min channel BW

TS 38.101-1, per band

Selects Tables 13-1..13-4 (5/10 MHz) vs 13-5/13-6 (40 MHz) for 30 kHz SSB

SSB Auto Config

simulator control

On: derives GSCN / kSSB / offsetToPointA / SCS / min-BW / CORESET#0 index from band + ARFCN + bandwidth, placing the SSB near the centre, low edge or high edge per the selected policy

freqBandIndicatorNR

SIB1 frequencyBandList

Selects the band row of the internal All-in-One table: DL ARFCN range/step, GSCN range/step, supported SSB SCS, minimum channel BW

Center Freq (ARFCN)

network planning / carrier config

Anchors the whole plot: Point A = centre − CBW/2 − offsetToCarrier; spinner steps on the band channel raster

offsetToPointA

SIB1 frequencyInfoDL

Cross-checked against the SSB position; a mismatch produces a warning with the consistent value

offsetToCarrier

SIB1 scs-SpecificCarrier

Gap (in carrier-SCS RBs) between Point A and the first usable carrier RB

subcarrierSpacing (carrier)

SIB1 scs-SpecificCarrier

RB size of the carrier / BWP spans and of offsetToCarrier

carrierBandwidth

SIB1 scs-SpecificCarrier

Carrier span (CBW arrow on the right), centred on the centre ARFCN

locationAndBandwidth

SIB1 initialDownlinkBWP

Derived, read-only: RIV(start = offsetToCarrier, length = carrierBandwidth)

Key Insights

  • Everything hangs off the SSB. The UE only ever measures one absolute frequency (the GSCN hit); Point A, CORESET#0, the BWP and the carrier are all reconstructed from relative offsets signalled in MIB / SIB1.
  • Three different RB units coexist: offsetToPointA in 15 kHz RBs, the Table 13-x offset in PDCCH-SCS RBs, and k_SSB in 15 kHz subcarriers. The plot annotates each value with its own SCS to keep them apart.
  • CORESET#0 is always multiplexing pattern 1 in FR1: same-slot, frequency-offset placement — which is why a single offset column in the table fully describes its frequency position.

Limitations

  • FR1 only. FR2 tables (TS 38.213 Tables 13-7..13-10, multiplexing patterns 2/3), 120/240 kHz SSB, and the FR2 60 kHz units for k_SSB / offsetToPointA are not modeled.
  • The initial DL BWP is assumed to span the full carrier (start = offsetToCarrier, length = carrierBandwidth) for the derived locationAndBandwidth; a narrower initial BWP (e.g. CORESET#0-sized) is not configurable. The BWP subcarrierSpacing is assumed equal to the carrier SCS.
  • Frequency domain only. Symbol-level aspects (Type0-PDCCH monitoring occasions from searchSpaceZero, SSB burst time positions) are out of scope for the first tab.
  • Band subset. The internal band table (from the ShareTechnote All in One Table, based on TS 38.101-1 Tables 5.2-1 / 5.4.2.3-1 and TS 38.104 Table 5.4.3.3-1) covers the common FR1 DL bands listed there; newer Release additions are not included. Only n79 is treated as a 40 MHz-minimum-bandwidth band, and per-band channel-bandwidth limits (which BW values a band actually supports) are not enforced.
  • Typed values bypass the raster. The ARFCN / GSCN spinners step through valid raster values only, but a manually typed off-raster number is accepted and merely flagged through the consistency warnings.