三態門三個狀態vhdl 匯流排實現形式之三態門

2021-10-13 20:21:24 字數 1561 閱讀 9671

什麼是三態門?

三態門即三態電路。三態電路可提供三種不同的輸出值:邏輯「0」,邏輯「1」和高阻態。高阻態主要用來將邏輯門同系統的其他部分加以隔離。例如雙向i/o電路和共用匯流排結構中廣泛應用三態特性。

乙個簡單的三態緩衝電路如上圖所示,圖(a)為表示符號,圖(b)為邏輯結構。由允許訊號e控制輸出,當e=1為高電平時,電路的功能是乙個正常的緩衝驅動器。輸出根據輸入為低電平或高電平則相應為低電平和高電平。當e=0為低電平時,不論輸入為何種電平,ma管的輸入為低電平,mp管的輸入為高電平,兩管均不導通。切斷輸出節點與電源vod和地的通路,此時輸出呈高阻態。實際上洩漏電流還是有的,但非常小,故輸出阻抗非常大。

利用三態門的高阻特性,可以實現匯流排的功能。由於三態門資源大多存在於fpga晶元的介面資源中而非fpga內部,因此一般當匯流排位於fpga晶元外部時,常採用這種方式。

賦值衝突問題:

錯誤**:(存在賦值衝突)

1. assign c =(sel[0] == 1'b1) ? a:1'b0;

2. assign c =(sel[1] == 1'b1) ? b:1'b1;

這個例子**,兩條賦值語句肯定都是一直有效的,因此必然產生賦值衝突,從而導致出錯。

正確**:

1. assign c =(sel[0] == 1'b1) ? a:1'bz;

2. assign c =(sel[1] == 1'b1) ? b:1'bz;

這個**的寫法和上面的唯一區別就是高組態的使用。

為什麼使用了高阻態,**就是正確的了呢?

這是因為高阻態實際上就是電路中的斷路,通過合理切換到高阻態,可以讓上述有高阻態的例子中的兩條賦值語句不會在同一時刻生效,因此不會產生賦值衝突。

乙個簡單的三態門式匯流排的fpga實現方式,功能**分為三個部分: 

1. 選擇器控制訊號產生部分,採用搶占式優先順序解碼器的思路,根據四個外圍器件的請求訊號產生多路選擇器的選擇控制訊號。

2. 寫匯流排部分,即將四個三態門的輸出連線到匯流排上。

3. 讀匯流排部分,各個外圍器件根據自己的情況將匯流排資料讀入器件內部進行運算和處理。

源**:

三態門介紹

如下圖,為兩種形式的三態門,a 和 b 一致 c 和 d 一致。對於圖 a 其真值表如下 輸入輸出ena 1011 000高阻態1 對於圖 b 的真值表為 輸入輸出ena 0011 010高阻態1 三態門 three state gate 是一種重要的匯流排介面電路。三態指其輸出既可以是一般二值邏輯...

三態門介紹

如下圖,為兩種形式的三態門,a 和 b 一致 c 和 d 一致。對於圖 a 其真值表如下 對於圖 b 的真值表為 三態門 three state gate 是一種重要的匯流排介面電路。三態指其輸出既可以是一般二值邏輯電路,即正常的高電平 邏輯1 或低電平 邏輯0 又可以保持特有的高阻抗狀態。高阻態相...

畫出傳輸門 三態門 開路門 傳輸門和三態門什麼區別

傳輸門和三態門什麼區別 三態門就是指輸出有三種狀態 0,1,高阻 的門。傳輸門就是指可以控制通路通斷的門,導通時,一端的訊號可以傳到另一端,不導通時,一端訊號不能傳到另一端。兩者不是對等關係,數位電路中三態門可以有各種實現方法,其中一種就是用傳輸門實現。注 高阻態 z態 指的就是門的輸出腳的兩個驅動...