日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FPGA 设计算法篇 —— 格雷码编解码原理及实现

發(fā)布時間:2023/12/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FPGA 设计算法篇 —— 格雷码编解码原理及实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:在這篇文章中FPGA 設(shè)計時序篇 —— 跨時鐘域問題及解決方法提到格雷碼在跨時鐘域的應(yīng)用,本篇作為對該篇文章的補(bǔ)充,詳細(xì)介紹格雷碼的編解碼原理及語法實現(xiàn)。

一、格雷碼簡介

格雷碼,即 Gray code。由于自然二進(jìn)制碼在相鄰數(shù)據(jù)之間可能存在多個bit的變化,比如8和7對應(yīng)的4bit二進(jìn)制碼分別為:1000,0111,當(dāng)寄存器的輸出在這兩個數(shù)據(jù)簡跳轉(zhuǎn)的時候,寄存器的每一位都會發(fā)生變化,從而造成不穩(wěn)定態(tài)。

為了解決上面的問題,出現(xiàn)了格雷碼編碼規(guī)則。在格雷碼中,所有相鄰兩數(shù)據(jù)的二進(jìn)制表示中只有一位不同。下表為 4bit 自然二進(jìn)制碼,格雷碼對應(yīng)關(guān)系。

十進(jìn)制二進(jìn)制格雷碼
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000

二、格雷碼編、解碼方法

1.編碼:將自然二進(jìn)制碼轉(zhuǎn)化為格雷碼。方法是從自然二進(jìn)制碼的最低位起,將每一bit位 與 左邊bit位進(jìn)行異或運(yùn)算,最高位不變,公式如下:

2.解碼:將格雷碼轉(zhuǎn)化為自然二進(jìn)制碼。方法是從格雷碼的左邊第二位起,將每一bit位 與 左邊解碼后的bit位進(jìn)行異或運(yùn)算,最高位不變,公式如下:

三、格雷碼語法實現(xiàn)

原理方法如上述,但怎樣才能在語法中快速實現(xiàn)呢?

1.首先看編碼,實際也就是將自然二進(jìn)制碼A向右移一位變成B(右移后高位補(bǔ)0),再將A與B進(jìn)行以異或運(yùn)算,而異或運(yùn)算在FPGA中是最基本的運(yùn)算,非常容易實現(xiàn)。

接下來分析一下:右移后最高位是否能實現(xiàn)算法。前面提到,編碼時最高位保持不變,B的最高位現(xiàn)在為0,當(dāng)A的最高位為0時,0與0異或的結(jié)果為0,滿足最高位保持不變;當(dāng)A的最高位為1時,1與0異或的結(jié)果為1,滿足最高位保持不變。

奈斯!

代碼如下:

module Bin2Gray #( parameter DataWidth = 4 ) ( input [DataWidth-10] iBinary,output [DataWidth-10] oGraycode );assign oGraycode = (iBinary >> 1) ^ iBinary;endmodule

2.接著看解碼

module Bin2Gray #( parameter DataWidth = 8 ) ( input [DataWidth-10] iGraycode,output [DataWidth-10] oBinary );assign oBinary = { iGraycode[7],^iGraycode[7:6],^iGraycode[7:5],^iGraycode[7:4],^iGraycode[7:3],^iGraycode[7:2],^iGraycode[7:1],^iGraycode[7:0], };endmodule

這里牽涉到一元約簡運(yùn)算,需要注意下。

總結(jié)

以上是生活随笔為你收集整理的FPGA 设计算法篇 —— 格雷码编解码原理及实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。