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

  • 相关阅读:
    react-native ios打包和Android打包
    用create-react-app创建的react项目怎么解决打包体积过大
    react native 新建项目运行报错
    微信分享等配置,微信授权失败讲解
    微信公众号的code,微信授权
    linux 递归删除指定文件
    mariaDB安装 无密码就可以登录、远程访问、及新版本初始化密码
    mysql 可重复插入、创建语句
    redis数据库入门
    Extjs 3.4 同值合并
  • 原文地址:https://www.cnblogs.com/agllero/p/4428162.html
Copyright © 2011-2022 走看看