题解 | #使用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


全部评论

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务