「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
相关推荐
点心的游戏开发世界43 分钟前
GDScript 入门笔记(十一):Lambda 与匿名函数
开发语言·笔记·游戏引擎·godot
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
sunshine22 girl2 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
鱼子星_3 小时前
【C++】继承和多态(上)
c++·笔记
Kobebryant-Manba3 小时前
学习Bert微调
人工智能·学习·bert
xian_wwq3 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
我爱cope4 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
策案案案5 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
代码的小搬运工5 小时前
KVO学习
学习·ios·cocoa
科恒盛远6 小时前
RFSoC XCZU47DR 100G UDP高速数据传输的实现与调试(PCIE908 板卡技术系列三)
fpga开发