Question: I ' m trying to create a random delay but for some reason it only works every other time. My code: always @ ( posedge

I'm trying to create a random delay but for some reason it only works every other time.
My code:
always @(posedge clk or posedge reset) begin
if (reset) begin
delay_counter <=0;
random_calculated <=0;
end else if (state == WAIT_DELAY) begin
if (!random_calculated) begin
delay_counter <=((random_seed %(DELAY_MAX - DELAY_MIN +1))+ DELAY_MIN)* CLK_FREQ;
random_calculated <=1;
end else if (delay_counter >0) begin
delay_counter <= delay_counter -1;
end
end else begin
random_calculated <=0; // Reset flag in other states
end
end
// Pseudo-random number generator (LFSR)
always @(posedge clk or posedge reset) begin
if (reset)
random_seed <=16'hACE1;
else if (state == IDLE)
random_seed <= random_seed ^ timer; // Add variability
else
random_seed <={random_seed[14:0], random_seed[15]^ random_seed[13]};
end

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!