Adds diagrams.

This commit is contained in:
Dennis Brentjes
2026-06-13 19:02:58 +02:00
parent 8d0ab1d948
commit 5b732a0b34
10 changed files with 40387 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
# Schematics
Synthesized (RTL-level) schematics of the BBA design, generated from the actual
Amaranth elaboration via yosys + graphviz. Regenerate with:
```bash
python -m exi_bba.diagram # all of the below
python -m exi_bba.diagram w5100_master # just one
```
Open the `.svg` files in a browser or VS Code (they're vector — zoom freely).
| File | What it shows | Size |
|---|---|---|
| `bbatop_blocks.svg` | **Top-level block diagram** — BBATop's submodules (ExiCapture, register file, SPRAM arbiter, RX/TX engines, W5100 master, status panel) as boxes with their interconnections. Start here. | 186 cells |
| `spi_mode3_slave.svg` | EXI Mode-3 SPI bit engine (the capture-domain front-end) — shift registers, bit counter, MISO/MOSI logic. | 109 cells |
| `spram_arbiter.svg` | SPRAM priority arbiter — ETH-write-vs-EXI-read mux + the SB_SPRAM read/write ports. | 80 cells |
| `tx_frame_drain.svg` | TX drain FSM — pulls frames from the FIFOs and streams them to the ethernet master with SOF/EOF. | 124 cells |
| `status_panel.svg` | Bring-up panel — heartbeat counter, activity-LED stretchers, button debounce. | 180 cells |
| `rx_frame_assembler.svg` | RX assembler — writes received frames into the SPRAM ring and advances RWP. | 284 cells |
| `w5100_master.svg` | **Full W5100 parallel master** (bus engine + transaction engine + init/TX/RX FSM). Poster-sized (~1100 cells) — zoom in. | 1129 cells |
These are RTL views: real muxes (`$mux`), adders (`$add`), comparators (`$eq`),
and flip-flops (`$dff`/`$adff`) — *not* the post-place LUT soup. The whole
flattened-and-mapped `BBATop` would be ~2300 LUTs and illegible, which is why the
top level is shown as a block diagram and the leaves as per-module RTL.
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 179 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 380 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 133 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 85 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 251 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 144 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1.7 MiB