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
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630164
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114123
  • vhdl
    +关注

    关注

    30

    文章

    820

    浏览量

    131325
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89565

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    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 386次阅读
    <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 7707次阅读
    <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 530次阅读
    自签名证书<b class='flag-5'>工具</b>cfssl详解

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

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

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

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

    tscircuit - 电路开发的 React 范式​ TypeScript、React和 AI工具构建电子产品

    TypeScript、React 和 AI 工具构建电子产品。
    的头像 发表于 04-30 18:18 1201次阅读
    tscircuit - <b class='flag-5'>电路</b>开发的 React 范式​   <b class='flag-5'>用</b>TypeScript、React和 AI<b class='flag-5'>工具</b>构建电子产品

    普华基础软件开源操作系统迎来全新版本

    近日,普华基础软件开源操作系统媒体发布会在上海中国汽车会客厅召开——全球首个开源智能驾驶操作系统微内核龘EasyAda、开源安全车控操作系统小满EasyXMen全新版本正式发布。现
    的头像 发表于 04-25 16:18 796次阅读

    python入门圣经-高清电子书(建议下载)

    此资料内容是一本针对所有层次的Python 读者而作的Python 入门电子书。 全书分两部分:第一部分介绍Python 编程所必须了解的基本概念,包括matplotlib、NumP
    发表于 04-10 16:53

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    。RaspberryPiOS预装了Python3。干扰系统Python的安装可能会给你的操作系统带来问题。安装第三方Python库时,请务必使用正确的包管理工具。在Lin
    的头像 发表于 03-25 09:34 628次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    构建开源OpenVINO™工具套件后,模型优化器位于何处呢?

    构建开源OpenVINO™工具套件后,模型优化器位于何处?
    发表于 03-06 08:18

    构建开源OpenVINO™工具包后,使用MYRIAD插件成功运行演示时报错怎么解决?

    构建开源OpenVINO™工具包后,使用 MYRIAD 插件成功运行演示。 使用 CPU 插件运行演示时遇到错误: Cannot load library \'libarmPlugin.so
    发表于 03-05 09:57

    AI开源模型库有什么

    AI开源模型库作为推动AI技术发展的重要力量,正深刻改变着我们的生产生活方式。接下来,AI部落小编带您了解AI开源模型库有什么
    的头像 发表于 02-24 11:50 883次阅读

    OSS Nokalva:适用于Python的OSS NAS工具

    执行以下任务:编写软件创建、处理、调试和测试 NAS 消息。在处理 3GPP 版本中的更改时,此任务特别耗时且容易出错。现在客户可以专注于他们的核心业务。 用于 Python 的 OSS NAS 工具
    的头像 发表于 02-09 09:16 777次阅读
    OSS Nokalva:适用于<b class='flag-5'>Python</b>的OSS NAS<b class='flag-5'>工具</b>