FPGA萌新上路
我推荐直接Verilog。你的目标是理解底层原理,为后续深入学习打基础,那绕开底层细节的HLS可能反而会让你后续更吃力。HLS像开自动挡,能跑但不明白引擎怎么工作;而手写Verilog卷积层虽然慢,但你能彻底弄明白数据路径、控制逻辑、时序和资源消耗,这才是扎实的硬件设计基础。
具体步骤:先别急着写整个CNN,从最基础的模块开始。比如先写一个单通道的3x3卷积计算单元,包括线缓冲(line buffer)、乘加树、激活函数。用Verilog实现它,写testbench验证功能,然后上板验证。这个过程你会遇到很多实际问题,比如如何处理数据依赖、如何平衡速度和面积,这些经验是HLS抽象掉但极其重要的。做完这个核心模块,你再把它组装成完整的层,最后集成到简单网络上。
这路径耗时更长,但你会对硬件加速的本质有深刻理解。Verilog基础一般没关系,正好通过这个项目逼自己练扎实。网上有很多开源的小型Verilog CNN实现,可以参考但一定要自己动手写。
