模块实例化中不允许串联运算符

Concatenation operator not allow in module instantiation

MUX32_16x1 inst9(muxR, dontNeed, addSub, AddSub, mult, shift, shift, wireAnd, wireOr, wireNor, {31{0}, addSub[31]}, dontNeed, dontNeed, dontNeed, dontNeed, dontNeed, dontNeed, OPRN[3:0]);

以上是我对 16x1 多路复用器的实例化,我试图通过这样做将前 31 位的一个参数设置为 0,只留下最后一位作为输入

{31{0}, addSub[31]}

我不确定程序为何会出现此错误

near ",": syntax error, unexpected ',', expecting '}'.

模块实例化中不允许使用花括号运算符吗?

抱歉,我对 Verilog 编程还很陌生

重复拼接时,需要用另一组大括号括起来,所以{31{1'b0}}等同于31'd0

尝试:

{{31{1'b0}}, addSub[31]}

或者:

{31'd0, addSub[31]}