题解 | #状态机与时钟分频#

状态机与时钟分频

https://www.nowcoder.com/practice/25d694a351b748d9808065beb6120025

`timescale 1ns/1ns

module huawei7(
	input wire clk  ,
	input wire rst  ,
	output reg clk_out
);

parameter s0='b0001,s1='b0010,s2='b0100,s3=1000;

reg [3:0] state,next_state;

//*************code***********//
always@(posedge clk or negedge rst) begin
  if(!rst) begin
	state <= s0;
  end
  else begin
	state <= next_state;
  end
end

always@(*) begin
  case(state)
    s0:next_state = s1;
	s1:next_state = s2;
	s2:next_state = s3;
	s3:next_state = s0;
    default:next_state = s0;
  endcase
end

always@(posedge clk or negedge rst) begin
  if(!rst) begin
	clk_out <= 'b0;
  end
  else if(state == s0) begin
	clk_out <= 'b1;
  end
  else begin
	clk_out <= 'b0;
  end
end

//*************code***********//
endmodule

全部评论

相关推荐

高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务