二進制自然碼-> 二進制格雷碼
module bin2gry(Gry,Bin);
parameter length = 8; //以八位示例
output [length-1:0] Gry;
input [length-1:0] Bin;
reg [length-1:0] Gry;
integer i;
always @ (Bin) begin
for(i=0; i<length-1; i=i+1)
Gry[i] = Bin[i] ^ Bin[i+1];
Gry[i] = Bin[i];
end
/*另一種簡單的實現方法如下:*/
// assign Gray = (Bin >> 1) ^ Bin;
endmodule
二進制格雷碼 -> 二進制自然碼
module gry2bin(Gry,Bin);
parameter length = 8;
input [length-1:0] Gry;
output [length-1:0] Bin;
reg [length-1:0] Bin;
integer i;
always @ (Gry) begin
Bin[length-1] = Gry[length-1];
for(i=length-2; i>=0; i=i-1)
Bin[i] = Bin[i+1] ^ Gry[i];
end
endmodule
轉載:https://blog.csdn.net/gordon_77/article/details/79489548
https://www.cnblogs.com/ZcsTech/p/3500207.html