2017-11-16 3 views
1

Ich habe eine grundlegende Volladdierer mit zwei Halbaddierer-Module und versuchen, es mit einer Testbench zu testen. Es gibt keine Kompilierungsfehler, aber am Ausgang (Waveform) bekomme ich Z und X für Sum und Carry. Ich stecke fest und bin mir nicht sicher, was ich als nächstes ansehen soll, um diesen Fehler zu korrigieren.Getting "Z und X" am Ausgang für eine grundlegende Full Adder

Irgendwelche Ratschläge in welchen nächsten Schritten (oder einigen Zeigern) überprüft werden müssen, um dies zu beheben, wäre hilfreich. Hier

ist die Verilog-Code für den Volladdierer:

module half_adder(x,y,S,C); 
 
input x,y; 
 
output S,C; 
 

 
xor G1(S,x,y); 
 
and G2(C,x,y); 
 

 
endmodule 
 

 
module full_adder(x,y,z,S,C); 
 
input x,y,z; 
 
output S,C; 
 
wire S1,C1,C2; 
 

 
half_adder HA1(S1,C1,x,y); 
 
half_adder HA2(S,C2,S1,z); 
 
or G3(C,C1,C2); 
 

 
endmodule

Prüfstand für die oben:

module tb_fulladder; 
 
wire S,C; 
 
reg x,y,z; 
 

 
full_adder DUT(x,y,z,S,C); 
 

 
initial 
 
begin 
 
x=1'b0;y=1'b0;z=1'b0; 
 
#50 
 
x=1'b0;y=1'b0;z=1'b1; 
 
#50 
 
x=1'b0;y=1'b1;z=1'b0; 
 
#50 
 
x=1'b0;y=1'b1;z=1'b1; 
 
#50 
 
x=1'b1;y=1'b0;z=1'b0; 
 
#50 
 
x=1'b1;y=1'b0;z=1'b1; 
 
#50 
 
x=1'b1;y=1'b1;z=1'b0; 
 
#50 
 
x=1'b1;y=1'b1;z=1'b1; 
 
end 
 

 
initial 
 
#500 
 
$finish; 
 

 
endmodule

Er re die Wellenform:

enter image description here

Antwort

0

Sie haben einen Fehler in Ihren Verbindungen zu half_adder. Sie müssen die Reihenfolge der Portsignale ändern. Wechsel:

half_adder HA1(S1,C1,x,y); 
half_adder HA2(S,C2,S1,z); 

zu:

half_adder HA1 (x,y,S1,C1); 
half_adder HA2 (S1,z,S,C2); 

Ich entdeckte dies, indem man die Wellenformen für die interne voll und Halbaddierer Signale suchen.

Aus diesem Grund ist es besser, Connection-by-Name anstelle von Connection-by-Position zu verwenden. Verwenden Sie zum Beispiel:

half_adder HA1 (.x(x), .y(y), .S(S1), .C(C1)); 

Mit dieser Syntax spielt die Reihenfolge der Ports keine Rolle. Siehe die IEEE Std 1800-2012, 23.3.2 Modul Instanziierungssyntax.

+1

Vielen Dank .. – sundar

Verwandte Themen