完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在FPGA中,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正确接收的目的。那么该如何在低端FPGA中实现DPA的功能呢?
|
|
相关推荐
1个回答
|
|
在FPGA中,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正确接收的目的。 ALTERA的高端FPGA,如STRATIX(r) 系列中自带有DPA电路,但低端的FPGA,如CYCLONE(r)系列中是没有的。本文主要阐述如何在低端FPGA中实现这个DPA的功能。
实现架构 在LVDS输入接收时,时钟和数据的相位可能是不确定的,因此我们需要将时钟的相位作出调整,使得时钟能稳定的采集到输入数据。工作的核心就是用锁相环PLL的相位调整功能,产生若干个时钟的不同相位,看哪些相位能准确的采集到输入数据,然后取窗口中间的一个时钟相位,作为正常工作时的采样时钟。比如通过PLL产生0,45,90,135,……,315度8个相移的时钟,如果0,45,90度相移的时钟能正确采样到输入,那么最后选取中间相位,即45度的时钟作为采样时钟。这样接口上具有最大的时序裕量,从而保证链路的可靠性。图1为这个设计的基本结构,通过PLL调整相位的接口,产生了时钟的不同相位来采集数据,最后选择一个最合适的相位。 CYCLONE系列的PLL的相位调整接口时序如图2所示,当用户逻辑控制phasestep, phasecounterselect与phaseupdown信号时,PLL的输出时钟C0就改变一次相位。在QII生成PLL时,用户必须选上 create optional inputs for dynamic phase reconfigure,否则缺省是不会有这些管脚的,如图3所示。另外必须在output clock tab中写入phase shift step resolution的值,这样才能确定每次相位调整的步长。 应用实例 本例中的参考设计采用CYCLONE3器件,与ADI公司的ADS5277接口,已经在硬件上测试过,证明是有效的。ADS5277是一款8通道高速 ADC芯片,主要用于超声设备以及测试设备中。图4是该参考设计电路框图。 ADS5277送到FPGA的是一个192MHz 的时钟,8路LVDS数据,速率是384Mbps。上电复位后ADS5277发送的数据是‘0101010101……’,FPGA启动DPA电路,准确确定时钟相位后再通过控制信号,使得ADS5277发送‘000000111111……’这样的PATTERN,FPGA可以确定字的边界,这一步成功以后,FPGA就可以通过控制信号让ADS5277发送正常工作时的数据,因为经过了时钟相位调整这一过程,以后的数据采样是非常稳定的,不会受到温度电压变化来的影响。 当然这个设计可以和所有LVDS发送芯片接口,并不只限于ADS5277。甚至可以应用于ALTERA高端FPGA中,比如STRATIX4的带有DPA 专用电路的管脚只分布在左右BANK,而用到这个设计的话,上下BANK的IO也能使用。DPA设计所消耗的逻辑资源是非常小的,选用器件为 3C16F256C8, 如表1所示。 1.gif 图1、在FPGA中实现DPA设计架构。 2.gif 图2、PLL的相位调整接口时序。 图3、 4.gif 图4、参考设计电路框图。 表1、资源消耗 5.gif |
|
|
|
只有小组成员才能发言,加入小组>>
663 浏览 0 评论
1083 浏览 1 评论
2456 浏览 5 评论
2784 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2619 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
642浏览 9评论
639浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
769浏览 6评论
613浏览 5评论
654浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-11 01:01 , Processed in 1.071590 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号