gpt4 book ai didi

verilog - 有没有办法在 Verilog 中执行嵌套的生成语句?

转载 作者:行者123 更新时间:2023-12-04 20:43:07 27 4
gpt4 key购买 nike

我试图通过使用 generate 语句来减少一些代码,但我只能弄清楚如何通过嵌套来做,但我认为这是不允许的。

我所拥有的本质上是一些运行的 for 循环(需要生成),并且在其中我想根据构建代码时设置的值运行代码的三个部分之一(然后需要第二次生成) .有没有办法做到这一点并使工具满意?

这是我正在尝试的快速而肮脏的图片:

    //TAPS_PER_CHAN is a value defined when the code is built
genvar srcNode, dstNode, tapIdx;
generate
for (dstNode=0; dstNode<NODES; dstNode=dstNode+1)
begin: dstForLoop
generate
if(TAPS_PER_CHAN <= 4)
begin
call module one
end
else if (TAPS_PER_CHAN <= 8)
begin
call module two
end
else if (TAPS_PER_CHAN <= 16)
begin
call module three
end
endgenerate
end
endgenerate

最佳答案

是的,只需删除然后嵌套 generate/endgenerate关键词。
IEEE Std 1800-2012 § 27 生成结构。

    //TAPS_PER_CHAN is a value defined when the code is built
genvar srcNode, dstNode, tapIdx;
generate
for (dstNode=0; dstNode<NODES; dstNode=dstNode+1)
begin: dstForLoop
// generate <-- remove this
if(TAPS_PER_CHAN <= 4)
begin
call module one
end
else if (TAPS_PER_CHAN <= 8)
begin
call module two
end
else if (TAPS_PER_CHAN <= 16)
begin
call module three
end
// endgenerate <-- remove this
end
endgenerate

示例 here

关于verilog - 有没有办法在 Verilog 中执行嵌套的生成语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22640336/

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