本文主要是介绍Verilog中使用generate…for语句简化代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在某个module中包含了很多相似的连续赋值语句,请使用generata…for语句编写代码,替代该语句,要求不能改变原module的功能。
原代码如下:
(CSDN代码块不支持Verilog,代码复制到notepad++编辑器中,语言选择Verilog,看得更清楚)
module template_module( input [7:0] data_in,output [7:0] data_out
);assign data_out [0] = data_in [7];assign data_out [1] = data_in [6];assign data_out [2] = data_in [5];assign data_out [3] = data_in [4];assign data_out [4] = data_in [3];assign data_out [5] = data_in [2];assign data_out [6] = data_in [1];assign data_out [7] = data_in [0];endmodule
简化后代码:
`timescale 1ns/1ns
module gen_for_module( input [7:0] data_in,output [7:0] data_out
);
genvar i;
generatefor(i=0;i<8;i=i+1)begin assign data_out[i] = data_in[7-i];end
endgenerateendmodule
这篇关于Verilog中使用generate…for语句简化代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!