色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SkiDL:使用 Python 設計電路原理圖

KiCad ? 來源:KiCad ? 作者:KiCad ? 2024-12-09 11:21 ? 次閱讀

持續更新 8 年,Github 超過 1k star 的項目。一種使用文本替代原理圖的語言。

追蹤 skidl 項目很久了,之所以之前沒有分享是因為老版本只能支持 KiCad 5.0 符號庫的解析,而且生成的網表也僅能支持 KiCad 6,所以用起來比較麻煩。最近作者又更新了一個大版本,全面支持 KiCad 7 和 KiCad 8,雖然仍有一些問題,但跑起來比之前方便了很多。AI 時代的到來,讓自動化設計又多了一個研究的方向。由于 skidl 的設計初衷就是用文本描述原理圖,這對于機器學習來說無疑是非常合適的!感興趣的小伙伴趕緊學習起來吧,有興趣進一步討論的也可以私信我或留言。

SKiDL 簡介

通過 SKiDL Python 軟件包,您可以用文本描述電子元件之間的連接。生成的 Python 程序可對常見錯誤進行電氣規則檢查,并輸出網表,作為 PCB Layout 工具的輸入。
  • 項目主頁:https://github.com/devbisme/skidl

  • License MIT

  • 文檔:http://devbisme.github.io/skidl

  • 用戶論壇https://github.com/devbisme/skidl/discussions

skidl 希望做到的,提供一個選項,既可以通過傳統方式設計原理圖(下圖一),也可以用代碼的方式實現(下圖二):

wKgZomcy1nyARFGbAAFoqISuyAM789.png

wKgZomcy1nyAYZHsAAFIdOWwVv0704.png

功能
  • 語法強大、靈活(因為它是 Python)。

  • 允許對電子電路進行簡潔描述(想象一下不需要在多頁原理圖中追蹤信號)。

  • 允許對電子電路進行文本描述(想想在電路中使用 diff和 git)。

  • 針對常見錯誤(如未連接器件的 I/O 引腳)執行電氣規則檢查 (ERC)。

  • 支持電子設計的平鋪/分層/混合描述。

  • 支持設計復用(想象一下使用 PyPi 和 Github 發布電子設計)。

  • 可創建智能電路模塊,這些模塊的行為/結構可通過參數改變(想想濾波器,其元件值可根據你所需的截止頻率自動調整)。

  • 可與任何 ECAD 工具配合使用(只需兩種方法:一種用于讀取元件庫,另一種用于輸出正確的網表格式)。

  • 可執行 SPICE 仿真(僅限 Python 3)。

  • 充分利用 Python 生態系統的所有優勢(因為它是 Python)。

舉例

下面的 SKiDL 程序描述了一個由分立晶體管構建的雙輸入 AND 門,作為一個非常簡單的例子:

wKgZomcy1nyAMyLcAAAuU2yLA6k566.png

from skidl import *
# Create part templates.q = Part("Device", "Q_PNP_CBE", dest=TEMPLATE)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)                           # Two transistors.r1, r2, r3, r4, r5 = r(5, value="10K")  # Five 10K resistors.
# Make connections between parts.a & r1 & q1["B C"] & r4 & q2["B C"] & a_and_b & r5 & gndb & r2 & q1["B"]q1["C"] & r3 & gndvcc += q1["E"], q2["E"], vcctgnd += gndt
generate_netlist(tool=KICAD8) # Create KICAD version 8 netlist.
以下是輸出的網表,可以直接在 KiCad 中導入:
(export (version D)  (design    (source "/home/devb/projects/KiCad/tools/skidl/tests/examples/svg/simple_and_gate.py")    (date "07/19/2024 05:54 AM")    (tool "SKiDL (1.2.2)"))  (components    (comp (ref #PWR1)      (value GND)      (footprint )      (fields        (field (name F0) #PWR)        (field (name F1) GND))      (libsource (lib power) (part GND))      (sheetpath (names /top/18388231966295430075) (tstamps /top/18388231966295430075)))    (comp (ref #PWR2)      (value VCC)      (footprint )      (fields        (field (name F0) #PWR)        (field (name F1) VCC))      (libsource (lib power) (part VCC))      (sheetpath (names /top/12673122245445984714) (tstamps /top/12673122245445984714)))    (comp (ref Q1)      (value Q_PNP_CBE)      (footprint )      (fields        (field (name F0) Q)        (field (name F1) Q_PNP_CBE))      (libsource (lib Device) (part Q_PNP_CBE))      (sheetpath (names /top/5884947020177711792) (tstamps /top/5884947020177711792)))    (comp (ref Q2)      (value Q_PNP_CBE)      (footprint )      (fields        (field (name F0) Q)        (field (name F1) Q_PNP_CBE))      (libsource (lib Device) (part Q_PNP_CBE))      (sheetpath (names /top/12871193304116279102) (tstamps /top/12871193304116279102)))    (comp (ref R1)      (value 10K)      (footprint )      (fields        (field (name F0) R)        (field (name F1) R))      (libsource (lib Device) (part R))      (sheetpath (names /top/17200003438453088695) (tstamps /top/17200003438453088695)))    (comp (ref R2)      (value 10K)      (footprint )      (fields        (field (name F0) R)        (field (name F1) R))      (libsource (lib Device) (part R))      (sheetpath (names /top/12314015795656540138) (tstamps /top/12314015795656540138)))    (comp (ref R3)      (value 10K)      (footprint )      (fields        (field (name F0) R)        (field (name F1) R))      (libsource (lib Device) (part R))      (sheetpath (names /top/11448722674936198910) (tstamps /top/11448722674936198910)))    (comp (ref R4)      (value 10K)      (footprint )      (fields        (field (name F0) R)        (field (name F1) R))      (libsource (lib Device) (part R))      (sheetpath (names /top/2224275500810828611) (tstamps /top/2224275500810828611)))    (comp (ref R5)      (value 10K)      (footprint )      (fields        (field (name F0) R)        (field (name F1) R))      (libsource (lib Device) (part R))      (sheetpath (names /top/3631169005149914336) (tstamps /top/3631169005149914336))))  (nets    (net (code 1) (name A)      (node (ref R1) (pin 1)))    (net (code 2) (name A_AND_B)      (node (ref Q2) (pin 1))      (node (ref R5) (pin 1)))    (net (code 3) (name B)      (node (ref R2) (pin 1)))    (net (code 4) (name GND)      (node (ref #PWR1) (pin 1))      (node (ref R3) (pin 2))      (node (ref R5) (pin 2)))    (net (code 5) (name N$1)      (node (ref Q1) (pin 2))      (node (ref R1) (pin 2))      (node (ref R2) (pin 2)))    (net (code 6) (name N$2)      (node (ref Q1) (pin 1))      (node (ref R3) (pin 1))      (node (ref R4) (pin 1)))    (net (code 7) (name N$3)      (node (ref Q2) (pin 2))      (node (ref R4) (pin 2)))    (net (code 8) (name VCC)      (node (ref #PWR2) (pin 1))      (node (ref Q1) (pin 3))      (node (ref Q2) (pin 3)))))

注意事項

skidl 在 Windows 上運行的時候經常會碰到問題。最常見的問題是沒有正確設置符號庫的環境變量,導致無法找到符號庫,解析錯誤。這個錯誤可以在代碼中加入以下語句解決:

os.environ["KICAD8_SYMBOL_DIR"] = "C:\symbols"
“=” 號后面的路徑為實際的符號路徑。 如果您使用的不是 KiCad 8,而是其他版本的 KiCad,那么最好設置一下默認工具:
set_default_tool(KICAD8)
同樣的,輸出網表的時候也要指定網表的版本(K8/K7/K6 網表格式有變動):
generate_netlist(tool=KICAD8)
此外, 目前版本的 skidl 還可以直接生成原理圖和 PCB,但功能尚不完備,環境配置比較復雜,建議編程基礎較好的小伙伴嘗試。

結束語

skidl 的具體使用方式,這里就不再贅述了,有興趣的小伙伴可以自行閱讀 skidl 的文檔,遇到問題也可以搜索倉庫中的 issue 和 forum,作者 Dave 也非常樂意與大家互動,解答大家的問題。 最后總結一下 skidl 做了什么:用 python 代碼實現圖形界面的原理圖設計。具體的實現方式為:
  1. 通過環境變量找到需要使用的原理圖符號,parse出符號的引腳編號(名稱)
  2. 在文本編輯器(或IDE)中使用編程語言連接這些管腳
  3. 生成 KiCad 格式的網表

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電路原理圖
    +關注

    關注

    40

    文章

    347

    瀏覽量

    38411
  • python
    +關注

    關注

    56

    文章

    4805

    瀏覽量

    84928
  • KiCAD
    +關注

    關注

    5

    文章

    170

    瀏覽量

    8834
收藏 人收藏

    評論

    相關推薦

    電路原理圖的看法

    電路原理圖的看法   電器修理、電路設計都是要通過分析電路原理圖,了解電器的功能和工作原理,才能得心應手開展工作的。作
    發表于 12-03 13:49 ?2698次閱讀

    PDA電路原理圖

    PDA電路原理圖 MC68VZ328方案開發板原理圖
    發表于 09-24 16:02 ?168次下載

    modem電路原理圖

    modem電路原理圖
    發表于 01-14 21:57 ?3714次閱讀
    modem<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    網卡電路圖,網卡原理圖

    網卡電路圖,網卡原理圖
    發表于 05-18 21:57 ?6038次閱讀
    網卡<b class='flag-5'>電路圖</b>,網卡<b class='flag-5'>原理圖</b>

    電源電原理圖電路圖

    電源電原理圖電路圖
    發表于 06-12 09:01 ?1466次閱讀
    電源電<b class='flag-5'>原理圖</b><b class='flag-5'>電路圖</b>

    PFC主電路原理圖

    PFC主電路原理圖 PFC主電路原理圖 如圖所
    發表于 07-17 10:36 ?2w次閱讀
    PFC主<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電路原理圖

    電路原理圖 電路原理圖
    發表于 07-21 16:55 ?2395次閱讀

    RCD電路原理圖

    RCD電路原理圖 反激開關過程和RCD電路的影響
    發表于 11-21 11:09 ?9060次閱讀

    電壓頻率計數電路原理圖

    下圖為:電壓頻率計數電路原理圖 電壓頻率計數電路原理圖
    發表于 05-28 09:46 ?3109次閱讀
    電壓頻率計數<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    無線遙控發射和接收電路原理圖

    下圖為無線遙控發射和接收電路原理圖 1 無線遙控發射電路原理圖 2 無線遙控接收
    發表于 05-29 13:01 ?4.8w次閱讀
    無線遙控發射和接收<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電平轉換電路原理圖

    電平轉換電路原理圖如下圖所示: 電平轉換電路原理圖
    發表于 07-11 13:51 ?9893次閱讀
    電平轉換<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    開關電源電路原理圖(PCB+原理圖

    電子發燒友網站提供《開關電源電路原理圖(PCB+原理圖).doc》資料免費下載
    發表于 12-18 11:50 ?580次下載

    開源工具SkiDL - 用Python來描述電路

    SKiDL 是一個模塊,允許您使用 Python 緊湊地描述電子電路和組件的互連。 生成的 Python 程序執行電氣規則檢查以查找常見錯誤并輸出用作 PCB 布局工具輸入的網表。
    的頭像 發表于 10-30 10:07 ?2859次閱讀
    開源工具<b class='flag-5'>SkiDL</b> - 用<b class='flag-5'>Python</b>來描述<b class='flag-5'>電路</b>

    外圍電路原理圖

    附錄:外圍電路原理圖免費下載。
    發表于 06-08 14:41 ?12次下載
    外圍<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    動態電路原理圖分享

    動態電路原理圖分享
    的頭像 發表于 01-30 17:55 ?4036次閱讀
    動態<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>分享
    主站蜘蛛池模板: 亚洲精品久久久久久久蜜臀老牛 | 色欲AV人妻精品麻豆AV| 在线日本v二区不卡| 欧美GV肉片视频免费观看| 欧美末成年videos在线| 最近中文字幕高清中文| 啦啦啦 中国 日本 高清 在线| 日本漫画大全无翼乌| 99久久综合| 韩国甜性涩爱| 亚洲AV无码乱码国产麻豆穿越| 国产精品一区二区20P| 无限资源在线观看完整版免费下载| 国产高清亚洲| 欧美激情一区二区三区AA片| 99久久国产综合精品成人影院| 免费亚洲视频在线观看| 亚洲视频在线免费看| 久久国产免费观看精品1| 无人影院在线播放视频| 国产自产第一区c国产| 一个人免费观看完整视频日本| 国产精华av午夜在线观看| 香蕉eeww99国产精品| Zoofilivideo人馿交| 快播电影官方网站| 99久久免热在线观看| 日本xxxxxxx| 97亚洲狠狠色综合久久位| 欧美一级情欲片在线| 最新色导航| 秋霞午夜一级理论片久久| 国产成人精品电影在线观看| 青柠高清在线观看完整版| 东京热影院| 欧美性受xxxx狂喷水| 国产成人免费不卡在线观看| 亚洲成在人线视频| 末成年美女黄网站色大片连接| 国产99视频精品一区| 一区二区三区内射美女毛片|