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%

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

相关推荐
szxinmai主板定制专家9 小时前
软硬协同!ZYNQ 高速多通道同步采集,变电站 / 工厂设备状态监测方案详解
人工智能·深度学习·机器学习·fpga开发·zynq·rk3576
FPGA小徐10 小时前
FPGA 8阶LFSR加扰/解扰器设计
fpga开发
逐光者93311 小时前
超前进位加法器:原理、推导与 Verilog 实现
fpga开发
szxinmai主板定制专家12 小时前
ZYNQ PL+PS 架构拆解|工业自动化与电力物联网高速数据采集、预处理与协议上云
arm开发·人工智能·物联网·fpga开发·数据采集卡·rk3576
szxinmai主板定制专家13 小时前
告别 ARM 实时性短板:基于 ZYNQ 的电力故障录波 + 工业振动数据采集系统设计
arm开发·人工智能·fpga开发·zynq·数据采集卡·arm+fpga·rk3588+fpga
FPGA小徐15 小时前
FPGA 实现 Canny 边缘检测|大白话原理 + 专业工程解析
fpga开发
辰丁电子1 天前
allegro入门教程-菜单栏Analyze
fpga开发·pcb设计·pcb工艺·pcb·layout
鸥梨菌Honevid1 天前
UVM 中 raise_objection 与 drop_objection 的作用与重要性详解
fpga开发
叶子野格2 天前
《FPGA基本知识累积:看开发指南要懂的术语》
学习·fpga开发
傻童:CPU2 天前
vivado中ILA出现no connect
fpga开发