为什么我会得到一个;“分配时不兼容的类型”;verilog中的错误?

为什么我会得到一个;“分配时不兼容的类型”;verilog中的错误?,verilog,Verilog,我有下面的Verilog代码,为什么我会得到“分配时的不兼容类型”-分配错误“pwmData=4'b1000;”?我在活动HDL9.2中得到了错误 module PwmTestbench; parameter dataWidth = 4; reg clock, reset, pwmData[3:0], loadPwmData; wire pwmOut; Pwm #(.dataWidth(dataWidth)) pwm ( .clk(clock), .reset(reset), .data(

我有下面的Verilog代码,为什么我会得到“分配时的不兼容类型”-分配错误“pwmData=4'b1000;”?我在活动HDL9.2中得到了错误

module PwmTestbench;

parameter dataWidth = 4;

reg clock, reset, pwmData[3:0], loadPwmData;
wire pwmOut;

Pwm #(.dataWidth(dataWidth)) pwm (
.clk(clock),
.reset(reset),
.data(pwmData),
.load(loadPwmData),
.out(pwmOut)
);

initial begin
    clock = 1'b1;
    reset = 1'b1;
    loadPwmData = 1'b0;
end

always begin
    #1 clock = !clock;
end

initial begin
    #1   pwmData = 4'b1000;     // # Error: VCP2852 pwm_tb.v : (29, 1): Incompatible types at assignment: .pwmData<reg[3:0]> <- 4'b1000<[3:0]bit>.
    #1   loadPwmData = 1'b1;
    #2   loadPwmData = 1'b0;
    #1   reset = 1'b0;
    #512 $finish;
end

endmodule
模块PwmTestbench;
参数dataWidth=4;
reg时钟,复位,pwmData[3:0],加载pwmData;
电线;
脉宽调制#(.dataWidth(dataWidth))脉宽调制(
.clk(时钟),
.重置(重置),
.数据(pwmData),
.加载(loadPwmData),
.out(pwmOut)
);
初始开始
时钟=1'b1;
复位=1'b1;
loadPwmData=1'b0;
结束
总是开始
#1时钟=!时钟;
结束
初始开始

#1 pwmData=4'b1000;/#错误:VCP2852 pwm_tb.v:(29,1):分配时类型不兼容:.pwmData
pwmData[3:0]
定义一个由1位条目组成的4元素数组

如果要创建4位寄存器(这与4x 1位阵列不同),则范围在另一侧:


reg[3:0]pwmData

pwmData[3:0]
定义一个由1位条目组成的4元素数组

如果要创建4位寄存器(这与4x 1位阵列不同),则范围在另一侧:

reg[3:0]pwmData