这样的事情可能吗?
parameter width; wire[width-1] a_net = (width)'b0;
我基本上需要一个变量来控制右侧的宽度。我计划在测试台上使用它,我只需要更改parameter width at the beginning of the file
,并且此参数设置所有其他出现的'a_net'
.
如果这不起作用 - 还有其他解决方法吗?
谢谢,吉姆
在示例中,您可以只使用 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 可以使用'0
0 与左侧相同的宽度。'1
都是1。
我认为您还需要指定电线的 LSB:
parameter WIDTH = 16;
wire [WIDTH-1:0] a_net = 0;