FPGA试题练习--------任意整数分频器设计

本文详细介绍了如何设计一个能够实现1到N任意整数分频的FPGA模块,包括1分频、奇数分频和偶数分频的思路与方法。通过使用计数器并在特定时钟边沿触发,实现了分频时钟的跳变。设计包括控制模块、奇数分频、偶数分频和三选一模块,最后通过仿真验证了设计的正确性。
摘要由CSDN通过智能技术生成

一.设计目标
对输入时钟信号进行1~N分频。
二.设计思路
从分频数来看,整个设计可分为三部分:1分频、奇数分频、偶数分频。
①1分频:可直接将输入时钟信号进行输出。
②偶数分频:使用一个计数器在上升沿或者下降沿进行计数,计数到N/2时,分频时钟进行跳变。
③奇数分频:由于奇数分频会在输入时钟信号的上升沿或者下降沿进行跳变输出,所以采用两个计数分别对上升沿和下降沿进行计数。
在这里插入图片描述
设计原理如上图所示,将奇数N分成三个部分,前(N-1)/2个Tclk、中间一个Tclk、后(N-1)/2个Tclk。从0时刻开始,在时钟下降沿时clk_n置高,在到达中间T时刻时进行置低;同理从0时刻开始,在时钟上升沿时clk_p置高,在到达中间T时刻时进行置低。对两个信号进行整合变得到所需分频时钟,即clk_p或上clk_n的值为clk_div。
完成对这三种情况进行编写代码,再整合到一起,框图如下:
在这里插入图片描述
控制模块主要协调三种分频情况,当DIV==奇数时,奇数分频模块工作,偶数分频模块失能;反之同理。选通信号根据DIV的值不同从而选通对应模块。
三.设计代码
①奇数分频

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值