本文主要是介绍【牛客】VL65 状态机与时钟分频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
题目描述:
使用状态机实现时钟分频,要求对时钟进行四分频,占空比为0.25
信号示意图:
clk为时钟
rst为低电平复位
clk_out 信号输出
Ps 本题题解是按照1000的状态转移进行的,不按照此状态进行,编译器可能报错但没有影响。
波形示意图:
输入描述:
clk为时钟
rst为低电平复位
输出描述:
clk_out 信号输出
`timescale 1ns/1nsmodule huawei7(input wire clk ,input wire rst ,output reg clk_out
);//*************code***********//reg [2:0] state_r = 3'd0, state_s;always @(posedge clk, negedge rst) beginif (~rst) beginstate_r <= 3'd0;end else beginstate_r <= state_s;end
endalways @(*) begincase (state_r)0: state_s = 1;1: state_s = 2;2: state_s = 3;3: state_s = 0;default: state_s = 0;endcase
endalways @(posedge clk, negedge rst) beginif (~rst) beginclk_out <= 1'b0;end else begincase (state_s)default: clk_out <= 1'b0;1: clk_out <= 1'b1;endcaseend
end//*************code***********//
endmodule
这篇关于【牛客】VL65 状态机与时钟分频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!