feat: add ML-KEM accelerator with AXI slave wrapper
Wrap mlkem_top in an AXI4 burst slave (mlkem_axi_slave) mapped to the freed FFT slot 6 at 0x1f400000 (virtual 0xbf400000). The core runs on sys_clk/2 (25 MHz); the wrapper handles the clock-domain crossing: start toggle->pulse, wait-stated byte-preload handshake, busy/done sync, and direct readback taps (ek/dk/ct/ss). CPU drives it via a register map (CTRL/STATUS/CONFIG, d/z/msg, preload + readback windows). Wire into soc_top on the existing axiOut_6 nets (no crossbar change), add mlkem_intr on intrpt[3]. Add sdk mlkem_test example running a KeyGen->Encaps->Decaps self-consistency round trip.
This commit is contained in:
6
rtl/ip/mlkem/common/defines.vh
Normal file
6
rtl/ip/mlkem/common/defines.vh
Normal file
@@ -0,0 +1,6 @@
|
||||
`ifndef DEFINES_VH
|
||||
`define DEFINES_VH
|
||||
`define CLK_PERIOD 20.0 // 50MHz
|
||||
`define Q 3329 // ML-KEM prime modulus
|
||||
`define N 256 // polynomial degree
|
||||
`endif
|
||||
Reference in New Issue
Block a user