亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Circuitjs中怎么創建一個自定義邏輯器件

發布時間:2021-07-28 15:30:48 來源:億速云 閱讀:444 作者:Leah 欄目:互聯網科技

本篇文章為大家展示了Circuitjs中怎么創建一個自定義邏輯器件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一個具體示例

來看一個具體的示例, 通過它來講述 自定義邏輯 是什么, 為什么以及怎么去做.

這個示例如下, 兩個輸入 A1 和 A0, 兩個輸出 S1 和 S0, 兩者間的關系也很簡單, 就是對輸入簡單取反, 因此使用了兩個 非門 就達到了目的.

Circuitjs中怎么創建一個自定義邏輯器件

輸出與輸入間的關系就是:

S1=!A1
S0=!A0

其中感嘆號 ! 表示取反.

上述的邏輯是用電路直接實現, 現在假設要使用自定義邏輯的方式去做一個等價實現, 從而取代上述 非門 構成的電路, 要怎么去做呢?

至于為什么引入自定義邏輯, 放在后面再解釋.

第一步是添加一個自定義邏輯器件, 在菜單或右鍵中選擇 添加自定義邏輯, 然后拖動生成一個缺省的自定義邏輯器件:

Circuitjs中怎么創建一個自定義邏輯器件

默認情況, 它包含兩個輸入 A 和 B, 兩個輸出 C 和 D, 但這只是缺省情況, 可以進一步調整, 輸入和輸出均可以是一個或多個, 而不是限于兩個.

下一步是雙擊(或"右鍵--編輯")組件編輯其屬性:

Circuitjs中怎么創建一個自定義邏輯器件

首先給它一個名稱, 比如"two-bit-invert":

Circuitjs中怎么創建一個自定義邏輯器件

接著點擊 編輯模型, 在彈出窗口中, 有四個屬性可以編輯, 分別為 輸入, 輸出, 信息文本, 定義, 下面將一一說明:

Circuitjs中怎么創建一個自定義邏輯器件

  1. 輸入

    改為 A1,A0, 與原型一致, 以(英文)逗號分隔. 當然, 這里實際叫什么并不是特別重要, 根據你自己需要去定義即可, 但建議盡可能簡短.

    視具體情況不同, 輸入端可以有更多或更少. 比如 X,Y,Z 就表示有三個輸入端, 名稱分別被設為 X, Y 和 Z.

  2. 輸出

    改為 S1,S0, 與原型一致(同理, 這里實際叫什么也不是特別重要)

    同樣的, 輸出端也不限于兩個, 可以更多或更少.

  3. 信息文本

    這里可以填入對功能的一個具體描述, 比如"對輸入的每一位取反"

  4. 定義

    這是最重要的, 它定義了輸入輸出間的邏輯關系.

怎么定義呢? 最簡單方式就是枚舉所有輸入的組合情況, 并給出對應輸出的值.

如果你有數字電路基礎, 很明顯這跟所謂的 真值表(True Table) 就是一回事.

那么對于前述取反邏輯, 最終的定義如下:

00=11
01=10
10=01
11=00

最終如下:

Circuitjs中怎么創建一個自定義邏輯器件

等號左邊對應輸入, 右邊對應輸出.

第一行, 左邊 00 分別表示 A1=0, A0=0, 右邊 11 表示 S1=1, S0=1;

第二行, 左邊 01 分別表示 A1=0, A0=1, 右邊 10 表示 S1=1, S0=0;

第三行, 左邊 10 分別表示 A1=1, A0=0, 右邊 01 表示 S1=0, S0=1;

第四行, 左邊 11 分別表示 A1=1, A0=1, 右邊 00 表示 S1=0, S0=0;

很顯然, 以上通過枚舉所有輸入(及對應的輸出)情況, 表達了前述的取反邏輯:

S1=!A1
S0=!A0

如果創建另一個自定義邏輯, 并有如下定義:

00=0
01=1
10=1
11=1

那么就是定義了一個具有兩個輸入端, 一個輸出端的邏輯組件.

顯然, 上述定義實際上就是一個 或門.

同樣的, 還可以定義更復雜的如異或門, 半加器, 全加器, 譯碼器以及其它你想要的邏輯組件等等.

確定之后, 組件按我們定義的輸入, 輸出名稱顯示如下, 當鼠標移上去后, 畫布的右下角還將顯示對應名稱及信息文本:

Circuitjs中怎么創建一個自定義邏輯器件

接下來可以測試其是否滿足相應邏輯, 如果不能滿足, 則可能需要仔細檢查 定義 里的規則是否有誤; 如果一切 OK, 則可以用它取代兩個非門構成的電路.

自然, 對于簡單的, 容易實現的邏輯來說, 自定義邏輯并沒有什么優勢;

但對于更復雜一些, 更多輸入, 輸出的情況, 你可能一下子想不出用電路怎么去實現, 又或者能用電路實現, 但非常龐雜, 各種組件, 連線非常多, 這時自定義邏輯就有優勢了.

最終, 所有的邏輯還是要落到具體的電路實現上, 自定義邏輯有時更像是一種"投機取巧", 但用得好, 它還是可以輔助你在整體設計期間, 先忽略部分模塊的具體實現, 不至于迷失在過多的細節里, 你可以假設這些子部件是已經實現的, 然后測試整體的邏輯是否 OK.

當大的框架及交互沒有問題時, 你可以回過頭來再一一去實現那些自定義邏輯, 所以, 它也可以幫你推遲某些實現, 但又不影響整體的功能.

小結

每個自定義邏輯器件都有一個模型名稱, 該名稱指向描述其工作方式的模型.

您可以創建具有相同型號的任意數量的器件.

編輯模型會更改使用該模型的所有器件的行為.

編輯模型時, 可以指定輸入, 輸出, 一些信息文本(將鼠標懸停在器件上時顯示在右下角)和定義.

輸入(和輸出)是(英文)逗號分隔的引腳標簽列表(最多一個或兩個字符).

您還可以指定 取反標簽, 像 /Q 對應 <span >Q</span>.

示例:A,B,/C,/D

定義是形式為多行的 輸入=輸出.

與輸入引腳匹配的第一個輸入模式將被選中, 并將輸出引腳設置為與輸出模式匹配.

模式可以包含比特值(0, 1), 過渡(+, -), 通配符/任意值(?), 和模式字母(A, B, 等等).

輸入必須不少于輸入引腳的數量.

如果更長, 則會將額外的模式字符與輸出引腳進行匹配;這使您可以創建帶有狀態的器件.

輸出模式還可包含 _, 以指示高阻抗狀態.

更多示例

前面舉的具體示例代表了最基本, 最常用的情況, 但自定義邏輯還支持更復雜的表達方式, 比如通配之類的; 甚至, 除了組合邏輯外, 你還可以定義時序邏輯組件.

下面是一些具體示例及說明.

3輸入與非門

輸入: A,B,C

輸出: X

定義:

111=0
???=1

如果所有三個輸入均為 1, 則輸出為 0. 否則為 1.

全加器

輸入: A,B,C

輸出: S,C

定義:

111=11
110=10
011=10
101=10
100=01
010=01
001=01
000=00

SR 鎖存器

輸入: S,R

輸出: Q,/Q

定義:

?? 00=10
10 ??=10
01 ??=01
?? AB=AB

輸入模式(等號的左側)按順序匹配 S, R, Q 和 <span >Q</span>.

等號右側指定對應的 Q 和 <span >Q</span> 結果值.

第一行, 如果兩個輸入均為低電平, 則將 Q 輸出置位(復位電路時需要此設置).

第二行, 如果 置位端(set) 為高, 則將輸出設置為 1,0.

第三行, 如果 復位端(reset) 為高, 則將輸出設置為 0,1.

第四行, 除以上情況外, 將使輸出保持不變.

前兩個字母與輸入引腳匹配, 后兩個字母與輸出引腳匹配.

空格會被忽略, 此處添加空格僅為清晰起見.

D 觸發器

輸入: D,Clk

輸出: Q,/Q

定義:

?? 00=10
0+ ??=01
1+ ??=10
?? AB=AB

如果兩個輸入均為低電平, 則第一行將 Q 輸出置位(復位電路時需要此設置).

接下來的兩行在時鐘的上升沿時將 Q 輸出設置為與 D 輸入匹配.

除以上情況外, 最后一行使輸出保持不變.

JK 觸發器

輸入: J,K,Clk

輸出: Q,/Q

定義:

??? 00=10
00- AB=AB
10- ??=10
01- ??=01
11- AB=BA
??? AB=AB

如果兩個輸入均為低電平, 則第一行將 Q 輸出置位(復位電路時需要此設置).

接下來的四行在時鐘的負跳變上實現JK觸發器邏輯.

除以上情況外, 最后一行使輸出保持不變.

數字比較器

輸入: A2,A1,A0,B2,B1,B0

輸出: Eq,A>,A<

定義:

ABC ABC=100
1?? 0??=010
A1? A0?=010
AB1 AB0=010
??? ???=001

第一行檢查兩個輸入是否相等. 接下來的三行測試 A 是否更大. 否則, B 更大.

3位計數器

輸入: Clk

輸出: A,B,C

定義:

+ AB0=AB1
+ A01=A10
+ 011=100
+ 111=000
? ABC=ABC

該計數器在 Clk 輸入的正跳變時遞增計數.

第一行處理從 000、010、100 或 110 開始的計數.

第二行處理從 001 或 101 開始的計數.

接下來的兩行處理 011 和 111.

最后一行確保除非時鐘產生正跳變, 否則輸出不會改變.

具有 使能功能 的 3 輸入與非門

輸入: A,B,C,En

輸出: X

定義:

1111=0
???1=1
???0=_

與上面的 3 輸入與非門相同, 不同之處在于如果 使能引腳 為低電平, 則輸出進入高阻抗狀態.

三態緩沖器

輸入: A,En

輸出: X

定義:

A1=A
?0=_

上述內容就是Circuitjs中怎么創建一個自定義邏輯器件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇宁| 沛县| 丹东市| 巫溪县| 昌乐县| 泸定县| 樟树市| 泰兴市| 渭源县| 广水市| 伽师县| 兴安盟| 邵武市| 玛纳斯县| 绩溪县| 柏乡县| 共和县| 淮北市| 盐边县| 昭平县| 蓝田县| 吴堡县| 伊吾县| 萨嘎县| 罗城| 贵定县| 武定县| 綦江县| 会同县| 瑞金市| 佛学| 襄汾县| 乐都县| 都匀市| 望江县| 夏河县| 登封市| 张家口市| 都江堰市| 苏尼特右旗| 广宗县|