gray to bin代码写的方式均可
需要注意:
1、reg型表示的寄存器类型。always模块内被赋值的信号,必须定义为reg型,代表触发器。
2、使用generate循环时候,必须先在genvar声明循环中使用的索引变量名
`timescale 1ns / 1ps
module gray2bin#(
parameter date_width=4
)
(
input [date_width-1:0] gray,
output reg [date_width-1:0] bin
);
integer i;
always@(*)begin
for(i=0;i<date_width;i=i+1)
bin[i]=^(gray>>i);
end
endmodule
//module gray2bin#(
// parameter date_width=4
//)
//(
// input [date_width-1:0] gray,
// output [date_width-1:0] bin
// );
//
//genvar i;
//generate
// for(i=0;i<date_width;i=i+1)
// begin:bitt
// assign bin[i]=^(gray>>i);
// end
//endgenerate
//endmodule
bin to gray
module bin2gray #(
parameter date_width=4
)
(
input [date_width-1:0]bin,
output [date_width-1:0]gray
);
assign gray=bin^(bin>>1);
endmodule