题解 | #状态机与时钟分频#
状态机与时钟分频
https://www.nowcoder.com/practice/25d694a351b748d9808065beb6120025
`timescale 1ns/1ns module huawei7( input wire clk , input wire rst , output reg clk_out ); //*************code***********// parameter s0=4'b1000,s1=4'b0100,s2=4'b0010,s3=4'b0001; reg[3:0]cs,ns; always@(posedge clk or negedge rst)begin if(!rst)cs<=s0; else cs<=ns; end always@(*)begin case(cs) s0:ns=s1; s1:ns=s2; s2:ns=s3; s3:ns=s0; default:ns=s0; endcase end always@(posedge clk or negedge rst)begin if(!rst)clk_out<=0; else if(ns==s1)clk_out<=1;//注意占空比为0.25,也就是高电平只占25% else clk_out<=0; end //*************code***********// endmodule