国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SkiDL:使用 Python 設(shè)計(jì)電路原理圖

KiCad ? 來源:KiCad ? 作者:KiCad ? 2024-12-09 11:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

SKiDL 簡介

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

  • License MIT

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

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

skidl 希望做到的,提供一個(gè)選項(xiàng),既可以通過傳統(tǒng)方式設(shè)計(jì)原理圖(下圖一),也可以用代碼的方式實(shí)現(xiàn)(下圖二):

wKgZomcy1nyARFGbAAFoqISuyAM789.png

wKgZomcy1nyAYZHsAAFIdOWwVv0704.png

功能
  • 語法強(qiáng)大、靈活(因?yàn)樗?Python)。

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

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

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

  • 支持電子設(shè)計(jì)的平鋪/分層/混合描述。

  • 支持設(shè)計(jì)復(fù)用(想象一下使用 PyPi 和 Github 發(fā)布電子設(shè)計(jì))。

  • 可創(chuàng)建智能電路模塊,這些模塊的行為/結(jié)構(gòu)可通過參數(shù)改變(想想濾波器,其元件值可根據(jù)你所需的截止頻率自動(dòng)調(diào)整)。

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

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

  • 充分利用 Python 生態(tài)系統(tǒng)的所有優(yōu)勢(因?yàn)樗?Python)。

舉例

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

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.
以下是輸出的網(wǎng)表,可以直接在 KiCad 中導(dǎo)入:
(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)))))

注意事項(xiàng)

skidl 在 Windows 上運(yùn)行的時(shí)候經(jīng)常會(huì)碰到問題。最常見的問題是沒有正確設(shè)置符號庫的環(huán)境變量,導(dǎo)致無法找到符號庫,解析錯(cuò)誤。這個(gè)錯(cuò)誤可以在代碼中加入以下語句解決:

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

結(jié)束語

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 電路原理圖
    +關(guān)注

    關(guān)注

    40

    文章

    356

    瀏覽量

    39993
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90049
  • KiCAD
    +關(guān)注

    關(guān)注

    5

    文章

    321

    瀏覽量

    10400
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    電路原理圖的看法

    電路原理圖的看法   電器修理、電路設(shè)計(jì)都是要通過分析電路原理圖,了解電器的功能和工作原理,才能得心應(yīng)手開展工作的。作
    發(fā)表于 12-03 13:49 ?2896次閱讀

    膽機(jī)的電源電路和延時(shí)電路原理圖

    膽機(jī)的電源電路和延時(shí)電路原理圖 1為
    發(fā)表于 12-21 19:01 ?2.2w次閱讀
    膽機(jī)的電源<b class='flag-5'>電路</b>和延時(shí)<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    用protel制作電路原理圖設(shè)計(jì)技巧

    電路原理圖設(shè)計(jì)步驟?在進(jìn)行電路原理圖設(shè)計(jì)之前首先應(yīng)創(chuàng)建一個(gè)原理圖文件,然后打開該原理圖文件并按以
    發(fā)表于 09-17 19:15 ?0次下載

    網(wǎng)卡電路原理圖

    網(wǎng)卡電路原理圖RTL8019A9
    發(fā)表于 02-02 22:17 ?6729次閱讀
    網(wǎng)卡<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電視天線的電路原理圖

    電視天線的電路原理圖
    發(fā)表于 02-02 22:29 ?4459次閱讀
    電視天線的<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    PFC主電路原理圖

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

    電路原理圖

    電路原理圖 電路原理圖
    發(fā)表于 07-21 16:55 ?2574次閱讀

    如何讀懂電路原理圖

    如何讀懂電路原理圖 初學(xué)維修的青少年朋友在維修電子產(chǎn)品前,必須首先弄清電原理圖,然后才能順利維修。同時(shí),僅對單元電路的原理和各種元
    發(fā)表于 01-16 10:50 ?5952次閱讀

    SKiiPPACK的單元電路原理圖

    SKiiPPACK的單元電路原理圖
    發(fā)表于 02-17 23:16 ?2394次閱讀
    SKiiPPACK的單元<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    車載功放電源電路原理圖

    下圖為車載功放電源電路原理圖 車載功放電源電路原理圖
    發(fā)表于 05-28 15:54 ?3.2w次閱讀
    車載功放電源<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電平轉(zhuǎn)換電路原理圖

    電平轉(zhuǎn)換電路原理圖如下圖所示: 電平轉(zhuǎn)換電路原理圖
    發(fā)表于 07-11 13:51 ?1w次閱讀
    電平轉(zhuǎn)換<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>

    電路原理圖該如何閱讀?

    電路原理圖直接體現(xiàn)了電子電路的結(jié)構(gòu)和工作原理,如何閱讀和循序原理圖是電氣工程師的基本技能。這里來講一下閱讀電路
    的頭像 發(fā)表于 12-26 10:06 ?1.3w次閱讀
    <b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>該如何閱讀?

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

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

    簡單的音頻電路原理圖

    簡單的音頻電路原理圖
    發(fā)表于 02-09 17:43 ?33次下載

    動(dòng)態(tài)電路原理圖分享

    動(dòng)態(tài)電路原理圖分享
    的頭像 發(fā)表于 01-30 17:55 ?5369次閱讀
    動(dòng)態(tài)<b class='flag-5'>電路</b><b class='flag-5'>原理圖</b>分享