You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`arty_a7_top` (placed, pre-`DEBUG_EN` always-on debug) | 3,244 | 4,562 | 3.5 | Historical baseline for the same validation reference |
635
641
|`arty_a7_top` (placed, `DEBUG_EN=0`) | 2,318 | 3,168 | 3.5 | Bridge debug telemetry disabled; previous reference before the EJTAG-AXI FIFO trim |
636
-
|**`arty_a7_top` (placed, trimmed EJTAG-AXI FIFOs, `DEBUG_EN=0`)**|**2,371**|**3,356**|**1.5**| Current reference: ELA with `INPUT_PIPE=1`, `DECIM_EN`, `EXT_TRIG_EN`, `TIMESTAMP_W=32`, `NUM_SEGMENTS=4` + EIO 8/8 + EJTAG-AXI + `axi4_test_slave`; bridge debug telemetry disabled; EJTAG-AXI command/response queues set to 16 entries |
642
+
|**`arty_a7_top` (placed, trimmed EJTAG-AXI FIFOs, `DEBUG_EN=0`)**|**2,371**|**3,356**|**1.5**| Current reference: USER1 debug manager with 2x ELA (`INPUT_PIPE=1`, `DECIM_EN`, `EXT_TRIG_EN`, `TIMESTAMP_W=32`, `NUM_SEGMENTS=4`) + 2x EIO 8/8 + EJTAG-AXI + `axi4_test_slave`; bridge debug telemetry disabled; EJTAG-AXI command/response queues set to 16 entries |
637
643
638
644
Optional ELA parameters (`DECIM_EN`, `EXT_TRIG_EN`, `TIMESTAMP_W`,
639
645
`NUM_SEGMENTS`, channel mux, etc.) add registers, comparators, and
@@ -688,14 +694,19 @@ GitHub Actions runs on every push and pull request to `main` or `master`:
688
694
|`test-host`|`pytest tests/ -v --tb=short` with the default `not hw` marker filter, plus an explicit JTAG readback pipeline regression for burst and timestamp stabilization paths |
689
695
|`lint-rtl`|`python sim/run_sim.py --lint-only` — shared `iverilog -Wall` elaboration for the core RTL, vendor wrappers, and simulation stubs |
690
696
|`lint-rtl-verilator`|`python sim/run_verilator_lint.py --self-test` -- full-project Verilog RTL driver lint plus an intentional `MULTIDRIVEN` fixture proving the gate catches one reg driven by multiple always blocks |
691
-
|`sim`|`python sim/run_sim.py` — runs the same `iverilog -Wall` lint pass, then the default RTL regression: ELA behavior, ELA focused regressions, ELA configuration matrix, burst readout, single-chain pipe readout, EIO, and channel mux testbenches |
697
+
|`sim`|`python sim/run_sim.py` — runs the same `iverilog -Wall` lint pass, then the default RTL regression: ELA behavior, ELA focused regressions, ELA configuration matrix, burst readout, single-chain pipe readout, EIO, core manager, and channel mux testbenches |
Copy file name to clipboardExpand all lines: core.json
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,7 @@
1
1
{
2
2
"name": "fpgacapZero",
3
3
"version": "0.1.0",
4
+
"manifest_note": "Source manifest for FuseSoC-style and external build tooling; keep in sync when adding or removing RTL files.",
4
5
"description": "Open-source, vendor-agnostic FPGA debug cores: Embedded Logic Analyzer (ELA) for waveform capture and Embedded I/O (EIO) for runtime read/write of fabric signals, all over JTAG. Includes single-instantiation wrappers for Xilinx 7-series/UltraScale, Lattice ECP5, Intel/Altera, and Gowin.",
// ... 30 AXI signals connected to your AXI slave or interconnect ...
225
224
);
226
225
```
@@ -320,6 +319,7 @@ module fcapz_ela_xilinx7 #(
320
319
|`CTRL_CHAIN`| int | 1..4 | BSCANE2 USER chain for the control register interface. |
321
320
|`DATA_CHAIN`| int | 1..4 | BSCANE2 USER chain for the burst data readback. |
322
321
|`EIO_EN`| bit | 0/1 | When `1`, the ELA wrapper also instantiates an EIO core and muxes it onto `CTRL_CHAIN` via an address decoder — ELA registers live at `0x0000..0x7FFF`, EIO registers at `0x8000..0xFFFF`. Lets you use both cores on a single USER chain when you want to conserve BSCAN primitives or share a chain for deployment reasons. The standalone `fcapz_eio_xilinx7` / `_xilinxus` wrappers cannot coexist with this — pick one. |
322
+
|`NUM_EIOS`| int | 0..N |`fcapz_debug_multi_xilinx7` only. Number of managed EIO slots after the ELA slots. Defaults to `EIO_EN` for one-EIO compatibility. |
323
323
|`EIO_IN_W`| int | 1..N | EIO input bus width when `EIO_EN=1`. |
324
324
|`EIO_OUT_W`| int | 1..N | EIO output bus width when `EIO_EN=1`. |
325
325
@@ -414,8 +414,9 @@ eio.write_outputs(0x1)
414
414
- You cannot also instantiate a standalone `fcapz_eio_xilinx7` /
415
415
`_xilinxus` elsewhere in the same design (two BSCANE2s on the same
416
416
USER chain).
417
-
- A future third core on the same chain (EJTAG-AXI/UART) would need a
418
-
wider address mux or a hierarchical `fcapz_regbus_mux`.
417
+
- For multiple ELAs plus EIO on one Xilinx 7-series chain, prefer
418
+
`fcapz_debug_multi_xilinx7`; it uses the descriptor-capable `"CM"`
419
+
active-slot manager instead of the older fixed `0x8000` EIO address window.
0 commit comments