用于在串行数据信号中对准和减少歪斜的技术的制作方法

文档序号:11774439阅读:235来源:国知局
用于在串行数据信号中对准和减少歪斜的技术的制作方法与工艺

本申请是申请号为201310340176.7、申请日为2013年08月01日、发明名称为“用于在串行数据信号中对准和减少歪斜的技术”的发明专利申请的分案申请。

本发明涉及电子电路,并且尤其涉及用于在串行数据信号中对准和减少歪斜的技术。



背景技术:

现场可编程门阵列(fpga)集成电路包括输入/输出(i/o)区域、可编程逻辑电路区域和可编程互连资源,可编程互连资源可以用来将可编程逻辑电路区域彼此互连以及与i/o区域互连。通过恰当地编程或者配置可编程逻辑电路和可编程互连资源,用户可以配置fpga来执行所需功能。i/o区域也可以是可编程的。

fpga的互连资源可以包括全局互连资源、区域互连资源和局部互连资源,全局互连资源向集成电路的许多不同部分传递信号以及在集成电路的许多不同部分当中传递信号,区域互连资源在集成电路的很大一部分(但是少于全部)内传递信号,局部互连资源在可编程逻辑电路的分组内传递信号。

fpga在尺寸和能力方面持续增大。许多fpga具有在i/o区域中的大量通道,这些通道与外部设备接收和传送数据信号。然而,随着在fpga上的通道的数目增加,包括信号线以及开关或布线资源二者以产生所需信号路径的互连资源的量也已增加。在许多电流fpga中,互连资源消耗集成电路的裸片面积的很大一部分。数以千计的接线可以用来将多个fpga彼此连接以及与电路板上的其它集成电路连接。



技术实现要素:

根据在此描述的一些实施例,电路包括第一对准器电路和第二对准器电路以及去歪斜电路。第一对准器电路可操作用于将第一输入串行数据信号与控制信号对准以生成第一对准串行数据信号。第二对准器电路可操作用于将第二输入串行数据信号与控制信号对准以生成第二对准串行数据信号。去歪斜电路可操作用于减少第一对准串行数据信号和第二对准串行数据信号以生成第一输出串行数据信号和第二输出串行数据信号。

通过考虑以下详细描述和附图,本发明的各种目的、特征和优势将变得明显。

附图说明

图1图示根据本发明的实施例的数据传输系统的示例。

图2图示根据本发明的实施例的通过插入器连接的两个集成电路的示例。

图3图示根据本发明的实施例的对准和去歪斜电路的示例。

图4图示根据本发明的实施例的对准器电路的示例。

图5图示根据本发明的实施例的生成在图4的对准器电路中所使用的控制信号的控制电路的示例。

图6是根据本发明的实施例的图示用于与图3的对准和去歪斜电路关联的信号的示例性波形的时序图。

图7图示根据本发明的实施例的去歪斜电路的示例。

图8是可以包括本发明的实施例的现场可编程门阵列(fpga)的简化部分框图。

图9示出可以体现本发明的技术的示例性数字系统的框图。

具体实施方式

可以通过导线在集成电路上或者在集成电路之间串行传送多个数据信号。例如,可以跨集成电路裸片传送多个串行数据信号。作为另一示例,可以通过插入器从一个集成电路向另一集成电路串行传送数据信号。串行而非并行传送数据信号减少了用来传送数据信号的导线的数目并且减少了布线拥塞。然而,如果用来串行传送数据信号的导线具有不同长度,那么当数据信号到达它们的目的地时数据信号可能相对于彼此而被歪斜。根据此处描述的一些实施例,在接收电路处基于共同的控制信号对准已经被串行传送的数据信号并且相对于彼此去歪斜。

图1图示根据本发明的实施例的数据传输系统100的示例。数据传输系统100包括输入/输出(i/o)电路101和电路110。i/o电路101和电路110通过导线121-124连接。在一个实施例中,i/o电路101、电路110和导线121-124在相同集成电路裸片中。在该实施例中,i/o电路101和电路110在集成电路裸片的两个分离的区域中。在另一实施例中,i/o电路101和电路110在两个分离的集成电路裸片中并且导线121-124是外部布线导体。

i/o电路101包括接收器电路102、发射器电路103、对准和去歪斜电路104以及时钟倍频器单元(cmu)105。作为示例,i/o电路101可以是集成电路中的高速串行接口(hssi)电路。作为另一示例,i/o电路101可以是存储器集成电路中的存储器接口电路。

电路110包括数据电路111、对准和去歪斜电路112、时钟树113、反串行化器(deser)电路114、串行化器电路115、数据电路116和时钟树117。作为示例,电路110可以在现场可编程门阵列集成电路中,并且数据电路111和116可以包括可编程逻辑电路。作为另一示例,电路110可以在存储器集成电路中,并且数据电路111和116可以是存储器电路。

n个输入数据信号datain被传送到i/o电路101中的接收器电路102的输入。n可以是大于1的任何整数。每个输入数据信号datain被串行传送到接收器电路102。输入数据信号datain指示输入数据的集合。在一个实施例中,接收器电路102包括n个时钟数据恢复电路。接收器电路102中的每个时钟数据恢复电路接收串行输入数据信号datain中的不同串行输入数据信号。接收器电路102中的每个时钟数据恢复电路使用时钟数据恢复技术基于在该时钟数据恢复电路处接收的串行输入数据信号来生成恢复的时钟信号。

接收器电路102通过n个导线121向对准和去歪斜电路112提供输入数据作为n个数据信号datarx[1:n]。通过导线121中的一个导线向电路112串行传送数据信号datarx[1:n]中的每个数据信号。接收器电路102通过导线122向对准和去歪斜电路112提供恢复的时钟信号中的一个恢复的时钟信号作为时钟信号rclk。对准和去歪斜电路112基于共同的控制信号对准由数据信号datarx[1:n]指示的输入数据,并且减少数据信号datarx[1:n]之间的歪斜以生成n个串行去歪斜数据信号dataw。反串行化器电路114将串行去歪斜数据信号dataw转换成并行数据信号datay。

数据信号datay指示与数据信号datarx[1:n]相同的输入数据。数据信号datay被提供到数据电路111。在一个实施例中,串行数据信号datarx[1:n]的数目n基本上少于并行数据信号datay的数目,并且因此串行数据信号datarx[1:n]比并行数据信号datay使用更少的用于传输的导线,从而减少布线拥塞。

对准和去歪斜电路112基于时钟信号rclk来生成时钟信号yclk。时钟信号yclk通过时钟树113被提供到数据电路111作为时钟信号zclk。数据电路111可以是存储或者处理数据的任何类型的电路。例如,数据电路111可以是存储由信号datay指示的数据的存储器电路或者处理由信号datay指示的数据的处理电路。

数据电路116响应于时钟信号xclk而向串行化器电路115并行提供一组数据信号dataz。数据电路116可以是存储或者处理数据的任何类型的电路。例如,数据电路116可以是存储由信号dataz指示的数据的存储器电路或者处理由信号dataz指示的数据的处理电路。

cmu电路105包括生成时钟信号sclk和aclk的锁相环电路。时钟信号sclk和aclk可以具有相同频率或者不同频率。通过导线124向串行化器电路115提供时钟信号sclk。串行化器电路115使用分频器电路生成时钟信号wclk,该分频器电路划分时钟信号sclk的频率以生成频率wclk。通过时钟树117向数据电路116提供时钟信号wclk作为时钟信号xclk。

串行化器电路115响应于时钟信号sclk而将并行数据信号dataz转换成n个串行数据信号datasr[1:n]。通过n个导线123向对准和去歪斜电路104串行提供数据信号datasr[1:n]。在一个实施例中,串行数据信号datasr[1:n]的数目n基本上少于并行数据信号dataz的数目,并且因此数据信号datasr[1:n]使用比数据信号dataz更少的用于传输的导线。

对准和去歪斜电路104基于共同的控制信号来对准由数据信号datasr[1:n]指示的数据并且减少数据信号datasr[1:n]之间的歪斜以生成n个去歪斜的串行数据信号datasx[1:n]。数据信号datasx[1:n]与数据信号datasr[1:n]指示相同的数据。通过n个导线向发射器电路103串行提供数据信号datasx[1:n]。发射器电路103响应于时钟信号aclk而向集成电路外部传送由串行数据信号datasx[1:n]指示的数据作为一组串行输出数据信号dataout。发射器电路103基于时钟信号aclk来生成时钟信号bclk。向对准和去歪斜电路104提供时钟信号bclk。

图2图示根据本发明的实施例的通过插入器连接的两个集成电路的示例。图2以截面图示出。图2的系统包括两个集成电路(ic)裸片201和202、插入器203、电路板204和传导凸块205-207。在一个实施例中,图1中所示的i/o电路101在集成电路201中,并且图1中所示的电路110在集成电路202中。在其它实施例中,i/o电路101和电路110二者均在集成电路201中或者二者均在集成电路202中。

集成电路裸片201通过传导凸块205连接至插入器203。集成电路裸片202通过传导凸块206连接至插入器203。插入器通过传导凸块207连接至电路板204。

数据信号通过插入器203中的导线211-213和其它导线在集成电路201和集成电路202之间传送。导线211、212和213中的每个导线传送单个串行数据信号,诸如串行数据信号datain之一或者串行数据信号dataout之一。图2中示出在集成电路201和202之间传送串行信号的三个导线211-213以简化附图。插入器203可以具有在集成电路201和202之间传送串行信号的更多导线。

通过插入器203中的导线(诸如导线214)在电路板204和集成电路201之间传送信号。通过插入器203中的导线(诸如导线215)在电路板204和集成电路202之间传送信号。

图3图示根据本发明的实施例的对准和去歪斜电路300的示例。对准和去歪斜电路300包括n个对准器电路和一个去歪斜电路310。在图3中示出5个对准器电路301-305作为示例。电路300可以包括任何数目的对准器电路。对准和去歪斜电路300是对准和去歪斜电路112中的电路装置的示例。对准和去歪斜电路300也是对准和去歪斜电路104中的电路装置的示例。在图1的一个实施例中,对准和去歪斜电路104和112中的每个对准和去歪斜电路包括如图3所示的对准和去歪斜电路300。

向电路300中的每个对准器电路的输入提供单个串行数据信号。向电路300中的n个对准器电路提供n个串行数据信号。电路300中的每个对准器电路接收串行数据信号中的不同串行数据信号。如图3所示,分别向对准器电路301、302、303、304和305的输入提供串行数据信号data1、data2、data3、data4和data5。

向电路300中的每个对准器电路的8个输入提供8个控制信号ph1、ph2、ph3、ph4、ph5、ph6、ph7和ph8。电路300中的每个对准器电路对一个串行数据信号进行采样并且随后用第一控制信号ph1的边沿对准由该串行数据信号指示的数据以生成对准串行数据信号。例如,对准器电路301-305采样串行数据信号data1、data2、data3、data4和data5,并且随后用控制信号ph1对准由data1、data2、data3、data4和data5指示的数据以分别生成对准串行数据信号data1c、data2c、data3c、data4c和data5c。电路300中的对准器电路生成n个对准串行数据信号。

向去歪斜电路310的输入提供由对准器电路生成的对准串行数据信号(包括数据信号data1c、data2c、data3c、data4c和data5c)。去歪斜电路310减少n个对准串行数据信号之间的歪斜以生成n个去歪斜的串行数据信号。例如去歪斜电路减少对准串行数据信号data1c、data2c、data3c、data4c和data5c之间的歪斜以分别生成n个去歪斜的串行数据信号data1d、data2d、data3d、data4d和data5d。去歪斜的数据信号data1d、data2d、data3d、data4d和data5d分别指示与data1c、data2c、data3c、data4c和data5c相同的数据。

针对对准和去歪斜电路104,图3中的n个串行数据信号data1-data5等是图1中所示的数据信号datasr[1:n],并且图3中的n个串行数据信号data1d-data5d等是图1中所示的数据信号datasx[1:n]。针对对准和去歪斜电路112,图3中的n个数据信号data1-data5等是图1中所示的数据信号datasx[1:n],并且图3中的n个串行数据信号data1d-data5d等是图1中所示的数据信号dataw。

图4图示根据本发明的实施例的对准器电路400的示例。对准器电路400包括d触发器电路401-408、d触发器电路411-418、中间位选择器电路420、复用器电路421和d触发器电路422。对准器电路400是对准和去歪斜电路300中的n个对准器电路中的每个对准器电路的示例。在一个实施例中,对准和去歪斜电路300中的对准器电路301-305等中的每个对准器电路包括对准器电路400。触发器电路401-408、411-418和422是存储电路。

向触发器电路401和411的时钟输入提供第一控制信号ph1。向触发器电路402和412的时钟输入提供第二控制信号ph2。向触发器电路403和413的时钟输入提供第三控制信号ph3。向触发器电路404和414的时钟输入提供第四控制信号ph4。向触发器电路405和415的时钟输入提供第五控制信号ph5。向触发器电路406和416的时钟输入提供第六控制信号ph6。向触发器电路407和417的时钟输入提供第七控制信号ph7。向触发器电路408和418的时钟输入提供第八控制信号ph8。

根据可替换实施例,对准器电路400包括不同数目的触发器电路。例如,替代两组8个触发器电路的是,对准器电路400可以具有接收对应数目的控制信号的两组5、6、7、8、9、10、11、12等个触发器电路。

图5图示根据本发明的实施例的生成控制信号ph1-ph8的控制电路500的示例。控制电路500是对准和去歪斜电路112中生成控制信号ph1-ph8的附加电路装置的示例。控制电路500也是对准和去歪斜电路104中生成控制信号ph1-ph8的附加电路装置的示例。在图1的实施例中,对准和去歪斜电路104和112中的每个对准和去歪斜电路包括如图5中所示的控制电路500。

控制电路500包括计数器电路501和8个比较器电路511-518。向计数器电路501的时钟输入提供时钟信号clock,并且向计数器电路501的复位输入提供复位信号reset。计数器电路501响应于时钟信号clock和复位信号reset,在3个输出处并行生成3个计数信号cnt。clock、reset、cnt和ph1-ph8信号是具有上升和下降沿数字信号。在对准和去歪斜电路112中,clock信号可以是图1中所示的时钟信号rclk或者从时钟信号rclk导出。在对准和去歪斜电路104中,clock信号可以是图1中所示的时钟信号bclk或者从时钟信号bclk导出。

向比较器电路511-518中的每个比较器电路提供三个计数信号cnt。向比较器电路511-518中的每个比较器电路的三个附加输入提供具有恒定二进制值的一组3个数字参考信号。如图5中所示,分别向比较器电路511-518的输入提供具有恒定二进制值001、010、011、100、101、110、111和000的数字参考信号。如在此所描述的那样,0指代数字信号的逻辑低状态,并且1指代数字信号的逻辑高状态。

计数器电路501是3位异步二进制计数器。当reset信号处于逻辑高状态时,计数器电路501将三个计数信号cnt中的每个计数信号维持于0。当reset信号处于逻辑低状态时,启用计数器电路501来增加计数信号cnt的二进制值。响应于当reset信号处于逻辑低状态时发生的计数信号cnt的二进制值的每个上升和下降沿,计数器电路501将计数信号cnt的二进制值增加1。

当计数信号cnt的二进制值从000增加到001时,比较器511生成控制信号ph1中的上升沿,并且比较器518生成控制信号ph8中的下降沿。当计数信号cnt的二进制值从001增加到010时,比较器511生成控制信号ph1中的下降沿,并且比较器512生成控制信号ph2中的上升沿。当计数信号cnt的二进制值从010增加到011时,比较器512生成控制信号ph2中的下降沿,并且比较器513生成控制信号ph3中的上升沿。当计数信号cnt的二进制值从011增加到100时,比较器513生成控制信号ph3中的下降沿,并且比较器514生成控制信号ph4中的上升沿。

当计数信号cnt的二进制值从100增加到101时,比较器514生成控制信号ph4中的下降沿,并且比较器515生成控制信号ph5中的上升沿。当计数信号cnt的二进制值从101增加到110时,比较器515生成控制信号ph5中的下降沿,并且比较器516生成控制信号ph6中的上升沿。当计数信号cnt的二进制值从110增加到111时,比较器516生成控制信号ph6中的下降沿,并且比较器517生成控制信号ph7中的上升沿。

在计数信号cnt达到二进制值111之后发生的clock信号的下一上升沿或者下降沿上,计数器电路501将计数信号cnt从111复位到000。当计数信号cnt的二进制值从111变化到000时,比较器517生成控制信号ph7中的下降沿,并且比较器518生成控制信号ph8中的上升沿。随后计数器电路501开始响应于clock信号中的每个后续上升和下降沿而将计数信号cnt的二进制值增加1,直至计数信号cnt达到二进制值111。该周期重复,其中当计数信号cnt的二进制值分别变化到001、010、011、100、101、110、111和000时比较器电路511-518生成控制信号ph1-ph8中的上升沿。当reset信号处于逻辑低状态时,控制信号ph1-ph8是周期信号。

再次参照图4,向8个触发器电路401-408中的每个触发器电路的d输入提供data信号。图4中所示的17个触发器电路401-408、411-418和422中的每个触发器电路是正边沿触发的触发器,该正边沿触发的触发器仅响应于施加到其时钟输入的信号中的上升沿而在其输出处存储施加到其d输入的信号的逻辑状态。8个触发器电路401、402、403、404、405、406、407和408中的每个触发器电路响应于向该触发器电路的时钟输入提供的相应控制信号ph1-ph8中的每个上升沿而在其输出处在相应信号da1-da8中存储data信号的逻辑状态。向中间位选择器电路420的输入提供在触发器电路401-408的q输出处存储的8个信号da1-da8。

还向触发器电路411-418的d输入分别提供在触发器电路401-408的q输出处存储的8个信号da1-da8。触发器电路411、412、413、414、415、416、417和418分别响应于控制信号ph1、ph2、ph3、ph4、ph5、ph6、ph7和ph8中的上升沿而在它们的q输出处将信号da1、da2、da3、da4、da5、da6、da7和da8存储为信号db1、db2、db3、db4、db5、db6、db7和db8。向中间位选择器电路420的输入提供在触发器电路411-418的q输出处存储的8个信号db1-db8。还向复用器电路421的8个复用输入提供在触发器电路411-418的q输出处存储的8个信号db1-db8。

图6是图示根据本发明的实施例的用于与对准和去歪斜电路300关联的信号的示例性波形。图6图示用于信号clock、ph1-ph8、reset和data的示例性波形。例如可以通过锁相环、延迟锁相环或者生成如图6中所示的时钟信号中的周期振荡的时钟数据恢复电路来生成clock信号。

最初,在图3中所示的n个串行数据信号data1-data5等中的每个串行数据信号中提供训练模式(trainingpattern)。对准和去歪斜电路300使用n个串行数据信号data1-data5等中的每个串行数据信号中的训练模式来基于共同的控制信号来对准数据并且减少数据信号之间的任何歪斜。在图4中,对准器电路400中的data信号对应于向图3中所示的相应对准器电路301-305等提供的串行数据信号data1-data5等。对准器电路400的输出信号对应于由图3中所示的相应对准器电路301-305等生成的串行数据信号data1c-data5c等。

图6图示用于data信号的训练模式的示例。在图6的示例性训练模式期间,data信号最初处于逻辑低状态。在reset信号中的下降沿之后,在用于图6中所示的训练模式的data信号中生成逻辑高状态脉冲。data信号中的逻辑高状态脉冲以上升沿开始并且以下降沿结束。在用于训练模式的data信号中生成的逻辑高状态脉冲持续4个时钟信号周期。

reset信号从逻辑高状态转变到逻辑低状态以启动改变计数信号cnt的计数器电路501,如关于图5所述。在如图6中所示的reset信号中的下降沿之后,控制电路500开始生成控制信号ph1-ph8中的每个控制信号中的重复的逻辑高状态。

在图6中所示的data信号中的示例性训练模式期间,触发器电路401-408分别响应于图6中所示的控制信号ph1-ph8中的第一组上升沿而存储信号da1-da8中的data信号的逻辑状态0、0、1、1、1、1、1和1。响应于图6中所示的控制信号ph1-ph8中的第二组上升沿,触发器电路411-418分别存储在它们的输出信号db1-db8中的信号da1-da8中的逻辑状态0、0、1、1、1、1、1和1,并且触发器电路401-408分别存储信号da1-da8中的data信号的逻辑状态1、1、0、0、0、0、0和0。

向中间位选择器电路420提供控制信号ph1-ph8。中间位选择器电路420在训练模式期间生成的控制信号ph1-ph8中的第二组上升沿之后在具有由触发器电路401-408和411-408存储的逻辑高状态的8个信号(即8个1位)之中确定两个中间1位。两个中间1位对应于在训练模式期间在靠近data信号中的逻辑高状态脉冲的中间采样的两个信号。作为示例,中间位选择器电路420可以是状态机。

中间位选择器电路420随后生成指示具有两个中间1位之一的信号db1-db8中的一个信号的三个数字选择信号sel。向复用器电路421的选择输入提供选择信号sel。复用器电路421在信号db1-db8之中选择由选择信号sel指示的信号。复用器电路421向触发器电路422的d输入提供由选择信号sel(即信号db1-db8之一)指示的信号作为信号dsl。触发器电路422响应于控制信号ph1中的每个上升沿在其q输出存储信号sql的逻辑状态作为信号datac。

在图6中所示的和上述的data信号的示例性训练模式中,在图6中所示的控制信号ph1-ph8中的第二组上升沿之后,信号da1-da2和db3-db8具有逻辑高状态(即1)并且信号da3-da8和db1-db2具有逻辑低状态(即0)。中间位选择器电路420确定信号db6和db7存储在控制信号ph1-ph8中的第二组上升沿之后具有逻辑高状态的8个信号da1-da2和db3-db8之中的中间1位。中间位选择器电路420随后生成用于使复用器电路421向触发器电路422的d输入提供信号db6(或者db7)作为信号dsl的选择信号sel的逻辑状态。响应于控制信号ph1中的每个上升沿,在触发器电路422的q输出处存储dsl的逻辑状态作为信号datac。因此对准器电路400用控制信号ph1的脉冲对准在训练模式期间靠近data信号中的逻辑高状态脉冲的中间采样的信号以生成输出信号datac。

图7图示根据本发明的实施例的图3中所示的去歪斜电路310的示例。向如图7中所示的去歪斜电路310的输入提供包括数据信号data1c-data5c的由对准器电路301-305等生成的n个对准串行数据信号。去歪斜电路310减少或者去除n个对准串行数据信号之间的歪斜以生成n个去歪斜的数据信号。例如,去歪斜电路减少或者去除对准串行数据信号data1c、data2c、data3c、data4c和data5c之间的歪斜以分别生成去歪斜的串行数据信号data1d、data2d、data3d、data4d和data5d。

图7中的去歪斜电路310包括4组(bank)d触发器电路、n个复用器电路和逻辑1到达检测器电路750。四组d触发器电路中的每组d触发器电路具有n个d触发器电路。第一、第二、第三和第四组d触发器电路分别包括d触发器电路701-705、711-715、721-725和731-735。电路310中的四组d触发器电路中的每组d触发器电路中的n个d触发器电路中的每个d触发器电路是正边沿触发的触发器,该正边沿触发的触发器仅响应于施加到其时钟输入的信号中的上升沿而在其q输出处存储施加到其d输入的信号的逻辑状态。四组触发器电路中的每组触发器电路中的每个d触发器电路是存储电路。n个复用器电路包括复用器电路741-745。

向第一组中的触发器电路的d输入提供由图3的对准器电路301-305等生成的n个对准串行数据信号。例如,分别向第一组中的触发器电路701-705的d输入提供串行数据信号data1c、data2c、data3c、data4c和data5c。向四组中的触发器电路中的每个触发器电路的时钟输入提供第一控制信号ph1。例如,向图7中所示的触发器电路701-705、711-715、721-725和731-735的时钟输入提供控制信号ph1。

响应于控制信号ph1中的每个上升沿,第一组中的触发器电路在它们的q输出处存储由图3的对准器电路生成的n个对准串行数据信号的逻辑状态。例如,第一组中的触发器电路701-705响应于控制信号ph1中的每个上升沿来分别在它们的q输出处将串行数据信号data1c、data2c、data3c、data4c和data5c的逻辑状态存储为已存储信号de1、de2、de3、de4和de5。

向第二组中的触发器电路的d输入提供在第一组中的触发器电路的q输出处存储的信号。响应于控制信号ph1中的每个上升沿,第二组中的触发器电路在它们的q输出处存储由第一组中的触发器电路存储的信号的逻辑状态。例如,响应于控制信号ph1中的每个上升沿,第二组中的触发器电路711-715在它们的q输出处分别将信号de1、de2、de3、de4和de5的逻辑状态存储为已存储信号df1、df2、df3、df4和df5。

向第三组中的触发器电路的d输入提供在第二组中的触发器电路的q输出处存储的信号。响应于控制信号ph1中的每个上升沿,第三组中的触发器电路在它们的q输出处存储由第二组中的触发器电路存储的信号的逻辑状态。例如,响应于控制信号ph1中的每个上升沿,第三组中的触发器电路721-725在它们的q输出处分别将信号df1、df2、df3、df4和df5的逻辑状态存储为已存储信号dg1、dg2、dg3、dg4和dg5。

向第四组中的触发器电路的d输入提供在第三组中的触发器电路的q输出处存储的信号。响应于控制信号ph1中的每个上升沿,第四组中的触发器电路在它们的q输出处存储由第三组中的触发器电路存储的信号的逻辑状态。例如,响应于控制信号ph1中的每个上升沿,第四组中的触发器电路731-735在它们的q输出处分别将信号dg1、dg2、dg3、dg4和dg5的逻辑状态存储为已存储信号dh1、dh2、dh3、dh4和dh5。

去歪斜电路310具有n个串行移位寄存器。触发器电路701、711、721和731被耦合作为第一串行移位寄存器。触发器电路702、712、722和732被耦合作为第二串行移位寄存器。触发器电路703、713、723和733被耦合作为第三串行移位寄存器。触发器电路704、714、724和734被耦合作为第四串行移位寄存器。触发器电路705、715、725和735被耦合作为第五串行移位寄存器。

向复用器电路之一的复用输入提供由去歪斜电路310中的n个串行移位寄存器中的每个串行移位寄存器存储的信号。向复用器电路741的复用输入提供由第一串行移位寄存器存储的信号de1、df1、dg1和dh1。向复用器电路742的复用输入提供由第二串行移位寄存器存储的信号de2、df2、dg2和dh2。向复用器电路743的复用输入提供由第三串行移位寄存器存储的信号de3、df3、dg3和dh3。向复用器电路744的复用输入提供由第四串行移位寄存器存储的信号de4、df14、dg4和dh4。向复用器电路745的复用输入提供由第五串行移位寄存器存储的信号de5、df5、dg5和dh5。

信号之间的歪斜表示同时传送的信号之间的到达时间中的差值。当通过导线121向对准和去歪斜电路112传送时,图1中所示的串行数据信号datarx[1:n]可能出现歪斜。当通过导线123向对准和去歪斜电路104传送时,图1中所示的串行数据信号datasr[1:n]可能出现歪斜。

由图3的对准器电路生成并且向去歪斜电路310提供的n个对准串行数据信号可能具有大于0的歪斜。可以相对于由图3的对准器电路生成的其它对准串行数据信号而延迟由图3的对准器电路生成并且向去歪斜电路310提供的n个对准串行数据信号中的一个或者多个对准串行数据信号。例如,如果相对于其它信号data1c-data5c而延迟信号data1c-data5c中的一个信号,那么相对于由对准器电路400选择的用于其它信号data1c-data5c的中间1位,在电路310中的较早组的触发器中存储由对准器电路400选择的用于延迟的信号的中间1位。

向逻辑1到达检测器电路750提供由电路310中的四组中的每组中的触发器电路中的每个触发器电路存储的信号中的每个信号。例如向逻辑1检测器电路750的输入提供信号de1-de5、df1-df5、dg1-dg5和dh1-dh5。逻辑1到达检测器电路750确定由去歪斜电路310中的四组中的每组中的触发器电路中的每个触发器电路存储的信号中的每个信号的逻辑状态。逻辑1到达检测器电路750确定去歪斜电路310中的所有n个串行移位寄存器何时已经存储具有逻辑高状态(即1位)的信号。

逻辑1到达检测器电路750随后基于由触发器电路存储的信号中的哪些信号响应于n个串行数据信号data1-data5等中的训练模式而处于逻辑高状态,生成n组选择信号,包括选择信号s1-s5。向复用器电路的选择输入提供选择信号。例如,分别向复用器电路741-745的选择输入提供选择信号s1、s2、s3和s4。逻辑1到达检测器电路750生成用于选择信号的逻辑状态,该逻辑状态引起去歪斜电路310中的每个复用器电路选择由具有逻辑高状态的对应的移位寄存器存储的信号作为去歪斜的输出串行数据信号。因此,去歪斜电路310减少或者去除了串行数据信号data1c、data2c、data3c、data4c和data5c等之间的任何歪斜以分别生成去歪斜的数据信号data1d、data2d、data3d、data4d和data5d等。

作为具体示例,如果相对于data1c-data4c信号而将data5c信号延迟控制信号ph1的一个周期,那么触发器电路705存储对信号data5c的选择的中间1位做出指示的信号de5中的逻辑高状态,而触发器电路711-715存储分别对信号data1c-data4c的选择的中间1位做出指示的信号df1-df4中的逻辑高状态。响应于如上所述的串行数据信号data1-data5中的训练模式分别生成信号data1c-data5c的选择的中间1位。在该示例中,逻辑1到达检测器电路750生成用于选择信号s1-s4的逻辑状态,该逻辑状态引起复用器电路741-744分别向它们的输出提供信号df1-df4作为串行数据信号data1d-data4d。同样,在该示例中,逻辑1到达检测器电路750生成用于选择信号s5的逻辑状态,该逻辑状态引起复用器电路745向其输出提供信号de5作为串行数据信号data5d。

作为另一具体示例,如果相对于data2c-data5c信号而将data1c信号延迟控制信号ph1的3个周期,那么触发器电路701存储对信号data1c的选择的中间1位做出指示的信号de1中的逻辑高状态,而触发器电路732-735存储分别对信号data2c-data5c的选择的中间1位做出指示的信号dh2-dh5中的逻辑高状态。在该示例中,逻辑1到达检测器电路750生成用于选择信号s2-s5的逻辑状态,该逻辑状态引起复用器电路742-745分别向它们的输出提供信号dh2-dh5作为串行数据信号data2d-data5d。同样,在该示例中,逻辑1到达检测器电路750生成用于选择信号s1的逻辑状态,该逻辑状态引起复用器电路741向其输出提供信号de1作为串行数据信号data1d。

因此,去歪斜电路减少或者去除n个对准串行数据信号(即data1c-data5c等)之间的歪斜以生成在时间中更接近于彼此对准的去歪斜的串行输出数据信号(即data1d-data5d)。在串行数据信号中的训练模式的传输期间,去歪斜电路310从串行数据信号减少或者去除歪斜。

在训练模式完成并且去歪斜电路310已经从串行数据信号减少或者去除任何歪斜之后,分别通过导线121和123传送串行数据信号datarx[1:n]和datasr[1:n]中的数据。在去歪斜电路310已经生成用于选择信号s1-s5等的从串行数据信号减少或者去除歪斜逻辑状态之后,去歪斜电路310在传送串行数据信号datarx[1:n]和datasr[1:n]中的数据期间维持选择信号s1-s5等的逻辑状态恒定。因此,去歪斜电路310在数据传输期间继续减少或者去除串行数据信号之间的同量的歪斜。同样,每个对准器电路400在传送串行数据信号datarx[1:n]和datasr[1:n]中的数据期间维持其选择信号sel恒定。因此对准器电路301-305等在传送串行数据信号datarx[1:n]和datasr[1:n]中的数据期间继续将串行数据信号对准到控制信号ph1。

根据可替换实施例,去歪斜电路310可以具有不同数目的触发器组。例如,去歪斜电路310可以替代图7中所示的4组触发器而具有2、3、5、6、7、8等组触发器。

图8是可以包括本发明的实施例的现场可编程门阵列(fpga)的简化部分框图。fpga800仅是可以包括本发明的特征的集成电路的一个示例。应当理解本发明的实施例可以用于许多类型的集成电路中,诸如现场可编程门阵列(fpga)、可编程逻辑器件(pld)复杂可编程逻辑器件(cpld)、可编程逻辑阵列(pla)、专用集成电路(asic)、存储器集成电路、中央处理单元、微处理器、模拟集成电路等。

fpga800包括通过具有变化的长度和速度的列和行互连导体的网络互连的可编程逻辑阵列块(或者lab)的二维阵列。lab802包括多个(例如10)逻辑元件(或者le)。

逻辑元件(le)是提供用户定义的逻辑功能的有效实现的可编程逻辑电路块。fpga具有可以被配置为执行各种组合或者时序功能的许多逻辑元件。逻辑元件具有到可编程互连结构的入口。可编程互连结构可以被编程为以几乎任何想要的配置互连逻辑元件。

fpga800也包括分布式存储器结构,分布式存储器结构包括贯穿阵列提供的不同大小的随机存取存储器(ram)块。ram块例如包括块804、块806和块808。这些存储器块也可以包括移位寄存器和先进先出(fifo)缓冲器。

fpga800还包括数字信号处理(dsp)块810,数字信号处理块810例如可以实现具有加或减功能的乘法器。输入/输出元件(ioe)812支持许多单端和差分输入/输出标准。ioe812包括耦合到集成电路的引脚的输入和输出缓冲器。引脚是fpga裸片的外部端子,其例如可以用来在fpga与一个或者多个外部设备之间供应电压,路由输入数据信号以及输出数据信号。一个或者多个ioe812可以包括i/o电路101。在此描述fpga800用于说明目的。可以以许多不同类型的集成电路来实现本发明的实施例。

也可以在具有fpga作为若干部件之一的系统中实现本发明的实施例。图9示出可以体现本发明的技术的示例性数字系统900的框图。系统900可以是经编程的数字计算机系统、数字信号处理系统、专用数字交换网络或者其它处理系统。此外此类系统可以被设计为用于广泛种类的应用,诸如电信系统、汽车系统、控制系统、消费性电子产品、个人计算机、因特网通信和互助网体系,以及其它。此外,可以在单个板上、在多个板上或者在多个外壳(enclosure)内提供系统900。

系统900包括通过一个或者多个总线互连在一起的处理单元902、存储器单元904和输入/输出(i/o)单元906。根据这一示例性实施例,在处理单元902中嵌入fpga908。fpga908可以在图9的系统内用作许多不同目的。fpga908例如可以是处理单元902的支持其内部和外部操作的逻辑结构快。fpga908被编程为实现在系统操作中进行其特定角色所必需的逻辑功能。fpga908可以通过连接910具体耦合到存储器904并且通过连接912具体耦合到i/o单元906。

处理单元902可以将数据指向用于处理或者存储的适当系统元件、执行存储在存储器904中的程序、经由i/o单元906接收并且传送数据,或者其它类似功能。处理单元902可以是中央处理单元(cpu)、微处理器、浮点运算处理器、图形协处理器、硬件控制器、微控制器、现场可编程门阵列,现场可编程门阵列被编程用于用作控制器、网络控制器或者任何其它类型的处理器或者控制器。此外,在许多实施例中,通常不需要cpu。

例如,替代cpu的是,一个或者多个fpga908可以控制系统的逻辑操作。作为另一示例,fpga908充当可以根据需要被重编程以处理特定计算任务的重配置处理器。可替换地,fpga908自身可以包括嵌入式微处理器。存储器单元904可以是随机存取存储器(ram)、只读存储器(rom)、固定或者灵活(flexible)的磁盘介质、闪存、磁带或者任何其它存储装置,或者这些存储装置的组合。

已经呈现本发明的示例性实施例的先前描述用于图示和描述的目的。先前描述并不旨在穷举或者限制本发明为在此公开的示例。在一些实例中,可以采用本发明的特征而不对应地使用所提出的其它特征。根据上述教导,在不背离本发明的范围的情况下,许多修改、替换和改变是可能的。

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