首页›行业资讯›MyHDL用Python写FPGA,C-HLS优势被质疑
← 返回行业资讯
技术教程

MyHDL用Python写FPGA,C-HLS优势被质疑

2026-11-12
fpga.love
配图

把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验证。这意味着入门门槛在降低,但五秒是工具链演示场景下的说法,真实项目仍取决于设计规模与约束复杂度。

C-HLS与MyHDL的中值滤波对比

Christopher Felton用Vivado HLS的中值滤波示例与MyHDL RTL实现做对比,结论是C-to-gate HLS几乎没有实际收益。他的理由是测试混合了语言范式与抽象层次:Vivado C HLS是命令式、逐步执行的风格,MyHDL提供并发、HDL级描述,同时保留Python可读性和精化特性。他承认只熟悉C语言的人可能觉得C-HLS有帮助,但大规模并行FPGA工作更宜选非C工具。真正的问题在于,HLS不会替代对硬件的理解,选对算法才是难点。

原理配置验证
示意图

GSoC与工具链的现实摩擦

MyHDL作为Google Summer of Code子组织的第一年,Christopher Felton回顾了从选拔两名学生到交付SDRAM和转换工作的过程,提到提案期望、早期补丁的价值以及频繁指导和灵活里程碑的必要性。Sriyash Caculo在GSoC中实现MyHDL数字滤波器模块并与pyFDA集成,目标是把pyFDA的浮点设计转成定点MyHDL模块,自动生成VHDL或Verilog并附带测试与教程。这些工作的价值不在宣传口径,而在于把滤波器设计到硬件的转换环节做成可复用流程。

三条要点
  • yosys Python API可跳过HDL转换链直接出综合结果
  • Felton称C-HLS在中值滤波对比中相对MyHDL无明显收益
  • MyHDL已上EDAPlayground,浏览器内可跑Python HDL验证

对我们的影响

对国内做高速接口和板卡设计的工程师,这套流程短期不会替代厂商工具链:综合、时序收敛和比特流仍要落到Vivado或Quartus,MyHDL生成的是Verilog/VHDL再进厂商流程。可关注的是验证环节,EDAPlayground上的Python HDL仿真适合快速验证算法思路,pyFDA到MyHDL的定点转换路径对滤波器IP前期探索有参考价值。若团队已有C-HLS流程,Felton的对比说明它不必然带来面积或周期优势,选型时仍应以微架构控制力为准。

MyHDLHLS开源工具链FPGA
fpga.love