FPGA中的PLL(锁相环)与Glitches(小故障)

PLL(phase laocked loop)

 

如果晶振(Oscillator)频率不够高,锁相环就派上用场了。(创建时钟倍频器)

大概原理(我猜):检测参考信号跟VCO信号的相位频率差距,根据差距产生直流电压使得VCO产生与参考信号差距更小的信号。最后达到基本一致的效果,上图放一个分频器就可以从12Mhz的参考信号得到一个36Mhz的输出信号。可以通过这种方法产生非常高频率的信号。

因为真实FPGA算这个PLL输出(通过查FPGA用户手册自己算)略显复杂,apio中集成了apio raw工具帮我们算,如下图是用一个12Mhz的中心频率输出120Mhz的输出信号的写法和输出。

 下面是如何在verilog代码中调用FPGA的锁相环的相关写法。

 几个参数:

PLLOUT_SELECT,这个GENCLK代表让输出信号不要产生任何的相移,跟输入信号保持一致。

lock是一个输出信号,通过这个信号可以知道锁相环正在被使用,输出相位被输入相位固定。  

 Propagation Delay:电线,门(主要)之间一定会有延迟(关键路径?) 。而FPGA用的是LUT(look up table)来表示逻辑关系,而查找表的延时更复杂,这提示在用很高频率的信号时候要注意类似关键路径的问题。

FPGA手册中有pin lut pin的最大传播延时,但是不代表内部信号能满足(如果调用多个LUT,延时会叠加的意思?),一定要让所有延时满足时序要求。

那怎么才能尽量减少这种问题呢,亚稳态与跨时钟域。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值