2016-04-11 12 views
0

Ben kurulum için aşağıdaki gibi bir 1 bitlik Verilog kodu ile tam toplayıcı ve beraberindeki testbençi denedik eski Spartan2-Kurulu ile ıslak ayaklarımı elde ederken:ModelSim SE 5.7: Beklenmeyen 'Z' ve '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 

Testbench:

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 

Ben İMKB'nin daha yeni sürümleri artık IIUC (dursun Vivado) Spartan cihazların herhangi desteklemediğinden İMKB 10.1 ve ModelSim SE 5.7 kullanmak zorunda kaldı. konu Modelsim'e ait 'Dalga penceresi' hi-Z ya kadar tüm sinyalleri gösterir ise 'X' umurumda değil olmasıdır:

ModelSim SE 5.7 trace window

Ben kurulum İMKB 14.7 tam olarak aynı proje için, kodu da derler ve simülasyon, bu durumda daha yeni işim var, beklenen izlerini gösterir:

ISim (ISE 14.7)

onun yaşı yanı sıra Modelsim'e ve işim arasındaki fark nedir

? Neyi eksik?

iyi

, Chris bu açıdan ModelSim ve İsim arasında farklı bir şey yok

cevap

1

. Modelsim ile test tezgahınızı simüle etmediniz. Bunu söyleyebilirim çünkü dalga biçimi görüntüleyicisindeki sinyal adları /tb_full_adder/uut/ yerine /full_adder/'u başlatır. Modelimdeki ISIM dalga formunuza benzer bir dalga formu elde etmeyi, testbenimi simüle ederek, transkript penceresinde vsim tb_full_adder yazarak yönetmeyi başardım.

+0

Spot on. ModelSim'de açmak için üst düzey modülü yanlışlıkla tıklattım, ancak test fikstür dosyasını değil. Çünkü "İşlemler" bölmesi, "full_adder.v" nin yanı sıra "tb_full_adder.v" ile de ModelSim'i çalıştırmama izin verdi, bu yüzden dalga formlarını otomatik olarak göstereceğini düşündüm. – user2286339