Verilog将多个reg或wire分配给相同的值

时间:2017-08-04 17:10:39

标签: verilog

如何使用更精简的代码将多个reg分配给相同的值?这是我想要改进的代码:

a = 0;
b = 0;
c = 0;
d = 0;
e = 0;

2 个答案:

答案 0 :(得分:2)

你可以使用左手连接

以下示例说明了如何执行此操作。

reg a,b,c,d,e;
initial begin
    {a,b,c,d,e} = 5'b0;
end

除非你使用数组,否则没有其他更“'condenced'的方法。

reg [4:0] var;
...
var = 5'b0;

或者对于多维解包数组,您可以使用循环

reg [1:0] var [4:0];

...
for (i = 0; i < 5; i++) var[i] = 0;

答案 1 :(得分:2)

如果所有变量具有相同的位宽,因此要分配给这些变量的具有相同的位宽,则可以进行复制连接:

{a,b,c,d,e} = {5{value}};