我們用Verilog、VHDL這種硬件描述語言來設計FPGA,是否有一種方式來描述電路?如果采用了這種方式,也會像HDL在FPGA、ASIC領域一樣成為一種主流的趨勢么?我們來看看SkiDL的嘗試。
SKiDL 是一個模塊,允許您使用 Python 緊湊地描述電子電路和組件的互連。 生成的 Python 程序執(zhí)行電氣規(guī)則檢查以查找常見錯誤并輸出用作 PCB 布局工具輸入的網(wǎng)表。
首先,讓我們看看 KiCad 中的“正?!痹O計流程:
在這里,您在原理圖編輯器(對于 KiCad,即 EESCHEMA)中開始并繪制原理圖。由此,EESCHEMA 生成一個網(wǎng)表文件,其中列出了使用的組件以及它們的引腳如何互連。然后,您將使用 PCB 布局工具(如 KiCad 的 PCBNEW)來排列零件封裝并繪制連接網(wǎng)表中指定的引腳的線跡。
完成后,PCBNEW 會輸出一組 Gerber 文件,這些文件將發(fā)送給 PCB 制造商,該制造商將創(chuàng)建物理 PCB 并將其運送給您。然后你會在 Twitter 上張貼他們的照片,然后因為你對這個項目感到厭煩而立即把它們?nèi)舆M抽屜里幾年。
在基于 SKiDL 的設計流程中,您使用文本編輯器創(chuàng)建 Python 代碼文件,該文件使用 SKiDL 庫來描述組件的互連。該代碼文件由 Python 解釋器執(zhí)行,并輸出一個網(wǎng)表文件。從那里開始,設計流程與基于原理圖的流程相同(包括將 PCB 傾倒在抽屜中)。
那么,您為什么要使用 SKiDL?以下是 SKiDL 為電子設計帶來的一些功能:
只需要一個文本編輯器和 Python。
具有強大、靈活的語法(因為它是 Python)。
允許對電子電路進行簡潔的描述(考慮不要通過多頁原理圖跟蹤信號)。
允許電子電路的文本描述(考慮對電路使用 diff 和 git)。
對常見錯誤(例如,未連接的設備 I/O 引腳)執(zhí)行電氣規(guī)則檢查 (ERC)。
支持電子設計的線性/分層/混合描述。
促進設計重用(考慮使用 PyPi 和 Github 分發(fā)電子設計)。
可以創(chuàng)建其行為/結(jié)構(gòu)以參數(shù)方式改變的智能電路模塊(考慮根據(jù)您所需的截止頻率自動調(diào)整組件值的濾波器)。
可以使用任何 ECAD 工具(只需要兩種方法:一種用于讀取零件庫,另一種用于輸出正確的網(wǎng)表格式)。
利用 Python 生態(tài)系統(tǒng)的所有優(yōu)勢(因為它是 Python)。
免費軟件:MIT 許可證。
開源:https://github.com/devbisme/skidl
生成原理圖:
盡管 SKiDL 可以讓您避免繁瑣的原理圖繪制,但有些人仍然希望看到他們電路的圖形描述。為此,SKiDL 可以使用 1) graphviz DOT 語言或 2) 作為使用 SVG 的更傳統(tǒng)的示意圖將部件的互連顯示為有向圖。
以下電路將用于說明這兩種方法:
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 文件需要您在系統(tǒng)上安裝 graphviz。
要為電路生成 DOT 文件,只需將以下內(nèi)容附加到腳本末尾:
generate_dot(file_='and_gate.dot')
運行腳本生成and_gate.dot文件后,您可以使用以下命令將其轉(zhuǎn)換為位圖文件:
dot -Tpng -Kneato -O and_gate.dot
生成的 and_gate.dot.png 文件如下所示:
也可以將現(xiàn)有的KiCad設計轉(zhuǎn)換到SkiDL
也可以使用SkiDL來描述你的電路,并運行SPICE進行仿真。
我對這個了解得很少,只是覺得它值得關注,先分享出來,供有興趣的朋友參考。
-
FPGA
+關注
關注
1640文章
21910瀏覽量
611588 -
Verilog
+關注
關注
28文章
1363瀏覽量
111378 -
vhdl
+關注
關注
30文章
819瀏覽量
129327 -
python
+關注
關注
56文章
4822瀏覽量
85782
原文標題:開源工具SkiDL - 用Python來描述電路
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
python入門圣經(jīng)-高清電子書(建議下載)
AI開源模型庫有什么用
OSS Nokalva:適用于Python的OSS NAS工具

評論