pll_reconfig使用指南
前言:因为课题组的需要,需要利用FPGA实现一个30M且精度为1%的pwm波,奈何手里的这款FPGA(EP4CE10F17C8N)性能实在是一般,最高只能稳定输出200M的时钟信号,而按照传统方法做到上述输出,则至少需要3GHz的时钟信号。最后我想到动态调整pll,直接将时钟信号当成pwm输出的方法来实现,但最终结果却不尽人意,每次重配置耗时太长,无法满足需求(后文会给出调整时序图,展示每次调整所需要的时间)。好在系统的了解了pll_reconfig的配置过程,累积了部分开发经验。
这里谨以此文记录开发经验,以备复习之需。
锁相环
关于锁相环的东西,在大部分的博客都有详细描述,这里就简单描述一下原理。一般锁相环都是由三部分组成:鉴相器(PD)、环路滤波器(LF)和压控振荡器(VCO)。根据个人理解来说,鉴相器的主要作用便是检测两输入信号之间的相位差,并将相位差转化为电压信号输出;而环路滤波器由名字可知主要功能便是滤波,根据鉴相器的工作原理,滤掉和频分量将差频分量输出至压控振荡器(这里个人感觉是鉴相器和环路滤波器一起工作才能将相位信号转换为电压信号);压控振荡器是一种能量转换的装置,能将电压信号转换为频率信号从而实现对频率的控制。下图中还涉及一个分频器,通过调整分频器的大小可以实现对倍频的调节。关于锁相环的内容具体可以参照杜勇老师所编撰的《锁相环技术原理及FPGA实现》。
pll_reconfig的配置
以下便是博客的主要内容:
在讲解配置之前我得稍微简单介绍一下这个模块,pll_reconfig是Quertus II的IP核配置库的一部分,IP核的配置库主要是Altera公司为了便于用户使用,为用户开发的一个设计向导。通过这样一个向导,用户可以轻易实现对FIFO协议、PLL、HDMI传输等较复杂功能的配置。
pll_reconfig是pll的重配置模块,但这个模块并不是单独运作,而是配合pll模块共同实现。其连接框图如下: