數位電路設計之格雷碼與二進位制之間的轉換

2021-06-26 15:34:20 字數 1376 閱讀 1905

格雷碼相鄰數字間只相差一位,那麼這樣就可以做到比較低功耗。

fifo中一般使用gray code去表示位址。gray碼有反射特性和自補特性,它的迴圈和單步特性消除了隨機數出現重大錯誤的可能性。

轉換關係:

二進位制轉格雷碼:

g[ n-1 ] = b[ n - 1 ]     (最高位的轉化)

g[ i ] = b[i] & b[ i+1 ]

格雷碼轉二進位制:

b[ n-1 ] = g[ n-1 ]

b[ i ] = g[ i ] ^ g[ i+1 ] ^ .....^g[ n -1 ]

= g[ i ] ^ b[ i + 1 ]

**:gray->binary

module gray_to_binary(

ibin,

ogray

);input wire[8:0] ibin;

output reg[8:0] gray;

always@(*)begin

ogray[8] <= ibin[8];

ogray[7] <= ibin[7]^ibin[8];

ogray[6] <= ibin[6]^ibin[7];

ogray[5] <= ibin[5]^ibin[6];

ogray[4] <= ibin[4]^ibin[5];

ogray[3] <= ibin[3]^ibin[4];

ogray[2] <= ibin[2]^ibin[3];

ogray[1] <= ibin[1]^ibin[2];

ogray[0] <= ibin[0]^ibin[1];

endendmodule

binary->gray

module gray_to_binary(

ibin,

ogray

);input wire[8:0] ogray;

output reg[8:0] gray;

always@(*)begin

ibin[8] <= ogray[8];

ibin[7] <= ogray[7]^ibin[8];

ibin[6] <= ogray[6]^ibin[7];

ibin[5] <= ogray[5]^ibin[6];

ibin[4] <= ogray[4]^ibin[5];

ibin[3] <= ogray[3]^ibin[4];

ibin[2] <= ogray[2]^ibin[3];

ibin[1] <= ogray[1]^ibin[2];

ibin[0] <= ogray[0]^ibin[1];

endendmodule

Gray碼 格雷碼 二進位制

以下內容是看了matrix67的關於二進位制的blog link 的一點總結與摘錄。gray碼,中文 格雷碼 是一種特殊的編碼,相鄰兩個格雷碼的二進位制表示中有且僅有一位不同,且 n 階 gray 碼是 0 2 n 1 的乙個排列。n 階 gray 碼可以由 n 1 階 gray 碼映象翻轉之後最前...

格雷碼二進位制轉換

在結構光編碼方法中,有一種格雷碼編碼方法 與二進位制編碼方法相比,格雷碼編碼方法能夠更好的乙隻雜訊干擾,方便糾錯。用格雷碼對三維測量空間進行編碼,在解碼時需要將格雷碼在此轉換成二進位制,方便計算。實現 如下 unsigned binarytogray unsigned num 將二進位制值右移一位,...

二進位制格雷碼與自然二進位製碼的互換

原始網頁 http www.pcdog.com a 19 10 a210086.html 在精確定位控制系統中,為了提高控制精度,準確測量控制物件的位置是十分重要的。目前,檢測位置的辦法有兩種 其一是使用位置感測器,測量到的位移量由變送器經a d轉換成數字量送至系統進行進一步處理。此方法精度高,但在...