CN109586692B - 一种应用于ad源同步数据接收的fpga动态相位调整方法 - Google Patents

一种应用于ad源同步数据接收的fpga动态相位调整方法 Download PDF

Info

Publication number
CN109586692B
CN109586692B CN201811448836.2A CN201811448836A CN109586692B CN 109586692 B CN109586692 B CN 109586692B CN 201811448836 A CN201811448836 A CN 201811448836A CN 109586692 B CN109586692 B CN 109586692B
Authority
CN
China
Prior art keywords
data
delay
num
fpga
serial data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811448836.2A
Other languages
English (en)
Other versions
CN109586692A (zh
Inventor
魏文鹏
陈小来
温志刚
石兴春
刘强
张昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XiAn Institute of Optics and Precision Mechanics of CAS
Original Assignee
XiAn Institute of Optics and Precision Mechanics of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XiAn Institute of Optics and Precision Mechanics of CAS filed Critical XiAn Institute of Optics and Precision Mechanics of CAS
Priority to CN201811448836.2A priority Critical patent/CN109586692B/zh
Publication of CN109586692A publication Critical patent/CN109586692A/zh
Application granted granted Critical
Publication of CN109586692B publication Critical patent/CN109586692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/14Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of delay lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0602Systems characterised by the synchronising information used
    • H04J3/0617Systems characterised by the synchronising information used the synchronising signal being characterised by the frequency or phase

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

为克服现有基于XILINX公司FPGA的动态相位调整(DPA)方法无法满足双边沿数据率低于400Mbps源同步数据接收的应用需求问题,本发明提供了一种应用于AD源同步数据接收的FPGA动态相位调整方法。包括步骤:1)FPGA初始化AD;2)配置AD工作在训练模式,输出训练字;3)接收AD输出的串行数据并转换为并行数据;4)DPA调整;5)BITSLIP调整。本发明在DPA调整环节,充分利用了先验信息,即已知AD源同步数据频率,只查找串行数据流高低电平变化的上升沿,通过计算获得IDELAY最优延迟系数,简化了DPA流程;由于只查找串行数据流高低电平变化的上升沿,延迟最多需覆盖1bit数据的宽度,DPA数据率大于203MHz即可,降低了现有DPA方法对数据率的下限要求,能满足数据率低于400Mbps源同步数据接收的应用需求。

Description

一种应用于AD源同步数据接收的FPGA动态相位调整方法
技术领域
本发明涉及高速数据传输领域,具体涉一种应用于AD源同步数据接收的FPGA动态相位调整方法。
背景技术
AD源同步数据接收包含时钟信号及数据信号,信号频率高,通常为双边沿差分串行数据。AD的串行数据通过训练字确定串行到并行转换的序列。
随着数据传输速率的提高,时钟对数据采样的保持时间变窄,即采样准确性降低,并且由于传输路径不同,信号到达接收端的延迟不能保证完全相同,即时钟对多路数据的采样存在偏差。为此,出现静态相位调整以及动态相位调整。静态相位调整SPA通过匹配时钟线和数据线的长度,使各信号在其传输线上延时相等。动态相位调整DPA技术,是根据当前各信号线的物理状态,在每次系统上电后,自动对相应信号进行去偏移操作,从而使相位调整的参数适合当前物理状态。各大厂商FPGA器件都具备了相位调整能力,但是在应用中,需要根据实际情况设计相应的算法实现动态相位调整。
现有的动态相位调整方法,是分别查找串行数据1bit高低电平变化的上升沿和下降沿,然后计算出中心位置作为最佳采样位置。由于XILINX公司的FPGA延迟模块IDELAY最大延迟不超过5ns,串行数据上升沿和下降沿的查找需要覆盖2bit数据,所以查找串行数据1bit高低电平变化左右边沿计算中心位置的方法要求双边沿数据率不小于400Mbps。而对于双边沿数据率低于400Mbps的应用,现有的动态相位调整方法无法满足。并且现有的动态相位调整方法只在上电时进行相位调整,没有考虑上电之后环境变化的影响,如温度变化可能导致数据传输误码。
发明内容
为了克服现有基于XILINX公司FPGA的动态相位调整(DPA)方法无法满足双边沿数据率低于400Mbps源同步数据接收的应用需求问题,本发明提供了一种应用于AD源同步数据接收的FPGA动态相位调整方法。
本发明的发明构思是:
首先,配置AD工作在训练模式,输出训练字;然后,查找AD输出训练字串行数据流高低电平变化的上升沿,通过已知的AD源同步数据频率作为先验信息,计算获得串行数据比特位的中心位置,根据该中心位置调整IDELAY延迟,使得时钟边沿卡在所述串行数据比特位的中心位置;最后,调整ISERDES串行数据流的解串序列,使得ISERDES输出的并行数据与所述训练字一致。
本发明所采用的技术方案是:
一种应用于AD源同步数据接收的FPGA动态相位调整方法,所述FPGA为XILINX公司FPGA,包括IO逻辑资源IDELAY及ISERDES;IDELAY和ISERDES分别用于实现AD源同步数据的延迟及串并转换;其特殊之处在于,包括步骤:
1)FPGA初始化AD;
2)配置AD工作在训练模式,输出训练字,所述训练字为串行数据流;
3)接收AD输出的串行数据并转换为并行数据;
4)DPA调整
4.1)通过对所述并行数据相邻位两两异或,查找所述训练字串行数据流中的电平变化位置;若未找到,则继续查找;若找到,则执行步骤4.2);
4.2)寄存所述电平变化位置对应的数据值edge_ifor1;
4.3)查找训练字串行数据流上升沿及相应的延迟系数reg_tap1;若未找到,则调整IDELAY延迟后继续查找;若找到,则执行步骤4.4);
4.4)计算最佳延迟值OPT_NUM;
当reg_tap1大于等于Num时,OPT_NUM=reg_tap1-Num;
当reg_tap1小于Num时,OPT_NUM=reg_tap1+Num;
Num为半个时钟周期对应的延迟系数,Num=T/78.125ps;
T为AD源同步时钟周期;
78.125ps为参考时钟等于200MHz,延迟系数1对应的时间;
4.5)根据最佳延迟值OPT_NUM,调整IDELAY延迟到最佳延迟位置;
5)BITSLIP调整
调整串行数据流的解串序列,直至ISERDES输出并行数据与训练字一致。
进一步地,还包括步骤6)配置AD为正常工作模式。
进一步地,还包括步骤7)判断AD是否为工作间歇,若是,则返回步骤2);若否,则接收AD源同步数据。
进一步地,步骤4.1)查找所述训练字串行数据流中电平变化位置的方法为:对并行数据相邻位两两异或,若异或结果中含有1则认为找到电平变化位置;若异或结果中不含有1,则表示没有找到电平变化位置,继续进行查找。
进一步地,步骤4.3)查找训练字串行数据上升沿及相应的延迟系数reg_tap1的方法为:从零延迟开始,增加IDELAY延迟系数,IDELAY延迟系数每增加1,判断一次解串数据异或结果低六位是否与上一步寄存的edge_infor1高六位一致,若一致时,则找到了训练字串行数据流电平变化的上升沿也即训练字串行数据上升沿,并记录此时的延迟系数reg_tap1;若不一致,则继续增加IDELAY延迟系数值,进行再次判断。
进一步地,步骤5)BITSLIP调整的具体方法为:BITSLIP模块产生BITSLIP脉冲宽度为1个clkdiv的脉冲信号,驱动ISERDES改变输出并行数据序列;判断ISERDES输出并行数据是否与训练字一致,一致则BITSLIP调整结束。
与现有技术相比,本发明的有益效果是:
1、简化了DPA流程
充分利用了先验信息,即已知AD源同步数据频率,只查找串行数据流高低电平变化的上升沿,通过计算获得IDELAY最优延迟系数,如此简化了DPA流程。
2、降低了DPA应用对数据率的下限要求
由于只查找串行数据流高低电平变化的上升沿,延迟最多需要覆盖1bit数据的宽度,所以DPA数据率大于203MHz即可,降低了现有DPA方法对数据率的下限要求,能够满足数据率低于400Mbps的应用需求。
3、上电之后,能够定期检查并调整时钟与数据接收相位,克服由于工作温度变化引起的传输误码。
附图说明
图1为基于本发明的FPGA动态相位调整方法接收AD源同步数据的原理框图。
图2为基于本发明的FPGA动态相位调整方法接收AD源同步数据的流程图。
图3为基于本发明的FPGA动态相位调整方法接收AD源同步数据的时序图。
具体实施方式
下面结合附图1-2对本发明作进一步说明。
利用本发明接收AD源同步数据的原理框图如图1所示,其中源同步时钟Clk_lvds_p和Clk_lvds_n经过IBUFDS(IBUFDS为FPGA内部功能模块,可以直接调用,用于差分时钟转单端时钟)由差分转为单端,再分别经过BUFIO和BUFR:BUFIO输出时钟驱动IO逻辑资源ISERDES;BUFR四分频产生时钟信号clkdiv,信号clkdiv驱动ISERDES模块(ISERDES_master、ISERDES_slave)、DPA及Bitslip等FPGA内部逻辑。
AD源同步数据(Data_lvds_p和Data_lvds_n)先经过IBUFDS,然后接入ISERDES模块。ISERDES模块集成了IDELAY及串转并单元。两个ISERDES模块级联,一个作为master,另一个作为slave。ISERDES_master的shift_out1,shift_out2分别接入ISERDES_slave的shift_in1,shift_in2。ISERDES_master的Q[1:6]输出Pdata[0:5],ISERDES_slave的Q[3:4]输出Pdata[6:7]。
DPA单元根据Pdata[7:0]输入数据来调整INC信号和CE信号,实现IDELAY(IDELAY是FPGA内延迟功能模块,可以调用以改变数据的延迟)延迟的增加或减少,从而找到源同步数据的最佳接收相位。
BITSLIP module根据Pdata[7:0]输入数据来调整BITSLIP信号,实现ISERDES并行数据移位,直到移位结果与AD配置的训练字一致。
利用本发明接收AD源同步数据流程如图2所示:
第一步,上电,FPGA初始化AD;
第二步,配置AD工作在训练模式,输出训练字串行数据流,训练字串行数据流示意见图3中所示。
第三步,接收AD输出的串行数据并转换为并行数据。
第四步,DPA调整
4.1查找训练字串行数据流中的0到1或1到0电平变化位置
通过对并行数据相邻位两两异或,获得串行数据流中高低电平变化位置,具体是判断异或结果中是否含有1,若含有1则认为找到高低电平变化位置,进入步骤4.2;若不含有1,则继续查找;如图3中,并行数据00000000,11000000,11000000异或结果分别为000_0000,010_0000,010_0000。
4.2寄存异或结果至edge_infor1;
4.3查找训练字串行数据上升沿及对应的延迟系数
查找串行数据流电平变化的上升沿,具体方法是从零延迟开始,增加IDELAY延迟系数(延迟系数0~63),延迟系数每增加1,判断一次解串数据异或结果低6位是否与上一步寄存的edge_infor1高6位一致。当其一致时,就找到了串行数据流电平变化的上升沿,记录此时的延迟系数,reg_tap1,此时,串行数据的变化沿与时钟边沿可以认为是对齐的,如图3所示。若不一致,则继续增加延迟系数值,查找串行数据流电平变化上升沿。
4.4计算最佳延迟值
当串行数据变化沿与时钟边沿对齐时,串行数据向前或者向后平移半个时钟周期,即延迟系数增加或减少半个时钟周期的长度,则时钟边沿与数据比特位中心位置对齐,此时的延迟系数即为最佳延迟值OPT_NUM。由于AD源同步时钟频率是已知的,假定AD源同步时钟周期为T,半个时钟周期对应的延迟系数Num即为:
Num=T/78.125ps
注:参考时钟200MHz,延迟系数1对应78.125ps。
最佳延迟系数OPT_NUM即为:
当reg_tap1大于等于Num时,OPT_NUM=reg_tap1-Num。
当reg_tap1小于Num时,OPT_NUM=reg_tap1+Num。
由于IDELAY延迟基准时钟200MHz,最大延迟系数63,延迟精度78.125ps,最大延迟4921.785ps,所以上述的最佳延迟查找方法要求数据速率不低于1/4921.785ps=203Mbps。
4.5调整IDELAY延迟到最佳延迟位置(即最佳接收相位)
根据步骤4.4得到的最佳延迟值,调整IDELAY延迟到最佳延迟位置。
第五步,BITSLIP调整
DPA调整完成之后,开始调整串行数据流的串并转换序列,直至ISERDES输出并行数据与训练字一致,具体方法为:BITSLIP模块产生BITSLIP脉冲信号,脉冲宽度1个clkdiv,驱动ISERDES改变输出并行数据序列。每个BITSLIP脉冲之后,等待两个clkdiv周期,判断ISERDES输出并行数据是否与训练字一致,一致则BITSLIP调整结束,进入第六步;否则继续调整串行数据流的串并转换序列。
第六步,配置AD为正常工作模式
第七步,判断AD是否为工作间歇,若是,则返回第二步;若否,则接收AD源同步数据。
本发明的动态相位调整方法需基于具有IDELAY及ISERDES资源的FPGA实现,例如XILINX公司Virtex4系列及以上FPGA。

Claims (5)

1.一种应用于AD源同步数据接收的FPGA动态相位调整方法,所述FPGA为XILINX公司FPGA,包括IO逻辑资源IDELAY及ISERDES;IDELAY和ISERDES分别用于实现AD源同步数据的延迟及串并转换;其特征在于,包括步骤:
1)FPGA初始化AD;
2)配置AD工作在训练模式,输出训练字,所述训练字为串行数据流;
3)接收AD输出的串行数据并转换为并行数据;
4)DPA调整
4.1)通过对所述并行数据相邻位两两异或,查找所述训练字串行数据流中的电平变化位置;若未找到,则继续查找;若找到,则执行步骤4.2);
4.2)寄存所述电平变化位置对应的数据值edge_ifor1;
4.3)查找训练字串行数据流上升沿及相应的延迟系数reg_tap1;若未找到,则调整IDELAY延迟后继续查找;若找到,则执行步骤4.4);
4.4)计算最佳延迟值OPT_NUM;
当reg_tap1大于等于Num时,OPT_NUM=reg_tap1-Num;
当reg_tap1小于Num时,OPT_NUM=reg_tap1+Num;
Num为半个时钟周期对应的延迟系数,Num=T/78.125ps;
T为AD源同步时钟周期;
78.125ps为参考时钟等于200MHz,延迟系数1对应的时间;
4.5)根据最佳延迟值OPT_NUM,调整IDELAY延迟到最佳延迟位置;
5)BITSLIP调整
调整串行数据流的解串序列,直至ISERDES输出并行数据与训练字一致;
上述步骤4.3)查找训练字串行数据上升沿及相应的延迟系数reg_tap1的方法为:
从零延迟开始,增加IDELAY延迟系数,IDELAY延迟系数每增加1,判断一次解串数据异或结果低六位是否与上一步寄存的edge_infor1高六位一致,若一致时,则找到了训练字串行数据流电平变化的上升沿也即训练字串行数据上升沿,并记录此时的延迟系数reg_tap1;若不一致,则继续增加IDELAY延迟系数值,进行再次判断。
2.根据权利要求1所述的应用于AD源同步数据接收的FPGA动态相位调整方法,其特征在于:还包括步骤6)配置AD为正常工作模式。
3.根据权利要求2所述的应用于AD源同步数据接收的FPGA动态相位调整方法,其特征在于:还包括步骤7)判断AD是否为工作间歇,若是,则返回步骤2);若否,则接收AD源同步数据。
4.根据权利要求1、2或3所述的应用于AD源同步数据接收的FPGA动态相位调整方法,其特征在于:步骤4.1)查找所述训练字串行数据流中电平变化位置的方法为:对并行数据相邻位两两异或,若异或结果中含有1则认为找到电平变化位置;若异或结果中不含有1,则表示没有找到电平变化位置,继续进行查找。
5.根据权利要求4所述的应用于AD源同步数据接收的FPGA动态相位调整方法,其特征在于:步骤5)BITSLIP调整的具体方法为:BITSLIP模块产生BITSLIP脉冲宽度为1个clkdiv的脉冲信号,驱动ISERDES改变输出并行数据序列;判断ISERDES输出并行数据是否与训练字一致,一致则BITSLIP调整结束。
CN201811448836.2A 2018-11-28 2018-11-28 一种应用于ad源同步数据接收的fpga动态相位调整方法 Active CN109586692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811448836.2A CN109586692B (zh) 2018-11-28 2018-11-28 一种应用于ad源同步数据接收的fpga动态相位调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811448836.2A CN109586692B (zh) 2018-11-28 2018-11-28 一种应用于ad源同步数据接收的fpga动态相位调整方法

Publications (2)

Publication Number Publication Date
CN109586692A CN109586692A (zh) 2019-04-05
CN109586692B true CN109586692B (zh) 2020-07-31

Family

ID=65924123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811448836.2A Active CN109586692B (zh) 2018-11-28 2018-11-28 一种应用于ad源同步数据接收的fpga动态相位调整方法

Country Status (1)

Country Link
CN (1) CN109586692B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162503B (zh) * 2019-05-23 2024-03-22 灿芯半导体(上海)股份有限公司 高速数据同步电路及数据同步方法
CN110399319B (zh) * 2019-07-25 2021-03-23 尧云科技(西安)有限公司 一种NAND Flash PHY
CN110868555B (zh) * 2019-11-08 2022-04-19 中国航空工业集团公司洛阳电光设备研究所 一种稳定接收高速串行lvds红外图像数据的方法
CN113810029A (zh) * 2020-06-12 2021-12-17 圣邦微电子(北京)股份有限公司 一种检测数据相关性的电路
CN112511163A (zh) * 2020-11-16 2021-03-16 西安电子工程研究所 基于正确数据边界的ad输入fpga源同步参数自动计算方法
TWI755202B (zh) * 2020-12-16 2022-02-11 久元電子股份有限公司 相位校準裝置
CN113727148B (zh) * 2021-07-22 2022-07-29 北京控制工程研究所 一种大规模图像高速传输电路
CN114371822B (zh) * 2021-12-13 2023-12-01 青岛信芯微电子科技股份有限公司 数据传输装置、芯片、显示设备和数据传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559111A (zh) * 2013-10-24 2014-02-05 东软集团股份有限公司 Fpga芯片间的io信道调试方法及系统
CN104199276A (zh) * 2014-09-23 2014-12-10 李亚锋 基于fpga的信号时差测量方法及时间数字转换器
CN106254287A (zh) * 2016-08-09 2016-12-21 合肥埃科光电科技有限公司 一种基于FPGA的多通道高速输入信号自动de‑skew算法
CN108155964A (zh) * 2017-12-21 2018-06-12 南京理工大学 基于训练序列的fpga多通道串行数据动态对齐方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559111A (zh) * 2013-10-24 2014-02-05 东软集团股份有限公司 Fpga芯片间的io信道调试方法及系统
CN104199276A (zh) * 2014-09-23 2014-12-10 李亚锋 基于fpga的信号时差测量方法及时间数字转换器
CN106254287A (zh) * 2016-08-09 2016-12-21 合肥埃科光电科技有限公司 一种基于FPGA的多通道高速输入信号自动de‑skew算法
CN108155964A (zh) * 2017-12-21 2018-06-12 南京理工大学 基于训练序列的fpga多通道串行数据动态对齐方法

Also Published As

Publication number Publication date
CN109586692A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN109586692B (zh) 一种应用于ad源同步数据接收的fpga动态相位调整方法
CN108804371B (zh) 一种多通道高速数据接收的同步自校正方法
CN113364450B (zh) 校准电路与其相关的校准方法
US8634503B2 (en) Fast lock clock-data recovery for phase steps
EP1589682A1 (en) Demultiplexer circuit
JP2016512942A (ja) データシンボル遷移ベースのクロック同期を行うマルチワイヤオープンドレインリンク
US9154291B2 (en) Differential signal skew adjustment method and transmission circuit
US9054941B2 (en) Clock and data recovery using dual manchester encoded data streams
CN108471303B (zh) 一种基于fpga的可编程纳秒级定时精度脉冲发生器
JP2018046489A (ja) 半導体装置
US20120072759A1 (en) Timing Error Correction System and Method
US9685978B2 (en) Serializer and data transmitter comprising the same
TWI436219B (zh) 串列資料流的取樣時脈選擇模組
CN111262559B (zh) 具有校正功能的延迟线电路及其校正方法
US8169347B2 (en) Parallel-to-serial converter and parallel data output device
US8811559B1 (en) Timing recovery circuit and receiver circuit including the same
US7194057B2 (en) System and method of oversampling high speed clock/data recovery
JP2001352318A (ja) 送信回路とその方法、受信回路とその方法およびデータ通信装置
KR20190135275A (ko) 타이밍 조절이 가능한 고속 멀티 레벨 신호 수신기를 포함하는 반도체 장치 및 상기 수신기를 포함하는 반도체 테스트 장치
CN110113074B (zh) 一种基于fpga的高速伪码并行捕获与跟踪方法
CN112291120A (zh) 一种延时线结构及其时延抖动的校正方法
US20200052680A1 (en) Synchronous mirror delay circuit and synchronous mirror delay operation method
CN113141476B (zh) 一种高低频串行图像数据的训练方法
TWI635706B (zh) 決定出取樣時脈訊號的取樣相位的方法及相關的電子裝置
CN115987453A (zh) 基于联合相位调整的多通道数据训练方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant