編碼器:在數字系統中,為了區分一系列不同的事物,將其中的每個事物用乙個二值碼來表示。
編碼盡量要求:將多個輸入的狀態用最少資源來表示。
在嵌入式中,編碼器的乙個功能是節約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 稱為置位端...
數字電子技術 複習筆記
數字電子技術 緒論 數字量和模擬量 數字量 該物理量的變化在時間上和數量上都是不連續的。首先它們隨時間的變化不是連續發生的,總是發生在一些離散的瞬間 其次,每次變化時數量大小的改變都是某個最小數量單位的整數倍,而小於這個最小數量單位的數值沒有任何物理意義。我們把這一類物理量叫做數字量,同時把表示數字...