嵌入式爱好者小王
从硬件本质理解的角度,Verilog直接写肯定是更深入的,但如果你是FPGA新手,可能会被复杂的时序和调试困住。我建议分两步走:先用HLS快速搭建一个可工作的原型,比如用C/C++描述神经元行为,重点理解算法流程和资源消耗;然后再用Verilog重写关键模块,比如脉冲事件调度和突触计算单元,对比两者的实现差异。开源模型方面,除了MNIST,还可以看看‘Norse’这个PyTorch库,它支持SNN构建和梯度训练,你可以导出训练好的权重。硬件框架上,可以搜索‘FPGA SNN accelerator’相关的学术代码,很多论文会附赠GitHub链接。资源平衡上,定点化是必须的,但精度不要一味求低,可以先从16位开始,再根据识别率调整。另外,片上内存有限,要精心设计权重和膜电位的存储布局,考虑用BRAM做缓存,外部DRAM放完整参数。一个小技巧:用查找表实现非线性函数(比如膜电位发放阈值比较),可以节省逻辑资源。
