verilog 任意比例分频电路的实现_verilog 实现任意占空比、任意分频的方法

verilog

实现任意占空比、任意分频的方法

verilog

程序设计中,我们往往要对一个频率进行任意分频,而且占空比也有一定的

要求这样的话,

对于程序有一定的要求,

现在我在前人经验的基础上做一个简单的总结,

现对一个频率的任意占空比的任意分频。

比如:我们

FPGA

系统时钟是

50M Hz

,而我们要产生的频率是

880Hz

,那么,我们需要对系

统时钟进行分频。我们很容易想到用计数的方式来分频:

50000000/880 = 56818

这个数字不是

2

的整幂次方,

那么怎么办呢?我们可以设定一个参数,

让它到

56818

的时候

重新计数不就完了吗?呵呵,程序如下:

module div(clk, clk_div);

input clk;

output clk_div;

reg [15:0] counter;

always @(posedge clk) if(counter==56817) counter <= 0; else counter <= counter+1;

assign clk_div = counter[15];

endmodule

下面我们来算一下它的占空比:我们清楚地知道,这个输出波形在

counter

0

32767

时候为低,在

32767

56817

的时候为高,占空比为

40%

多一些,如果我们需要占空比为

50%

,那么怎么办呢?不用急,慢慢来。

我们再设定一个参数,

使它为

56817

的一半,

使达到它的时候波形翻转,

那不就完了吗?呵

呵,再看看:

module div(clk, clk_div);

input clk;

output clk_div;

reg [14:0] counter;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值