2017-05-13 22 views
-1

私の問題は本当にシンプルなようですが、何とかそれを動作させることができません。 私は3ビット信号を出力するモジュールをVerilogで作成しようとしています。私はこれまでに非常に多くの異なる方法を試しましたが、どれもうまくいかないようです。 私はコードをコンパイルするためにVeriwellを使用しています。私は大学でこれをやっているので、私はそれを使うことを余儀なくされていますので、別のコンパイラを勧めないでください。Verilogモジュールの3ビット出力

ここで私が試したいくつかの方法があるが、それらのどれも (私は常に警告「ポートのサイズがポート#2に一致していません」を取得)働いた

module testmod (in, out); 
    input [2:0] in; 
    output [2:0] out; 

    wire [2:0] out; 
    assign out = in; //trying just to connect in to out 
endmodule 

module testmod (in, out); 
    input [2:0] in; 
    output [2:0] out; 

    wire [2:0] out; 
    assign out = 3'b1; //trying to assign a random value to out 
endmodule 

module testmod (in, out); 
    input [2:0] in; 
    output [2:0] out; 
    reg [2:0] test; 
    always @(in) 
    test = in;  //saving in in a register (which i believe is unnecessary but I've tried it nonetheless) 

    wire [2:0] out; 
    assign out = test; //trying just to connect in to out 
endmodule 

私はこのようなモジュールをインスタンス化します:

testmod mod (.in(3'b1), .out(out)); 
+0

EXACT警告メッセージを送信します。コード内のどの行が参照されているかを表示します。 edaplaygroundでコードを実行します。メッセージはもっと意味があるかもしれません。 – toolic

+1

テストベンチでどのように「out」と宣言しましたか?あなたはそれをまったく宣言しましたか?あなたはそれを1ビットの信号として宣言しましたか( 'wire out;')? 'wire [2:0] out 'として宣言する必要があります。 – toolic

答えて

0

私のテストベンチで3ビット信号として宣言することは、その仕事をしました。私はテストベンチで宣言する必要はないと思われる1ビットの出力信号しか扱っていなかったので、これは私の頭にはあまり出ませんでした。

ありがとうございました!

関連する問題