电子工程学生
我们去年集创赛做的就是这个方向,用的也是Artix-7。核心矛盾就是多项式运算和片上存储。我们的思路是彻底拥抱“串行化”,别想着一个时钟周期算很多点。把NTT/INTT模块做成高度可复用的单一计算单元,比如一个蝶形运算器,通过状态机控制,循环处理所有点。这样DSP用量能压到个位数。BRAM是大头,用来存多项式系数,但Artix-7的BRAM块不多,所以内存访问模式必须精心设计。我们采用“乒乓操作”加系数重排,让蝶形运算单元读取的数据尽量连续,减少随机访问,这样能有效隐藏访问延迟,提高单元利用率。测试向量可以用官方提供的Known Answer Tests (KAT),用软硬件协同验证,先在电脑上用C语言参考代码算一遍结果,再把输入灌给FPGA,比较输出。抗侧信道是另一个维度,最简单的可以从固定时间算法入手,避免条件分支和索引依赖,但这会额外增加面积和周期,初赛可能不强制,但进决赛的话这是亮点。
