当前位置:   article > 正文

20220414——1000分频器&IP核_分频ip核

分频ip核

时序逻辑电路设计——1000分频器

一、设计目标

分频器:功能是对频率较高的方波输入信号(通常是系统时钟)进行分频,从而输出频率较低的方波信号。分频器与输出信号的频率的比值,成为分频系数。

分频器是加法计数器的一种应用,计数进制由分频系数决定,高、低电平。分频器通常在数字电路中用于对时钟信号进行分频,进而得到较低频率时钟信号、选通信号、中断信号、触发信号等。

要求:设计一个分频系数为1000的分频器,输入为50MHz系统时钟(CLKIN),输出为其1000分频后的时钟信号。

方法:通过设置一个9位的计数寄存器(CNT)来实现,输入系统时钟周期的上升沿计数一次,当计数寄存器数到499(9'b111110011)的时候,将输出分频信号(CLKOUT)取反即可得到1000分频器50kHz的输出。(每500个脉冲翻转一次输出电平,计到499清零同时翻转)

1MHz=1000kHz=1000000Hz

二、Verilog HDL代码

输入信号:50MHz系统时钟输入CLKIN

输出信号:0.05MHz时钟输出CLKOUT

  1. module divfreq1000(CLKIN,CLIOUT);
  2. input CLKIN; //系统输入时钟,50M,周期20ns
  3. output CLKOUT; //1000分频器输出,50kHz
  4. reg CLKOUT; //输出计数器;
  5. reg[8:0] CNT; //计数寄存器
  6. always@(posedge CLKIN) //上升沿触发,执行begin_end中语句
  7. begin
  8. if(CNT==9'b11111011) //判断CNT是否为499,是的话执行以下程序
  9. begin
  10. CLKOUT<=-CLKOUT; //把CLKOUT取反;<=是非阻塞语句
  11. CNT<=9'b000000000; //计数寄存器清零
  12. end
  13. else //CNT没到499,执行以下程序
  14. begin
  15. CNT<=CNT+9'b1; //计数寄存器自动加到1
  16. end
  17. end
  18. endmodule
 

 基于IP-ALTPLL的时钟源设计

基于ALPLL IP核设计2输入时钟源:FPGA板使用20MHz外部晶振作为输入系统时钟,整个电路输入输出接口及信号特征如图表所示:

 IP核分为:软核、固核、硬核

软核:.v文件,代码能转化为门级网表

固核:能转化为门级网表,并能转成FPGA完成设计、验证

硬核:完整工艺文件,能生产芯片

操作步骤:

1.新建工程、选择芯片,simulation

 

2. tools→MegaWizard Plug-In Manager (11.0版)

17.0版:tools-IP Catalog

 

 

3. IO-ALTPLL

选择Verilog HDL

起个名字

 4.

 

 

 

 

 

 

 

 c2、c3、c4全部不要,直接点next

 

 

 

yes√

5.File→New→Verilog HDL File

 

 文件夹里找到 u1_inst.v ,记事本打开,复制

 

 修改、结束

6.保存、编译

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/725178
推荐阅读
相关标签
  

闽ICP备14008679号