「Verilog学习笔记」状态机与时钟分频

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

状态机写法

复制代码
`timescale 1ns/1ns

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

//*************code***********//
	parameter S0 = 0, S1 = 1 , S2 = 2 , S3 = 3 ; 
	reg [2:0] state, nstate ; 

	always @ (posedge clk or negedge rst) 
		if (~rst) state <= 0 ; 
		else state <= nstate ; 

	always @ (*) 
		case (state) 
			S0 : nstate = S1 ; 
			S1 : nstate = S2 ; 
			S2 : nstate = S3 ; 
			S3 : nstate = S0 ; 
			default : nstate = S0 ; 
		endcase

	always @ (posedge clk or negedge rst) 
		if (!rst) clk_out <= 0 ; 
		else if (state == S0) clk_out <= 1 ; 
		else clk_out <= 0 ; 


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

不用状态机的写法

复制代码
`timescale 1ns/1ns

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

//*************code***********//
	reg [2:0] cnt ; 

	always @ (posedge clk or negedge rst) 
		if (!rst) cnt <= 0 ; 
		else cnt <= cnt == 3 ? 0 : cnt + 1 ; 

	always @ (posedge clk or negedge rst) 
		if (!rst) clk_out <= 0 ; 
		else if (cnt == 0) clk_out <= 1 ; 
		else clk_out <= 0 ; 


//*************code***********//
endmodule
相关推荐
GlueNa2SiO37 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
Capricorn19889 小时前
解决全网抄 Karpathy 导致的 LLM Wiki 污染?基于知芽 Notebook Skill 的 raw/ 笔记法排障指南
大数据·论文阅读·人工智能·笔记·论文笔记
壹玖玖肆9 小时前
openGauss使用笔记
笔记
宵时待雨9 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp
HUSTCH202111 小时前
FPGA中的LUT和DSP
fpga开发
噜~噜~噜~11 小时前
操作系统笔记-2.3.2.1 进程互斥的软件实现方法
笔记·操作系统
小弥儿11 小时前
GitHub今日热榜 | 2026-08-26:AI 大脑与知识管理扎堆
人工智能·学习·开源·github
荷蒲11 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
云贝教育-郑老师11 小时前
【麒麟服务器系统交付:一个DBA的六年信创实战笔记】
服务器·笔记·dba
中科高级技工学校12 小时前
乌鲁木齐中医康复学习经历分享
大数据·学习