0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子森林 来源:电子森林 作者: 苏老师 2021-10-30 10:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们用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 文件如下所示:

e431cd4e-38e3-11ec-82a8-dac502259ad0.png

这张图可以作为一个小电路的健全性检查,但你可以想象如果它包括具有数百个引脚的微控制器或 FPGA 会是什么样子!

另外你可以生成SVG格式的原理图

e4673f9c-38e3-11ec-82a8-dac502259ad0.png

也可以将现有的KiCad设计转换到SkiDL

也可以使用SkiDL来描述你的电路,并运行SPICE进行仿真

我对这个了解得很少,只是觉得它值得关注,先分享出来,供有兴趣的朋友参考。

编辑:jq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1665

    文章

    22587

    浏览量

    641270
  • Verilog
    +关注

    关注

    31

    文章

    1374

    浏览量

    114882
  • vhdl
    +关注

    关注

    30

    文章

    822

    浏览量

    132008
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90478

原文标题:开源工具SkiDL - 用Python来描述电路

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    摘要 VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个例介绍了一种使用路径变量和Visual Studio代码将Python连接到VirtualLab
    发表于 03-31 09:39

    [VirtualLab] 使用Python进行跨平台参数扫描

    摘要 VirtualLab Fusion允许外部访问其建模技术、求解器和结果。这有助于应用其他数据处理或优化工具进一步研究光学模拟。在本示例中,我们演示如何使用Python脚本运行参数扫描,以及
    发表于 03-31 09:36

    开源项目BomberCat安全测试工具总体介绍

    硬件安全测试缺一款多技术融合的利器吗?今天带来一款开源安全测试工具, 集 NFC 与磁条两大主流卡片技术于一体,专为银行终端、门禁系统等设备的漏洞检测打造,支持卡片读写、模拟、磁条仿冒等核心功能。
    的头像 发表于 02-27 09:19 651次阅读
    <b class='flag-5'>开源</b>项目BomberCat安全测试<b class='flag-5'>工具</b>总体介绍

    AT32开源鸿蒙开发环境搭建

    /bin/python3.8 1 python –version安装 python 包管理工具 sudo apt install python
    发表于 01-16 13:56

    普华基础软件出席开源操作系统人才培养启动仪式

    与产业需求之间存在显著缺口。本次启动的“开源操作系统人才培养”,是普华基础软件开源“星辉计划”五大生态体系中的关键一环,旨在通过“开源共建”模式,系统性破解人才难题,为产业可持续发
    的头像 发表于 12-18 17:11 1488次阅读

    没有专利的opencv-python 版本

    专利风险,仅需避开 opencv-contrib-python 的 nonfree 模块(或直接无头版)。 如果你的场景需要特定功能(如特征提取、目标跟踪),可以告诉我具体需求,我帮你推荐对应的无专利 API 和代码示例~
    发表于 12-13 12:37

    Python中借助NVIDIA CUDA Tile简化GPU编程

    兼容未来的 GPU 架构。借助 NVIDIA cuTile Python,开发者可以直接 Python 编写 tile kernels。
    的头像 发表于 12-13 10:12 1590次阅读
    在<b class='flag-5'>Python</b>中借助NVIDIA CUDA Tile简化GPU编程

    openDACS 2025 开源EDA与芯片赛项 赛题七:基于大模型的生成式原理图设计

    ,形成了一批具有应用价值的技术成果。本届大赛预计发布50个赛项,持续规划1500万元总奖金。 openDACS2025开源EDA与芯片赛项,聚焦集成电路产业的数字设计、处理器设计自动化、生成式芯片设计等
    发表于 11-13 11:49

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、开发前准备(5
    的头像 发表于 10-21 16:59 684次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    termux如何搭建python游戏

    安装Python及包管理工具 ```bash apt install -y python python-pip# 自动安装Python3
    发表于 08-29 07:06

    开源工具 Made with KiCad(131):BomberCat 安全测试工具

    “  BomberCat 是一个结合硬件开发与安全测试的开源工具,主要面向电子工程和网络安全领域。用于检测银行终端、门禁系统等设备的漏洞。 ” Made with KiCad 系列将支持新的展示方式
    的头像 发表于 06-19 11:18 8361次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>工具</b> Made with KiCad(131):BomberCat 安全测试<b class='flag-5'>工具</b>

    自签名证书工具cfssl详解

    CFSSL(CloudFlare's PKI and TLS toolkit)由 CloudFlare go语言开发的一个开源工具,用于证书签名、验证和管理。
    的头像 发表于 06-11 16:30 940次阅读
    自签名证书<b class='flag-5'>工具</b>cfssl详解

    拥抱开源!一起做FPGA开发板啦!

    我们,一起为国产FPGA开发注入开源的活力,代码和电路点亮创新的火花,共同打造一款属于开发者们的、独一无二的FPGA开发板!期待你的加入,让我们携手开启这场充满挑战与惊喜的开源之旅!
    发表于 06-06 14:05

    开源鸿蒙工程工具分论坛圆满举办

    近日,开源鸿蒙开发者大会2025(OHDC.2025)工程工具分论坛在深圳圆满举办。本次分论坛由开源鸿蒙IDE SIG组长、华为终端BG工程工具技术专家唐春担任出品人,主题为“
    的头像 发表于 06-05 15:35 1265次阅读