4

Verilogを使用してチップを設計しています。私は3ビットのカウンターを持っています。カウンターが8番目のループにあるときに、クロックグリッチが発生し、その後は正常に動作するようにしたいと思います。Verilogデザインでクロックグリッチを生成するための可能な方法は何でしょうか?

4

2 に答える 2

6

クロック信号にグリッチを注入する1つの方法は、テストベンチを使用forcereleaseてテストベンチから取得することです。

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
于 2010-02-12T13:56:14.690 に答える
1

それで、あなたは本質的に余分なクロックエッジが欲しいですか?RTLでこれを行う方法を考えることはできません。ゲート遅延を利用して醜いハックを行うことができるかもしれませんが、これは温度とプロセスの変動にわたって特徴付けられる必要があります。

問題の別の解決策を考えることをお勧めします。なぜこの余分なクロックエッジが必要なのですか?

于 2010-02-12T13:13:05.933 に答える