Skip to content

Commit c716684

Browse files
samples: sync ntt-fpga history
1 parent 773fa7e commit c716684

589 files changed

Lines changed: 454259 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
{
2+
"id": "ntt-fpga",
3+
"fetchedAt": "2026-06-19T08:12:32.064Z",
4+
"sources": [
5+
{
6+
"title": "CFNTT: Scalable Radix-2/4 NTT Multiplication Architecture (TCHES 2022)",
7+
"url": "https://tches.iacr.org/index.php/TCHES/article/view/9291"
8+
},
9+
{
10+
"title": "CFNTT PDF (IACR TCHES)",
11+
"url": "https://tches.iacr.org/index.php/TCHES/article/download/9291/8857"
12+
},
13+
{
14+
"title": "DOI 10.46586/tches.v2022.i1.94-126",
15+
"url": "https://doi.org/10.46586/tches.v2022.i1.94-126"
16+
},
17+
{
18+
"url": "https://tches.iacr.org/index.php/TCHES/article/view/9291"
19+
}
20+
],
21+
"items": [
22+
{
23+
"kind": "paper",
24+
"file": "paper.md"
25+
}
26+
],
27+
"attempts": [
28+
{
29+
"method": "paper",
30+
"at": "2026-06-19T07:46:21.997Z",
31+
"gaps": [
32+
"[operation] Exact conflict-free bank-index and offset functions, and the per-stage crossbar permutation table σ_s (the paper's headline Sec. III result) (part crossbar_network)",
33+
"[shape] BRAM depth is inconsistent: bram_0 declares depth_words=256 but the crossbar/offset map uses 128 words/bank (part bram_0)",
34+
"[operation] Twiddle-ROM addressing f(stage,block) under the rearranged-loop twiddle-reuse structure (only a seed power table + generator are given) (part twiddle_rom)",
35+
"[control] Full radix-4 transform schedule: the fused two-stage pass and radix-4 conflict-free addressing (only the butterfly unit is pinned) (part config_radix_selector)",
36+
"[timing] Radix-4 cycle accounting: reconcile bf_cycles_per_stage_r4=32 / total=160 against 256 BUs / 4 lanes = 64 cycles/stage (part config_radix_selector)",
37+
"[param] Radix-4 butterfly multiplier count contradiction (3 mults in config_radix_selector vs 2 mults in op-count reconciliation) (part config_radix_selector)",
38+
"[control] Exact FSM transition table (spec lists states but calls the transitions reconstructed/unpublished) (part schedule_controller)",
39+
"[port] PCIe/DMA framing, handshake and beat packing at the host boundary (recorded as reproduction-invented) (part host_phy)",
40+
"[param] Paper's true modulus (source gives only '14-bit NTT-friendly prime'; q=12289 is a reproduction fix)",
41+
"parameter \"radix\" — the source's real value (impls guessed \"2 implemented; 4 only as a butterfly unit, not full schedule\")",
42+
"evidence for the named property \"Conflict-free memory mapping (arbitrary radix/#BU, no bank conflict)\"",
43+
"evidence for the named property \"No bit-reversal stage / natural-order output\"",
44+
"evidence for the named property \"Radix-4: 33% fewer mults / 20% fewer add/sub\"",
45+
"evidence for the named property \"~50% butterfly hardware saved via symmetric operators\"",
46+
"evidence for the named property \"ATP advantage 2.2x/1.2x/1.1x/1.9x LUT/FF/DSP/BRAM vs radix-2\"",
47+
"the source's actual structure for: The paper's defining feature — the conflict-free interleaved-bank mapping and per-stage crossbar permutation — is replaced by a reproduction-chosen XOR-fold in both impls; the actual routing topology is unverified."
48+
],
49+
"bytes": 10283
50+
},
51+
{
52+
"method": "refs",
53+
"at": "2026-06-19T08:12:32.064Z",
54+
"gaps": [
55+
"[operation] Paper's actual conflict-free (bank,offset) mapping function and per-stage crossbar permutation sigma_s (the headline Sec. III contribution)",
56+
"[operation] Twiddle-ROM addressing function f(stage,block) under the rearranged twiddle-reuse loop",
57+
"[control] Exact FSM transition table and per-state cycle latencies (only aggregate 9 cycles/lane given)",
58+
"[param] Naive-radix-4 add/sub baseline (10 assumed) that pins the 20% reduction claim",
59+
"[operation] Whether output is genuinely bit-reversal-free in hardware vs. computed bit-reversed then relabeled",
60+
"[param] Specific 14-bit modulus of the paper benchmark (q=12289 is a reproduction fix, not the stated prime)",
61+
"[port] Host PCIe/DMA framing, beat packing and handshake (explicitly reproduction-invented) (part pcb_substrate)",
62+
"evidence for the named property \"Conflict-free memory mapping (arbitrary radix/#BU, no bank conflict)\"",
63+
"evidence for the named property \"No bit-reversal stage / natural-order output\"",
64+
"evidence for the named property \"Twiddle-factor reuse via rearranged loop\"",
65+
"evidence for the named property \"radix-4 uses 33% fewer mults / 20% fewer add/sub (vs NAIVE radix-4)\"",
66+
"evidence for the named property \"~50% butterfly hardware saved via symmetric operators\"",
67+
"evidence for the named property \"ATP LUT/FF/DSP/BRAM ~2.2x/1.2x/1.1x/1.9x lower than radix-2\"",
68+
"the source's actual structure for: The architecture's headline contribution — the conflict-free interleaved-BRAM mapping and crossbar permutation — is replaced by a guessed XOR-fold in both impls; the SPECIFIC mapping the paper describes is not reproduced",
69+
"the source's actual structure for: Twiddle addressing uses generic bit-reversed ROM layout rather than the paper's rearranged twiddle-reuse loop, so the memory-footprint/reuse optimization is structurally absent",
70+
"the source's actual structure for: Functional Python models do not realize the 9-cycle pipeline (mult 3 + add/sub 1 + Barrett 4 + reg 1) as actual pipeline stages — latency is only asserted as a bound"
71+
],
72+
"bytes": 17665
73+
}
74+
]
75+
}

0 commit comments

Comments
 (0)