我们用Verilog、VHDL这种硬件描述语言来设计FPGA,是否有一种方式来描述电路?如果采用了这种方式,也会像HDL在FPGA、ASIC领域一样成为一种主流的趋势么?我们来看看SkiDL的尝试。
SKiDL 是一个模块,允许您使用 Python 紧凑地描述电子电路和组件的互连。 生成的 Python 程序执行电气规则检查以查找常见错误并输出用作 PCB 布局工具输入的网表。
首先,让我们看看 KiCad 中的“正常”设计流程:

在这里,您在原理图编辑器(对于 KiCad,即 EESCHEMA)中开始并绘制原理图。由此,EESCHEMA 生成一个网表文件,其中列出了使用的组件以及它们的引脚如何互连。然后,您将使用 PCB 布局工具(如 KiCad 的 PCBNEW)来排列零件封装并绘制连接网表中指定的引脚的线迹。
完成后,PCBNEW 会输出一组 Gerber 文件,这些文件将发送给 PCB 制造商,该制造商将创建物理 PCB 并将其运送给您。然后你会在 Twitter 上张贴他们的照片,然后因为你对这个项目感到厌烦而立即把它们扔进抽屉里几年。
在基于 SKiDL 的设计流程中,您使用文本编辑器创建 Python 代码文件,该文件使用 SKiDL 库来描述组件的互连。该代码文件由 Python 解释器执行,并输出一个网表文件。从那里开始,设计流程与基于原理图的流程相同(包括将 PCB 倾倒在抽屉中)。
那么,您为什么要使用 SKiDL?以下是 SKiDL 为电子设计带来的一些功能:
只需要一个文本编辑器和 Python。
具有强大、灵活的语法(因为它是 Python)。
允许对电子电路进行简洁的描述(考虑不要通过多页原理图跟踪信号)。
允许电子电路的文本描述(考虑对电路使用 diff 和 git)。
对常见错误(例如,未连接的设备 I/O 引脚)执行电气规则检查 (ERC)。
支持电子设计的线性/分层/混合描述。
促进设计重用(考虑使用 PyPi 和 Github 分发电子设计)。
可以创建其行为/结构以参数方式改变的智能电路模块(考虑根据您所需的截止频率自动调整组件值的滤波器)。
可以使用任何 ECAD 工具(只需要两种方法:一种用于读取零件库,另一种用于输出正确的网表格式)。
利用 Python 生态系统的所有优势(因为它是 Python)。
免费软件:MIT 许可证。
开源:https://github.com/devbisme/skidl
生成原理图:
尽管 SKiDL 可以让您避免繁琐的原理图绘制,但有些人仍然希望看到他们电路的图形描述。为此,SKiDL 可以使用 1) graphviz DOT 语言或 2) 作为使用 SVG 的更传统的示意图将部件的互连显示为有向图。
以下电路将用于说明这两种方法:

The SKiDL script for this circuit is:
from skidl import *
# Create part templates.
q = Part(lib="Device.lib", name="Q_PNP_CBE", dest=TEMPLATE, symtx="V")
r = Part("Device", "R", dest=TEMPLATE)
# Create nets.
gnd, vcc = Net("GND"), Net("VCC")
a, b, a_and_b = Net("A"), Net("B"), Net("A_AND_B")
# Instantiate parts.
gndt = Part("power", "GND") # Ground terminal.
vcct = Part("power", "VCC") # Power terminal.
q1, q2 = q(2)
r1, r2, r3, r4, r5 = r(5, value="10K")
# Make connections between parts.
a & r1 & q1["B", "C"] & r4 & q2["B", "C"] & a_and_b & r5 & gnd
b & r2 & q1["B"]
q1["C"] & r3 & gnd
vcc += q1["E"], q2["E"], vcct
gnd += gndt
点图
注意:查看 DOT 文件需要您在系统上安装 graphviz。
要为电路生成 DOT 文件,只需将以下内容附加到脚本末尾:
generate_dot(file_='and_gate.dot')
运行脚本生成and_gate.dot文件后,您可以使用以下命令将其转换为位图文件:
dot -Tpng -Kneato -O and_gate.dot
生成的 and_gate.dot.png 文件如下所示:


-
FPGA
+关注
关注
1655文章
22283浏览量
630164 -
Verilog
+关注
关注
30文章
1370浏览量
114123 -
vhdl
+关注
关注
30文章
820浏览量
131325 -
python
+关注
关注
57文章
4857浏览量
89565
原文标题:开源工具SkiDL - 用Python来描述电路
文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
openDACS 2025 开源EDA与芯片赛项 赛题七:基于大模型的生成式原理图设计
用 Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战
termux如何搭建python游戏
开源工具 Made with KiCad(131):BomberCat 安全测试工具
拥抱开源!一起来做FPGA开发板啦!
开源鸿蒙工程工具分论坛圆满举办
普华基础软件开源车用操作系统迎来全新版本
python入门圣经-高清电子书(建议下载)
如何在虚拟环境中使用 Python,提升你的开发体验~
构建开源OpenVINO™工具包后,使用MYRIAD插件成功运行演示时报错怎么解决?
AI开源模型库有什么用
OSS Nokalva:适用于Python的OSS NAS工具

开源工具SkiDL - 用Python来描述电路
评论