1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 格雷码与二进制码转换

格雷码与二进制码转换

时间:2023-11-13 07:12:32

相关推荐

格雷码与二进制码转换

格雷码转二进制码

二进制码转格雷码

代码如下

//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;endclassmodule 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;initialbegindr=new();for(k=0;k<30;k=k+1)begin#10assert(dr.randomize());grayin=dr.data;endendendmodule

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。