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

名称:任意分频器设计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


演示视频:

设计文档:

设计文档.doc

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个参考时钟周期内。

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 任意分频器设计Verilog代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员