题解 | #使用generate…for语句简化代码#

使用generate…for语句简化代码

https://www.nowcoder.com/practice/618cb8d16a2c4e87b9e305f6659efe40

使用generate…for语句简化代码
比较generate for 循环和本身的for循环区别:
  1. generate for
必须使用genvar对循环变量进行声明。例如声明循环变量 genvar index;
使用generate for(index = 0;index < 8; index = index + 1) begin :名字....... end endgenerate来进行编写循环体,generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。begin必须要有名称,因为标签会作为generate循环的实例名称
其中,generate for(循环变量初值;循环变量结束条件;循环具体执行操作)
generate for 多次用于assign语句对信号赋值.。是并行赋值


  1. for
对循环变量依旧需要声明,一般采用integer->对应的循环变量为整数
 for(index = 0;index < 8; index = index + 1) begin ....... end
 for(循环变量初值;循环变量结束条件;循环具体执行操作)
for语句常推荐用于always语句块中。

总结:
在循环、条件、分支语句中调用模块,必须使用generate dor,其余情况可随意。

`timescale 1ns/1ns
module gen_for_module( 
    input [7:0] data_in,
    output [7:0] data_out
);
genvar i;
generate for(i = 0; i < 8;i = i + 1)
begin : label
    assign data_out[i] = data_in[7-i];
end
endgenerate
endmodule


全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务