• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

任意分频器设计Verilog代码Quartus仿真

08/12 08:11
594
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240R21Z936246.doc

共1个文件

名称:任意分频器设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

任意分频器设计

1、可以通过参数控制分频比,即可以配置分频器的分母、分子。

2、可以控制分频输出信号占空比

设计思路为任意分频都可以拆分为2分频和3分频交叉组合而成(即最小的偶数分频和最小的奇数分频的组合)。

假设19/9分频,利用公式,(19/9)*(a+b)=2a+3b;计算a和b的值

即可以由8个2分频+1个3分频,在8*2+1*3=19个参考时钟周期内,实现19/9分频。

parameter fenzi=440;//分子

parameter fenmu=24;//分母

parameter duty=70;//占空比

fenzi/fenmu分频。换个说法,即fenzi个参考时钟refclk里,划分fenmu段

因为分母是fenmu,所以计数器是+fenmu计算的,

如果超过fenzi,意味着当前两个上升沿之间的周期大于期望周期值,

余数需要考虑进下一个周期里。

总共需要的周期数,就是前文的2a+3b=fenzi个参考时钟周期内。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. 仿真图

部分代码展示:

//任意分频设计
module?clk_div(
input?clk,//输入时钟
input?rstn,//复位,低电平有效
output?reg?clk_div//输出分频信号
);
//设计思路为任意分频都可以拆分为2分频和3分频交叉组合而成(即最小的偶数分频和最小的奇数分频的组合)。
//假设19/9分频,利用公式,(19/9)*(a+b)=2a+3b;计算a和b的值
//即可以由8个2分频+1个3分频,在8*2+1*3=19个参考时钟周期内,实现19/9分频。
parameter?fenzi=440;//分子
parameter?fenmu=24;//分母
parameter?duty=70;//占空比
wire?[31:0]?para_cnt;
assign?para_cnt=fenzi*duty/100;//根据占空比计算高电平计数值
//fenzi/fenmu分频。换个说法,即fenzi个参考时钟refclk里,划分fenmu段
//因为分母是fenmu,所以计数器是+fenmu计算的,
//如果超过fenzi,意味着当前两个上升沿之间的周期大于期望周期值,
//余数需要考虑进下一个周期里。
//总共需要的周期数,就是前文的2a+3b=fenzi个参考时钟周期内。

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=943

  • 2-240R21Z936246.doc
    下载

相关推荐