verilog实现n分频,n为奇数

bash 复制代码
module divn(
	input clk,
	input [3:0]n,//n is an odd number less than 16
	output clkout
);//n frequency division
	reg [3:0] count;
	reg tem1,tem2;
	always@(posedge clk)begin
		if(count==n-1'd1)count<=0;
		else count<=count+1'd1;
	end
	always@(posedge clk)begin
		if(count==(n-1'd1)/2)tem1<=1'd1;
		else if(count==(n-1'd1))tem1<=1'd0;
		else tem1<=tem1;
	end
	always@(negedge clk)begin
		if(count==(n-1'd1)/2)tem2<=1'd1;
		else if(count==(n-1'd1))tem2<=1'd0;
		else tem2<=tem2;
	end
	assign clkout=tem1||tem2;
endmodule

奇数分频器设计总结(50%占空比)

一、核心问题

  • 奇数N无法直接实现50%占空比(N/2非整数)

  • 单边沿触发只能做到近似占空比

二、解决方案

双边沿组合法:

  1. 主计数器:模N计数(0到N-1)

  2. 上升沿信号:在计数到(N-1)/2时置1,N-1时清0

  3. 下降沿信号:相同逻辑,但下降沿触发

  4. 输出组合:两信号相或(OR)

三、关键公式

  • 分频比 = N(奇数)

  • 高电平位置:count ≥ (N-1)/2 且 < N-1

  • 单信号占空比:(N-1)/2N → 非50%

  • 组合后占空比:50%

本质:用两个相位错开的非对称信号,通过逻辑组合实现对称输出。

相关推荐
博览鸿蒙1 天前
FPGA的学习路径和入行指南
fpga开发
ShiMetaPi1 天前
GM-3568JHF丨ARM+FPGA异构开发板应用开发教程:01 UART读写案例
arm开发·单片机·嵌入式硬件·fpga开发·fpga·rk3568
楠了个难1 天前
AXI4接口简介——ZYNQ学习笔记24
笔记·学习·fpga开发
FPGA_小田老师1 天前
FPGA例程(6):UART串口通讯协议解析
fpga开发·串口通信·rs232·rs422·波特率·uart通信
LCMICRO-133108477461 天前
长芯微LD8574完全P2P替代PCF8574,主要用于扩展通用输入输出端口(GPIO)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发
LCMICRO-133108477461 天前
长芯微LD9535完全P2P替代PCA9535,是用于扩展通用输入输出端口(GPIO)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
最遥远的瞬间1 天前
三、语法篇_Verilog
fpga开发
初雪白了头1 天前
三模冗余检测并隔离故障模块
fpga开发
ehiway1 天前
FPGA在光纤互感器与行波测距系统中的应用研究
fpga开发
FPGA小c鸡2 天前
FPGA卷积层流水线加速:从入门到精通(附完整SystemVerilog实现)
fpga开发