2016-04-11 2 views
0

古いSpartan2-会と私の足が濡れる一方で、私はセットアップにVerilogコードと1ビットの全加算器を試してみましたが、以下のようにテストベンチを伴う:のModelSim SE 5.7:予期しない「Z」と「X」

module full_adder(s, cout, a, b, cin); 
output s, cout; 
input a, b, cin; 

wire t1, t2, t3; 

xor (t1, a, b); 
xor (s, t1, cin); 
and (t2, t1, cin); 
and (t3, a, b); 
or (cout, t2, t3); 
endmodule 

テストベンチは:

module tb_full_adder; 

// Inputs 
reg a; 
reg b; 
reg cin; 

// Outputs 
wire s; 
wire cout; 

// Instantiate the Unit Under Test (UUT) 
full_adder uut (
    .s(s), 
    .cout(cout), 
    .a(a), 
    .b(b), 
    .cin(cin) 
); 

initial begin 
    // Initialize Inputs 
    a = 0; 
    b = 0; 
    cin = 0; 

    // Wait 100 ns for global reset to finish 
    #100; 

    //125 ns 
    #25; a = 1'b1; 
    //150 ns 
    #25; a = 1'b0; b = 1'b1; 
    //175 ns 
    #25; b = 1'b0; cin = 1'b1; 

end  
endmodule 

私はISEの最新バージョンは、任意のより多くのIIUC(おろかVivadoを)スパルタンデバイスのいずれかをサポートしていないので、ISE 10.1とのModelSim SE 5.7を使用する必要がありました。 問題はModelSimでの「Wave]ウィンドウには」HI-Zのいずれかとし、すべての信号を示しているか「X」を気にしないことです:

ModelSim SE 5.7 trace window

IセットアップISE 14.7での正確な同じプロジェクトであれば、コードもコンパイルおよびシミュレーション、この場合には、それは、より最近のISimだ、期待トレースを示しています

ISim (ISE 14.7)

その年齢のほか、ModelSimのとISimの違いは何ですか? 私は何が欠けていますか?

最高、 クリス

答えて

1

はModelSimとISimの間で異なるものは何もこの点ではありません。 Modelsimを使用すると、テストベンチをシミュレートすることができません。波形ビューアの信号名はすべて/tb_full_adder/uut/ではなく、/full_adder/で始まるので、わかります。私はModelSimのISim波形と同様の波形をテストベンチをシミュレートすることによって得ました。つまり、転写ウィンドウにvsim tb_full_adderと入力してください。

+0

Spot on。 ModelSimで開くために私は誤ってトップレベルのモジュールをクリックしましたが、テストフィクスチャーファイルではありませんでした。これは、「プロセス」ペインで「tb_full_adder.v」と「full_adder.v」のどちらかを使用してModelSimを実行できるため、波形が自動的に表示されると考えました。 – user2286339

関連する問題