「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
相关推荐
洋洋Young14 分钟前
【Xilinx FPGA】DDR3 SDRAM 控制器
fpga开发·xilinx
GHL28427109026 分钟前
调用通义千问(qwen-plus)模型demo-学习
学习·ai·ai编程
AI视觉网奇2 小时前
audio2face mh_arkit_mapping_pose_A2F 不兼容
笔记·ue5
碎碎思2 小时前
在 FPGA 里跑 SDR 和 FT8:一个 32 MHz 全频谱无线电的硬核实现
fpga开发
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]super
linux·笔记·学习
GHL2842710902 小时前
Temperature、Top P 学习
学习·ai
Yyuanyuxin2 小时前
保姆级学习开发安卓手机软件(三)--安装模拟机并开始简单的进入开发
android·学习
不爱编程爱睡觉2 小时前
代码随想录学习——项目学习——HTTP服务框架——环境配置问题
学习
日更嵌入式的打工仔3 小时前
单片机基础知识:内狗外狗/软狗硬狗
笔记·单片机
KhalilRuan3 小时前
数据结构与算法-笔记
笔记