计数器的应用

第1关:时钟分频

任务描述
本关任务:设计一个时钟分频电路,对100MHz的系统输入时钟进行10分频,产生一个10MHz的输出时钟。时钟分频电路采用低电平同步复位信号。

知识点
为了完成本关任务,需要掌握的知识点如下:

时钟分频
在时序逻辑电路中,时间的计算都要以时钟作为基本的单元。

一般而言,在数字系统设计中只有一个基准的系统时钟,故经常需要对基准时钟进行不同倍数的分频而得到各模块所需的时钟频率。

若获取比基准时钟频率更慢的时钟,可以将基准时钟进行分频;若获取比基准时钟频率更快的时钟,则可以将基准时钟进行倍频。

倍频电路通常需要使用锁相环(PLL)实现,如Xilinx FPGA中的时钟管理单元DCM。

分频电路同样可以采用锁相环实现,也可以是使用HDL代码进行描述。本关任务就是使用HDL代码对分频器进行描述。

所谓“N分频”,就是把输出时钟的频率变为输入时钟的1/N。它的原理是以输入时钟信号作为计数脉冲,计数器按固定的计数值输出脉冲信号,该脉冲信号可以看作是对输入时钟信号的“分频”。

因此,时钟分频器本质上就是一个计数器。一个4分频的电路波形图如下所示。计数器r_cnt根据输入系统时钟sys_clk进行计数,每记2个时钟脉冲,输出时钟clk_out反向,故形成4分频时钟。

module clkdiv #(parameter SYS_CLK_FREQ = 

猜你喜欢

转载自blog.csdn.net/Junds0/article/details/131200858