一种自动调节输入延时、输出延时及输入输出延时的系统的制作方法

文档序号:22553433发布日期:2020-10-17 02:32阅读:304来源:国知局
一种自动调节输入延时、输出延时及输入输出延时的系统的制作方法

本申请涉及自动控制领域,具体而言,涉及一种自动调节输入延时、输出延时及输入输出延时的系统。



背景技术:

在高速接口系统中,接口信号由高速输入输出(io)模块的串口接收端rx传送到内部电路,并由随路时钟或内部恢复时钟采样。随着接口信号的速度越来越快,接收端的采样窗口会随不同工艺电压参数条件pvt化而发生偏移,会影响采样的准确性和真实性。故而接收系统的接收端采用自适应方式调节采样窗口的位置非常重要。

同样发送信号由高速输入输出(io)模块的串口发送端tx发送到外部,并由随路时钟或内部恢复时钟输出。随着发送信号的速度越来越快,发送端的发送窗口也会随不同工艺电压参数条件pvt化而发生偏移,会影响输出信号的准确性和真实性。故而发送系统的发送端采用自适应方式调节发送窗口的位置同样非常重要。



技术实现要素:

本申请的目的是克服上述接收端的采样窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷。

第一方面,提供了一种自动调节输入延时的系统,包括:模拟输入模块,用于接收输入信号;动态采样延时模块,用于根据第一和第二采样延时值分别采样所述输入信号,分别得到第一和第二采样信号;第一采样延时值在初始时是固定值,第二采样延时值可调整;输入逻辑电路模块,用于对所述第一和第二采样信号进行模数处理,分别得到第一数字信号和第二数字信号;和第一程序执行模块,用于通过比较所述第一数字信号和第二数字信号,并且根据比较结果动态调整所述第二采样延时值,根据多次动态调整结果校正第一采样延时值;其中,将校正后第一采样延时值控制下的第一采样信号作为采样结果。

在一个可能的实施方式中,所述动态采样延时模块包括:第一采样延时单元,用于接收所述第一采样延时的值和所述输入信号,根据所述第一采样延时的值采样所述输入信号,得到所述第一采样信号;和第二采样延时单元,用于接收所述第二采样延时的值和所述输入信号,根据所述第二采样延时的值采样所述输入信号,得到所述第二采样信号。

在一个可能的实施方式中,所述输入逻辑电路模块包括:第一输入逻辑电路单元,用于对所述第一采样信号进行模数处理后输出第一数字信号;和第二输入逻辑电路单元,用于对所述第二采样信号进行模数处理后输出第二数字信号。

在一个可能的实施方式中,所述第一程序执行模块包括:第一延时值调整单元,用于设置所述第一采样延时的值,动态调整所述第二采样延时的值;第一数值传送单元,用于将所述第一采样延时的值传送至所述第一采样延时单元,将所述第二采样延时的值传送至所述第二采样延时单元;第一信号采集单元,用于分别采集所述第一数字信号和所述第二数字信号;和第一延时确定单元,用于比较所述第二数字信号与所述第一数字信号,根据比较结果确定采样延时的值,将所述采样延时的值设置为所述第一采样延时的值,并反馈给所述第一延时值调整单元。

第二方面,提供了一种自动调节输出延时的系统,包括:输出逻辑电路模块,用于将第一和第二数据进行数模处理为ioc配置相同的第一和第二输出信号;动态输出延时模块,用于根据第一和第二输出延时的值分别输出所述输出信号,分别得到第一和第二输出延时信号;第一输出延时值在初始时是固定值,第二输出延时值可调整;模拟输出模块,用于将所述第一和第二输出延时信号调理驱动输出至发送端;所述多路反馈模块,用于将所述第一和第二输出延时信号传送至输入逻辑电路模块;输入逻辑电路模块,用于将所述第一和第二输出延时信号进行模数处理,分别得到第一和第二数字信号;和第二程序执行模块,用于通过比较所述第一数字信号和第二数字信号,并且根据比较结果动态调整所述第二输出延时值,根据多次动态调整结果校正第一输出延时值;其中,校正后的第一输出延时值控制下的第一输出延时信号作为输出结果。

在一个可能的实施方式中,所述多路反馈模块包括第一多路反馈单元和第二多路反馈单元;所述第一多路反馈单元,用于接收所述第一输出延时信号,通过设置使能为0或1,输出第一输出延时信号;所述第二多路反馈单元,用于接收所述第二输出延时信号,通过设置使能为0或1,选择输出第二输出延时信号。

在一个可能的实施方式中,所述输出逻辑电路模块包括第一输出逻辑电路单元和第二输出逻辑电路单元;所述第一输出逻辑电路单元,用于根据ioc的配置将所述第一数据经过处理后输出第一输出信号;所述第二输出逻辑电路单元,用于根据ioc的配置将所述第二数据经过处理后输出第二输出信号。

在一个可能的实施方式中,所述动态输出延时模块包括第一输出延时单元和第二输出延时单元;所述第一输出延时单元,用于接收所述第一输出延时的值和所述第一输出信号,根据所述第一输出延时的值输出所述第一输出信号,得到第一输出延时信号;所述第二输出延时单元,用于接收所述第二输出延时的值和所述第二输出信号,根据所述第二输出延时的值输出所述第二输出信号,得到的第二输出延时信号。

在一个可能的实施方式中,所述输入逻辑电路模块包括第一输入逻辑电路单元和第二输入逻辑电路单元;所述第一输入逻辑电路单元,用于将所述第一输出延时信号模数处理后输出第一数字信号;所述第二输入逻辑电路单元,用于将所述第二输出延时信号模数处理后输出第二数字信号。

在一个可能的实施方式中,所述第二程序执行模块包括:第二延时值调整单元,用于设置所述第一输出延时的值,动态调整所述第二输出延时的值;第二数值传送单元,用于将所述第一输出延时的值传送至所述第一输出延时单元;将所述第二输出延时的值传送至所述第二输出延时单元;第二信号采集单元,用于分别采集所述第一数字信号和所述第二数字信号;和第二延时确定单元,用于比较所述第二数字信号与所述第一数字信号,根据比较结果动态调整所述第二输出延时值,计算输出窗口的中间所对应的输出延时的值,根据此值校正所述第一输出延时的值,并将校正后的所述第一输出延时的值反馈给所述第一输出延时单元。

第三方面,提供了一种自动调节输入输出延时的系统,该系统集成所述自动调节输入延时的系统和所述自动调节输出延时的系统;其中,所述多路反馈模块,用于通过设置使能值,将所述采样信号或输出延时信号之一反馈至其中的输入逻辑电路模块。在一个可能的实施方式中,所述多路反馈模块包括第一多路反馈单元和第二多路反馈单元;所述第一多路反馈单元,用于接收所述第一输出延时信号和第一采样信号,通过设置使能为0时选择第一采样信号输出;设置使能为1时选择第一输出延时信号输出。所述第二多路反馈单元,用于接收所述第二输出延时信号和第二采样信号,通过设置使能为0时选择第二采样信号输出;设置使能为1时选择第二输出延时信号输出。

与现有技术相比,本申请的有益效果在于:

1、本申请实施例提出的一种自动调节输入延时的系统采用自适应方式调节输入采样窗口的边界,确定正确的采样延时,使采样有最大的噪声余量,能够保证采样数据的正确和真实,克服采样窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷;

2、本申请实施例提出的一种自动调节输出延时的系统采用自适应方式调节输出采样窗口的边界,确定正确的输出延时,使输出数据有最大的噪声余量,能够保证输出数据的正确和真实,克服输出采样窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷;

3、本申请实施例提出的一种自动调节输入输出延时的系统采用自适应方式既能够调节输入采样窗口的边界,确定正确的采样延时,也能够调节输出采样窗口的边界,确定正确的输出延时,使输入数据和输出数据均有最大的噪声余量,能够保证输入数据和输出数据的正确和真实,克服输入采样窗口和输出采样窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷。

附图说明

为了更清楚地说明本申请披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例示出的输入信号(datain)和采样时钟控制信号(clock)时序关系示意图;

图2为本申请实施例示出的一种自动调节输入延时的系统的功能结构图;

图3为本申请实施例示出的有效采样窗口边沿延时都大于0时的输入信号(datain)和采样时钟控制信号(clock)、最大延时的输入数据(datainmaxdelay)及最小延时的输入数据(datainmindelay)的时序关系示意图;

图4为本申请实施例示出的有效采样窗口边沿延时有不大于0时的输入信号(datain)和采样时钟控制信号(clock)、最大延时的输入数据(datainmaxdelay)、第一延时的输入数据(dataindelay1)及第二延时的输入数据(dataindelay2)的时序关系示意图;

图5为本申请实施例示出的第一程序执行模块执行的程序流程图;

图6为发明实施例示出的一种自动调节输出延时的系统的功能结构图;

图7为本申请实施例示出的一种自动调节输入输出延时的系统的功能结构图;

图8为本申请实施例示出的一种自动调节输入输出延时的系统在fpga芯片的io接口系统应用的电路结构图。

具体实施方式

下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。

本申请实施例披露一种自动调节输入延时的系统,下面首先介绍所述系统的发明构思。

以输入信号为例,图1示出了输入信号(datain)和采样时钟控制信号(clock)时序关系。如图1所示,采样窗口w1为输入信号(datain)的第一边界t1至第二边界t2之间数据段,t时刻为输入信号(datain)的第一边界t1至第二边界t2之间的中间时刻值。当采样时钟控制信号(clock)的采样沿处于采样窗口w1的中间时,采样的数据有最大的噪声余量,能够保证采样的正确和真实,这样可以认为采样延时设置是合理的,t1时刻到t时刻的延时为采样延时。

随着接口端的输入信号的传输频率越来越快,接收端的采样窗口会随不同工艺电压参数pvt变化而发生偏移。继续如图1所示,第一种情况,输入信号发生右偏移,有效数据偏移至采样窗口w2的正中间,导致按照原有的采样时刻t采样,有可能会采集不到完整的有效数据或采集到的数据不是真实的有效数据。第二种情况,采样时钟控制信号的采样延时t偏移,比如随着工作时间的增加,内部时钟控制器件温度升高,引起电压漂移,漂移后的实际采样时刻为t’,按照实际采样时刻为t’采样,采样信号发生相对的左偏移,有可能会采集不到完整的有效数据或采集到的数据不是真实的有效数据。在这两种情况下,按照固定的采样时钟控制信号(clock)的设置的采样时刻进行采样会影响采样数据的准确性和真实性,因此,需要一种系统能够动态调节采样窗口下的采样延时值,使采样时刻自动调整到采样窗口的中间。

进一步地,考虑到在高速接口系统中,输入信号由高速输入输出(io)模块的接收端rx传送到系统内部电路,并由随路时钟或内部恢复时钟控制采样,为了获得更好的信号传输质量,接收端rx的输入信号通常都是差分信号,因此以差分信号作为输入信号,分两路分别进行采样和调整延时值。第一路设第一采样延时值在初始时是固定值,根据第一采样延时值进行采样,得到第一采样信号;第二路动态调整第二采样延时值,根据第二采样延时值进行采样,得到第二采样信号;比较第一采样信号和第二采样信号是否相同,如果不同,根据比较结果动态调整第二采样延时值,直至第一采样信号和第二采样信号相同为止;根据多次动态调整结果校正第一采样延时值,并且将第一采样延时值控制下的第一采样信号作为结果输出。

一方面,本申请实施例提出一种自动调节输入延时的系统,该系统通过在现有的fpga芯片的io接口系统中设置动态采样延时模块,可以调节采样时钟控制信号的采样延时,在该采样延时控制下采样,采样点有最大的噪声余量,能够保证采样的正确和真实。

如图2所示,本申请实施例提出的一种自动调节输入延时的系统包括按照输入数据的传输关系依次电气连接的模拟输入模块20、动态采样延时模块21、输入逻辑电路模块22和第一程序执行模块23。

其中模拟输入模块20为现有的fpga芯片的io接口系统中常规设置,能够将接收端接收到的信号差分处理成输入信号。具体地,该输入信号包括第一输入信号rdx0和第二输入信号rdx1。

模拟输入模块20连接动态采样延时模块21,将输入信号传送至动态采样延时模块21。动态采样延时模块21根据采样延时的值采样输入信号,得到采样信号。

在实施例中,动态采样延时模块21接收到经过模拟输入模块20处理的输入信号,该输入信号包括第一输入信号rdx0和第二输入信号rdx1,动态采样延时模块21将第一输入信号rdx0和第二输入信号rdx1分为两路分别进行延时处理,第一路对第一输入信号rdx0采用设定的第一采样延时in_delay0_ctrl的值采样;第二路对第二输入信号rdx1采用第二采样延时in_delay1_ctrl的值采样。具体地,动态采样延时模块21包括第一采样延时单元211和第二采样延时单元212。

第一采样延时单元211接收第一采样延时in_delay0_ctrl的值和第一输入信号rdx0,根据第一延时in_delay0_ctrl的值采集第一输入信号rdx0,得到延时后的第一采样信号rxd0,将第一采样信号rxd0输出至输入逻辑电路模块22。

其中需要说明的是第一采样延时in_delay0_ctrl的值可以是第一程序执行模块23预先设定的值,也可以是经过动态调整后第一程序执行模块23反馈校正后的值。

第二采样延时单元212接收第二采样延时in_delay1_ctrl和第二输入信号rdx1,根据第二采样延时in_delay1_ctrl的值采样第二输入信号rdx1,得到延时后的第二采样信号rdx1,将第二采样信号rxd1输出至输入逻辑电路模块22。

其中需要说明的是第二采样延时in_delay1_ctrl的初始值为第一采样延时in_delay0_ctrl的初始值;在动态调整的工作过程中,第二采样延时in_delay1_ctrl的值由第一程序执行模块23动态设置,调整方向可以是增加或减少。

还需要说明的是第二采样延时单元212与第一采样延时单元211是两个功能及结构相同的模块,在工作过程中第二采样延时单元212的接收到的第二采样延时in_delay1_ctrl是动态变化的,随第二采样延时in_delay1_ctrl的动态变化输出不同延时的第二采样信号rxd1。

采样延时模块21连接输入逻辑电路模块22,采样延时模块21将采样信号传送至逻辑电路模块22。输入逻辑电路模块22对采样信号进行模数处理并输出数字信号至第一程序执行模块23。

具体地,输入逻辑电路模块22分别对接收到的采样信号进行后期运算处理比如串行信号转并行信号,模拟信号转数字信号等处理并输出数字信号至第一程序执行模块23。接收到的采样信号包括第一采样信号rxd0和第二采样信号rxd1,输入逻辑电路模块22包括第一输入逻辑电路单元221和第二输入逻辑电路单元222。

第一输入逻辑电路单元221接收第一采样信号rxd0,经过处理后输出第一数字信号qx0[7:0]至第一程序执行模块23,第一数字信号qx0[7:0]是连续若干个数据的数据串qx00[7:0],qx01[7:0],qx02[7:0],…qx0i[7:0],i为自然数,每一个数据都是8位数字信号,每一个数据对应一个采样窗口。

第二输入逻辑电路单元222接收第二采样信号rxd1,经过处理后输出第二数字信号qx1[7:0]至第一程序执行模块23,第二数字信号qx1[7:0]是连续若干个数据的数据串qx11[7:0],qx12[7:0],…qx1i[7:0],i为自然数,[7:0]表示每一个数据都是8位数字信号,每一个数据对应一个采样窗口。

输入逻辑电路模块22通过数据总线连接第一程序执行模块23,输入逻辑电路模块22将数字信号传送至第一程序执行模块23。

第一程序执行模块23通过比较所述第一数字信号和第二数字信号,并且根据比较结果动态调整所述第二采样延时值;其中,根据多次动态调整结果校正第一采样延时值,并且将第一采样延时值控制下的第一采样信号作为结果输出。

具体地,第一程序执行模块23包括第一延时值调整单元231、第一数值传送单元232、第一信号采集单元233和第一延时确定单元234。

第一延时值调整单元231,用于设置第一采样延时in_delay0_ctrl的值,和动态调整第二采样延时in_delay1_ctrl的值。

具体地,第一延时值调整单元231在系统上电后对各个模块复位,设置第一采样延时in_delay0_ctrl的值为m,m为第一采集窗口w1的第一边界到中间的采样时刻t的延时值,设置延时值的调整单元值为k,k为大于0的自然数,m和k的单位均为时间单位(秒/毫秒/纳秒等)。

例如,设置第一采样延时in_delay0_ctrl的初始值为m,则有:

in_delay0_ctrl=m(1)

动态增大或减小第二采样延时的值,每次增大或减小一个单元值,则第n次调整后第二采样延时in_delay1_ctrl的值为:

in_delay1_ctrl=m±nk(2)

其中n为自然数。

第一数值传送单元232将第一采样延时in_delay0_ctrl的值传送至第一采样延时单元211;将第二采样延时in_delay1_ctrl的值传送至第二采样延时单元212。

第一信号采集单元233分别采集第一输入逻辑电路单元221输出的第一数字信号qx0[7:0]和第二输入逻辑电路单元222输出的第二数字信号qx1[7:0]。

第一延时确定单元234逐位比较第二数字信号qx1[7:0]与第一数字信号qx0[7:0]的值,根据比较结果,计算第二采样窗口的中间时刻所对应的采样延时的值,将此值设置为第一采样延时in_delay0_ctrl的值,并反馈给第一采样延时单元211。

具体地,第一延时确定单元234将第二数字信号qx1[7:0]与第一数字信号qx0[7:0]逐位比较,判断比较结果是否一致。

当比较结果为一致时,则在第二采样延时单元212内第二差分信号rdx1经过第二采样延时in_delay1_ctrl的值采样得到第二采样信号rdx1,采样延时值没有到达第二采样窗口w2的边界,采集到的数据是准确的,继续按原方向调整第二采样延时的值。

当比较结果为不一致时,重复采集第二数字信号qx1[7:0]与第一数字信号qx0[7:0]进行比较,重复采集次数例如7次,如果比较结果仍为不一致,则在第二采样延时单元212内第二差分信号rdx1经过第二采样延时in_delay1_ctrl的调整得到的第二采样信号rdx1,采样延时到达第二采样窗口w2的边界,采样到第二采样窗口w2外。

当采样到第二采样窗口w2外时,动态调整第二采样延时in_delay1_ctrl的值,可以得到第二采样窗口w2的第一边界e1和第二边界e2。

在实施例中,当第一采样延时in_delay0_ctrl的值为m大于0时,采样信号(datain)和采样时钟控制信号(clock)、最大延时的采样数据(datainmaxdelay)及最小延时的采样数据(datainmindelay)的时序关系如图3所示。

图3中,datain为第一采样延时in_delay0_ctrl下采样第一数字信号qx0[7:0]的时序。

datainmaxdelay为调整第二采样延时in_delay1_ctrl的值增加到最大时采样的第二数字信号qx1[7:0]的时序。

具体地,当第二采样延时in_delay1_ctrl的值由初始值m增加到某个值时,采样的第二数字信号qx1[7:0]与第一数字信号qx0[7:0]进行比较,比较结果发生变化,为不一致,则认定当前第二采样延时in_delay1_ctrl的值为延时值的最大值,将该值作为第二采样窗口w2的第一边界e1:

e1=in_delay1_ctrl=m+ik(3)

然后再寻找第二采样窗口w2的第二边界e2。

图3中,datainmindelay为调整第二采样延时in_delay1_ctrl的值减小到最小时采样第二数字信号qx1[7:0]的时序。

具体地,将第二采样延时in_delay1_ctrl的值由初始值m减小到某个值时,第二数字信号qx1[7:0]与第一数字信号qx0[7:0]进行比较,比较结果为不一致,则认定当前第二采样延时in_delay1_ctrl的值为延时值的最小值,将该值作为第二采样窗口w2的第二边界e2:

e2=in_delay1_ctrl=m-jk(4)

在第二采样延时单元212内,第二差分信号rdx1在第二采样延时in_delay1_ctrl的控制下采样,当延时调整幅度在e1和e2之间时,得到的第二采样信号rdx1的采样数据即第二数字信号qx1[7:0]不会发生变化,可以确定第二采样窗口w2的第一边界e1和第二边界e2。

通过计算第二采样窗口w2的第一边界e1和第二边界e2,即可得到采样在第二采样窗口w2的中间采样时刻对应的延时值v:

v=(e1-e2)/2(5)

将延时值v设置为第一采样延时in_delay0_ctrl的值,即:

in_delay0_ctrl=v(6)

反馈给第一输入延时模块211。在第一输入延时模块211内,第一差分信号rdx0经过在校正的第一采样延时in_delay0_ctrl下采样,采样在所述第一采样信号的采样窗口中间,则实现自动调节采样延时。

当接收端的输入信号发生如图1所示的两种偏移情况之一时,在第一采样延时in_delay0_ctrl的值为m时,采样时刻t不是第一采集窗口w1的中间时刻,在这种情况下在第二采样延时单元212内,第二差分信号rdx1经过第二采样延时in_delay1_ctrl的采样,可以得到ik<jk或ik>jk,根据公式(5)计算得到第二采样窗口w2的中间采样时刻t对应的延时值v为:

v=(i+j)k/2(7)

因此对第一采样延时in_delay0_ctrl的值校正为v。

在另实施例中,当第一采样延时in_delay0_ctrl的值不大于0时,由于第二采样延时in_delay1_ctrl的初始值与第一采样延时in_delay0_ctrl的值相等,因此不能通过动态减小延时值寻找第二采样窗口w2的第二边界e2;在这种情况下,只能靠动态增大延时值寻找左边的第三采样窗口w3的边界。这种情况通常为系统信号初调延时值为0的情况。

在这种情况下,输入信号(datain)和采样时钟控制信号(clock)、最大延时的输入数据(datainmaxdelay)、第一延时的输入数据(dataindelay1)及第二延时的输入数据(dataindelay2)的时序关系如图4所示。

图4中,datain为第一采样延时in_delay0_ctrl的值为0时采样第一数字信号qx0[7:0]的时序,在采样时刻为t1采集到的数据为qx0i[7:0],在采样时刻为t2采样时刻为qx0i-1[7:0]。

datainmaxdelay为调整第二采样延时in_delay1_ctrl的值增加到m时采样第二数字信号qx1[7:0]的时序。

具体地,当第二采样延时in_delay1_ctrl的值由初始值0增加到m时,采集的第二数字信号qx1[7:0]与第一数字信号qx0i[7:0]进行比较,当比较结果发生变化,为不一致时,则认为当前第二采样延时in_delay1_ctrl的值达到了第二采样窗口的第一边界。当延时继续增加时,第二数字信号qx1[7:0]与第一采样窗口w1内的第一数字信号qx0i[7:0]不同,采样到第二采样窗口w2外左侧数据。

比较第二数字信号qx1[7:0]与第一采样窗口w1左侧采样窗口的数据qx0i-1[7:0]是否相同,如果不同,则继续增大第二采样延时in_delay1_ctrl的值,直到比较结果发生变化,当比较结果为一致时,则采样到第三采样窗口w3的第一边界。

图4中,dataindelay1为调整第二采样延时in_delay1_ctrl增加,采样到第三采样窗口w3的第一边界时第二数字信号qx1[7:0]的时序。

具体地,根据第二采样延时in_delay1_ctrl的当前值,能够确定第三采样窗口w3的第一边界e1':e1'=m+ik。

继续增大第二采样延时in_delay1_ctrl的值,比较第二数字信号qx1[7:0]与第一采样窗口w1左侧采样窗口的数据qx0i-1[7:0]是否相同,如果比较结果相同,则采样延时没有到达第三采样窗口w3的第二边界,继续按原方向增大第二采样延时的值,直到比较结果发生变化,当比较结果为不一致时,则采样到第三采样窗口w3的第二边界。

图4中,dataindelay2为调整第二采样延时in_delay1_ctrl继续增加到采样到第三采样窗口w3的第二边界时第二数字信号qx1[7:0]的时序。

根据第二采样延时in_delay1_ctrl的当前值,能够确定第三采样窗口w3的第二边界e2:e2=m+jk。

通过计算第三采样窗口w3的第一边界e1和第二边界e2,即可得到采样在第三采样窗口w3的中间采样时刻t对应的延时值v:v=(e2-e1')/2

将延时值v设置为第一采样延时in_delay0_ctrl的校正值,即:in_delay0_ctrl=v

反馈给第一输入延时模块211。在第一输入延时模块211内,第一差分信号rdx0经过校正后的第一采样延时in_delay0_ctrl的采样,采样在所述第一采样信号的采样窗口中间,则实现自动调节采样延时。

在实施例中,如图5所示,第一程序执行模块23执行以下步骤501-521完成上述图3和图4两种实施例的自动调节采样延时。

501,系统上电,各个模块复位。

502,设置调节采样时钟控制信号的延时模块值为k,k为大于0的自然数。

503,记录第一采样延时in_delay0_ctrl的初始值为d,则有:in_delay0_ctrl=d

设置第二采样延时in_delay1_ctrl=in_delay0_ctrl。

504,动态增大第二采样延时in_delay1_ctrl,将第二采样延时in_delay1_ctrl的值发送至第二采样延时单元212,将第一采样延时in_delay0_ctrl的值发送至第一采样延时单元211。

505,比较第二数字信号qx1[7:0]与第一数字信号qx0[7:0];判断qx1

[7:0]与第一数字信号qx0[7:0]是否相同:

如果相同,执行步骤504;如果不相同,则执行步骤506。

506,记录第二采样窗口w2的第一边界值e1=in_delay1_ctrl=m+ik;同时复位第二采样延时in_delay1_ctrl=d。

507,判断第二采样延时in_delay1_ctrl是否大于0:

如果判断结果为“是”,则执行步骤508;如果判断结果为“否”,则执行步骤513。

508,减小第二采样延时in_delay1_ctrl的值,将第二采样延时in_delay1_ctrl的值发送至第二采样延时单元212,采集第二数字信号qx1[7:0]。

509,比较第二数字信号qx1[7:0]与第一数字信号qx0[7:0];判断qx1[7:0]与第一数字信号qx0[7:0]是否相同:

如果相同,执行步骤507;如果不相同,则执行步骤510。

510,记录第二采样窗口w2的第二边界值e2=in_delay1_ctrl=m-jk;同时复位第二采样延时in_delay1_ctrl=d。

511,计算第二采样窗口w2中间值v:v=(e1-e2)/2

512,设置第一采样延时in_delay0_ctrl=v,将校正的第一采样延时in_delay0_ctrl的值发送至第一采样延时单元211。

513,设in_delay1_ctrl为第三采样窗口w3的延时值。

514,增大第二采样延时in_delay1_ctrl的值,将第二采样延时in_delay1_ctrl的值发送至第二采样延时单元212,采集第二数字信号qx1[7:0]。将第一数字信号qx0[7:0]右移一位,得到第一数字信号qx0i-1[7:0]。

515,比较第二数字信号qx1[7:0]与第一数字信号qx0i-1[7:0],判断qx1[7:0]与第一数字信号qx0i-1[7:0]是否相同:

如果相同,执行步骤516;如果不相同,则执行步骤514。

516,记录第三采样窗口的第一边界值e1'=in_delay1_ctrl=m+ik;

517,增大第二采样延时in_delay1_ctrl的值,将第二采样延时in_delay1_ctrl的值发送至第二采样延时单元212,采集第二数字信号qx1[7:0]。将第一数字信号qx0[7:0]右移一位,得到第一数字信号qx0i-1[7:0]。

518,比较第二数字信号qx1[7:0]与第一数字信号qx0i-1[7:0];判断qx1[7:0]与第一数字信号qx0i-1[7:0]是否相同:

如果相同,执行步骤517;如果不相同,则执行步骤519。

519,记录第三采样窗口的第二边界值e2=in_delay1_ctrl=m+jk;同时复位第二采样延时in_delay1_ctrl=d。

520,计算第三采样窗口中间值v=(e2-e1')/2。

521,设置第一采样延时in_delay0_ctrl=v,将校正后的第一采样延时in_delay0_ctrl的值发送至第一采样延时单元211;将第一数字信号qx0[7:0]右移一位,得到第一数字信号qx0i-1[7:0],存储qx0i-1[7:0]。

上述任一本申请实施例提出的自动调节输入延时的系统,采用自适应方式调节输入数据采样窗口的边界,确定正确的采样延时,使采样有最大的噪声余量,能够保证采样数据的正确和真实,克服采样窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷。

另一方面,本申请实施例提出一种自动调节输出延时的系统,该系统通过在现有的fpga芯片的io接口系统中设置动态输出延时模块,可以调节采样时钟控制信号的输出延时,于该输出时刻t发送输出信号,输出信号有最大的噪声余量,能够保证输出的正确和真实。如图6所示,本申请的自动调节输出延时的系统包括按照输出数据的传输关系依次电连接的输出逻辑电路模块31、动态输出延时模块32、多路反馈模块33、输入逻辑电路模块22和第二程序执行模块34以及模拟输出模块35。

其中,输出逻辑电路模块31将第一和第二数据转换为两个ioc配置相同的第一和第二输出信号;传送至动态输出延时模块32。

在实施例中,输出逻辑电路模块31对接收到的第一数据d0[7:0]和第二数据d1[7:0]。进行前期运算处理,比如并行信号转串行信号,数字信号转模拟信号等处理,转换为ioc配置相同的第一输出信号txd0和第二输出信号txd1,传送至动态输出延时模块32。

具体地,输出逻辑电路模块31包括第一输出逻辑电路单元311和第二输出逻辑电路单元312。

第一输出逻辑电路单元311根据ioc0的配置将第一数据d0[7:0]经过处理后输出第一输出信号txd0至动态输出延时模块32,第一数据d0[7:0]是连续若干个数据的数据串d01[7:0],d02[7:0],…d0i[7:0],i为自然数,每一个数据都是8位数字信号。

第二输出逻辑电路单元312根据ioc1的配置将第二数据d1[7:0]经过处理后输出第二输出信号txd1至动态输出延时模块32,第二数据d1[7:0]是连续若干个数据的数据串d11[7:0],d12[7:0],…d1i[7:0],i为自然数,每一个数据都是8位数字信号。

第一输出信号txd0和第二输出信号txd1配置ioc1和ioc0一致,使第二输出信号txd1和第一输出信号txd0信号一致。

输出逻辑电路模块31连接动态输出延时模块32,输出逻辑电路模块31将输出信号传送至动态输出延时模块32。

动态输出延时模块32据第一和第二输出延时的值分别输出所述输出信号,分别得到第一和第二输出延时信号;第一输出延时值在初始时是固定值,第二输出延时值可调整;将输出延时信号反馈至多路反馈模块33和模拟输出模块35。

在实施例中,动态输出延时模块32接收到输出信号,该输出信号包括第一输出信号txd0和第二输出信号txd1,动态输出延时模块32将第一输出信号txd0和第二输出信号txd1分为两路分别进行延时输出,第一路对第一输出信号txd0根据第一输出延时out_delay0_ctrl的值输出;第二路对第二输出信号txd1采根据第二输出延时out_delay1_ctrl的值输出。具体地,动态输出延时模块32包括第一输出延时单元311和第二输出延时单元312。

第一输出延时单元321,用于接收第一输出延时out_delay0_ctrl的值和第一输出信号txd0,根据第一输出延时out_delay0_ctrl的值输出第一输出信号txd0,得到延时后的第一输出延时信号txd0,将第一输出延时信号txd0输出至多路反馈模块33和模拟输出模块35,由多路反馈模块33的使能选择输出至输入逻辑电路模块22。同时模拟输出模块35将所述输出延时信号调理驱动输出至发送端。

其中需要说明的是第一输出延时out_delay0_ctrl的值可以是第二程序执行模块34预先设定的值,也可以是经过动态调整后第二程序执行模块34反馈回来的值。

第二输出延时单元322,用于接收第二输出延时out_delay1_ctrl的值和第二输出信号txd1,根据第二输出延时out_delay1_ctrl的值输出第二输出信号txd1,得到延时后的第二输出延时信号txd1,将第二输出延时信号txd1输出反馈至至多路反馈模块33和模拟输出模块35,由多路反馈模块33的使能选择输出至输入逻辑电路模块22。同时模拟输出模块35将所述输出延时信号调理驱动输出至发送端。

其中需要说明的是第二输出延时out_delay1_ctrl的初始值为第一输出延时out_delay0_ctrl的值;在工作过程中,第二输出延时out_delay1_ctrl的值由第二程序执行模块34动态调整,调整方向可以是增加或减少。

还需要说明的是第一输出延时单元321与第二输出延时单元322是两个功能及结构相同的模块,在工作过程中第二输出延时单元322的接收到的第二输出延时out_delay1_ctrl的值是动态变化的,随第二输出延时out_delay1_ctrl的值动态变化输出不同延时的第二输出延时信号。

在实施例中,如图8所示,动态输出延时模块32连接多路反馈模块33,动态输出延时模块32将输出延时信号传送至多路反馈模块33,多路反馈模块33将输出延时信号回馈到输入采样逻辑模块22。

输入逻辑电路模块22分别接收第一输出延时信号txd0和第二输出延时信号txd1进行后期逻辑控制处理并输出数据。比如串行信号转并行信号的处理等。

在实施例中,输入逻辑电路模块22与自动调节输入延时的系统中相同,包括第一输入逻辑电路单元221和第二输入逻辑电路单元222。

具体地,第一输入逻辑电路单元221将第一输出延时信号txd0,处理后输出第一数字信号qx0[7:0],第一数字信号qx0[7:0]是连续若干帧数据的数据串qx01[7:0],qx02[7:0],…qx0i[7:0],i为自然数,每一帧都是8位数字信号。

第二输入逻辑电路单元222采集第二输出延时信号txd1,经过处理后输出第二数字信号qx1[7:0],第二数字信号qx1[7:0]是连续若干帧数据的数据串qx11[7:0],qx12[7:0],…qx1i[7:0],i为自然数,[7:0]表示每一帧都是8位数字信号。

第二程序执行模块34,用于通过比较所述第一数字信号和第二数字信号,并且根据比较结果动态调整所述第二输出延时值,根据多次动态调整结果校正第一输出延时值。

输出延时的值包括第一输出延时out_delay0_ctrl的值和第二输出延时out_delay1_ctrl的值。

在实施例中,第二程序执行模块34包括第二延时值调整单元341、第二数值传送单元342、第二信号采集单元343和第二延时确定单元344。

所述第二延时值调整单元341设置第一输出延时out_delay0_ctrl的值,和动态调整第二输出延时out_delay1_ctrl的值。

所述第二数值传送单元342将第一输出延时out_delay0_ctrl的值传送至第一输出延时单元321;将第二输出延时out_delay1_ctrl的值传送至第二输出延时单元322。

所述第二信号采集单元343分别采集第一数字信号qx0[7:0]和第二数字信号qx1[7:0]。

所述第二延时确定单元344比较第二数字信号qx1[7:0]与第一数字信号qx0[7:0],并且根据比较结果动态调整所述第二输出延时值,将根据此值校正第一输出延时out_delay0_ctrl的值,并将校正后的第一输出延时out_delay0_ctrl的值反馈给第一输出延时单元321。

第一输出延时单元321根据校正后的第一输出延时的值控制输出信号,得到的第一输出延时信号作为输出结果输出。

具体的第二延时确定单元344的实施例及实施方式流程图,均可参照图3、图4和图5提供的实施例,具体内容在第一延时确定单元234中已经详细分析和描述,在此不再赘述。

再一方面,本申请实施例提出一种自动调节输入输出延时的系统,该系统通过在fpga芯片的io接口系统中设置动态输采样延时模块和动态输出延时模块,通过多路反馈模块设置使能值,将采样信号或输出延时信号之一反馈至其中的输入逻辑电路模块。可以调节采样时钟控制信号的采样延时和输出延时,于该采样时刻t采集输入信号,输入信号有最大的噪声余量,能够保证采样的正确和真实。于该输出时刻t发送输出信号,输出信号有最大的噪声余量,能够保证输出的正确和真实。

如图7所示的一种自动调节输入输出延时的系统,该系统集成了上述任意实施例提供的自动调节输入延时的系统和自动调节输出延时的系统,通过多路反馈模块33设置使能值,将采样信号或输出延时信号之一反馈至其中的输入逻辑电路模块,第一方面能够调节输入采样窗口的边界,确定正确的采样延时,第二方面能够调节输出窗口的边界,确定正确的输出延时,使输入数据和输出数据均有最大的噪声余量,能够保证输入数据和输出数据的正确和真实,克服输入采样窗口和输出窗口会随不同工艺电压参数条件(pvt)变化而发生偏移的缺陷。

在实施例中,多路反馈模块33包括第一多路反馈单元331和第二多路反馈单元332;第一多路反馈单元接收所述第一输出延时信号和第一采样信号,通过设置使能为0时选择第一采样信号输出;设置使能为1时选择第一输出延时信号输出。第二多路反馈单元接收所述第二输出延时信号和第二采样信号,通过设置使能为0时选择第二采样信号输出;设置使能为1时选择第二输出延时信号输出。

其中如何实现自动调节输入延时的系统和自动调节输出延时的系统在上文已经有了详细论述,在此就不在一一展开论述。

在实施例的实施方式中,如图8所示,给出了在现有的fpga芯片的io接口系统集成上述自动调节输入输出延时的系统的电路图。

具体地,自动调节输入输出延时的系统包括模拟io模块(analogio)、动态延时模块(dynamicdelaycell)和数字输入输出模块(digitalio)。

模拟io模块(analogio)包括模拟输入模块20和模拟输出模块35。动态延时模块(dynamicdelaycell)包括动态采样延时模块21(inputdelay)和动态输出延时模块32(outputdelay)。数字输入输出模块(digitalio)包括多路反馈模块33(feedbackmux)、输入逻辑电路模块22(inlogic)和输出逻辑电路模块31(outlogic)。以及连接于外部的第一程序执行模块23和第二程序执行模块34。

需要说明的是第一程序执行模块23和第二程序执行模块34没有在图8中示出。其中模拟io模块(analogio)为fpga芯片的io接口系统中的规范设置,对其功能和原理不需要再进行解释和说明。

需要说明的是模拟io模块20(analogio)提供处理好的差分输入信号rxd0和rxd1给动态采样延时模块21(inputdelay);还将动态输出延时模块32(outputdelay)调理好的输出延时信号txd0和txd1驱动并调整正反相输出至发送端tx。

图8中clockgenerator&gearboxcontrol模块为fpga芯片的io接口系统中的规范配置的模块,本申请中对此没有涉及。

本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1