「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
相关推荐
辰同学ovo7 分钟前
从全局登录状态管理学习 Redux
前端·javascript·学习·react.js
ting94520007 分钟前
告别无效学习:Scholé 如何用 AI 重构职场学习,让学习直接嵌入工作流
人工智能·学习·重构
xian_wwq7 分钟前
【学习笔记】Harness到底是什么
笔记·学习·ai·harness
二哈赛车手9 分钟前
新人笔记---项目中简易版的RAG检索后评测指标(@Recall ,Mrr..)实现
java·开发语言·笔记·spring·ai
wuxinyan12314 分钟前
大模型学习之路004:RAG 零基础入门教程(第一篇):基础理论与文档处理流水线
人工智能·学习·rag
冯诺依曼的锦鲤24 分钟前
从零实现高并发内存池:TCMalloc 核心架构拆解
c++·学习·算法·架构
xyx-3v32 分钟前
zynq7010和zynq7020的区别
fpga开发
网络工程小王1 小时前
【LangChain Output Parser 输出解析器】输出篇
人工智能·学习·langchain
是上好佳佳佳呀1 小时前
【前端(十二)】JavaScript 函数与对象笔记
前端·javascript·笔记
AI周红伟2 小时前
周红伟:DeepSeek官方教您如何部署Hermes Agent 和接入 DeepSeek-V4-Pro
人工智能·深度学习·学习·机器学习·copilot·openclaw