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

擁抱開源!一起來做FPGA開發(fā)板啦!
開源鴻蒙工程工具分論壇圓滿舉辦
tscircuit - 電路開發(fā)的 React 范式? 用TypeScript、React和 AI工具構(gòu)建電子產(chǎn)品

python入門圣經(jīng)-高清電子書(建議下載)
AI開源模型庫(kù)有什么用
OSS Nokalva:適用于Python的OSS NAS工具

評(píng)論