“通常來說 KiCad 更建議使用層次化的設計,因為這樣結構更清晰,也方便設計復用。對于簡單的系統,扁平化設計也很容易實現;但將復雜的系統設計成扁平化卻并不那么容易。”
什么是扁平化設計?
在過去,特別是在計算機時代之前,大多數原理圖都是這樣制作的。
扁平化設計可以是單頁,也可以是多頁,用于容納你的原理圖。如果有多頁,那么每個頁面都可能包含彼此相關的內容。
對于多頁設計來說,還必須有一種方法來使這些頁面之間產生聯系。這種交叉引用在KiCad中被稱為標簽(有的EDA稱之為端口)。另一個重要的工具是電源符號(在過去也被稱為電源端口)。典型的如GND、VDD等符號。電源符號在扁平化設計中是全局的,即所有圖紙有效。
什么是層次化設計?
層次化設計是一種完全不同的設計范式。在某種意義上,它可以與面向對象的編程相媲美。它背后的主要想法是引入抽象層。這可以使人們更容易理解復雜的系統。
層次化的頁面符號不止代表一頁原理圖,而更像是一個有定義接口的對象。
在KiCad中,這種接口通過分層化引腳與層次化標簽實現。全局的標簽(比如電源符號)一定程度上降低了這種設計方法的功能。
電源管理系統(BMS)的設計案例
在此示例中,展示的是一個電池管理系統的測量和平衡電路。該電路有一個用于連接電池組中每個電池的接口,一個專門的芯片,可以測量每個電池的電壓、溫度,并提供一種對單個電池進行放電以實現平衡的方法。它還提供了與外部控制器的接口。
3芯電池的單頁扁平化設計
即使是這樣簡單的電路,我也需要使用A3大小的圖紙,以便能夠容納所有的東西,同時讓設計看起來規劃合理。 請注意,我們為每個電池復制了設計的平衡部分。想象一下,如果你后來發現某些地方不太對,則需要改變每一個重復的部分。
在扁平化設計中,使用圖形線和文字可以很好地幫助區分功能模塊,即對系統做一個抽象的功能分割。
6芯電池的多頁扁平化設計
在上一節中,我們發現一個單一的頁面很快就會變得很有局限性。我們可以增加頁面的大小,但即使這樣也有局限性。這意味著我們可能需要添加額外的原理圖頁面,但這并不是KiCads的強項之一。我們可以在這里使用層次化圖紙和全局標簽達到類似的效果。
根頁面是你的設計的索引頁,它將所有其他頁面實例化。如果你愿意的話,可以在這個根頁面上添加一些文字或圖畫,以明確在圖紙中可以找到什么。
12芯電池的層次化設計 查看之前的設計,我們會發現有很多重復的內容可以放置在單獨的設計模塊中。這樣做將使我們的原理圖在 KiCad 中更易于閱讀和維護。上圖中黃色部分展示的是這些原理圖頁面符的子圖紙內容。對于單頁圖紙來說,內容并不多。 在這種情況下,我們可以多次實例化同一張子原理圖。可以通過復制原理圖頁面符,或者創建一個新的頁面符并指定同樣的子原理圖來實現這一目的。 現在,如果您修改這個子電路圖的一部分,那么變更將傳播到所有其他實例。作為測試,你可以嘗試更改其中一個電阻器的值并檢查它在其他實例中是否發生變化。實例之間唯一獨立的是位號符。
在層次化設計的工作流程中,也可以擁有僅實例化一次的圖紙。如下圖所示,主機接口和菊花鏈過濾器表僅實例化一次;而每個電池單元都實例化了6次:
上圖中的層次化設計可以非常清晰地查看、理解設計意圖及每個功能模塊的定義。
小結
本文介紹了扁平化設計、層次化設計的概念并給出了3個實例。對于復雜的設計,建議使用層次化設計,因為這樣可以使圖紙更容易被讀懂,也可以讓設計更清晰,且支持模塊的復用。
下一章中,我們會繼續介紹層次化設計中的一些注意點,以及如何在KiCad中創建層次化設計。
審核編輯 黃宇
-
KiCAD
+關注
關注
4文章
112瀏覽量
8711
發布評論請先 登錄
相關推薦
評論