Создание сбоя часов в дизайне Verilog - PullRequest
3 голосов
/ 12 февраля 2010

Я создаю чип, используя verilog. У меня есть 3-битный счетчик. Я хочу, чтобы когда счетчик находился в своем 8-м цикле, должен был быть сбой часов и после этого он работал нормально. Какие могут быть возможные способы создания сбоя часов в verilog? дизайн

Ответы [ 2 ]

6 голосов
/ 12 февраля 2010

Один из способов добавить глюки на тактовый сигнал - использовать force и release из своего тестового стенда:

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
1 голос
/ 12 февраля 2010

То есть, вы хотите получить дополнительное преимущество? Я не могу придумать способ сделать это в RTL. Возможно, вам удастся сделать некрасивый взлом, используя задержки затвора, но это необходимо охарактеризовать по температуре и изменениям процесса.

Я бы порекомендовал вам подумать о другом решении вашей проблемы. Зачем вам нужен этот дополнительный край часов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...