數字電子技術基礎(五) 編碼器

2021-10-09 04:16:33 字數 2246 閱讀 7795

編碼器:在數字系統中,為了區分一系列不同的事物,將其中的每個事物用乙個二值碼來表示。

編碼盡量要求:將多個輸入的狀態用最少資源來表示。

在嵌入式中,編碼器的乙個功能是節約io口,可以用很少的io來讀取更多的輸入狀態。

編碼器大致有兩種分類,一種是普通編碼器,一種是優先編碼器

在普通編碼器中,任何時刻只允許輸入乙個訊號,否則輸出會發生混亂。但是一般在設計普通編碼器的時候,一般會有default狀態,即在輸入不是任何一種有效輸入的情況下會指定輸出乙個值。

下面舉個4-2編碼器的例子,因為有四個輸入,所以用兩位二進位制 數來表示,能表示完全,也最節約資源,也符合編碼節約資源的要求。當然3位也能表示,不過就浪費了一位。

//4-2編碼器的主要**

case(state_in)

4'b0001: state_out <= 00;

4'b0010: state_out <= 01;

4'b0100: state_out <= 10;

4'b1000: state_out <= 11;

default: state_out <= 00;

endcase

在設計4-2編碼器的verilog**中,可以看到,輸入的四個狀態只有一位是輸入了1,這就是同時只有乙個輸入。

即使輸入不是0001,0010,0100,1000這四種狀態,假設輸入0111,因為0111不在前四個有效狀態中,會進入到default的case中,最終也會輸出乙個00,具體是多少,看自己設計要求。

而在晶元設計中,肯定也有這種設計,但是最好還是不要同時輸入多個值,不然輸出的值與自己的預期不符。下面看看8-3普通編碼器的真值表:

假設要編碼15種狀態的話,應該用多少位呢,用3位表示不全,但是4位又多了乙個,當然最後應該用4位,因為要在保證完全表示的情況下再考慮節約資源

優先編碼器允許同時輸入兩個及以上的編碼訊號。不過在設計優先編碼器時,已經將所有的輸入訊號按照優先順序排了隊,當幾個輸入訊號同時出現時,只對其中乙個優先權最高的乙個進行編碼。

下面舉乙個8-3優先編碼器74hc148的例子

從這個表中可以看出,74hc148有乙個控制訊號s』;當s』 = 0時,編碼器才能正常工作,否則輸出全為1。

當i7 = 0,時,不管其它位為多少,最終都先編碼i7,輸出000,i7優先順序最高

當i7 = 1,i6 = 0時,不管其它位為多少,最終編碼i6,輸出001,i6優先順序次高

可以看出編碼優先順序從高到低依次為:i7,i6,i5,i4,i3,i2,i1,i0。

我們可以看到,輸出裡面還有ys』和 yex』

那麼表中的ys』和 yex』的作用是什麼呢?

ys』和yex』用來區分當前晶元的工作狀態是什麼,給主機反饋乙個資訊。

假設ys』和yex』 輸出1 1,就說明此時晶元沒有正常工作,處於鎖住狀態,雖然y0y1y2 輸出 1 1 1,但並不是對0 1 1 1 1 1 1 1編碼得到的輸出,輸出不能用

假設ys』和yex』 輸出0 1,就說明此時晶元,輸入全為高,雖然處於選通狀態,但是y0y1y2y的1 1 1並不是對0 1 1 1 1 1 1 1編碼出來的,輸出不能用

假設ys』和yex』 輸出1 0,就說明此時晶元正常工作,所有輸出均是編碼出來的,可以使用

這個在設計的時候可以借鑑,可以給主機反饋資訊,這個很重要。

數字電子技術基礎

2.4.4具有約束的邏輯函式的化簡 1.產生原因 在實際的邏輯命題中,常常會由於外部條件的限制,輸入變數的某些取值組合根本就不會出現,即有些輸入變數的組合所對應的函式值既不是邏輯1也不是邏輯0.例如 a b c中有的某些取值組合按實際規定不會出現,這說明a b c之間有一定的制約關係,因此稱這三個變...

數字電子技術基礎(十) SR鎖存器

sr鎖存器是 set reset latch 是靜態儲存單元中最基本 也是電路結構最簡單的一種,通常由兩個或非門或者與非門組成。在單獨的閘電路中,所有輸出均隨著輸入發生變化,不起資料鎖存的作用,但是當兩個或非門組合成以下電路時,就有鎖存的作用了。可以看到,sr鎖存器有兩個輸入端,乙個sd 稱為置位端...

數字電子技術 複習筆記

數字電子技術 緒論 數字量和模擬量 數字量 該物理量的變化在時間上和數量上都是不連續的。首先它們隨時間的變化不是連續發生的,總是發生在一些離散的瞬間 其次,每次變化時數量大小的改變都是某個最小數量單位的整數倍,而小於這個最小數量單位的數值沒有任何物理意義。我們把這一類物理量叫做數字量,同時把表示數字...