雷碼的特點(diǎn):相鄰的兩個(gè)碼組之間僅有一位不同。 普通二進(jìn)制碼和格雷碼可以互相轉(zhuǎn)換,下面以4位二進(jìn)制碼作簡要介紹:
四位二進(jìn)制碼轉(zhuǎn)換成格雷碼 轉(zhuǎn)換規(guī)則:從最右邊一位起,依次與前一位“異或”,作為該位的輸出,最高位不變。 程序代碼如下:module Binary_Trans_Gray( input [3:0] binary, output reg[3:0] gray ); parameter length = 4 ; integer i ; always @ (binary) begin for(i = 0 ; i < length - 1 ; i = i + 1) begin gray[i] = binary[i] ^ binary[i + 1]; end gray[i] = binary[i] ; endendmodule 4位格雷碼轉(zhuǎn)換成二進(jìn)制碼 轉(zhuǎn)換規(guī)則:最高位不變,從最左邊起將產(chǎn)生的每一位二進(jìn)制碼,與下一位相鄰的格雷碼“異或”,作為二進(jìn)制碼的下一位。程序代碼如下:
module Gray_Trans_Binary_pin( input [3:0] gray, output reg[3:0] binary ); parameter length = 4 ; integer i ; always @ (gray) //輸入gray碼發(fā)生變化時(shí),輸出binary也將發(fā)生變化 begin binary[length -1] = gray[length - 1] ; for(i = length -2 ; i >= 0 ; i = i - 1) begin binary[i] = binary[i + 1] ^ gray[i] ; end endendmodule新聞熱點(diǎn)
疑難解答