格雷碼相鄰數字間只相差一位,那麼這樣就可以做到比較低功耗。
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轉換成數字量送至系統進行進一步處理。此方法精度高,但在...