Skip to content

UCIe · Module 22

Future SoCs

Why a conforming die-to-die link is necessary and nowhere near sufficient for a chiplet ecosystem — the seven-layer integration contract two suppliers must agree on beyond the PHY, why version negotiation must never pick the highest number, the partial configuration commit that makes two dies interpret the same traffic differently, and which parts of this are engineering reality versus roadmap.

Three chapters have asked where a standard boundary fits in products that exist. This one asks what would have to be true for dies from different suppliers to be integrated by a third party — and the link is the easy part.

1. The One-Sentence Model

A standardised link turns a package boundary into a transport contract. It does not turn it into an integration contract. Two chiplets can both expose a conforming PHY and remain unintegrable because their protocol semantics, management model, power and reset sequencing, security expectations, version profiles and verification collateral disagree — and none of those is visible at the wire.

So "UCIe makes chiplets plug-and-play" is not merely optimistic — it names the wrong layer. §5 is the contract the other layers imply, and most of it is not standardised by anything.

2. What This Chapter Owns

QuestionWhere it is answered
Evidence levels and tense discipline22.1 · 22.2
Bandwidth graphs, traffic classes, progress reserves22.3 — AI Accelerators
Latency, identity, ordering, failure isolation22.4 — Data-Centre Processors
Reusable UCIe IP — parameterisation, configuration, collateral19.6 — Reusable UCIe IP
Interoperability and what compliance establishes20.7 — Compliance Testing
Independent models, interop verification20.2 · 20.4
Fault management and recovery14.2 · 14.5
UCIe vs PCIe — scope and comparison23.1 — UCIe vs PCIe

Three things are new here:

The integration contract (§5–§7) — the seven layers two suppliers must agree on, of which the link is one.

Version and capability negotiation done correctly (§8–§11), including why "use the highest supported version" is a bug and what a partial configuration commit does to two dies that disagree.

And the ecosystem's verification problem (§14–§16). A chiplet sold to integrators must ship with something; what that something is turns out to be the hardest unsolved part.

3. Sourcing and Evidence Date

4. Both Sides Conform, Neither Integrates

Start with the failure, because it makes the rest of the chapter necessary.

Chiplet AChiplet BAgree?
conforming PHYyesyes
link trainsyesyes
protocol carriednative mappingStreaming — §6
management modelin-bandsideband
reset sequencingexpects peer firstexpects peer first✗ — deadlock
power statesfourtwo
security expectationattested peernone
revision profileone revisionanother — §9

Three readings.

The link works perfectly and nothing else does. Every row below the second is invisible at the wire and fatal at integration.

The reset row is the sharpest. Two dies that each wait for the other to initialise first will never come up — 21.1's hang, caused by an unstated assumption on both sides rather than by a defect on either.

And no row here is a defect. Both suppliers built exactly what they specified. The gap is that nobody specified the agreement between them, which is what §5 is for.

5. The Chiplet Integration Contract

A layered block diagram of the chiplet integration contract. From the bottom: package and physical integration, then the die-to-die physical layer, then the die-to-die adapter, then the protocol layer. These four are marked as the transport contract addressed by a die-to-die specification. Beside and above them sit four further layers marked as agreed per integration: management covering configuration reset and fault, power covering states and sequencing, security covering identity and trust, and software covering discovery and firmware. A verification collateral block spans all of them.Softwarediscovery, firmware —§13Securityidentity, trust — §12Managementconfig, reset, fault —§7Powerstates, sequencing — §7Protocol layersemantics — §6D2D Adapterframing, reliabilityD2D PHYthe easy partPackagephysical integrationVerificationcollateral — §1412
The layers two chiplet suppliers must agree on, and where standardisation currently stops. The transport layers are the ones a die-to-die specification addresses; everything above and beside them is agreed per-integration today, which is why a conforming link is necessary and not sufficient.

Three things to read.

The centre column is the transport contract; the right column is agreed per integration. A die-to-die specification addresses the first — and §4's failure lives entirely in the second.

The red nodes are where two suppliers have nothing forcing agreement. Each is a real engineering interface with real failure modes, and each is negotiated bilaterally today.

And ver spans everything. A chiplet sold to an integrator must arrive with something that lets the integrator check the agreement holds (§14) — and that collateral is currently the least standardised part of the whole picture.

6. Protocol Semantics Are Not Transport

Two dies can carry the same bytes and mean different things by them.

Agreement neededExample disagreement
which protocol is carriednative mapping vs Streaming (19.2)
who owns reliabilityone expects the Adapter's retry; the other supplies its own (22.2 §12)
ordering domainsone assumes ordering the other does not provide (22.4 §13)
completion semanticsmust every request complete? within what bound? (22.4 §9)
identity lifetimewhen may an identity be reused? (22.4 §11)
error escalationwhich faults are local, which are fatal? (14.5)

And the second row is the one that fails silently. 22.2 §13: if A assumes the Adapter's CRC and retry are in the path and B is running Raw Mode, the link works and is unprotected — data corruption with a legal protocol trace.

7. Management, Power and Reset

The three layers that make §4's chiplets fail to come up at all.

LayerMust be agreedFailure if not
reset sequencingwho initialises first, and what "ready" meansmutual wait — §4
power stateswhich exist, and the legal transitions between themone side enters a state the other cannot handle
configurationwho is master, and when it is committed§11's partial commit
fault reportingwhich faults propagate, and to whoma local fault escalates to a package event (22.4 §18)
health and isolationhow a degraded chiplet is detected and contained§13

Two properties.

These are sequencing agreements, so they fail at bring-up rather than under load — which is the good news: 21.1's dependency ledger finds them, and they are deterministic.

And they are almost entirely absent from a transport specification, because they concern what the dies do around the link rather than on it.

8. Illustrative — Capability Descriptor

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// ILLUSTRATIVE ONLY. What one chiplet must publish for another to decide
// whether integration is possible. Structured by §5's layers, deliberately —
// so a missing agreement is a missing FIELD rather than an unasked question.
typedef struct packed {
  // identity
  logic [15:0] vendor_id;
  logic [15:0] part_id;
  logic [7:0]  revision;
  logic [7:0]  chiplet_role;
 
  // TRANSPORT — the layer a link specification addresses
  logic [7:0]  link_spec_major;      // which revision — §9
  logic [7:0]  link_spec_minor;
  logic [7:0]  link_class_caps;      // symbolic classes, not UCIe widths (§3)
  logic        adapter_reliability;  // does it USE the adapter's CRC/retry?
 
  // PROTOCOL — §6
  logic [15:0] protocol_caps;        // one bit per protocol it can carry
  logic [7:0]  protocol_required;    // what it REQUIRES the peer to accept
  logic [7:0]  ordering_domains;     // how many it distinguishes
  logic        completion_guaranteed;
 
  // MANAGEMENT / POWER / RESET — §7
  logic [7:0]  mgmt_version;
  logic        reset_is_initiator;   // §4's deadlock, as one bit
  logic [7:0]  power_states_caps;
 
  // SECURITY — §12 (requirement, not a solution)
  logic [7:0]  security_profile;
  logic        requires_peer_attestation;
 
  // RESOURCES
  logic [15:0] max_outstanding;
  logic [15:0] max_payload;
} chiplet_capability_t;

Architecture. One record per chiplet, organised by §5's layers, so the structure itself enumerates what must be agreed.

State. A constant per chiplet plus a register holding the peer's copy.

Cycle/event behaviour. Exchanged once per agreement; re-exchanged on renegotiation — a die that changes its advertised capability mid-agreement is 21.6 §27's illegal configuration mutation.

Contract. The *_required fields are what make a mismatch detectable at bring-up rather than at runtime (22.3 §15). And reset_is_initiator is one bit that prevents §4's deadlock — two dies both advertising 1 is a detectable, reportable incompatibility rather than a silent mutual wait.

Failure. §10 and §11.

DV/debug. Both records belong in the snapshot (21.7 §9). In an interoperability matrix the failing pair is usually distinguished by one field — and without the record that comparison cannot be made at all.

9. Version Negotiation

The specification record shows revisions in 2022, 2023, 2024 and 2025 (§3). A chiplet designed against one revision may be integrated years later against a peer built to another — which is an engineering consequence, not a forecast.

RuleWhy
agree the minimum of the two revisionsneither may assume the other implements more than it advertised
never "use the highest supported"§10
intersect capabilities, never unionone missing bit removes the option
report which check failed"incompatible" is not a diagnosis
carry the agreed revision in the active configurationso a checker applies the right rules (21.6 §32)

10. Wrong RTL — Pick the Highest Version

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// WRONG — each side independently selects the highest version it supports.
// Plausible, and it produces two dies running different rule sets.
assign active_version = (local_max > peer_max) ? local_max : peer_max;   // MAX

Worked. A supports up to revision 3; B supports up to revision 2.

A computesB computes
local_max32
peer_max23
active_version33

Both sides select revision 3. B does not implement revision 3.

Four properties.

The expression is symmetric, which is what makes it look correct — both sides compute the same answer, and agreement feels like success.

They agree on a version one of them cannot honour. B then either fails on the first revision-3 behaviour or, worse, interprets it under revision-2 rules21.6 §33's wrong-revision failure, built into the negotiation.

min is the only correct reduction, and the argument is one line: neither side may assume the peer implements anything above what it advertised.

And this generalises past versions. Every capability reduction in §8 is an intersection; taking a union anywhere produces an agreement neither side can fully honour (22.1 §22).

11. Wrong RTL — Partial Configuration Commit

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// WRONG — each side applies the negotiated configuration when it is ready.
// There is no barrier, so for a window the two dies disagree.
always_ff @(posedge clk or negedge por_n) begin
  if (!por_n)                 active_cfg_q <= CFG_DEFAULT;
  else if (negotiate_done_q)  active_cfg_q <= negotiated_cfg_q;   // local only
end

The window, worked.

CycleDie ADie BTraffic in flight
1,000negotiation completesnegotiation completes
1,002applies new configstill on old config
1,003sends under new rulesinterprets under old rulesmisinterpreted
1,006applies new config

Four properties.

For four cycles the two dies mean different things by the same bytes. Not a dropped packet — a misinterpreted one, which is far worse because it may be silently accepted.

The window is short, load-dependent and reproduces poorly — the hardest class (19.5 §39).

And the correct structure is an atomic commit with quiesce (21.6 §26): drain outstanding traffic, commit both sides against an agreed epoch, resume. The epoch is what makes it checkable:

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// CORRECTED. Commit only at quiesce, and advance a shared epoch so any event
// can be attributed to the configuration that was live when it was issued.
always_ff @(posedge clk or negedge por_n) begin
  if (!por_n) begin
    active_cfg_q   <= CFG_DEFAULT;
    cfg_epoch_q    <= '0;
  end else if (cfg_commit_fire) begin        // asserted only when BOTH quiesced
    active_cfg_q   <= negotiated_cfg_q;
    cfg_epoch_q    <= cfg_epoch_q + 1'b1;
  end
end
 
// MANDATORY. English: the active configuration changes only at a commit, and
// only with nothing in flight. Fires at the cycle of the partial commit above.
a_cfg_atomic: assert property (
  @(posedge clk) disable iff (!por_n)
    $changed(active_cfg_q) |-> ($past(cfg_commit_fire) && ($past(inflight_q) == '0))
);
 
// MANDATORY. English: an event carrying a stale epoch is rejected, not applied.
a_stale_epoch_rejected: assert property (
  @(posedge clk) disable iff (!por_n)
    (rx_fire && (rx_epoch != cfg_epoch_q)) |-> rx_rejected
);

Architecture. Commit gated on mutual quiescence, with a monotonic epoch.

State. The active configuration and the epoch.

Cycle/event behaviour. cfg_commit_fire must be asserted only when both sides have quiesced — which requires a handshake, not a local decision.

Contract. inflight_q must count every outstanding obligation, not one class's (22.2 §14). A quiesce that drains one queue and not another commits with work still in flight under the old rules.

Failure. Without the epoch, a straggler from the previous configuration is applied under the new rules and the resulting misbehaviour is reported as a peer violation (21.6 §11).

DV/debug. The epoch in every trace event is what makes a cross-reconfiguration trace interpretable at all (21.7 §16).

12. Security and Trust

A standardised interface between independently sourced dies makes the package boundary a trust boundary, and that is an architectural change rather than a protocol feature.

QuestionWhose problem
is this die what it claims to be?identity / attestation — system architecture
what is it permitted to access?the system's access control
what happens if it misbehaves?fault containment (§13)
is traffic between dies confidential or integrity-protected?a system decision

13. Fault Containment

A reusable chiplet needs a health and isolation contract, or one supplier's fault becomes every integrator's package failure.

NeededWhy
a health state the integrator can readotherwise degradation is invisible
error reporting with a defined severityso a local fault is not escalated (22.4 §18)
an isolation mechanismcontain rather than propagate
a recovery contractwhat survives a link event (22.4 §17)

And the fourth row is the hardest to specify across suppliers, because it is a statement about semantic state — what outstanding work means after recovery — and that is precisely what a transport contract does not cover (21.4 §23).

14. Verification Collateral

19.6 covers reusable IP within one organisation. Across organisations the problem changes shape.

A chiplet should ship withSo the integrator can
a capability model (§8)check the agreement before silicon
an interface monitorobserve the boundary independently (20.2)
a reference modelcheck behaviour without trusting the DUT (20.4 §17)
a contract checkerassert the agreements of §6–§7
a coverage modelknow what was exercised (20.5)
an integration guidedocument the assumptions that are not in RTL

Two readings.

The reference model is the load-bearing item and the least likely to be shipped. Without it the integrator can only check that the chiplet agrees with itself — which two dies sharing a misinterpretation also do (21.6 §24).

And this is the ecosystem's genuinely unsolved problem. A conforming link is checkable; a conforming semantic contract requires collateral that no specification currently obliges anyone to provide.

15. Ecosystem Verification

Vendor A's die under test, vendor B's die as peer, and no shared assumption.

RuleBecause
each side's model must be independenta shared model hides a shared misinterpretation (21.6 §24)
test the interoperability matrix, not one pairing21.7 §31 — a pass may be for the wrong reason
mutation-test the contract checkersa checker that never fires proves nothing (21.6 §25)
record the negotiated active configurationpairings that negotiate differently are different experiments

And 20.7's finding applies directly: compliance testing validates a device against a known-good reference. That establishes conformance to the reference — not that two arbitrary conforming dies will integrate, because §5's right-hand column was never in scope.

16. Supply-Chain Heterogeneity

Varies across chipletsConsequence
process nodedifferent timing, power and reliability characteristics
clocking and reset topology§7's sequencing problem
power domains and sequencing§7
firmware and its update path§5's software layer
revision and lifecycle§9 — a die may outlive the revision it was built to

And the last row is the durable one. A chiplet designed once may be integrated for years against peers built later — so version negotiation is not a bring-up detail, it is a product-lifetime requirement (§9).

17. Conceptual Scenarios

ScenarioBoundary that must be standardHardest contract layer
A — compute + IO + accelerator + memory-sideseveral, from different suppliersprotocol semantics (§6)
B — a domain-specific chiplet in a general packageone, well-definedmanagement and power (§7)
C — an optical or scale-up bridgeone — 22.3 §7's strongest casefault containment (§13)
D — a memory-expansion chipletone, latency-criticalcompletion and ordering (22.4 §9)

And the pattern across all four is §1's: the transport question is the same in each, and the hardest layer is different in each — which is why a single standard cannot make any of them plug-and-play on its own.

18. Wrong Abstraction — One Universal Chiplet Type

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// WRONG — one transaction type carrying every optional field for every
// possible chiplet role. It looks like maximum reuse and it is the opposite.
typedef struct packed {
  logic [ID_W-1:0]     id;
  logic [ADDR_W-1:0]   addr;
  logic [3:0]          coherence_state;   // meaningless to a bridge chiplet
  logic [7:0]          tensor_shape;      // meaningless to an IO die
  logic [7:0]          device_class;      // meaningless to a compute tile
  logic [15:0]         optical_lambda;    // meaningless to almost everything
  /* ...and so on, for every role in the ecosystem... */
} universal_chiplet_txn_t;

Four properties.

Every chiplet pays for every other chiplet's fields in wire width, buffering and power.

Most fields are undefined for most roles, so their meaning becomes a convention rather than a contract — and conventions are what §4 is about.

Adding a role changes the type, which changes every chiplet that uses it. The abstraction that was supposed to enable independent evolution prevents it.

And the correct unit of reuse is a semantic contract per role (19.6): a memory-side interface, a bridge interface, an IO interface — each narrow, each fully defined, each independently versioned. Reuse comes from the roles being stable, not from one type covering all of them.

19. Common Misconceptions

"UCIe makes chiplets plug-and-play." §4: both sides can conform at the wire and disagree on protocol, management, reset, power, security and version.

"A standard PHY standardises the SoC." §5: the transport contract is one column; the integration contract has several.

"Vendor-independent chiplets eliminate integration verification." §15: they make it harder, because no shared assumption is safe and each side's model must be independent.

"All chiplets can share one universal transaction type." §18: everyone pays for everyone's fields, most are undefined for most roles, and adding a role breaks all users.

"Security comes automatically with standardisation." §12: a standard interface between independently sourced dies makes the boundary a trust boundary — that is a new requirement, not a provided solution.

"Future roadmap announcements are shipping evidence." 22.1 §5: roadmap is Level C. This chapter asserts no timeline at all.

"Chiplet reuse means parameterising one RTL block." §18, 19.6: reuse is a stable semantic contract plus collateral, not a wider parameter list.

"Version negotiation should choose the highest number." §10: both sides then agree on a version one of them cannot honour. min, always.

"More chiplets always improve yield and cost." Each split adds interfaces, package complexity, test cost and integration risk; the tradeoff has an optimum and it is not "more".

"The package network is the only bottleneck." 22.3 §9: memory service, the consumer, the external network and the software scheduler are all candidates.

20. Understanding Check

21. Module 22 Complete

ChWhat it established
22.1Four independent vendor claims; Level D demonstration ≠ deployment; cross-foundry interop is the hard claim
22.2The incumbent-fabric problem; adoption is a layering decision; coherence binds hardest
22.3The bandwidth graph; standardising a non-binding edge produces no speedup and a wrong conclusion
22.4Latency and ownership; identity generation; per-domain ordering; recovery must preserve semantic work
22.5The integration contract; the link is one of seven layers, and the others are agreed bilaterally

And the through-line is one sentence. Every chapter asked what does this evidence actually establish — of a press release, a test chip, a roadmap, a topology, a benchmark, a conformance pass. The answer was consistently narrower than the claim being made, and knowing the gap is the transferable skill.

On the record itself, honestly: across five chapters and every source I could reach, no shipping product's die-to-die links are established as UCIe. What is established is a maintained specification, a cross-foundry test chip, a stated vendor intent, an announced optical component with seven ecosystem endorsements, and a broad founding consortium. That is an ecosystem forming, described accurately — and it is a more useful thing to have read than a confident story would have been.