Frage

Ich bin der Gestaltung einen Chip ein Verilog verwenden. Ich habe ein 3-Bit-Counter.I möchten, dass, wenn der Zähler in der 8. Schleife ist, sollte es eine Uhr sein Glitch und danach Arbeit normally.What könnten die Möglichkeiten, einen Takt Glitch in einem produzierenden Verilog-Design?

War es hilfreich?

Lösung

Eine Möglichkeit einzuspritzen Störungen auf einem Taktsignal ist force und release von Ihrem Prüfstand zu verwenden:

module tb;

reg clk;
reg [2:0] cnt;
reg reset;

always begin
    #5 clk <= 0;
    #5 clk <= 1;
end

always @(posedge clk or posedge reset) begin
    if (reset) begin
        cnt <= 0;
    end else begin
        cnt <= cnt + 1;
    end
end

always begin: inject_clk_glitch
    wait(cnt == 7);
    #1 force clk = 1;
    #1 force clk = 0;
    #1 release clk;
end

initial begin
    reset = 1;
    #20 reset = 0;
    #500 $finish;
end

endmodule

Andere Tipps

Sie wollen also im Wesentlichen eine zusätzliche Taktflanke? Ich kann nicht denken Sie an einen Weg, dies in RTL zu tun. Sie kann in der Lage sein, eine hässliche Hack Verwendung Gate-Verzögerungen zu tun, aber dies müsste über Temperatur und Prozessschwankungen gekennzeichnet.

Ich würde empfehlen, dass Sie eine andere Lösung für Ihr Problem zu denken. Warum brauchen Sie diese zusätzliche Taktflanke?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top