精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    關注

    1626

    文章

    21673

    瀏覽量

    601924
  • Verilog
    +關注

    關注

    28

    文章

    1345

    瀏覽量

    109989
  • vhdl
    +關注

    關注

    30

    文章

    816

    瀏覽量

    128081
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84466

原文標題:開源工具SkiDL - 用Python來描述電路

文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何幫助孩子高效學習Python:開源硬件實踐是最優選擇

    顯著提升孩子的學習興趣和對Python原理的理解。本文將探討為何使用Raspberry Pi(樹莓派)或Unihiker(行空板)等開源硬件是孩子們掌握Python的最佳途徑。 讓孩子們在Py
    的頭像 發表于 09-06 09:49 ?270次閱讀

    時序邏輯電路描述方法有哪些

    時序邏輯電路是數字電路中的一種重要類型,它具有存儲功能,能夠根據輸入信號和內部狀態的變化改變其輸出。時序邏輯電路廣泛應用于計算機、通信、控制等領域。本文將介紹時序邏輯
    的頭像 發表于 08-28 11:37 ?422次閱讀

    python寫驗證環境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發表于 07-24 09:38 ?472次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環境cocotb

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的方法
    的頭像 發表于 07-18 14:53 ?374次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?992次閱讀

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?722次閱讀

    深度學習常用的Python

    深度學習作為人工智能的一個重要分支,通過模擬人類大腦中的神經網絡解決復雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的庫支持,成為了深度學習研究和應用的首選工具。本文將深入探討
    的頭像 發表于 07-03 16:04 ?573次閱讀

    如何使用linux下gdb調試python程序

    如何使用linux下gdb調試python程序? 在Linux下,可以使用GDB(GNU調試器)調試Python程序。GDB是一個強大的調試工具
    的頭像 發表于 01-31 10:41 ?2425次閱讀

    eda工具軟件有哪些 EDA工具有什么優勢

    和預測提供基礎。在進行EDA過程中,使用合適的工具軟件可以顯著提升效率和準確性。本文將介紹幾種常見的EDA工具軟件。 Python和其相關的庫 Python是一種廣泛使用的編程語言,擁
    的頭像 發表于 01-30 13:57 ?1104次閱讀

    phpy:PHP與Python互調用庫

    phpy 是識沃團隊最新推出的開源項目,目標是為 PHP 引入 Python 生態,彌補 PHP 生態的空缺和不足。phpy 使得 PHP 可以調用所有 Python 的包。 包括當
    的頭像 發表于 12-12 10:43 ?983次閱讀
    phpy:PHP與<b class='flag-5'>Python</b>互調用庫

    Python運行環境有哪些

    ,也是最常用的解釋器。它是C語言編寫的,支持C的擴展和嵌入。CPython可以在各個操作系統上運行,并提供了Python的核心功能。 JPython: JPython是Python的Java實現,它可
    的頭像 發表于 11-29 16:14 ?1914次閱讀

    python軟件對電腦配置要求

    Python軟件的電腦配置要求,并提供一些建議確保您的電腦能夠高效地運行Python程序。 首先,讓我們看一下Python的基本配置要求。Pyth
    的頭像 發表于 11-29 14:58 ?9796次閱讀

    python shell怎么

    Python Shell的使用方法、功能和一些常見的操作技巧。 Python Shell的啟動: Python Shell可以通過在命令行中輸入 python 命令
    的頭像 發表于 11-29 14:36 ?1108次閱讀

    python語言特點有哪些

    、詳實和細致的描述,共計超過1500字。 簡潔優雅: Python以簡潔和優雅的語法而著稱。相對于其他編程語言,Python代碼通常看起來更加清晰易讀。這得益于Python采用了面向對
    的頭像 發表于 11-29 14:29 ?1056次閱讀

    運行Python程序的幾種常見方法

    方法: 使用Python解釋器 Python解釋器是運行Python程序的基本工具。在命令行中輸入 python 命令,即可啟動解釋器。然后
    的頭像 發表于 11-28 15:32 ?2450次閱讀