把Python直接变成可综合的FPGA固件,这条路已经有人在浏览器里跑通了。Christopher Felton用MyHDL做中值滤波对比后认为,Vivado C HLS相对HDL级描述几乎没有收益,难点始终在算法选择而非语言。
Martin Strubel介绍了用yosys及其Python API直接构建可综合原语、查看原理图并生成综合后Verilog或固件的做法,跳过了MyHDL或nMigen到Verilog/VHDL的长转换链,官方说法是从浏览器到FPGA约五秒。MyHDL也已上线EDAPlayground,双面板编辑器左侧放测试平台、右侧放被测HDL,可直接运行Python HDL验证。这意味着入门门槛在降低,但五秒是工具链演示场景下的说法,真实项目仍取决于设计规模与约束复杂度。
Christopher Felton用Vivado HLS的中值滤波示例与MyHDL RTL实现做对比,结论是C-to-gate HLS几乎没有实际收益。他的理由是测试混合了语言范式与抽象层次:Vivado C HLS是命令式、逐步执行的风格,MyHDL提供并发、HDL级描述,同时保留Python可读性和精化特性。他承认只熟悉C语言的人可能觉得C-HLS有帮助,但大规模并行FPGA工作更宜选非C工具。真正的问题在于,HLS不会替代对硬件的理解,选对算法才是难点。
MyHDL作为Google Summer of Code子组织的第一年,Christopher Felton回顾了从选拔两名学生到交付SDRAM和转换工作的过程,提到提案期望、早期补丁的价值以及频繁指导和灵活里程碑的必要性。Sriyash Caculo在GSoC中实现MyHDL数字滤波器模块并与pyFDA集成,目标是把pyFDA的浮点设计转成定点MyHDL模块,自动生成VHDL或Verilog并附带测试与教程。这些工作的价值不在宣传口径,而在于把滤波器设计到硬件的转换环节做成可复用流程。
对国内做高速接口和板卡设计的工程师,这套流程短期不会替代厂商工具链:综合、时序收敛和比特流仍要落到Vivado或Quartus,MyHDL生成的是Verilog/VHDL再进厂商流程。可关注的是验证环节,EDAPlayground上的Python HDL仿真适合快速验证算法思路,pyFDA到MyHDL的定点转换路径对滤波器IP前期探索有参考价值。若团队已有C-HLS流程,Felton的对比说明它不必然带来面积或周期优势,选型时仍应以微架构控制力为准。