Herstellung eine Uhr Glitch in einem Verilog-Design
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?
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?