update reports
This commit is contained in:
115
doc/reports/defense/defense_speech.md
Normal file
115
doc/reports/defense/defense_speech.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 系统设计答辩演讲稿
|
||||
|
||||
预计主讲时间:9分45秒。第1至18页为主讲内容,第19页结束,第20至22页仅用于答疑。
|
||||
|
||||
## 第1页:封面(0:00—0:15)
|
||||
|
||||
各位评委老师好。我们的作品是“基于龙芯SoC的后量子密码与矩阵运算加速系统”。系统以OpenLA500为控制核心,在Artix-7 FPGA上集成DMA、矩阵乘法、FFT和全参数ML-KEM硬件IP。
|
||||
|
||||
## 第2页:团队介绍(0:15—0:35)
|
||||
|
||||
团队围绕完整系统形成三类协同分工:系统架构与SoC集成负责AXI、DMA、多时钟域和SRAM;密码算法与RTL实现负责ML-KEM及其关键算子;软件验证、测试与文档负责板级程序、分层回归和证据整理。三部分通过统一接口和可重复测试共同迭代。
|
||||
|
||||
## 第3页:目录(0:35—0:45)
|
||||
|
||||
下面从项目与系统方案、自主计算IP、验证与实现结果,以及心得和后续工作四部分进行汇报。
|
||||
|
||||
## 第4页:作品亮点预览——系统方案(0:45—1:15)
|
||||
|
||||
系统的核心思路是让CPU负责配置与判断,让硬件负责数据搬运和计算。OpenLA500与DMA构成两个AXI主设备,Matmul、FFT和ML-KEM作为独立外设接入。一次启动可以完成5000组Matmul任务;SRAM连续突发在无反压时达到每周期一个数据拍;单一ML-KEM比特流覆盖三等级、三操作;三个异步时钟域由完整AXI双时钟FIFO连接。全系统DSP使用量为零。
|
||||
|
||||
## 第5页:作品亮点预览——关键结果(1:15—1:45)
|
||||
|
||||
先给出最终结果。5000组Matmul官方评测用时4.911765毫秒,CRC32期望值与上报值均为0x0417d761,得分100%。FFT的DMA模式相对软件加速827.80倍;ML-KEM的DMA路径相对软件加速48.95到53.33倍。ML-KEM通过9000个主路径KAT、300个隐式拒绝向量和900次板级运行。系统覆盖88843个时序端点且无时序违例。
|
||||
|
||||
## 第6页:开发过程总结(1:45—2:10)
|
||||
|
||||
开发过程分为六个阶段:先跑通基础SoC和串口,再接入各计算IP;随后以DMA端点、双Bank和SRAM连续突发优化数据通路;再完成PLL分域、AXI跨时钟域和复位验证;最后用叶模块、IP、SoC和板级四层证据持续回归。Matmul从阶段性正确结果迭代到最终满分,说明性能优化必须同时观察功能、总线状态、时序和端到端时间。
|
||||
|
||||
## 第7页:赛题要求与设计响应(2:10—2:40)
|
||||
|
||||
赛题要求的不是孤立计算核,而是能够运行和验证的完整SoC。针对5000组矩阵计算和零DSP约束,我们设计全LUT乘加核心、双Bank序列器和在线CRC32。针对FIPS 203,实现单比特流三等级、三操作的ML-KEM。针对端到端性能,扩展四通道DMA、加速器端点和SRAM连续突发,使CPU不再逐字搬运,也不参与逐组任务调度。
|
||||
|
||||
## 第8页:总体架构与自主设计边界(2:40—3:20)
|
||||
|
||||
系统采用双主八从AXI架构。CPU负责程序执行、参数配置和结果判断,DMA负责内存与加速器之间的批量传输,三个加速器具有独立地址空间。
|
||||
|
||||
这里明确自主设计边界。OpenLA500、板级SRAM器件、UART及基础外设来自赛事平台。我们完成四通道DMA扩展、Matmul与批量序列器、FFT、ML-KEM、两级AXI跨时钟域桥,以及基础SRAM控制器的突发流水化改造。工作重点是自主计算IP和贯穿SoC的数据通路。
|
||||
|
||||
## 第9页:数据搬运、SRAM与三时钟域(3:20—4:05)
|
||||
|
||||
CPU域为33.333兆赫;AXI互连、DMA、SRAM、Matmul和FFT位于50兆赫系统域;ML-KEM核心独立运行在76.923兆赫。CPU到系统、系统到ML-KEM的AXI五通道均通过双时钟FIFO跨域。复位按系统域、ML-KEM域、CPU域顺序释放,复位前AXI有效信号保持为零。
|
||||
|
||||
我们通过下一地址预驱动、读数据寄存和连续写握手,消除SRAM读数据拍之间的固定空闲周期,实现无反压时每周期一个32位数据拍。50兆赫下理论单向带宽为200 MB每秒。这个数值是接口节拍上限,不作为独立微基准实测值。
|
||||
|
||||
## 第10页:Matmul批量流水(4:05—4:50)
|
||||
|
||||
CPU只配置源地址、组数和跨步,序列器随后接管5000组任务。每组由CDMA读取128字节A、B矩阵并交替装入两个Bank;一个Bank计算时,另一个Bank可加载下一组。
|
||||
|
||||
计算核心使用四个32位无符号乘法器和加法树得到66位结果,稳定后每周期产生一个C元素。结果进入CRC FIFO,FIFO吸收乘加和递归CRC32之间的速率差。快速模式跳过192字节结果写回,但不会跳过计算和CRC。最后一组退休后仍等待CRC完全排空才产生DONE,因此最终CRC覆盖全部逻辑结果。
|
||||
|
||||
## 第11页:ML-KEM总体架构(4:50—5:30)
|
||||
|
||||
ML-KEM分为控制调度层、算子层和BRAM存储层。算子层包含Keccak、NTT、多项式乘法、采样和压缩解压缩。安全等级k和操作类型在start时锁存,存储按最大等级静态分配,循环边界和地址由k运行时推导。因此同一比特流支持ML-KEM-512、768、1024,以及KeyGen、Encaps和Decaps,无需重新综合。
|
||||
|
||||
## 第12页:ML-KEM关键设计(5:30—6:15)
|
||||
|
||||
第一,G、H、J哈希、SampleNTT和CBD处于互斥阶段,因此共享一个Keccak-f核,约节省10600个LUT。第二,NTT采用四路Banked BRAM和两个蝶形流水线,四个Bank无冲突提供两对系数,达到每周期四个系数且不使用DSP。第三,Decaps重加密直接复用Encaps状态序列,密文比较逐字节执行且不提前退出,Accept和Reject路径总周期完全相等。设计优先保证全参数支持、标准完整性和面积可控。
|
||||
|
||||
## 第13页:四层验证(6:15—6:55)
|
||||
|
||||
验证采用四层递进结构。叶模块层将Keccak、NTT、蝶形、FIFO和CRC32与参考模型比较;IP层验证完整控制流;SoC层验证AXI解码、跨时钟域、复位和SRAM取指;板级层由真实CPU软件形成闭环。
|
||||
|
||||
ML-KEM通过9000个主路径KAT和300个隐式拒绝向量,板级三等级、三路径共900次运行零失败。FFT在CPU和DMA模式下共运行六次。Matmul最终评测完成5000组随机输入,CRC32匹配并达到满分。
|
||||
|
||||
## 第14页:资源与时序(6:55—7:30)
|
||||
|
||||
系统在xc7a200tfbg676-1上完成布局布线。使用55066个LUT,占41.16%;31000个寄存器,占11.58%;29.5个BRAM Tile,占8.08%;DSP为零。CPU、系统和ML-KEM域的建立时间WNS分别为正0.737、正0.125和正0.070纳秒,没有建立或保持违例。独立ML-KEM时钟域隔离了系统总线的布线压力。
|
||||
|
||||
## 第15页:最终板级性能(7:30—8:20)
|
||||
|
||||
Matmul最终评测的随机种子为0xa3772ec8,5000组运行用时4.911765毫秒,平均每组约0.982微秒;在50兆赫系统时钟下约为49.12周期每组,CRC32完全匹配并获得100分。与阶段验证的6.944404毫秒中位值相比,最终时间降低约29.27%,收益来自启动、搬运、调度、计算和CRC全链路协同。
|
||||
|
||||
FFT DMA模式延迟296.73微秒,相对软件加速827.80倍,最大误差为实部1、虚部2。ML-KEM改用DMA窗口后,相对软件加速48.95到53.33倍,其中512等级完整往返约1.605毫秒。
|
||||
|
||||
## 第16页:项目心得体会(8:20—8:55)
|
||||
|
||||
本项目形成四点认识。第一,端到端性能比孤立计算核延迟更重要。第二,必须先建立CRC、状态寄存器和分层测试等可观测手段,再进行激进优化。第三,资源共享和并行度是明确的工程取舍。第四,报告、软件、RTL和实测日志必须共享版本化数据基线。最终满分来自软硬件协同,而不是单一参数堆叠。
|
||||
|
||||
## 第17页:后续工作(8:55—9:20)
|
||||
|
||||
后续从四方面推进:增加Keccak并行路径并扩展NTT蝶形单元;补充SRAM随机反压、跨Bank边界和持续带宽专项测试;使用SAIF或VCD活动率回标提高功耗结论可信度;统一RTL、软件、测试向量和报告指标,形成自动化回归基线。优化仍以标准完整性和可验证性为前提。
|
||||
|
||||
## 第18页:总结(9:20—9:45)
|
||||
|
||||
本项目构建了CPU、DMA、共享存储器与三个加速器协同的异构SoC;以SRAM连续突发、DMA端点和双Bank调度优化数据流;实现单比特流三等级、三操作的ML-KEM;并以零DSP完成布局布线和分层验证。最终5000组Matmul用时4.911765毫秒,CRC32匹配,得分100%。我的汇报完毕,谢谢各位老师。
|
||||
|
||||
## 常见追问速答
|
||||
|
||||
### 为什么设计三个时钟域?
|
||||
|
||||
CPU、外部SRAM和ML-KEM算法核心的时序能力不同。分域使ML-KEM运行在76.923 MHz,同时保持SRAM和系统总线在50 MHz可靠工作;跨域由五通道AXI双时钟FIFO完成。
|
||||
|
||||
### 200 MB/s是否为实测带宽?
|
||||
|
||||
不是。它是50 MHz乘以32位得到的连续传输理论单向上限。板级业务间接验证了连续突发正确性,但当前报告没有独立SRAM微基准。
|
||||
|
||||
### 快速模式不写回结果,如何保证正确性?
|
||||
|
||||
矩阵核心仍计算全部66位结果,并按标准字节序进入CRC32。DONE只在最后一组退休且CRC FIFO完全排空后产生,因此官方CRC覆盖全部逻辑结果序列。
|
||||
|
||||
### Matmul为何能从6.94毫秒降至4.91毫秒?
|
||||
|
||||
优化不只发生在乘加核心,而是同时减少软件启动开销、批量调度空闲和SRAM突发间隙,并保持计算与CRC消费重叠。最终每组从约69.4个系统周期降到约49.12个周期。
|
||||
|
||||
### 为什么ML-KEM慢于部分论文?
|
||||
|
||||
本设计支持单比特流三等级、三种完整操作、SoC接口和零DSP。部分论文针对固定等级或单一操作综合,并使用更多蝶形单元或DSP。当前单Keccak和双蝶形NTT是主要性能限制。
|
||||
|
||||
### 如何保证复位前没有操作?
|
||||
|
||||
各时钟域采用异步置位、同步撤离,并按sys、mlkem、cpu顺序释放。复位期间AXI valid、加速器start和DMA请求保持为零,系统仿真检查了首次取指前的事务状态。
|
||||
|
||||
### 为什么全系统不用DSP?
|
||||
|
||||
Matmul零DSP是赛题约束。为了统一资源策略,FFT和ML-KEM乘法也映射到LUT和进位链。这增加LUT消耗,但保证全系统DSP使用量为零。
|
||||
Reference in New Issue
Block a user