Worked examples — IP cores and SoC bus fabric
This page is the "prove it on every case" companion to the parent topic. The parent told you what AXI channels, crossbars, and APB/AHB/AXI throughput are. Here we grind through every kind of numeric question this topic can throw at you — the small easy ones, the degenerate ones (one master, zero outstanding transactions), the limiting ones (infinite burst length), a real-world word problem, and an exam-style twist that hides a trap.
Before any formula appears we rebuild it in plain words, so you never meet a symbol you have not been introduced to.
The scenario matrix
Every question on bus fabric throughput and crossbar sizing falls into one of these case classes. Think of it as a checklist: if you can answer one example from each row, nothing on an exam can surprise you.
| # | Case class | What makes it tricky | Covered by |
|---|---|---|---|
| A | Simple throughput (fixed cycles/transfer) | just plug numbers | Ex 1 |
| B | Burst amortization (overhead spread over N beats) | the "+overhead" term | Ex 2 |
| C | Degenerate input — burst length = 1 | overhead dominates, formula must still work | Ex 3 |
| D | Limiting input — burst length → ∞ | throughput approaches a ceiling | Ex 4 |
| E | Parallelism (multiple outstanding transactions) | multiply, but watch the real bottleneck | Ex 5 |
| F | Crossbar sizing (counting switches/arbiters) | growth, degenerate | Ex 6 |
| G | Real-world word problem — meet a bandwidth budget | translate MB/s ↔ bits, pick a protocol | Ex 7 |
| H | Exam twist — the trap: bus width vs. clock vs. efficiency all change at once | don't mix up bits and bytes | Ex 8 |
The two tools we reuse everywhere:
Ex 1 — Case A: the plain APB transfer
Forecast: guess before reading — will it beat or lose to a 1-cycle bus? (It must lose, because 2 cycles is slower than 1.)
Steps
-
Identify bits, cycles-per-transfer , Hz. Why this step? Tool 1 needs exactly these three numbers; naming them first stops us mixing them up.
-
Apply Tool 1: Why this step? This is the raw bit-rate before converting units.
-
Convert bits → bytes (divide by 8): Why this step? MB/s is the unit the question asked for.
Verify: Sanity — 2 cycles is half the speed of a 1-cycle bus, and a 1-cycle 32-bit 100 MHz bus is MB/s. Half of 400 is 200 ✓. Matches the parent note's APB figure.
Ex 2 — Case B: AHB burst, overhead amortized
Forecast: more than 200 MB/s (better than APB) but less than the ideal 400 MB/s — because 2 wasted cycles are hiding among the 8 useful ones.
Steps
-
Plug , , into Tool 2. Why this step? This is exactly the "useful cycles vs total cycles" idea.
-
Convert to bytes: . Why this step? Answer requested in MB/s.
Verify: Efficiency . And of the ideal MB/s MB/s ✓.
Ex 3 — Case C: degenerate burst,
Forecast: this should collapse toward APB-like numbers, because with only 1 useful word the 2 overhead cycles dominate.
Steps
-
Put into Tool 2. Why? A degenerate case must not break the formula — plug it in honestly.
-
Convert: .
Verify: Efficiency . This is worse than APB's 200 MB/s — makes sense: an un-batched single word wastes most cycles on setup, so bursting is pointless for lone accesses. That's the whole reason bursts exist.
Ex 4 — Case D: limiting behaviour,
Forecast: it should approach the ideal 400 MB/s but never exceed it — the fixed 2 cycles become negligible when spread over millions of beats.
The figure shows efficiency climbing toward 1 as grows:

Steps
-
Take the limit of Tool 2 as . Why a limit? "As grows huge" is precisely the question a limit answers — it tells us the value the curve creeps up to but never crosses. (Divide top and bottom by : .)
-
So throughput bits/s .
Verify: Look at the red curve in the figure: it flattens toward the dashed ceiling and never touches it — exactly what a limit describes. The overhead is amortized to zero.
Ex 5 — Case E: AXI parallelism (multiple outstanding)
Forecast: roughly 4× a single burst — but only if the slave and wires can actually carry it.
Steps
-
Single-burst throughput (Tool 2): Why this step? We need the per-transaction number before multiplying.
-
Multiply by 4 outstanding transactions: Why this step? Outstanding transactions overlap in time, so their throughputs add — up to a limit.
Verify: MB/s ✓ (matches the parent's ≈1400 MB/s estimate).
Ex 6 — Case F: crossbar sizing (and degenerate )
Forecast: (a) switches grow as so expect 32; arbiters and comparators one-per-slave = 8 each. (b) with one master there's nothing to arbitrate.
The crossbar grid — each red dot is one switch:

Steps
-
Switches . Why? Every master needs a possible path to every slave; that's one crosspoint per (master, slave) pair — count the red dots.
-
Arbiters . Why? Each slave might be requested by several masters at once; one referee per slave picks a winner.
-
Address comparators . Why? Each slave owns an address range; one comparator decides "is this address mine?"
-
Degenerate : switches , but arbiters still exist structurally, though each has only one requester → they never actually arbitrate. Why note this? An exam may claim "you can drop the arbiters when ." Structurally they're one-per-slave; logically they degenerate to pass-through. Say both.
Verify: Complexity is : doubling to 8 gives switches — exactly double. Linear in each dimension ✓.
Ex 7 — Case G: real-world word problem
Forecast: 4K60 is famously "a few GB/s". A 64-bit 200 MHz link is GB/s at peak — this will be close, so compute carefully.
Steps
-
Bytes per frame: bytes. Why? Total data per frame is width × height × bytes-per-pixel.
-
Required bandwidth: frames/s: Why? 60 frames every second, so multiply per-frame by 60.
-
Link peak: bits at Hz:
-
Usable at : . Why? Real fabrics never reach peak; the efficiency factor accounts for overhead cycles.
-
Compare: need MB/s, have MB/s. The link is NOT enough — short by MB/s.
Verify: ✓, so the answer "no" is correct. Fix options: widen to 128-bit, raise clock, or add compression. Units check: bytes/s vs bytes/s throughout ✓.
Ex 8 — Case H: the exam twist (everything changes at once)
Forecast: don't eyeball it — the numbers are engineered to be close.
Steps
-
Bus X: bits/s . Why? Tool 1 with 1 cycle/transfer reduces to .
-
Bus Y: bits/s .
-
Compare: Bus X wins, MB/s. Why the surprise? Width and clock both matter as a product. The narrower bus's higher clock more than compensates. Never assume "wider = faster".
Verify: and ; ratio , so Bus X is faster ✓. In bytes: vs ✓.
Recall
Recall Why does a burst of
make AHB slower than APB? With one useful word and 2 overhead cycles, efficiency is ; bursting only pays off when many words share one address phase. ::: Overhead dominates a single-word transfer.
Recall As burst length
, what throughput does approach and why? It approaches — the ceiling — because the fixed cycles are amortized to zero. ::: The peak width×clock rate.
Recall On a single 32-bit channel, why can't 4 outstanding AXI transactions give 4× bandwidth?
The wire still carries only bits/s; outstanding transactions hide latency, not add wire capacity. Real 4× needs multiple physical channels. ::: The channel is still the physical bottleneck.
Recall Full crossbar with
masters and slaves: how many switches, arbiters, comparators? switches, arbiters, comparators. ::: NM, M, M.
See also: Interconnect Topologies · DMA · Memory-Mapped I/O · DRAM Controllers · PCIe · Cache Coherence Protocols · Power Management