PCBFlow 开源项目教程
PCBFlow VHDL to Discrete Logic on PCB Flow 项目地址: https://gitcode.com/gh_mirrors/pcb/PCBFlow
1. 项目介绍
PCBFlow 是一个高度实验性的脚本集合和布局工具,使用 Python 编写,旨在将硬件描述语言(如 VHDL 或 Verilog)描述的数字电路转换为 PCB 上的离散晶体管电路。该项目目前处于概念验证阶段,主要利用以下工具:
- GHDL
- Yosys(带有 GHDL 插件)
- ABC(集成在 Yosys 中)
- GTKView
- NGspice
- Python3(包含 lxml 和 pandas 包)
- PCBPlace - 作者自己编写的 Python 布局工具
- Freerouting(可选)
- Eagle(可选)
- EasyEDA(可选)
PCBFlow 适用于 Linux 环境,作者目前使用 WSL2 进行开发。
2. 项目快速启动
环境准备
-
安装 OSS CAD Suite:PCBFlow 所需的工具可以在 OSS CAD Suite 中找到,包括 Yosys 和 GHDL 插件。你可以从 OSS CAD Suite 官方网站 下载并解压。
-
设置环境变量:
source /path/to/oss-cad-suite/environment
-
安装 Python 包(可选):
pip install lxml pandas
运行示例
-
克隆项目:
git clone https://github.com/cpldcpu/PCBFlow.git cd PCBFlow
-
运行 HDL 分析:
./run_10_HDL_analysis.sh
-
运行综合:
./run_20_Synthesis.sh
-
运行布局:
./run_30_Placement.sh
-
查看结果: 生成的文件可以在
Work
文件夹中找到,包括 Gerber 文件、BOM 和 Pick & Place 文件。
3. 应用案例和最佳实践
基本示例
PCBFlow 提供了一个基本示例,实现了一个全加器和一个 AND 门。从源代码到最终的 3D 渲染 PCB,整个流程展示了如何从 VHDL 代码生成 PCB 布局。
复杂示例
更复杂的示例是 MCPU 的设计,包含 771 个晶体管和两倍数量的电阻。路由使用 Freerouting 完成。当前版本没有优化电源网格或插入去耦电容,这可能会严重限制设计的速度。
最佳实践
- 调整常量:由于 PCBPlace 处于早期实验阶段,代码中的常量可能需要根据输入设计进行调整以获得更好的结果。
- 手动路由:自动生成的 PCB 布局是未路由的,需要手动使用 Freerouting 或其他工具进行路由。
4. 典型生态项目
- GHDL:用于 VHDL 仿真和综合。
- Yosys:开源的硬件综合工具,支持多种硬件描述语言。
- NGspice:开源的电路仿真器,用于模拟电路行为。
- Freerouting:开源的 PCB 自动布线工具。
- Eagle 和 EasyEDA:常用的 PCB 设计工具,支持导入 Gerber 文件进行进一步编辑。
通过这些工具的结合,PCBFlow 提供了一个从硬件描述语言到 PCB 布局的完整解决方案。
PCBFlow VHDL to Discrete Logic on PCB Flow 项目地址: https://gitcode.com/gh_mirrors/pcb/PCBFlow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考