Circuitjs 分支電路(子電路, subcircuit)功能簡介

在 circuitjs 中, 可以使用 分支電路 來實現自定義的"黑盒"器件.

分支電路 也稱爲 子電路(subcircuit).

因爲菜單上已經叫成了 分支電路, 以下均稱爲 分支電路.

通過分支電路, 可以實現對電路的封裝與抽象, 從而達到模塊化並簡化電路的目的. 更進一步的, 被抽象的黑盒電路還可以繼續的參與進一步的抽象與封裝, 也即它們是具備 閉包性質 的, 循環往復, 可以以此構建出極爲複雜的電路.

視頻簡介: Circuitjs 分支電路(子電路, subcircuit)功能簡介

創建分支電路

下面以一個具體的例子來說明如何去創建一個分支電路.

電路原型

如下一個由四個 與非門 構成的電路, 其功能如下:

如果輸入是相同的, 比如同爲 0 或同爲 1, 則輸出爲 0;

如果輸入是不同的, 比如 0, 1 或 1, 0, 則輸出爲 1.

circuitjs 分支電路 subcircuit 原型

顯然, 如果你瞭解數字電路, 這其實就是所謂的 異或門.

在確定它的功能達到我們的要求後, 先刪除那些測試的邏輯輸入輸出, 只留下最終的電路.

添加標記節點

下一步是標識出所有的輸入/輸出, 此步驟通過 添加標記的節點 功能實現, 在"菜單--繪製--輸出和標籤--添加標記的節點"下:

circuitjs 分支電路 subcircuit 添加標記的節點

拖動以增加標記節點, 並與輸入輸出的端點相連:

circuitjs 分支電路 subcircuit 增加標記節點後的電路

所有標記的節點默認的名稱均爲 label, 通過雙擊這些節點, 在彈出的屬性調整窗口中, 一一改爲所希望的名稱(儘量簡短):

circuitjs 分支電路 subcircuit 修改標記節點名稱

最終效果如下, 輸入端名稱爲 A 和 B, 輸出端爲 O:

circuitjs 分支電路 subcircuit 標記後的結果

標記內部節點

如果要在分支電路定義中使用帶標記的節點, 但又不想讓它們成爲輸入/輸出之一, 則請勾選那些帶標籤的節點的編輯菜單中的"內部節點"複選框.

circuitjs 分支電路 subcircuit 內部節點

注意: 如果電路存在多餘的沒有被標記的端點, 創建分支電路時可能會存在異常.

所以, 哪怕是不用對外提供的端點, 你可能依然需要通過"內部節點"去標識它們.

在上述例子中, 沒有使用到內部節點.

設置分支電路引腳, 高寬, 名稱

然後, 選擇"菜單--文件--創建分支電路", 彈出以下窗口:

circuitjs 分支電路 subcircuit 創建分支電路窗口

通過拖動節點可以重新排列引腳:

circuitjs 分支電路 subcircuit 拖動節點排列引腳 gif

注意: 拖動時, 如果發現拖不動或沒有效果, 則鼠標光標可以適當移出到模型框線外面一點.

引腳可以是左右或是上下朝向.

如果沒有足夠的空間供調整, 可以通過單擊 寬度 和 高度 旁邊的 + 號增加高度和寬度:

circuitjs 分支電路 subcircuit 增加模型高度和寬度 gif

最後, 調整完成後, 可以通過單擊 寬度 和 高度 旁邊的 - 號減小不必要的高度和寬度.

當然, 你也可以不縮小模型框的最終大小, 但適當保持緊湊會好一點, 後面使用它時也不用佔那麼大的地方.

引腳位置和寬高調整完成後, 在 模型名稱 中輸入模型名稱, 然後單擊"確定".

circuitjs 分支電路 subcircuit 輸入模型名稱

這將加載子電路模型.

注: 請記得保存該分支電路實現, 否則以後將無法對其進行再次編輯(修改).

使用分支電路

現在, 您可以使用分支電路模型創建電路. 用鼠標右鍵單擊, 然後選擇"有源集成電路--添加分支電路實例"項.

circuitjs 分支電路 subcircuit 有源集成電路--添加分支電路實例

或是通過 "菜單--繪製--有源集成電路--添加分支電路實例" 添加.

然後單擊並拖動以創建實例.

circuitjs 分支電路 subcircuit 拖動創建實例 gif

注: 連續拖動可以創建多個實例, 如果不再需要創建, 按快捷鍵 Esc 退出添加狀態.

如果創建有多個分支電路模型, 可以通過編輯實例, 然後在彈出窗口的 模型名稱 下拉窗口中選擇所需的模型.

circuitjs 分支電路 subcircuit 選擇模型

默認情況下, 它將使用您剛創建的模型.

當您保存/加載該電路時, 它還將保存/加載分支電路模型, 因此您可以在其他電路中使用它.

另外, 在創建實例後, 你還可以再度編輯模型. 通過在模型實例上 "右鍵--編輯--編輯模型":

circuitjs 分支電路 subcircuit 編輯模型

之後, 會再度彈出前述創建分支電路時彈出的窗口, 你可以再度調整引腳位置, 模型高寬.

注意: 如果創建了多個模型實例, 此調整將影響所有已創建的實例!

重新封裝現有模塊以改變引腳位置

有時候, 有些模塊是 app 中已經封裝好的, 但它的引腳位置佈局可能不是你希望的, 這時您還可以使用分支電路來重新排列內置芯片上的引腳.

選取部分電路來創建分支電路

默認情況, 創建分支電路會使用當前畫布上的所有電路.

如果在使用"文件--創建分支電路"之前選擇了電路的一部分, 則僅所選元素將被視爲分支電路的一部分.

多窗口中使用多個分支電路

雖然在一個窗口(畫布)中也可以創建多個分支電路, 但添加實例時缺省都是最後創建的, 多個模型的情況下, 你需要再度編輯模型名稱才能調整爲其它先前添加的模型的實例.

爲清晰起見, 你可以打開多個瀏覽器窗口, 不同的分支電路在不同的窗口中去創建, 然後拖動生成相應的實例.

最後, 這些實例均支持跨窗口拷貝(粘貼), 因此你也可以通過這種方式將多個分支電路實例整合到一起.

關於 circuitjs 分支電路功能的介紹就到這裏.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章