在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    瀏覽量

    38333
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84682
  • KiCAD
    +關注

    關注

    4

    文章

    160

    瀏覽量

    8760
收藏 人收藏

    評論

    相關推薦

    電路原理圖的看法

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

    水表原理圖,水表電路圖

    水表原理圖,水表電路圖
    發表于 12-28 10:18 ?232次下載
    水表<b class='flag-5'>原理圖</b>,水表<b class='flag-5'>電路圖</b>

    PDA電路原理圖

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

    modem電路原理圖

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

    電源電原理圖電路圖

    電源電原理圖電路圖
    發表于 06-12 09:01 ?1430次閱讀
    電源電<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>

    DC/DC主電路原理圖

    DC/DC主電路原理圖 DC/DC主電路原理圖
    發表于 07-17 10:39 ?4888次閱讀
    DC/DC主<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電路原理圖

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

    如何快速的讀懂電路原理圖?

    如何快速的讀懂電路原理圖? 如何快速的讀懂電路原理圖,關鍵是要掌握其要點, 要分析電路圖的原理,   初學人員要分析電子
    發表于 12-01 10:51 ?3347次閱讀

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

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

    電平轉換電路原理圖

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

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

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

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

    SKiDL 是一個模塊,允許您使用 Python 緊湊地描述電子電路和組件的互連。 生成的 Python 程序執行電氣規則檢查以查找常見錯誤并輸出用作 PCB 布局工具輸入的網表。
    的頭像 發表于 10-30 10:07 ?2804次閱讀
    開源工具<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 ?3963次閱讀
    動態<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>分享
    主站蜘蛛池模板: ggg成人| 高清不卡一区| 五月天丁香婷| 久久久久久久国产精品电影| 午夜免费在线观看| tube69xxxxhd日本| 三级理论在线观看| 永久免费在线播放| 黄色大片视频在线观看| 色亚洲色图| 一级片在线免费观看| 欧美xxxx性疯狂bbbb| 四虎www成人影院观看| 18女人毛片水真多免费| 欧美人与zoxxxx视频| 神马电影天堂网| 777777777妇女亚洲| 91大神在线精品网址| 日韩 三级| 天天爱综合| 国产精品免费久久久免费| 久久国产高清视频| 国产真实乱在线更新| 亚洲国产精品婷婷久久久久| 国产精品 视频一区 二区三区| 亚洲 另类色区 欧美日韩| 四虎伊人| 天天在线影院| 中文字幕第五页| 国产成人精品1024在线| 欧美xx网站| 你懂在线| 国产69精品久久久久9牛牛| 网站在线你懂的| 窝窝午夜看片免费视频| 狠狠色狠狠干| 国产精品国产主播在线观看| 国产精品区在线12p| 嫩草黄色影院| 国产免费午夜高清| 日本最好的免费影院|