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%

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

相关推荐
北城笑笑几秒前
FPGA 与 市场主流芯片分类详解:SoC/CPU/GPU/DPU 等芯片核心特性与工程应用
前端·单片机·fpga开发·fpga
R.X. NLOS22 分钟前
ZYNQ 开发知识点记录:AXI Timer 硬件定时器与中断机制解密
fpga开发·fpga·axi定时器
北城笑笑1 小时前
FPGA 51,基于 ZYNQ 7Z010 的 FPGA 高速路由转发加速系统架构设计(Xilinx ZYNQ-MINI 7Z010 CLG400 -1)
前端·fpga开发·系统架构·fpga
学习永无止境@1 小时前
MATLAB中矩阵转置
算法·matlab·fpga开发·矩阵
fei_sun2 小时前
【Verilog】阻塞/非阻塞赋值
fpga开发
minglie12 小时前
正点原子zynq的RGB彩条实验
fpga开发
FPGA-ADDA2 小时前
第六篇:多速率信号处理——抽取、插值与半带滤波器
fpga开发·信号处理·软件无线电·rfsoc·47dr
ALINX技术博客2 小时前
【黑金云课堂】VMware Ubuntu 开发环境安装教程
linux·fpga开发·fpga
LCMICRO-133108477463 小时前
国产长芯微LDC4048完全P2P替代DAC128S085,是一款 8 通道、带输出放大器的数模转换器 (DAC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·数模转换器dac
雅斯驰3 小时前
逐周期限流+频率折返+热关断:TPS54360DDAR的全套保护机制解析
fpga开发