gpt4 book ai didi

verilog - 在 Verilog 中的 Generate For 循环中实例化模块

转载 作者:行者123 更新时间:2023-12-04 21:51:33 25 4
gpt4 key购买 nike

我正在尝试使用 generate 在 Verilog 中实例化一些模块 block ,因为我将实例化它们的可变数量。

genvar i;
generate
for (i=1; i<=10; i=i+1) begin
status whatever_status (
.clk(clk),
.reset_n(reset_n),
.a(a[i]),
.b(b[i]),
.out(out[i])
);
end
endgenerate
a & b被声明为父模块的输入数组和 out被声明为一个连线数组。

我在这里做错了什么?这在 Verilog 中是不允许的吗? Quartus 告诉我:
Error (10644): Verilog HDL error at driver.v(63): this block requires a name

第 63 行是上面的 for 循环。任何帮助表示赞赏!

最佳答案

您可以将标签标识符应用于 begin - end在开始后带有冒号的 block (例如:begin : label - end。这一直是生成 block 的可选功能,尽管强烈推荐。Quartus 不应该给出错误。

满足 Quartus 的要求很容易解决——添加一个你想要的任何名称的标签:

genvar i;
generate
for (i=1; i<=10; i=i+1) begin : generate_block_identifier // <-- example block name
status whatever_status (
.clk(clk),
.reset_n(reset_n),
.a(a[i]),
.b(b[i]),
.out(out[i])
);
end
endgenerate

关于verilog - 在 Verilog 中的 Generate For 循环中实例化模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33899691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com