Commit Graph

102 Commits

Author SHA1 Message Date
9ecda4aa7a Fix CRC32 table, remove debug output 2026-06-25 02:51:36 +08:00
ae8f2d1c2d Merge main (AXI ports fix) into no-fft 2026-06-25 02:35:04 +08:00
a2b3f72c76 Fix matmul AXI: add missing awlock/cache/prot ports, remove placeholder 2026-06-25 02:34:50 +08:00
8e86d8693e Increase DMA FIFO depth to 128 (512 bytes) for burst support 2026-06-25 01:54:07 +08:00
1e36883a7c Fix CRC32 table entry 187 2026-06-25 01:26:53 +08:00
3962058592 Fix CRC32 table entry 187 again (0x5CB30A04 -> 0x5CB36A04) 2026-06-25 01:24:04 +08:00
31c2b53583 CRC32 on-the-fly from c_buf (bypass GCC volatile ExtRAM bug) 2026-06-25 01:19:57 +08:00
292d3c7abf Remove placeholder comment 2026-06-25 00:53:42 +08:00
d3e1b5fda4 Add missing AXI4 ports: awlock/awcache/awprot/arlock/arcache/arprot 2026-06-25 00:53:28 +08:00
828612164a Re-remove FFT module (leaked in from main merge) 2026-06-25 00:51:54 +08:00
acb158a392 Update matmul RTL, remove shift_add_mult.v 2026-06-25 00:47:43 +08:00
5e467175ea Merge main (user mods) into no-fft 2026-06-25 00:44:01 +08:00
641d055f18 User mods: matmul RTL + shift_add_mult + C program 2026-06-25 00:43:16 +08:00
99c85f1a20 Rewrite burst logic with FFT-style state machine (W_IDLE/DATA/RESP, R_IDLE/DATA) 2026-06-25 00:22:30 +08:00
27d818390f Remove assign s_axi_rlast (now procedural) 2026-06-25 00:18:09 +08:00
494b8b9c5b Fix: s_axi_rlast must be output reg (assigned in always block) 2026-06-25 00:16:36 +08:00
f05c445ef3 Sync matmul IP (burst support) from no-fft 2026-06-25 00:12:02 +08:00
d5ad070ca0 Restore FFT module on main branch 2026-06-25 00:10:42 +08:00
20d5a541ad Add burst write/read support to matmul AXI slave for DMA compatibility 2026-06-25 00:08:29 +08:00
1660b283c4 Move DMA files to asm/, remove from common.mk 2026-06-24 23:52:30 +08:00
5459538a04 Add dma.c to common.mk link list 2026-06-24 23:47:33 +08:00
5dcee80b95 DMA-driven: A+B+C per group via DMA ch0/ch1, -O2 CRC32 from ExtRAM 2026-06-24 23:46:58 +08:00
a42568f635 Clean production code: -O2, read CRC32 from ExtRAM, remove all debug 2026-06-24 23:42:35 +08:00
c1fcb3c796 CRC32 on-the-fly from c_buf — bypass ExtRAM reads entirely 2026-06-24 23:38:06 +08:00
07f8422d75 Fix CRC32 table entry 187: 0x5CB30A04 -> 0x5CB36A04 2026-06-24 23:32:24 +08:00
93361733f6 Definitive write test: write 0xDEADBEEF then read back 2026-06-24 23:29:00 +08:00
16c0d7b639 Use __sync_synchronize() hardware barrier instead of asm compiler barrier 2026-06-24 23:22:38 +08:00
f0ebf1f5fa Output A0/B0/C0 for groups 0-3 and N-2,N-1 2026-06-24 23:16:26 +08:00
2c8f5d37f3 Add asm memory barrier before CRC32 to flush write buffer 2026-06-24 23:09:06 +08:00
afef1f1433 Add group 1 A/B/C debug output 2026-06-24 23:03:46 +08:00
23bb112586 Print CRC32 loop counter to verify iteration count 2026-06-24 23:01:29 +08:00
8ea98874a5 Inline CRC32 computation into main (bypass function call) 2026-06-24 22:52:08 +08:00
d27e147652 Fix escaped quotes 2026-06-24 22:50:14 +08:00
f6146bd467 Minimal debug: CRC32 self-test + group 0 rdback in one line 2026-06-24 22:49:06 +08:00
e39a655861 Add CRC32 self-test debug output 2026-06-24 22:42:46 +08:00
bbd3e3358b Fix extra brace in debug code 2026-06-24 22:38:18 +08:00
3269e83d68 Debug: check ExtRAM write-back at start/mid/end of range 2026-06-24 22:36:29 +08:00
d39b5ecdae Revert pipeline: restore single-cycle compute 2026-06-24 22:23:53 +08:00
4a67ca5c83 Add debug output for group 0 write-back and group 1 compute 2026-06-24 22:09:06 +08:00
2edf058e97 Merge branch 'main' into no-fft 2026-06-24 21:41:50 +08:00
bbdc1fd7fe Fix linter: remove placeholder, fix DVI reg declarations 2026-06-24 21:41:05 +08:00
5972facc0a Pipeline matmul multiplier: 2-stage to fix WNS
Split compute into stage1 (compute → partial) and
stage2 (partial → c_data). Halves CARRY4 chain depth
from 16 to ~8 levels. Compute cycles: 16 → 32.
2026-06-24 21:40:34 +08:00
5ee2833a2b Remove FFT module, tie off slave 6, fix linter issues 2026-06-24 20:54:33 +08:00
db2ad12dbb Add verilator pragma to suppress BLKLOOPINIT in DelayBuffer.v 2026-06-24 20:41:52 +08:00
aaefb04737 Sync asm/ (user-sample.c + Makefile) from test branch
MATMUL_GROUP_NUM defaults to 5000, overridable for fast local testing.
2026-06-24 17:01:45 +08:00
f8edd878d4 Rewrite matmul_test for CIC-IEC Stage 3 evaluation
- 5000 groups (N_GROUPS=5000), group 0 all-zero as required
- MATMUL_START before computation, MATMUL_DONE after CRC
- IEEE CRC32 over 960000-byte result region (little-endian words)
- MATMUL_CRC32=XXXXXXXX format, 8 hex digits, no 0x prefix
- Uncached ExtRAM access (0xA0000000 segment)
- Removed all debug output for minimal UART traffic
2026-06-24 16:42:08 +08:00
4a5ecc8bdc Add debug output: print A[0..3], B[0..3], C[0..5] for group 0 2026-06-24 16:35:43 +08:00
e35fa5884d Use uncached ExtRAM access (0xBC400000) to bypass CPU data cache
The open-la500 core has USE_CACHE enabled. Writes to 0x1c400000
go to the write-back data cache and never reach the SRAM model
before the testbench checks ExtRAM. Use the 0xA0000000 uncached
segment (same pattern as fft_dma/main.c).
2026-06-24 02:04:40 +08:00
b8a4fcc30b Fix matmul_base address: 0x1f500000 -> 0xbf500000
The open-la500 CPU maps 0xbfxx_xxxx to the peripheral address space
(crossbar sees 0x1fxx_xxxx). FFT uses 0xbf400000, CONFREG uses
0xbf20f100, UART uses 0xbf000000. Matmul must follow the same
convention.
2026-06-24 01:58:29 +08:00
ff6e572996 matmul_test: rewrite for ExtRAM flow, add IP error debug
- Rewrite main.c to read from ExtRAM (0x1c400000), compute
  via matmul IP, write results back. Matches testbench
  expectation of 10 groups.
- Add  in matmul_axi_slave to trace error writes
2026-06-24 01:49:02 +08:00