从Verilog生成Quartus bdf文件

Lichium 于 2026-11-12 发布

没有创造性的工作应该用工具简化

数电实验课非常繁琐,除了用74HC系列芯片在面包板徒手搭电路,还有使用超古早Quartus II 9.1sp2 Web Edition连电线编程FPGA。评价是“非常的落后动力”[开往西直门的DKZ5]。

lz由于被拉电线占用大量时间且难以AI帮助,尝试用文本编辑器打开.bdf一探究竟。这个格式以文本存储,存储了原理图中所有模块的坐标、连线,即完成布局布线的门级网表(名词可能有误

lz尝试让AI直接生成这个格式的文件,效果不佳,导线有短路情况且难以调试,AI理解它的能力有限。于是lz考虑做一个简单的转译脚本,用简化的verilog转译为.bdf。理论基础是:

于是简化版verilog只需声明输入输出信号,然后不断使用实例化语句实例化and2、or2、dff,最后连线即可。转移脚本会非常轻松的把它转换为.bdf,为了简化布线,我们没有任何布线,全是网络标签。 由于非常简陋,所以甚至不支持多位宽写法。不过到这一步已经可以让AI代劳了。

于是我干嘛了无需多言。

之后我觉得简化版的.v还是不对味,为什么不来正经verilog,支持基础语法即可。加入一些简单的AST解析之后,成功支持了正经Verilog,而且可使用更多类型的门电路以简化原理图。同样网络标签。

转译出的.bdf完全不像人画的,原因如下:

想要解决如上问题,我的思路是:

使用开源综合工具,约束其综合时只能使用约定的逻辑门、模块,这可以得到未布局布线的门级网表。然后利用这些Quartus中基础模块的长宽、引脚位置信息,即可进一步布局布线,得到.bdf。

但我可能不会做下去了?毕竟我已经成功解放双手了。而Quartus似乎在较新的版本中删除了拉电线玩法,较新的Vivado的block design已支持大多数情况的布局布线。

很难理解这门实验课全程拉电线的意义,为了理解数字电路理论不如较新的Logisim仿真便利,为了FPGA开发不如广泛使用的verilog有价值。让同学们花时间在拉电线本身,可能是他的目的。

从HDL到网表到布局布线是很有意思的,我可能会在新的基础上再做这件事?(这不是EDA吗)