gpt4 book ai didi

verilog - 防止 Systemverilog 文本替换宏中的参数替换

转载 作者:行者123 更新时间:2023-12-02 12:13:09 24 4
gpt4 key购买 nike

`define CONNECT(i) \
some_mod inst1 (.i(i));

module test ();
logic a;
`CONNECT(a)
endmodule

在 CONNECT 宏中,如何防止 asome_mod inst1 (.i(i ));?我正在寻找这样的扩展版本:

module test ();
logic a;
some_mod inst1 (.i(a));
endmodule

而不是下面的版本是错误的

module test ();
logic a;
some_mod inst1 (.a(a));
endmodule

我知道我可以将 some_mod 的端口名称设为 i 以外的名称,或者将宏参数名称从 i 更改为其他名称别的。我只是想知道我想做的事情是否可行。

最佳答案

由于您已经知道 some_mod 模块的所有端口名称,因此您只需为宏选择一个唯一的字符串即可。假设 some_mod 没有名为 SIG 的端口:

`define CONNECT(SIG) \
some_mod inst1 (.i(SIG));

更新:回答新问题:否,引用IEEE Std 1800-2012后,选择性地避免某些替换是不可行的。

更新2:正如斯坦所证明的,有一个棘手的解决方案;由于它并不简单,因此应该对其进行大量注释。

关于verilog - 防止 Systemverilog 文本替换宏中的参数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26594603/

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