电路仿真玩家
同学,我也做过类似毕设,分享点经验。你选的网络不错,但硬件实现的关键是‘拆解’和‘复用’。先把ESPCN或FSRCNN的每层运算拆成基本模块(卷积、激活、PixelShuffle等),然后每个模块单独做定点化。定点位宽选择:权重用8位,激活值可以先用12位(防溢出),再根据仿真结果调整。硬件设计上,别想着全网络并行——资源不够。建议用时间换空间:设计一个共享的卷积计算引擎,分时复用处理不同层,但内部用并行乘法累加(比如一次算4个像素)。流水线优化方面,视频流是天然流水线,可以设计多级流水,每级处理一层网络,同时缓存中间数据到BRAM。注意裁剪网络时,先分析每层的计算量和内存占用,优先砍掉耗资源多的层。开源参考不多,但可以搜“FPGA-based Super-Resolution”,有些论文会提供量化细节。最后,一定早点做板级测试,仿真通过不代表实际能跑30fps。
