「Verilog学习笔记」任意奇数倍时钟分频

专栏前言

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

复制代码
`timescale 1ns/1ns

module clk_divider
    #(parameter dividor = 5)
( 	input clk_in,
	input rst_n,
	output clk_out
);

	parameter CNT_WIDTH = $clog2(dividor - 1) ; 
	reg flag1, flag2 ; 
	reg [CNT_WIDTH:0] cnt ; 

	always @ (posedge clk_in or negedge rst_n) 
		if (!rst_n) cnt <= 0 ; 
		else cnt <= cnt == dividor - 1 ? 0 : cnt + 1 ; 
	
	always @ (posedge clk_in or negedge rst_n) 
		if (!rst_n) flag1 <= 0 ; 
		else if (cnt == (dividor - 1) >> 1) flag1 <= ~flag1 ; 
		else if (cnt == dividor - 1) flag1 <= ~flag1 ; 
		else flag1 <= flag1 ; 
	
	always @ (negedge clk_in or negedge rst_n) 
		if (!rst_n) flag2 <= 0 ; 
		else if (cnt == (dividor - 1) >> 1) flag2 <= ~flag2 ; 
		else if (cnt == dividor - 1) flag2 <= ~flag2 ; 
		else flag2 <= flag2 ; 

	assign clk_out = flag1 || flag2 ;

endmodule
相关推荐
sean90819 分钟前
Vim 学习 - 快速删除/修改
学习·vim
依然范特东24 分钟前
强化学习笔记1--基础概念
笔记
小黄人软件29 分钟前
如何解决不想学、学不会、学不进去,吸收内化不了学的东西,怎么办?如何真正建立“知识内化系统“?不输出,不学习
学习
个 人 练 习 生1 小时前
strcmp与strstr函数的模拟实现
c语言·开发语言·经验分享·学习·程序人生
晓梦林2 小时前
[ACTF2020 新生赛]BackupFile学习笔记
android·笔记·学习
2601_963870172 小时前
【计算机毕业设计】基于Spring Boot的社区老年大学课程报名与学习系统的设计与实现
java·spring boot·学习
xian_wwq3 小时前
【学习笔记】解剖 Claude Code —— Anthropic 的 Harness 参考实现-09/15
人工智能·笔记·学习
其实防守也摸鱼3 小时前
Kimi K3深度测评:长文本之外的真实力
运维·开发语言·网络·人工智能·python·学习·安全
晓梦林4 小时前
Tools靶场学习笔记
笔记·学习
xian_wwq4 小时前
【学习笔记】什么是Harness Engineering- 01/15
人工智能·笔记·学习