This repository has been archived on 2026-08-21. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ciciec2026/rtl/ip/mlkem/ntt/ntt_sync.v
FallenSigh c5072d7170 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.
2026-06-30 01:39:35 +08:00

20 lines
523 B
Verilog

module ntt_sync (
input clk, rst_n,
input [11:0] coeff_in,
input valid_i,
output ready_o,
output [11:0] coeff_out,
output valid_o,
input ready_i,
input mode,
output done_o
);
ntt_core u_ntt_core (
.clk(clk), .rst_n(rst_n),
.coeff_in(coeff_in), .valid_i(valid_i), .ready_o(ready_o),
.mode(mode),
.coeff_out(coeff_out), .valid_o(valid_o), .ready_i(ready_i),
.done_o(done_o)
);
endmodule