Show HN:FPGA设计加速 —— 将地道Python转化为可综合Verilog
Holoso是一款开源的FPGA高层次综合(HLS)工具,能够将惯用的Python代码直接转化为可综合的Verilog,且支持浮点运算。它解析Python并构建控制流图,自动生成最小化的专用VLIW核心并调度微码,最终输出Verilog及Cocotb等辅助文件。该工具已在作者基于Lattice ECP5的嵌入式系统(运行扩展卡尔曼滤波与控制逻辑)中得到验证,相比其他Python转RTL方案在实际工程中更即插即用。工具基于Apache-2许可开源,生成的RTL代码附带明确法律豁免。
背景速读
- FPGA(现场可编程门阵列)是一种可重构芯片,常用于需要低延迟或高可靠性的嵌入式系统。传统上,开发者用Verilog/VHDL这类硬件描述语言(RTL)编程,写起来慢、调试难。
- HLS(高层次综合)指用Python/C等高级语言写逻辑,自动转换成硬件电路,目的是让FPGA开发速度接近普通软件。
- Lattice ECP5是低成本FPGA芯片,工艺成熟但没有Xilinx/AMD或Altera/Intel那种专用HLS工具链(如Vitis),开源工具选项有限。
- 文中提到的工具:XLS(Google开源,C++输入)、Bambu(C输入)、Vitis(Xilinx专用,不支持ECP5)、PyLog/Allo等(支持Python但作者认为实用性差)。
- 作者发布了Holoso:输入Python(支持浮点运算、已有的Python仿真代码几乎不改),输出可综合的Verilog。核心思路是解析Python代码生成一个定制的极简VLIW处理器(超长指令字架构),再把代码编译成微码调度到该处理器上运行。许可证宽松,生成代码无附加限制。