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%

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

相关推荐
ALINX技术博客1 小时前
【黑金云课堂】FPGA技术教程Vitis开发:PS端DP接口解析
fpga开发·fpga
FakeOccupational2 小时前
fpga系列 HDL:跨时钟域同步 shift register同步(CDC)毛刺滤除&解码前去抖动滤波模块
fpga开发
小眼睛FPGA4 小时前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程6-基于UDP 的以太网传输实验例程
fpga开发
高速上的乌龟5 小时前
Lattice LFCPNX-100 HSB+Fpga开发详解: MAC+PCS以太网SFP光口传输
单片机·嵌入式硬件·fpga开发
ALINX技术博客7 小时前
【黑金云课堂】FPGA技术教程Linux开发:电压温度检测/USB/eMMC
linux·fpga开发
小眼睛FPGA7 小时前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程3-基于紫光FPGA 的UART 串口通信
fpga开发
liuluyang5308 小时前
SV 时钟移位示例代码解析
fpga开发·sv
dadaobusi8 小时前
100MHz/125MHz
fpga开发
unicrom_深圳市由你创科技9 小时前
如何做FPGA的模块划分?
fpga开发
szxinmai主板定制专家1 天前
RK3568 + CODESYS+实时系统运动控制器PLC,支持 AI 视觉目标检测,预测性维护,混合多系统部署,多路模拟量采集
arm开发·人工智能·嵌入式硬件·fpga开发