概述
格雷码转二进制码
二进制码转格雷码
代码如下
//gray to bin
module gray2bin #(parameter ADDR_WIDTH=8)(
input [ADDR_WIDTH-1:0] grayin,
output [ADDR_WIDTH-1:0] binout,
output reg [ADDR_WIDTH-1:0] binout1,
output [ADDR_WIDTH-1:0] grayout
);
//调用gray2bin实现方式2的函数
assign binout=gray2bin(grayin);
gray2bin 实现方式1:always组合逻辑块
integer j;
always@(*)
for(j=0;j<ADDR_WIDTH;j=j+1)
binout1[j]= ^(grayin>>j);
//gray2bin 实现方式2:function组合逻辑块
function [ADDR_WIDTH-1:0] gray2bin ( input [ADDR_WIDTH-1:0] gray);
reg [31:0] i;
for(i=0; i<ADDR_WIDTH;i=i+1)
gray2bin[i]=^(gray>> i);
endfunction
//二进制转格雷码
assign grayout=binout1^(binout1>>1);
endmodule
tb(sv)如下
parameter ADDR_WIDTH=4;
class datarand;
rand bit [ADDR_WIDTH-1:0] data;
endclass
module tb_gray2bin( );
logic [ADDR_WIDTH-1:0] grayin,grayout, binout, binout1;
gray2bin #(.ADDR_WIDTH(ADDR_WIDTH)) gray2bin(
.grayin(grayin),
.binout(binout),
.binout1(binout1),
.grayout(grayout)
);
datarand dr;
integer k;
initial
begin
dr=new();
for(k=0;k<30;k=k+1)
begin
#10
assert(dr.randomize());
grayin=dr.data;
end
end
endmodule
最后
以上就是发嗲纸飞机为你收集整理的格雷码与二进制码转换的全部内容,希望文章能够帮你解决格雷码与二进制码转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复