{ "module": "ntt", "rtl_top": "sync_rtl/ntt/ntt_sync.v", "rtl_deps": [ "sync_rtl/ntt/ntt_core.v", "sync_rtl/ntt/butterfly_unit.v", "sync_rtl/ntt/barrett_mul.v", "sync_rtl/ntt/zeta_rom.v" ], "tb_cpp": "sync_rtl/ntt/TB/tb_ntt.cpp", "simulator": "verilator", "timeout_s": 300, "cases": [ { "id": "forward", "description": "Forward NTT: 256-coeff polynomial -> NTT domain, vs Python NTT()", "params": {"mode": "forward"}, "num_vectors": 5, "tolerance": "bit_exact" }, { "id": "inverse", "description": "Inverse NTT: 256-coeff NTT-domain -> normal domain, vs Python NTTInverse()", "params": {"mode": "inverse"}, "num_vectors": 5, "tolerance": "bit_exact" }, { "id": "roundtrip", "description": "Round-trip: NTT(INTT(f)) == f", "params": {"mode": "roundtrip"}, "num_vectors": 3, "tolerance": "bit_exact" } ] }