verilog - 在可综合的verilog中,我们可以在生成 block 中使用赋值语句吗?

标签 verilog

例如,我有下面的代码。我们可以在可综合的 verilog 中的生成 block 内分配连线吗?我们可以在可综合的verilog中的generate block 内使用赋值语句吗?

genvar i;
generate
        for (i = 0; i < W; i=i+1) begin:m
                wire [2:0] L;
                assign L[1:0] = { a[i], b[i] };
        end
endgenerate

最佳答案

是的。有可能的。生成语句只是合成器的代码生成器指令。基本上,它只是循环展开。这是如果循环可以静态地阐述的话。也就是说,循环执行的次数应该在编译时就可以确定。

genvar i;        
generate        
for (i = 0; i < 2 ; i++) {        
  assign x[i] = i;}        
endgenerate 

unrolls into         
assign x[0] = 0;        
assign x[1] = 1;

关于verilog - 在可综合的verilog中,我们可以在生成 block 中使用赋值语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083361/

相关文章:

verilog - 为什么不在 Verilog 中综合延迟?

verilog - verilog中的>>>符号是什么?

logic - 什么时候应该使用 reg 而不是wire?

environment-variables - 如何在 Verilog/System Verilog 中读取环境变量?

verilog - 环形振荡器改变频率?

verilog - 如何在 Verilog 上显示字符串

compiler-errors - ModelSim寄存器是非法错误

verilog $readmemh 对于 50x50 像素的 rgb 图像花费太多时间

verilog - 始终阻止具有多种敏感性

operators - Verilog问号(?)运算符