FPGA-PLL输出频偏引发的问题

关注、星标公众号,精彩内容每日送达
来源:网络素材

还是调试图像问题,有一个芯片输出图像有闪屏现象。

系统初步定义如下:

28458b9a1fbcb88f6bd1078835b3c5fc.png

说明:

(1)24MHz晶振输出时钟一方面输入FPGA,另一方面输入到CHIP0,作为CHIP0的工作时钟(绿色线条);

(2)FPGA输入24M时钟,经过PLL输出36MHz与74.25MHz,作为逻辑时钟,将视频流数据经过ENCODE编码模块,输出8/16bits并行数据到端口(灰色线条);

(3)与数据相关的随路时钟经过ODDR,从管脚输出;

(4)CHIP0与CHIP1是接收相同的时钟与数据的2款不同的芯片,差别可能就在于CHIP0为自研芯片,容错能力不如CHIP1。

现象是CHIP1可以正常解码输出图像,而CHIP0输出图像有闪屏。

由于CHIP0芯片设计人员确认说CHIP0的工作时钟与随路时钟要求同源,所以FPGA工作时设计的此方案,采用一个晶振24M,输出图像支持2种模式:1)36M随路时钟与数据,图像正常显示;2)74.25M随路时钟与数据,输出图像闪烁。

定位思路:

A、编码问题:基本可以排除,因为CHIP1可以正常解码并且显示图像,同时,CHIP0的解码状态寄存器显示解码正常;

B、时钟问题:硬件测量时钟,发现无论24M工作时钟,还是74.25M、36M随路时钟都很稳定,频偏3-13个ppm,按硬件说法,时钟满足要求;

C、相位问题:即输出时钟与数据的相位关系,因为芯片是上升沿采样,为了确保能正确采样,于是我在原来的数据路劲也加了ODDR,减少由于资源紧张时,布局布线异常引入时钟数据路径差异导致的问题,如下:

8ec7f1f5d051d3a5ba195f37fed02d40.png

根据XILINX ODDR原语的输入输出时序关系:

fcb3bb3780913d7fc09d15fd7a73d179.png

将输入输出的时钟初始化为D1(0)、D2(1),则基本可以保证在上升沿采样数据。然而修改过后,图像还是闪烁。

这时,与芯片设计人员联调,尝试通过读写状态寄存器能否发现问题。

CHIP0内部根据个人初步理解,基本分为2部分,解码与显示,如下所示:

f7e241be5d9621df90820f57b3fa238f.png

解码采用输入随路时钟对数据进行采样与解码,并将数据写入FIFO中,输入工作时钟产生读FIFO时钟,并将读数据送入DISPLAY模块,输出与显示。

通过读写寄存器发现,DECODE模块状态寄存器一直正常,而显示模块状态寄存器不正常,进一步定位发现FIFO有空读问题,即写的慢读的快了。从芯片角度分析,解码正常、时钟正常,就不应当出现FIFO空满错误。

这时,再次检查FPGA输出时钟,通过PLL核,发现FPGA输出的时钟并非74.25M,而是74M(被硬件坑说测量的稳定的74.25M)。

这是因为FPGA PLL并不能产生任意的无偏差的时钟,在当前所选器件下,如果由24M晶振输入,要求输出74.25M时钟,实际上只能输出74M时钟,而24M时钟则可以生成稳定的36M时钟;如果由27M晶振输入,可以输出稳定的74.25M时钟,但是无法输出稳定36M时钟,为36.033M,由此可以分析出,74M下生成的视频流实际上是略小于30帧(25帧),而芯片使用固定的30帧(25帧)去读取,而芯片又对两端频率帧率匹配要求较高,确实有可能造成读空现象。CHIP1之所以可以正常工作,应该也是因为容错能力较好,可以纠正过来两边的频偏或者帧率差。

为了兼容两种输出,于是修改时钟方案,如下:

c8012bab51d96650126e6be432d23848.png

使用2个晶振,分别位24M和27M,FPGA内部使用2个PLL,PLL0用于生成36M时钟,PLL1用于生成74.25M时钟,此时再读取芯片各状态寄存器正常,2种模式下图像也可以正常显示了。

一点总结:

(1)FPGA内部PLL的输入输出时钟频率,基本上我们只要设置好频率、相位、占空比等一些参数,一般都可以稳定工作,但对于一些外接的频偏容错能力差的外设来说,有时生成的频率,带一点点频差的都可能使得芯片无法正常工作,需要注意;

(2)理论上,芯片的工作时钟和采样时钟不应该有特殊的关系,比如此例中要求同源,如果要求同源,在不能正常工作的情况下,也要先确认随路时钟的准确性。

7e207e7f5fa35a8125ee23ece9d15641.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值