FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
登录
首页-所有问题-其他-正文

想用FPGA和RISC-V核做一个‘物联网终端安全协处理器’的毕设,实现轻量级加密算法和物理不可克隆功能(PUF),有哪些开源生态和关键模块可以借鉴?

数字系统初学者数字系统初学者
其他
6小时前
0
0
2
毕设选题想结合IoT和安全热点。计划在FPGA上用软核(如VexRiscv)或硬核(EOS S3)搭建系统,实现AES/ECC等算法加速,并探索基于SRAM或RO的PUF生成密钥。难点在于:1. 如何选择适合IoT场景的轻量级开源RISC-V SoC平台?2. PUF模块的稳定性和后处理(如模糊提取)在FPGA上如何实现?3. 整个系统如何与主MCU(如STM32)通过SPI等接口安全交互?求有经验的大神指点方向或开源参考。
数字系统初学者

数字系统初学者

这家伙真懒,几个字都不愿写!
5541K
分享:
2026年,想转行做‘芯片测试工程师’,需要重点学习哪些测试理论、仪器操作和自动化脚本技能?没有相关项目经验该如何弥补?上一篇
2026年,同时拿到‘华为海思’和一家‘AI芯片独角兽’的数字IC设计Offer,作为应届生,从技术成长、工作强度和长期发展看,该如何选择?下一篇
回答列表总数:4
  • 数字电路入门生

    数字电路入门生

    你这个毕设选题挺有意思的,IoT安全现在确实是热点。结合我的经验,给你捋一下思路。

    首先,平台选择上,我强烈建议你用VexRiscv软核。它非常轻量,文档和社区支持都不错,而且有完整的SoC例子(比如用SpinalHDL写的)。EOS S3这类硬核虽然性能好,但可能不够灵活,而且生态相对封闭,对于毕设来说调试起来更麻烦。你可以在GitHub上搜“VexRiscv”或“Litex”,后者是一个用Python生成SoC的框架,里面集成了VexRiscv,能快速搭建带外设(比如SPI、UART)的系统,特别适合你这种需要和外部MCU通信的场景。

    PUF这块是难点。SRAM PUF实现起来相对简单,就是利用FPGA上电时SRAM单元的随机初始值。但关键在后处理——模糊提取。这个在FPGA上实现需要一些数字电路设计。你可以找开源的“Fuzzy Extractor”或“Helper Data Algorithm”的Verilog/VHDL代码,GitHub上有一些学术项目开源了。核心是纠错编码(比如BCH码或重复码)。注意,PUF的稳定性需要大量测试,你要在代码里加入校准逻辑,可能还需要在软核里跑一些辅助算法来处理原始响应。

    关于和主MCU的安全交互,思路要清晰。你的FPGA协处理器应该作为一个“黑盒”存在。通过SPI接口,主MCU发送命令(比如“加密此数据”)和接收结果。关键是要在协议层面设计好:1. 身份认证(可以用PUF生成的密钥来做双向认证);2. 防止重放攻击(加入随机数或序列号)。你可以在RISC-V软核里跑一个简单的固件,来解析SPI命令、调用AES/ECC硬件加速模块、并管理PUF。

    开源模块推荐:
    1. Crypto加速器:搜“riscv-crypto”或“AES32”(RISC-V指令集扩展),也有独立的AES/ECC Verilog内核。
    2. PUF:搜“FPGA PUF SRAM”或“RO PUF”,注意看有没有包含后处理。
    3. 整个SoC参考:Litex项目里有一个“vexriscv_secure”的例子,可能直接相关。

    最后提醒,毕设时间有限,别贪多。先把VexRiscv+SPI在FPGA上跑通,再逐步集成PUF和加密模块。稳定性测试要早点开始。祝你顺利!

    3小时前
  • 芯片设计新人

    芯片设计新人

    从实现角度给点具体步骤吧。1. 选平台:先用仿真试试。在GitHub搜“VexRiscv”或“Ibex”,找到带SoC框架的(比如用LiteX构建的)。LiteX框架能快速集成CPU、内存、外设,你的PUF和加密模块可以当成自定义外设挂上去。2. PUF实现:找论文《SRAM PUF on FPGAs》里的方法,写个模块读取FPGA上电后的BRAM值作为指纹。后处理用BCH纠错码或重复码,这部分算法可以用C在RISC-V上跑,或者用硬件实现加速。3. 安全交互:SPI接口加一个AES-GCM的加解密层,由FPGA内的硬件AES模块实时处理。这样主MCU和FPGA之间的数据都是加密的。整个项目的难点是模块集成和调试,建议分阶段:先让SoC在FPGA上运行裸机程序,再添加PUF外设,最后做通信测试。注意,PUF的响应需要多次上电测试其稳定性,留出足够时间。

    3小时前
  • 数字IC萌新

    数字IC萌新

    同学你好,我也做过类似的课题,分享点经验。平台选择上,如果FPGA有硬核(比如EOS S3里的Cortex-M),开发会简单些,但RISC-V软核更灵活。我推荐用Ibex核,它来自OpenTitan项目,天生为安全设计,有文档和参考SoC。PUF这块是难点,稳定性需要大量测试和后期处理。你可以用Xilinx FPGA的BRAM初始值做SRAM PUF,但不同温度电压下会漂移,所以必须配合模糊提取器。网上有开源的Helper Data算法模块可以找找。整个系统,建议你把FPGA作为从设备,主MCU通过SPI发命令过来,FPGA里的RISC-V核负责执行加密或PUF响应,返回结果。关键是要设计好通信协议,比如每个命令带MAC校验。开源参考可以看OpenTitan的硬件设计,还有谷歌的OpenSK项目,虽然它是用于安全密钥的,但架构有借鉴意义。

    3小时前
  • FPGA学号2

    FPGA学号2

    毕设做这个方向挺有意思的,结合了IoT和安全。开源生态的话,你可以重点关注几个项目。首先,RISC-V软核,VexRiscv确实是个好选择,它轻量、可配置,在SpinalHDL里用着方便。如果想更完整点,可以看看PicoRV32或者Ibex,后者是lowRISC维护的,对安全特性支持可能更好。PUF模块,开源的实现不多,但学术论文里有很多参考。你可以搜一下基于SRAM的PUF,FPGA上电时SRAM的初始值是随机的,这个特性就能用。关键是后处理,比如用纠错码做模糊提取,这个算法你得自己实现或者找Verilog/VHDL的代码。系统交互,用SPI没问题,但要在FPGA里设计一个安全的协议,比如加上认证和防重放。建议你先搭一个最小SoC,把RISC-V跑起来,再慢慢加模块。

    3小时前
我要回答answer.notCanPublish
回答被采纳奖励100个积分
FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
请先登录