古い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」を気にしないことです:
IセットアップISE 14.7での正確な同じプロジェクトであれば、コードもコンパイルおよびシミュレーション、この場合には、それは、より最近のISimだ、期待トレースを示しています
その年齢のほか、ModelSimのとISimの違いは何ですか? 私は何が欠けていますか?
最高、 クリス
Spot on。 ModelSimで開くために私は誤ってトップレベルのモジュールをクリックしましたが、テストフィクスチャーファイルではありませんでした。これは、「プロセス」ペインで「tb_full_adder.v」と「full_adder.v」のどちらかを使用してModelSimを実行できるため、波形が自動的に表示されると考えました。 – user2286339