2017-07-08 4 views
0

j'ai écrit le banc de test suivant pour tester mon code Verilog:Banc d'essai ne pas atteindre dernier cas de test en Verilog

module HalfAdder_Test; 
wire sum; 
wire carry; 
reg a = 0; 
reg b = 0; 

initial begin 
    $dumpvars(0, HalfAdder_Test); 

    # 10 a = 0; b = 0; 
    # 30 a = 1; b = 0; 
    # 50 a = 0; b = 1; 
    # 70 a = 1; b = 1; 

    # 90 $stop; 
end 

HalfAdder ha (a, b, sum, carry); 

initial begin 
    $monitor("a: %h, b: %h, sum: %h carry: %h", a, b, sum, carry); 
end 
endmodule 

module FullAdder_Test; 
wire sum; 
wire carry; 
reg a = 0; 
reg b = 0; 
reg c = 0; 

initial begin 
    $dumpfile("test.vcd"); 
    $dumpvars(0, FullAdder_Test); 

    # 0 a=0; b=0; c=0; 
    # 10 a=1; b=0; c=0; 
    # 20 a=0; b=1; c=0; 
    # 30 a=1; b=1; c=0; 
    # 40 a=0; b=0; c=1; 
    # 50 a=1; b=0; c=1; 
    # 60 a=0; b=1; c=1; 
    # 70 a=1; b=1; c=1; 
    # 80 a=0; b=0; c=0; 

    # 90 $stop; 
end 

FullAdder fa (a, b, c, sum, carry); 

initial begin 
    $monitor("a: %h, b: %h, c: %h, sum: %h carry: %h", a, b, c, sum, carry); 
end 
endmodule 

Quand je lance le test je ne me une sortie pour mon # 70. Ceci est surprenant moi parce que je ne reçois aucune erreur et que tout semble fonctionner correctement, donc je n'arrive pas à comprendre pourquoi il n'atteindrait pas le dernier test. Voici ce que ma sortie ressemble: enter image description here

aussi une autre chose à noter est que je ne reçois jamais la sortie dans ma console pour la FullAdder_Test (cette ligne):

$monitor("a: %h, b: %h, c: %h, sum: %h carry: %h", a, b, c, sum, carry); 

Répondre

1

I figured it out. J'avais un autre fichier de test qui compilait et terminait le programme plus tôt. Il s'avère que si vous avez un fichier qui termine un test à un certain moment (avec $ stop) il mettra fin à TOUS les tests à ce moment-là.