Gray Code & One_hot encoding

來源:互聯網
上載者:User

標籤:

Gray Code & One_hot encoding

1.  Gray Code (格雷碼)

 

說明

 

 

Gray Code是一個數列集合,每個數使用二進位來表示,假設使用n位元來表示每個數好了,任兩個數之間只有一個位元值不同,例如以下為3位元的Gray Code:

 

000 001 011 010 110 111 101 100

 

 


由定義可以知道,Gray Code的順序並不是唯一的,例如將上面的數列反過來寫,也是一組Gray Code:

 

100 101 111 110 010 011 001 000

 

 


Gray Code是由貝爾實驗室的Frank Gray在1940年代提出的,用來在使用PCM(Pusle Code Modulation)方法傳送訊號時避免出錯,並於1953年三月十七日取得美國專利。

 

解法

 

 

由於Gray Code相鄰兩數之間只改變一個位元,所以可觀 察Gray Code從1變0或從0變1時的位置,假設有4位元的Gray Code如下:

 

0000 0001 0011 0010 0110 0111 0101 0100
1100 1101 1111 1110 1010 1011 1001 1000

 

 

 


觀察奇數項的變化時,我們發現無論它是第幾個Gray Code,永遠只改變最右邊的位元,如果是1就改為0,如果是0就改為1。

觀察偶數項的變化時,我們發現所改變的位元,是由右邊算來第一個1的左邊位元。

以上兩個變化規則是固定的,無論位元數為何;所以只要判斷位元的位置是奇數還是偶數,就可以決定要改變哪一個位元的值,為了程式撰寫方便,將陣列索引 0當作最右邊的值,而在列印結果時,是由索引數字大的開始反向列印。

將2位元的Gray Code當作平面座標來看,可以構成一個四邊形,您可以發現從任一頂點出發,繞四邊形周長繞一圈,所經過的頂點座標就是一組Gray Code,所以您可以得到四組Gray Code。

同樣的將3位元的Gray Code當作平面座標來看的話,可以構成一個正立方體,如果您可以從任一頂點出發,將所有的邊長走過,並不重複經過頂點的話,所經過的頂點座標順序之組合也就是一組Gray Code。

 

 

 

  

 

 

 

2.  One-hot Encoding (獨熱編碼)

 

獨熱碼是指對任意給定的狀態,狀態向量中只有1位為1,其餘各位為0。N狀態的狀態機器需要N個觸發器,這種狀態機器的速度與狀態的數量無關,只取決於某特定狀態的轉移數量,速度很快。當狀態機器的狀態增加時,如果使用二編碼,那麼速度會明顯下降,但如果採用獨熱碼,雖然多用了觸發器,但由於狀態解碼簡單,節省和簡化了組合邏輯電路。

 

 

 

 

In One-Hot coding, the encoding should be:

 

 

 

 

 

 State:        A    |     B    |      C    |     D

 

 

 

assignment:    0001  |  0010  |   0100  |   1000

 

increase the number of flip-flops you use, but has the advantage that needs less logic for the excitation equations.

 

 

舉另外一個例子,比如:

 

十進位:       0       |        1       |         2      |         3        |         4        |       5        |       6       |        7       |       8         |       9 
獨熱碼:000000000 | 000000001 | 000000010  |  000000100  |  000001000  | 000010000 | 000100000 | 001000000 | 010000000  | 100000000 

 

 

 

 

http://www.vlsibank.com/sessionspage.asp?titl_id=4867

 

Design artical:

 http://www.trilobyte.com/pdf/golson_pldcon93.pdf

 

 

 

 

對於寄存器數量多,而門邏輯相對缺乏的FPGA器件,採用獨熱碼可以有效提高電路的速度和可靠性,也有利於提高器件資源的利用率。 

Gray Code & One_hot encoding

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.