Verilog中的参数化网络宽度

Verilog中的参数化网络宽度,verilog,fpga,hdl,Verilog,Fpga,Hdl,这样的事情可能吗 参数宽度;线[width-1]a_net=width'b0 我基本上需要一个变量来控制右手边的宽度。我计划在一个测试台上使用它,我只需要在文件开头更改参数宽度,该参数设置“a_net”的所有其他引用中的净宽度 如果这不起作用-还有其他解决办法吗 谢谢,Jim在本例中,您可以使用localparam而不是常量连接 localparam ZERO = 'b0; // Syntax for RHS discussed below. 对于RHS右侧参数,可以使用复制运算符 { WID

这样的事情可能吗

参数宽度;线[width-1]a_net=width'b0

我基本上需要一个变量来控制右手边的宽度。我计划在一个测试台上使用它,我只需要在文件开头更改参数宽度,该参数设置“a_net”的所有其他引用中的净宽度

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


谢谢,Jim

在本例中,您可以使用localparam而不是常量连接

localparam ZERO = 'b0; // Syntax for RHS discussed below.
对于RHS右侧参数,可以使用复制运算符

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

{ WIDTH {1'b1}}; 
对于最大有符号MSB==0的混合压缩和复制,两者都使用{}


从2012年起,SystemVerilog可以使用“0表示0,宽度与左侧相同。”1所有1。

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

localparam ZERO = 'b0; // Syntax for RHS discussed below.
对于RHS右侧参数,可以使用复制运算符

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

{ WIDTH {1'b1}}; 
对于最大有符号MSB==0的混合压缩和复制,两者都使用{}


从2012年起,SystemVerilog可以使用“0表示0,宽度与左侧相同。”1全部1。

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

parameter WIDTH = 16;

wire [WIDTH-1:0] a_net = 0;

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

parameter WIDTH = 16;

wire [WIDTH-1:0] a_net = 0;