Gray code: Difference between revisions

Content added Content deleted
Line 4,720: Line 4,720:
localparam aw = 8;
localparam aw = 8;


function [aw:0] binary_to_gray;
function [aw:0] binn_to_gray;
input [aw:0] binn;
input [aw:0] binn;
begin :b2g
begin :b2g
binary_to_gray = binn ^ (binn >> 1);
binn_to_gray = binn ^ (binn >> 1);
end
end
endfunction
endfunction


function [aw:0] gray_to_binary;
function [aw:0] gray_to_binn;
input [aw:0] gray;
input [aw:0] gray;
begin :g2b
begin :g2b
Line 4,736: Line 4,736:
binn[i] = ^(gray >> i);
binn[i] = ^(gray >> i);
end
end
gray_to_binary = binn;
gray_to_binn = binn;
end
end
endfunction
endfunction
Line 4,746: Line 4,746:
for(ii=0; ii < 10; ii=ii+1) begin
for(ii=0; ii < 10; ii=ii+1) begin
gray = binary_to_gray(ii[aw:0]);
gray = binn_to_gray(ii[aw:0]);
binn = gray_to_binary(gray);
binn = gray_to_binn(gray);
$display("test_graycode: i:%x gray:%x:%b binn:%x", ii[aw:0], gray, gray, binn);
$display("test_graycode: i:%x gray:%x:%b binn:%x", ii[aw:0], gray, gray, binn);
end
end

$stop;
$stop;
end
end