If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
代码:
case (ctrl_state_r)
CTRL_STATE_IDLE : begin
if(wait_cnt_r < CTRL_WAIT_TICKS) begin
wait_cnt_r <= wait_cnt_r + 32'd1;
end
else begin
wait_cnt_r <= 32'd0;
req_wr_pulse_r <= 1'b0;
req_rd_pulse_r <= 1'b0;
ctrl_state_r <= CTRL_WR_REG_STATE;
end
end
CTRL_WR_REG_STATE : begin
if (req_clk_cnt_r < 16'd1) begin
req_wr_pulse_r <= 1'b1;
req_clk_cnt_r <= req_clk_cnt_r + 4'd1;
end
else begin
req_wr_pulse_r <= 1'b0;
if(wait_cnt_r < CTRL_WAIT_TICKS) begin
wait_cnt_r <= wait_cnt_r + 32'd1;
end
else begin
wait_cnt_r <= 32'd0;
req_clk_cnt_r <= 4'd0;
ctrl_state_r <= CTRL_RD_REG_STATE;
end
end
end
CTRL_RD_REG_STATE : begin
if (req_clk_cnt_r < 16'd1) begin
req_rd_pulse_r <= 1'b1;
req_clk_cnt_r <= req_clk_cnt_r + 4'd1;
end
else begin
req_rd_pulse_r <= 1'b0;
if(wait_cnt_r < CTRL_WAIT_TICKS) begin
wait_cnt_r <= wait_cnt_r + 32'd1;
end
else begin
wait_cnt_r <= 32'd0;
req_clk_cnt_r <= 4'd0;
ctrl_state_r <= CTRL_RD_DATA_STATE;
end
end
end
CTRL_RD_DATA_STATE: begin
if(adc_reload) begin
ctrl_state_r <= CTRL_STATE_IDLE;
end
else begin
ctrl_state_r <= ctrl_state_r;
end
end
default: begin
req_wr_pulse_r <= 1'b0;
req_rd_pulse_r <= 1'b0;
ctrl_state_r <= CTRL_STATE_IDLE;
req_clk_cnt_r <= 4'd0;
wait_cnt_r <= 32'd0;
end
endcase