2017-11-16 5 views
0
module rff_try_1(q,inp,clk); 
input clk,inp; 
output q; 
reg q; 

DFF dff0(q,inp,clk); 
endmodule 

module DFF(q,inp,clk); 
input inp,clk; 
output q; 
reg q; 
always @ (posedge clk)begin 
if(clk)begin 
q=inp; 
end 
end 

endmodule 

ich hier zwei Module bin mit aber Ausgang kommt nicht Ich versuche, zwei Bit-Rechtsschieberegister zu machen, aber 1. Ich habe ein einziges Bit-Register zu machen, aber auch das ist funktioniert nichtzwei Modul Verilog funktioniert nicht

Antwort

0

Es gibt mehrere Fehler im Code.

1) Die Linie if(clk)begin und relevante end entfernt werden soll, beschreibt bereits posedge clk Triggerbedingung des Flip-Flops.

2) Für die sequentielle Logik ist eine nicht blockierende Zuordnung (<=) erforderlich.

Der always Block sollte wie folgt lauten:

always @ (posedge clk) begin 
    q <= inp; 
end 

3) Einige Simulatoren sich nicht beschweren, aber Signal q sollte wire in Modul rff_try_1 sein.

wire q; 

Simulation

simuliert I den Code (nach den Änderungen) auf EDA Playground mit dem unten Prüfstand. Verwendet Icarus Verilog 0.9.7 als Simulator.

module tb(); 

    reg clk = 1; 
    always clk = #5 ~clk; 

    reg inp; 
    wire q; 

    rff_try_1 dut(q, inp, clk); 

    initial begin 
    inp = 0; 
    #12; 
    inp = 1; 
    #27; 
    inp = 0; 
    #24; 
    inp = 1; 
    end 

    initial begin 
    $dumpfile("dump.vcd"); $dumpvars; 
    #200; 
    $finish; 
    end 

endmodule 

Das Signal q wird als auf der Wellenform, wie zu sehen erwartet.

enter image description here

+0

danke Sir für Ihren Vorschlag, aber ich versuchte, was u gesagt haben, aber meine Ausgabe zeigt noch nichts !! Ich gebe dem clk den clock-Wert und dem inp-Wert 1. Sie können den Code in Ihrem PC überprüfen! möglicherweise wird es nichts zeigen –

+0

@DipjyotiDas Könnten Sie Ihre Testbench zu der Frage hinzufügen, damit ich das Problem reproduzieren kann? – ahmedus

+0

wir verwenden force clock zum clk und erzwingen konstante in xilinx zu inp und bekommen keine ausgabe in q, zeigt ihr pc irgendeinen ausgang ?? –