1~8分频

本文详细介绍了如何使用FPGA技术实现数字信号的1到8分频功能,涵盖了设计思路、逻辑实现以及具体步骤,对于理解和掌握FPGA分频设计具有实践指导意义。
摘要由CSDN通过智能技术生成
module divider(
input clk,
input rst_n,
input [2:0] divider_num, //0~7分别对应1~8分频 num[0]=0对应奇数分频
output out_clk

);

reg [2:0] cnt1;
reg clk_even;

//偶数分频
always @(posedge clk or negedge rst_n)begin
if(!rst_n||!divider_num[0])
	cnt1<=3'd0;
else if(cnt1<(((divider_num+1)/2)-1))   //计到最终的数减1
	cnt1<=cnt1+1;
else
	cnt1<=3'd0;
end

always @(posedge clk or negedge rst_n)begin
if(!rst_n||!divider_num[0])
	clk_even<=1'b0;
else if(cnt1==(((divider_num+1)/2)-1))
	clk_even<=~clk_even;
end

//奇数分频
reg[2:0] cnt2,cnt3;
reg clk_odd1;
reg clk_odd2;
wire clk_odd;
always @(posedge clk or negedge rst_n)begin
if(!rst_n||divider_num[0])
	cnt2<=3'd0;
else if(cnt2<(divider_num))
	cnt2<=cnt2+1;
else
	cnt2<=3'd0;
end

always @(posedge clk or negedge rst_n)begin
if(!rst_n||divider_num[0])
	clk_odd1<=1'b0;
else if(cnt2<=(divider_num/2))
	clk_odd1<=1'b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值