0

私は Verilog を初めて使用します。誰かがこのエラーを理解するのを手伝ってくれたら本当にありがたいです:

このモジュールをインスタンス化するテスト ベンチPU_tbを作成しようとしています。

PU_conv #(
.image_width         ( image_width        ),
.image_height        ( image_height       ),
.kernel_width        ( kernel_width       ),
.kernel_height       ( kernel_height      )
) convolution (
.ACLK               ( ACLK                ), //input    
.image              ( image               ), //input
.kernel             ( kernel              ), //input
.result             ( result              )  //output    
);

モジュール PU_conv は次のようになります。

module PU_conv 
#( //Parameters
parameter integer image_width   = 10,
parameter integer image_height  = 4,
parameter integer kernel_width  = 2,
parameter integer kernel_height = 2
)( //PORTS
input   wire                                   ACLK,
input   wire [0:image_width][image_height:0]   image,
input   wire [0:kernel_width][kernel_height:0] kernel,
output  reg [0:image_width][image_height:0]    result
);

次のエラーが表示されます。

エラー: 'PU_tb' でパラメーター 'image_height' をバインドでき
ません エラー: 'PU_tb' でパラメーター 'image_width' を
バインドできません エラー: 'PU_tb' でパラメーター 'kernel_height' をバインドできません エラー: ' で
パラメーター 'kernel_width' をバインドできませんPU_tb'

カーネルと画像の幅と高さは次のように宣言されます。

reg[5:0] param_kw;
reg[5:0] param_kh;
reg[5:0] param_iw;
reg[5:0] param_ih; ....

integer kernel_width, kernel_height, image_width, image_height;
always @(param_kw)
    kernel_width = param_kw;
always @(param_kh)
    kernel_height = param_kh;
always @(param_iw)
    image_width = param_iw;
always @(param_ih)
    image_height = param_ih;

私は何を間違っていますか?

4

1 に答える 1