1

这样的事情可能吗?

parameter width; wire[width-1] a_net = (width)'b0;

我基本上需要一个变量来控制右侧的宽度。我计划在测试台上使用它,我只需要更改parameter width at the beginning of the file,并且此参数设置所有其他出现的'a_net'.

如果这不起作用 - 还有其他解决方法吗?

谢谢,吉姆

4

2 回答 2

4

在示例中,您可以只使用 localparam 而不是常量线。

localparam ZERO = 'b0; // Syntax for RHS discussed below.

对于 RHS(右侧)参数,您可以使用复制运算符。

{ WIDTH {1'b0}}; //Repeats 1'b0 WIDTH times.

全1

{ WIDTH {1'b1}}; 

对于 Max Signed (MSB == 0) 混合连接和复制,两者都使用{}

{1'b0, { WIDTH-1 { 1'b1 }} };

自 2012 年起,SystemVerilog 可以使用'00 与左侧相同的宽度。'1都是1。

于 2013-05-23T07:31:20.190 回答
1

我认为您还需要指定电线的 LSB:

parameter WIDTH = 16;

wire [WIDTH-1:0] a_net = 0;
于 2013-05-23T10:32:12.973 回答