zoukankan      html  css  js  c++  java
  • 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器件,采用独热码可以有效提高电路的速度和可靠性,也有利于提高器件资源的利用率。 

  • 相关阅读:
    XAF 有条件的对象访问权限
    XAF 顯示 UnInplace Report(設置自定義條件顯示報表,不是根據選擇ListView記錄條件顯示報表)
    XAF 如何自定义PivotGrid单元格显示文本?
    XAF 如何布局详细视图上的按钮
    XAF How to set size of a popup detail view
    XAF Delta Replication Module for Devexpress eXpressApp Framework
    XAF 帮助文档翻译 EasyTest Basics(基础)
    XAF 用户双击ListView记录时禁止显示DetailView
    XAF How to enable LayoutView mode in the GridControl in List Views
    XAF 如何实现ListView单元格批量更改?
  • 原文地址:https://www.cnblogs.com/agllero/p/4428162.html
Copyright © 2011-2022 走看看