Verilog中占空比与分频的确定

在verilog程序设计中,我们往往要对一个频率进行任意分频,而且占空比也有一定的要求。这样的话,对于程序就会有一定的要求,本篇文章将在前人经验的基础上做一个简单的总结,实现对一个频率的任意占空比以及任意分频的确定。

比如:我们FPGA系统时钟是50M Hz,而我们要产生的频率是880Hz,那么,我们需要对系统时钟进行分频。我们很容易想到用计数的方式来分频:

50000000/880 = 56818

这个数字不是2的整幂次方,那么怎么办呢?我们可以设定一个参数,让它到56818的时候重新计数不就完了吗?程序如下:

在我们日常的设计中很多情形下会用到需要分频的情形,好多人的做法是先用高频时钟计数,然后使用计数器的某一位输出作为工作时钟,进行其他的逻辑设计,上面的程序就是一个体现。

下面我们来算一下它的占空比:我们清楚地知道,这个输出波形在counter为0到32767的时候表现为低,在32768到56817的时候为高,占空比为40%多一些,如果我们需要占空比为50%,那么怎么办呢?

我们再设定一个参数,使它为56817的一半,使达到它的时候波形翻转:

占空比是不是神奇地变成50%了呢?

继续让我们来看如何实现任意占空比,比如还是由50 M 分频产生880 Hz,而分频得到的信号的占空比为30%。

56818×30%=17045

本篇文章介绍了一种在Verilog当中确定占空比和分频的方法,并给出了计算公式与相关代码。占空比越高,就代表着电能的利用率越高,所以占空比的决定往往与一个电路的性能有着密切的关系。希望大家通过本篇文章能够学会这种占空比的确定方法,从而加速自己的设计。

粽子糖果 发表于10-11 10:55 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41624个|学分:51977个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号