// Glitch detection for positive edge
always @(posedge clk_out or negedge resetn) begin
if (!resetn) begin
prev_clk_time_pos <= 0;
curr_clk_time_pos <= 0;
end else begin
curr_clk_time_pos <= $realtime; // Store current positive edge time
// Check pulse width between the previous and current positive edges
if (prev_clk_time_pos != 0) begin
if ((curr_clk_time_pos - prev_clk_time_pos) < MIN_PULSE_WIDTH) begin
$display("ERROR: Glitch detected on clk_out (positive edge) at time %0t. Pulse width = %0t is less than minimum allowed %0t.",$realtime, curr_clk_time_pos - prev_clk_time_pos, MIN_PULSE_WIDTH);
end
end
prev_clk_time_pos <= curr_clk_time_pos; // Update previous positive edge time
end
end
// Glitch detection for negative edge
always @(negedge clk_out or negedge resetn) begin
if (!resetn) begin
prev_clk_time_neg <= 0;
curr_clk_time_neg <= 0;
end else begin
curr_clk_time_neg <= $realtime; // Store current negative edge time
// Check pulse width between the previous and current negative edges
if (prev_clk_time_neg != 0) begin
if ((curr_clk_time_neg - prev_clk_time_neg) < MIN_PULSE_WIDTH) begin
$display("ERROR: Glitch detected on clk_out (negative edge) at time %0t. Pulse width = %0t is less than minimum allowed %0t.",$realtime, curr_clk_time_neg - prev_clk_time_neg, MIN_PULSE_WIDTH);
end
end
prev_clk_time_neg <= curr_clk_time_neg; // Update previous negative edge time
end
end
i tried in above but not able to detect properly