سؤال

وأنا تصميم رقاقة باستخدام فيريلوج. لدي 3 counter.I قليلا يريدون أنه عندما العداد في حلقة 8TH لها، على يجب أن يكون هناك على مدار الساعة خلل و بعد ذلك normally.What العمل يمكن أن يكون السبل الممكنة لإنتاج خلل مدار الساعة في تصميم فيريلوج؟

هل كانت مفيدة؟

المحلول

وطريقة واحدة لمواطن الخلل حقن في إشارة على مدار الساعة هو استخدام force وrelease من testbench الخاص بك:

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

نصائح أخرى

ولذا أردت أساسا حافة ساعة اضافية؟ لا أستطيع أن أفكر في طريقة للقيام بذلك في RTL. قد تكون قادرا على القيام الإختراق القبيح الاستفادة من التأخير البوابة، ولكن هذا سيحتاج إلى وصفها على مدى درجة الحرارة وعملية الاختلافات.

وأود أن أوصى أن تفكر في حل آخر للمشكلة. لماذا تحتاج هذه الحافة ساعة اضافية؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top