2012-04-02 11 views
4

にモジュールの出力を接続し、次のように私は、レジスタへのモジュールの出力を接続しようとしている:レジスタ

module test 
(
    input rst_n, 
    input clk, 
    output reg [7:0] count 
); 
    always @(posedge clk or negedge rst_n) begin 
    if(!rst_n) begin 
     count <= 7'h0; 
    end else begin 
     if(count == 8) begin 
     count <= count; 
     end else begin 
     count <= count + 1'b1; 
     end 
    end 
    end 
endmodule 

module test_tb; 
    reg clk; 
    reg rst_n; 
    reg [7:0] counter; 

    initial begin 
     clk = 1'b0; 
     rst_n = 1'b0; 
     # 10; 
     rst_n = 1'b1; 
    end 
    always begin 
     #20 clk <= ~clk; 
    end 

    test test1 (
     .rst_n(rst_n), 
     .clk(clk), 
     .count(counter) /* This is the problematic line! */ 
    ); 
endmodule 

私はModelSimでのエラー「Illegal output or inout port connection for "port 'count'」を得ました。エラーが私のコードと一致しているにもかかわらず、私は基本的にモジュール出力をレジスタに接続できない理由を理解していません。

モジュール出力をVerilogのレジスタに接続できないのはなぜですか?

答えて

6

手順alwaysブロック内のregに値を割り当てることができるのはです。 regをモジュールインスタンスから起動することはできません。それは連続 assisgnmentになります。

wiretest_tbの内側に使用します。