赞
踩
时序逻辑电路设计——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
- module divfreq1000(CLKIN,CLIOUT);
- input CLKIN; //系统输入时钟,50M,周期20ns
- output CLKOUT; //1000分频器输出,50kHz
- reg CLKOUT; //输出计数器;
- reg[8:0] CNT; //计数寄存器
- always@(posedge CLKIN) //上升沿触发,执行begin_end中语句
- begin
- if(CNT==9'b11111011) //判断CNT是否为499,是的话执行以下程序
- begin
- CLKOUT<=-CLKOUT; //把CLKOUT取反;<=是非阻塞语句
- CNT<=9'b000000000; //计数寄存器清零
- end
- else //CNT没到499,执行以下程序
- begin
- CNT<=CNT+9'b1; //计数寄存器自动加到1
- end
- end
- 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.保存、编译
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。