具体实施方式
现在将详细参考本公开的具体实施例,在附图中例示了本公开的示例。尽管将结合具体实施例描述本公开,但将理解,不是想要将本公开限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本公开的精神和范围内包括的变更、修改和等价物。应注意,本文描述的方法操作都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
注意,接下来要介绍的示例仅是具体的示例,而不作为限制本公开的实施例必须为示出和描述的具体的外形、硬件、连接关系、操作、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本公开的构思来构造本说明书中未提到的更多实施例。
本公开中使用的术语是考虑到关于本公开的功能而在本领域中当前广泛使用的那些通用术语,但是这些术语可以根据本领域普通技术人员的意图、先例或本领域新技术而变化。此外,特定术语可以由申请人选择,并且在这种情况下,其详细含义将在本公开的详细描述中描述。因此,说明书中使用的术语不应理解为简单的名称,而是基于术语的含义和本公开的总体描述。
本公开中使用了流程图来说明根据本申请的实施例所涉及的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
串化器(SER)具有将并行的数据转为串行的数据的功能。例如,高速串化器可以将并行的低速数据转为串行的高速数据。
图1示出了根据本公开的至少一实施例的串化器原理图和时序控制图。图1所示的串化器为3转1移位寄存器类型的串化器,即可以将3路并行数据转换为1路串行数据。可以理解的是,图1中的串化器仅是示例性的,串化器还可以具有其他结构,并且可以实现n转1的并行-串行转换,其中n为大于1的正整数。
参考图1,串化器包括3个触发器(示出为D触发器104至108)和3个二选一数据选择器(示出为二选一数据选择器114-118)。另外,串化器还需要接收外加控制时序,即下载数据时钟(LCK)、移位触发时钟控制(SCK)。
当LCK为高时,3位并行数据分别下载到每个触发器的数据端(D),接着由一个同步高速时钟SCK同时从低到高触发每级触发器,先后输出高速比特流。其中低位D0在前,高位D2在后,最终在一个下载周期内实现一次3位并行数据到一个串行数据的转换。同理,在下一LCK周期可以继续转换后一笔数据。如图1所示,串行数据可以通过数字缓冲器120而输出。
时序的关键在于触发器的同步时钟与数据之间的时序关系,其中主要的时序关系包括LCK与并行数据的建立时间(Ts1)、保持时间(Th1);SCK与LCK之间的保持时间(Th2);同步时序的D触发器保持时间(Th3)。通常Ts1/Th1较为宽松,例如可以为100Mbps~4ns或其他时间长度,例如用于允许输入并行数据。相比之下,Th2、Th3比较关键,一般为~100ps级别。当Th2、Th3时间裕度不够时,可能会发生误采数据情形,从而导致输出的串行数据出现错误。因此,检测串化器的时序正确性(也称为时序功能)尤为重要。
传统高速串化器的时序功能大多通过外部环回检检测,这种检测方法需要额外的接收电路对接收到的高速低压模拟差分信号(例如由驱动器对串化器输出的串行数据转换而来)进行解码再与原始发送数据进行比较,根据比较的结果判断串化器的时序功能是否正确,这种检测方式基于已有的片内或片外接收器,并且需要相应的软件控制,因而硬件结构较为复杂,设计成本较大。
本公开的至少一实施例提供了一种检测串化器的时序的方法、检测电路,以及提供了一种电子装置,其减少用于检测串化器的时序正确性的硬件的复杂度,降低设计成本。
以下参照附图,对本公开的实施例的检测串化器的时序的方法、检测电路以及电子装置进行详细介绍。
首先,以下介绍本公开的实施例的检测串化器的时序的方法,该检测串化器的时序的方法可以应用于如下文进一步描述的检测串化器的时序的检测电路、电子装置、其他合适的软件或硬件、或硬件和软件的结合。
图2示出了根据本公开的至少一实施例的检测串化器的时序的方法的流程图。该实施例的检测串化器的时序的方法可以包括步骤S202至步骤S206。
在步骤S202中,对串行数据进行采样,以得到第一采样串行数据和第二采样串行数据,其中,串行数据是由串化器对用于检测的并行数据进行并行-串行转换而得到的,并且第一采样串行数据和第二采样串行数据分别包括对应于串行数据的不同数据位的值。
在本公开的实施例中,输入到串化器的并行数据为用于检测的并行数据,例如,该用于检测的并行数据可以是例如根据检测目而预知或预定的并行数据,因此当串化器的时序正确(也称为时序功能正常)时,串化器输出的串行数据是可以预见的或预知的,或者说串化器输出的串行数据与用于检测的并行数据相对应。另外,当串化器的时序错误(也称为时序功能异常)时,例如对于由串化器读取并行数据所需要的建立时间裕量和保持时间裕量不合适(例如,这些时间裕量不够)时,串化器输出的串行数据将不与用于检测的并行数据相对应。由此,可以通过对比串化器实际输出的串行数据与理想的串行数据进行比较,可以确认串化器的时序正确性。
在本公开的实施例中,为了表征串化器的时序正确性,需要对串行数据进行采样,以获得分别包括对应于串行数据的不同数据位的值的多个采样串行数据。换句话说,第一采样串行数据包括第一类数据位的值,第二采样串行数据包括第二类数据位的值,其中第一类数据位和第二类数据位存在不同。在一些实施例中,第一采样串行数据可以包括串行数据的奇数数据位的值,第二采样串行数据可以包括串行数据的偶数数据位的值,以这种方式,可以获得串行数据的所有数据位上的数据。例如,可以通过片内锁相环产生的两相时钟(例如,CK0/CK180、CK180/CK360等等)分别采样串化器输出的串行数据来获得第一采样串行数据和第二采样串行数据。在又一些实施例中,可以稀疏地对串行数据进行采样,即可以不必对串行数据的每个数据位的值进行采样。例如,可以通过倍频器和分频器产生两相时钟,进而基于该两相时钟分别对串化器输出的串行数据进行采样。
以这种方式,第一采样串行数据和第二采样串行数据可以表征串化器的时序正确性,或者说串化器的时序正确性可以体现在第一采样串行数据和第二采样串行数据。例如,当串化器的时序正确时,第一采样串行数据将与用于检测的并行数据中相应的并行数据相对应,第二采样串行数据将与用于检测的并行数据中相应的并行数据相对应。又例如,当串化器的时序错误时,则第一采样串行数据和第二采样串行数据中的至少之一将不与用于检测的并行数据中相应的并行数据相对应。
在一个示例性实例中,用于检测的并行数据可以是例如10个并行数据(例如分别来自10路),分别为0101010101。该用于检测的并行数据经过串化器的并行-串行之后可以输出串行数据0101010101。可以通过两相时钟CK0/CK180分别采样串化器输出的串行数据0101010101从而得到第一采样串行数据00000和第二采样串行数据11111。在该实例中,当串化器的时序正确时,第一采样串行数据00000将与用于检测的并行数据中的第奇数个并行数据(均为0)相对应,并且第二采样串行数据11111将与用于检测的并行数据中的第偶数个并行数据(均为1)相对应。
另外,当串化器的时序错误时,由串化器输出的串行数据将不再是0101010101,由此第一采样串行数据将不保持全0,即第一采样串行数据不与用于检测的并行数据中的第奇数个并行数据(均为0)相对应;或者第二采样串行数据将不保持全1,即第二采样串行数据不与用于检测的并行数据中的第偶数个并行数据(均为1)相对应;或者第一采样串行数据将不在保持全0并且第二采样串行数据将不再保持全1,即第一采样串行数据不与用于检测的并行数据中的第奇数个并行数据(均为0)相对应并且第二采样串行数据不与用于检测的并行数据中的第偶数个并行数据(均为1)相对应。
上述实例中的用于检测的并行数据仅是示例性的,示例性的用于检测的并行数据还可以是全0的并行数据、全1的并行数据或者其他形式的并行数据。另外,上述实例中的对串行数据进行采样也仅是示例性的,也可以通过其他方式来对串行数据进行采样。
以这种方式,串化器的时序正确性将反映在采样串行数据中,因此可以基于第一采样串行数据和第二采样串行数据来判断串化器的时序正确性。
在步骤S204中,对第一采样串行数据和第二采样串行数据进行逻辑运算,以得到第一结果信号。
在获取第一采样串行数据和第二采样串行数据之后,对第一采样串行数据和第二采样串行数据进行逻辑运算可以将第一采样串行数据和第二采样串行数据简化为以一个时序数据形式体现的第一结果信号,这个时序数据包含了第一采样串行数据和第二采样串行数据的信息,因而包含了可以表征串化器的时序正确性的信息。
例如,继续上述实例,可以对第一采样串行数据00000和第二采样串行数据11111进行例如异或非(XNOR)的逻辑运算,从而可以得到00000的时序数据,即第一结果信号。当然,也可以对串行数据进行其他逻辑运算,例如异或(XOR)逻辑运算。
在步骤S206中,对第一结果信号进行时序检测,其中,时序检测用于检测串化器的时序正确性。
如上所述,第一结果信号以一个时序数据形式体现,并且包含了可以表征串化器的时序正确性的信息。因此,可以对第一结果信号进行时序检测。并且基于时序检测来检测串化器的时序正确性(正确/错误)。
在一些实施例中,在步骤S206中,对第一结果信号进行时序检测,其中,时序检测用于检测串化器的时序正确性,并且第一结果信号在串化器的时序是正确的情况下为稳定的水平信号。
例如,继续上述实例,当检测出第一结果信号为00000的时序数据(即稳定的低电平信号)时,即检测出第一结果信号为一个全0的时序时,可以确定串化器的时序正确。另外,当检测出第一结果信号不为00000的时序数据时,例如第一结果信号可以包括一个或多个1的高电平时,可以确定串化器的时序错误。因此,时序检测可以用于检测串化器的时序正确性。
又例如,将上述实例中的逻辑运算由异或非(XNOR)修改为异或(XOR),则当检测出第一结果信号为11111的时序数据(即稳定的高电平信号)时,可以确定串化器的时序正确。再例如,将上述实例中的用于检测的并行数据设置为全0或者全1的并行数据,则同样可以当检测出第一结果信号为11111的时序数据(即稳定的高电平信号)时,可以确定串化器的时序正确。也可以设置其他合适的并行数据、串行数据采样和/或逻辑运算,使得第一结果信号在串化器的时序是正确的情况下为稳定的水平信号。
以这种方式,仅可以通过检测第一结果信号是否为稳定的水平信号(例如稳定的高电平信号或稳定的低电平信号)来检测串化器的时序正确性,与其他情况相比,例如与下面的实施例示出的第一结果信号为具有高低电平的信号相比,该实施例可以更便于检测串化器的时序的正确性,这在连续检测串化器的时序正确性的方面尤其有利。
当然,第一结果信号在串化器的时序是正确的情况下为稳定的水平信号不是必须的。在一些实施例中,第一结果信号在串化器的时序是正确的情况下为稳定的高低电平信号,即可以同时具有高电平和低电平信号。例如,将上述示例中用于检测的并行数据从0101010101修改为0101000101,同样通过CK0和CK180(时序正确时,第一采样串行数据为00000,第二采样串行数据为11011)采样和XNOR逻辑运算(时序正确时,第一结果信号为00100),则可以基于在一个周期内第一结果信号是否在特定数据位(第三个数据位)处具有一个脉冲来确定时序的正确性或者说基于第一结果信号是否周期性地在特定位置(每个周期的第三个数据位)出现一个脉冲来确定时序的正确性。
可以理解的是,上述实施例仅是示例性的,可以设想基于其他形式的用于检测的并行数据、通过上述检测串化器的时序的方法来确定串化器的时序正确性。
如上所述,本公开的至少一实施例所公开的检测串化器的时序的方法在于,对由串化器输出的串行数据进行采样而得到可以表征串化器的时序正确性的第一采样串行数据和第二采样串行数据,对第一采样串行数据和第二采样串行数据进行逻辑运算从而得到可以表征串化器的时序正确性的第一结果信号,对第一结果信号进行时序检测。由于输入串化器的并行数据是用于检测的并行数据,因此,表征串化器的时序正确性的第一结果信号也是预知的,因而对第一结果信号的时序检测可以用于确定串化器的时序正确性。
与现有的通过外部环回检测检测来检测串化器的时序正确性相比,根据本公开的至少一实施例的检测串化器的时序的方法基于用于检测的并行数据,可以直接对串化器输出的串行数据进行检测(例如可以作为内建自测(BIST)电路来实现),而不需要对经过驱动器的数据进行检测,避免了额外的片内或片外接收器以及相应的软件的使用,降低了硬件结构的复杂度,降低了设计成本。
以下对本公开的至少一实施例的检测串化器的时序的方法的其他方面进行详细的描述。
如上所述,第一结果信号实质上将体现为时序。因此,在一些实施例中,对第一结果信号进行时序检测可以包括对第一结果信号进行电平检测;或者对第一结果信号进行边沿检测。例如,可以对第一结果信号进行电平检测、对第一结果信号进行边沿检测、对第一结果信号进行电平检测和边沿检测。以这种方式,通过对第一结果信号进行电平检测和/或边沿检测可以准确的获取第一结果信号,从而可以基于获取的第一结果信号来确定串化器的时序正确性。
在一些实施例中,对第一结果信号进行时序检测可以包括对第一结果信号进行电平检测,以得到第二结果信号;以及对第二结果信号进行边沿检测。也就是说,时序检测可以包括对第一结果信号进行电平检测,并且对作为电平检测的结果的第二结果信号进行边沿检测。继续上述示例,当串化器的时序错误时,第一采样串行数据和第二采样串行数据中的某个或某些数据位的值会发生突变(例如从0变为1或者从1变为0),经过逻辑运算后会发生跳变边沿,即第二结果信号可能出现时序跳变(例如,周期性的脉冲)。因此,在电平检测之后增加边沿检测可以高效检测出第二结果信号的时序跳变,有效覆盖时序错误的案例,提高了检测串化器的时序的方法实用性。
在一些实施例中,对第二结果信号进行边沿检测可以包括对第二结果信号中的脉冲进行计数,并且在计数的计数值超过阈值时,对计数值的溢出位进行边沿检测。在一些情况下,通过该实施例,可以延迟对串化器的(例如高位及其低位)时序错误的边沿检测,因而可以精确地控制触发边沿检测的时间,或者可以形成例如可以用于第二结果信号的稳定的等待时间,以更稳定地检测第二结果信号。在另一些情况下,串化器的时序错误可能是由串化器所处的环境(例如电磁环境等)偶然或者随机造成的,使得串化器出现一定数量的时序错误。因此,通过该实施例,可以避免一旦串化器时序出错即基于边沿检测的结果报告串化器时序错误或将该串化器确定为例如不合格的串化器,这在实际的串化器的检测中是尤其实用的。在又一些情况下,取决于用于检测的并行数据、串行数据的采样和/或逻辑运算,表征串化器的时序正确的第二结果信号可能具有稳定次数的脉冲,可以将该稳定次数设置为计数器的阈值,从而基于计数器的计数值的溢出位的触发,即边沿检测被触发时,可以指示串化器的时序错误。
在一些实施例中,电平检测和边沿检测可以由D触发器来实现。例如,电平检测可以通过将要被检测的信号输入到D触发器的数据输入端来实现,而边沿检测可以通过将要被检测的信号输入到D触发器的时钟控制端来实现。
具体地,例如,对第一结果信号进行电平检测可以包括将第一结果信号输入第一D触发器的数据输入端。例如,对第一结果信号进行边沿检测可以包括将第一结果信号输入第二D触发器的时钟控制端。例如,对第二结果信号进行边沿检测可以包括将第二结果信号输入第二D触发器的时钟控制端。例如,对计数值的溢出位进行边沿检测可以包括将计数值的溢出位输入D触发器的时钟控制端。
当然也可以通过其他类型的触发器来实现上述电平检测和边沿检测,或者可以通过到D触发器的其他连接方式来实现上述电平检测和边沿检测。
在一些实施例中,用于检测的并行数据可以具有0和1的数据位。以这种方式,可以使得用于检测的并行数据可以覆盖串化器在实际的并行-串行转换过程中的数据形式,因为在实际的并行-串行转换过程中,来自各路的并行数据并不是全0或全1,这些并行数据中有一些数据位的值为0而另一些数据位的值为1,由此在实际的并行-串行转换过程中存在例如触发器下载数据0和下载数据1之间的变化。
在一些实施例中,用于检测的并行数据可以具有交替的0和1的数据位。以这种方式,不仅可以使得用于检测的并行数据可以覆盖串化器在实际的并行-串行转换过程中的数据形式,还可以使得第一结果信号更加简单,便于基于时序检测确定串化器的时序正确性。例如,参见图2的实际例所描述的示例性实例,用于检测的并行数据为0101010101,可以基于第一结果信号是否为全0来确定串化器的时序正确性。
在一些实施例中,对串行数据进行采样可以包括以相位相反的两相时钟(例如,两相时钟CK0/CK180,CK180/CK360等等)来对串行数据进行采样。以这种方式,可以使得例如第一采样串行数据可以对应于串行数据的奇数数据位的值,第二采样串行数据可以对应于串行数据的偶数数据位的值,实现对串化器输出的串行数据的各个数据位进行采样,以此可以全面地确定串化器的时序正确性。
在一些实施例中,逻辑运算为异或非(XNOR)。以这种方式,可以将第一采样串行数据和第二采样串行数据转换为一个时序数据,并且当第一采样串行数据和第二采样串行数据的对应的数据位的值相反时,可以将其转换为值0,因此,可以使得第一结果信号简单,便于基于该第一结果信号确定串化器的时序正确性。
与本公开的至少一实施例提供的检测串化器的时序的方法相对应,本公开还提供了一种检测串化器的时序的检测电路。
图3示出了根据本公开的至少一实施例的检测串化器的时序的检测电路的示意图。
参照图3,根据本公开的至少一实施例的检测串化器的时序的检测电路300包括采样单元310、逻辑运算单元320以及时序检测单元330。
采样单元310被配置为对串行数据进行采样,以得到第一采样串行数据和第二采样串行数据,其中串行数据是由串化器对用于检测的并行数据进行并行-串行转换而得到的,并且第一采样串行数据和第二采样串行数据包括对应于串行数据的不同数据位的值。
逻辑运算单元320被配置为对第一采样串行数据和第二采样串行数据进行逻辑运算,以得到第一结果信号。
时序检测单元330被配置为对第一结果信号进行时序检测,其中,时序检测用于检测串化器的时序正确性。
如上所述,本公开的至少一实施例所公开的检测串化器的时序的检测电路在于,对由串化器输出的串行数据进行采样而得到可以表征串化器的时序正确性的第一采样串行数据和第二采样串行数据,对第一采样串行数据和第二采样串行数据进行逻辑运算从而得到可以表征串化器的时序正确性的第一结果信号,对第一结果信号进行时序检测。由于输入串化器的并行数据是用于检测的并行数据,因此,表征串化器的时序正确性的第一结果信号也是预知的,因而对第一结果信号的时序检测可以用于确定串化器的时序正确性。
与现有的通过外部环回检测检测来检测串化器的时序正确性相比,根据本公开的至少一实施例的检测串化器的时序的检测电路可以直接对串化器输出的串行数据进行检测(例如可以作为内建自测电路来实现),而不需要对经过驱动器的数据进行检测,避免了额外的片内或片外接收器以及相应的软件的使用,降低了硬件结构的复杂度,降低了设计成本。
以下对本公开的至少一实施例的检测串化器的时序的检测电路的其他方面进行详细的描述。
在一些实施例中,继续参见图3,时序检测单元330可以包括电平检测单3305或者边沿检测单元3310,其中电平检测单3305可以被配置为对第一结果信号进行电平检测,边沿检测单元3310可以被配置为对第一结果信号进行边沿检测。
在一些实施例中,继续参见图3,时序检测单元330可以包括电平检测单3305或者边沿检测单元3310,其中电平检测单3305可以被配置为对第一结果信号进行电平检测,以得到第二结果信号,并且边沿检测单元3310可以被配置为对第二结果信号进行边沿检测。
在一些实施例中,边沿检测单元3310可以包括计数器,被配置为对第二结果信号中的脉冲进行计数,并且边沿检测单元3310可以在计数的计数值超过阈值时,对计数值的溢出位进行边沿检测。
在一些实施例中,电平检测单元3305可以包括第一D触发器,并且第一结果信号输入到第一D触发器的数据输入端;以及边沿检测单元包括第二D触发器,并且第二结果信号输入第二D触发器的时钟控制端。
在一些实施例中,用于检测的并行数据可以具有0和1的数据位。
在一些实施例中,用于检测的并行数据可以具有交替的0和1的数据位。
在一些实施例中,对串行数据进行采样可以包括以相位相反的两相时钟来对串行数据进行采样,以使得第一采样串行数据包括对应于串行数据的奇数数据位的值,并且使得第二采样串行数据包括对应于串行数据的偶数数据位的值。
在一些实施例中,逻辑运算可以为异或非(XNOR)。
以上仅结合图3描述了根据本公开的至少一实施例的检测串化器的时序的检测电路300的部分,并且检测串化器的时序的检测电路300的其余部分可以对本公开的结合图2描述的检测串化器的时序的方法的各个方面进行参考和引用,并且根据本公开的结合图2描述的检测串化器的时序的方法的各个方面的效果同样可以映射到本公开的结合图3描述的检测串化器的时序的检测电路300,在此不在赘述。
可以理解的是,参照图3所描述的检测串化器的时序的检测电路同样可以以检测串化器的时序的电子设备来实现,并且在检测串化器的时序的电子设备中同样可以包括图3中所示出的各个单元,并且图3中所示的各个单元同样可以以实现相应功能的其他软件、硬件或者软件和硬件的结合来实现。
下面通过图4来描述可以利用根据本公开的至少一实施例所提供的检测串化器的时序的方法或检测电路的示例应用场景。可以理解的是,图4所示出的场景仅是示例性的,而没有穷尽列举说明检测串化器的时序的方法或检测电路的各个方面,并且结合图4描述的各方面与结合图2和图3描述的各方面可以相互引用,而不超出本公开的范围。
图4示出了根据本公开的至少一实施例的示例应用场景400的示意图。在示例应用场景400中,利用参见如上结合图2和图3描述的检测串化器的时序的方法和检测串化器的时序的检测电路的部分实施例来检测例如包括在发射器中的串化器的时序正确性。
参见图4,模块1表示发射器的一个通道,其主要模块包括串化器(SER)402、驱动器(DRV)404。串化器402的功能是将并行的低速数据转为串行的高速数据,因此是发射器实现并行-串行转换的核心部件。串化器402的输入和输出皆为数字信号,驱动器404将串化器402输出的高速数字信号转为高速低压模拟差分信号(如图中的1b所示),再经传输介质发送给接收器。
如上所述,传统高速串化器的时序功能大多通过外部环回检测检测,这种检测方法需要额外的接收电路对接收到的高速低压模拟差分信号进行解码再与原始发送数据进行比较,根据比较的结果判断串化器的时序功能是否正确,这种检测方式具有硬件结构较为复杂,设计成本较大的缺点。
在该示例应用场景400中,可以通过如上参照图2和图3描述的检测串化器的时序的方法或检测电路(例如在该示例应用场景400中被构建为内建自测电路)来检测包括在发射器中的串化器的时序正确性。
下面详细介绍通过内建自测电路来检测包括在发射器中的串化器的时序的原理。
参见图4,串化器402接收用于检测的并行数据,即数据1a,数据1a为N路并行数据DIN[N:0]。每一路并行数据之间可以为交替0和1的数据位(例如1表示高电平,0表示低电平),即将用于检测的并行数据设置为0101...或者1010…。如图4所示,并行数据DIN[N:0]设置为0101...。串化器402可以基于该并行数据DIN[N:0]而输出对应的串行数据,例如0101…。
随后,由采样单元2(可以对应于参照图3描述的采样单元310)通过不同的相位时钟分别对串化器402输出的串行数据进行采样。例如可以由片内锁相环产生的两相时钟CK0/CK180分别对串化器输出的串行数据进行采样,以得到两个采样串行数据2a和2b。如图4所示,CK0/CK180为相位相反的时钟信号,在采样单元2中可以基于该CK0/CK180对串化器输出的串行数据进行采样。下面结合图5对该采样过程进行详细描述。
图5示出了根据本公开的至少一实施例的通过不同的相位时钟分别对串行数据进行采样的示意图500。
参考图5,可以通过两相时钟CK0/CK180结合例如D触发器来对串行数据进行采样。在示例应用场景400中,用于检测的并行数据为交替的0和1的数据位,因此,在示意图500中,由串化器输出的一笔串行数据可以假设为位长为10的串行数据(如图5中包括编号为9至0所示的串行数据),并且每个数据位具有相应的0和1的值。
针对不同的时钟CK0/CK180,可以基于D触发器的采样原理来分别对串行数据进行采样。其中,当CK0的上升沿到来时,可以将D触发器的D端(数据输入端)的数据传递到Q端(数据输出端),因此可以对串行数据的奇数数据位(如图5示出为编号9、7、5、3、1的数据位)的值进行采样,从而得到采样串行数据2a。在该示例应用场景中,串行数据的奇数数据位的值均为0,因此采样串行数据2a为全0。类似地,当CK180的上升沿到来时,可以将D触发器的D端(数据输入端)的数据传递到Q端(数据输出端),因此可以对串行数据的偶数数据位(如图5示出为编号为8、6、4、2、0的数据位)的值进行采样,从而得到采样串行数据2b。在该示例应用场景中,串行数据的偶数数据位的值均为1,因此采样串行数据2b为全1。
可以理解的是,图5仅示出了对串行数据进行采样的示例性实现方式,也可以通过其他方式对串行数据进行采样。
返回图4,在得到采样串行数据2a和2b之后,可以在图4所示的逻辑运算单元3(可以对应于参照图3描述的逻辑运算单元)中对采样串行数据2a和2b进行逻辑运算,从而可以得到逻辑运算的结果2c(例如对应于上文所述的第一结果信号)。图4中的逻辑运算单元3体现为异或非(XNOR)门406,因此可以对采样串行数据2a和2b进行异或非(XNOR)逻辑运算。当然,也可以对采样串行数据2a和2b进行其他逻辑运算。
在得到逻辑运算的结果2c之后,可以在电平检测单元4(可以包括在参照图3描述的时序检测单元330中)中对逻辑运算的结果2c进行电平检测。例如,如图4所示,可以将逻辑运算的结果2c输入到D触发器408的输入端,并且可以通过例如时钟CK0的上升沿将D触发器的D端的数据传递到Q端,从而得到电平检测的结果2e(例如对应于上文所述的第二结果信号)。在得到电平检测的结果2e之后,可以基于电平检测的结果2e来确定串化器402的时序正确性。在该实例应用场景中,电平检测的结果2e为稳定的低电平0指示串化器402的时序正确,电平检测的结果2e为稳定的高电平1指示串化器402的时序错误。
电平检测的结果2e可以同时作为边沿检测单元5(可以包括在参照图3描述的时序检测单元330中)的控制信号,以实现对电平检测的结果2e的边沿检测。例如,如图4所示,可以直接对电平检测的结果2e进行边沿检测,即将电平检测的结果2e输入到D触发器410的时钟控制端,从而可以得到边沿检测的结果3b。这里的D触发器410例如是RSTB-延时高电平的D触发器,其可以在一定的等待时间(用于数据稳定的TRSTB)之后对电平检测的结果2e进行边沿检测。在该实例应用场景中,当串化器的时序正确时,输出3b为低电平0。当串化器的时序错误时(例如极端工艺角下时钟延迟,触发器建立保持时间裕度不够)时,那么2e将不再保持稳定低电平0,会出现跳变信号,因此将触发后级触发器使得3b拉高为高电平1。
参见图4,边沿检测单元5中由虚线连接的线路(包括计数器412和D触发器414)示出了直接对电平检测的结果2e进行边沿检测的一种替代实施例,与直接将电平检测的结果2e输入到D触发器410的时钟控制端相比,该替代实施例将电平检测的结果2e输入到计数器412,以此驱动计数器对电平检测的结果2e的脉冲进行计数,并且计数器的输出连接到D触发器414的时钟控制端,以在计数器412的计数超过计数阈值后触发D触发器414进行边沿检测。以这种方式,在示例应用场景下,例如串化器402的高位及其低位时序出错将会产生周期性的错误脉冲,其占空比稳定。计数器的目的在于计数固定的脉冲后再由溢出位触发D触发器414,可以通过计数器取代等待时间的设置。
通过上述的电平检测和边沿检测,可以将串化器402的时序正确性体现在电平检测的结果2e和边沿检测的结果3b(或3d)中。当串化器402时序正确时,2e输出即为稳定的低电平0。当串化器402的时序错误时,2e将改变为含有周期脉冲的信号或者有电平突变的非周期信号,这两类信号都会触发边沿检测单元5中的D触发器的时钟控制端(例如,RSTB-作为D触发器的复位信号,同时可作用于数据端,其初始为低电平0表示D触发器复位状态,延时为高电平表示D触发器检测状态),使最终输出从0变1,即表示边沿检测异常。
表1示出了在示例应用场景下,串化器时序检测的结果(电平检测的结果2e和边沿检测的结果3b)与判断标准的示例性表格。
表1串化器时序检测的结果与判断标准
在示例应用场景下,结合表1可以基于串化器时序检测的结果确定串化器的时序正确性。在基于串化器时序检测的结果确定串化器的时序正确性方面可以通过机器地实施或者人为实施。例如,可以将串化器时序检测的结果(电平检测的结果2e和边沿检测的结果3b(或3d))输出到示波器,并且例如检测人员可以根据示波器显示的高低电平来确定串化器的时序正确性。又例如,可以由数字模块(例如从存储有上述电平检测的结果2e和边沿检测的结果3b(或3d)的寄存器)获取该时序检测的结果并执行上述确定过程。
在该实例应用场景中,可以实现包括在发射器中的串化器的时序正确性的检测。与现有的通过外部环回检测检测来检测串化器的时序正确性相比,可以通过内建自测电路来实现的串化器的时序正确性的检测,降低了硬件结构的复杂度,降低了设计成本。另外,通过设计电平检测与边沿检测两类误码检测途径,有效覆盖时序出错的案例。另外,该内建自测电路结构简单,可以作为环回检测的有效补充,例如可以应用于晶圆检测(CircuitProbing,CP)阶段/最终检测(Final Test,FT)阶段,从而减少故障集成芯片(IC)流到客户端几率。
另外,可以在增加串化器的时钟信号以增加串化器的并行-串行转化的速率的情况下,借助以上内建自测电路来检测串化器的时序功能。以这种方式,以上内建自测电路可以检测串化器可以支持的最大数据传输速率。
在上述示例应用场景中,通过设置示例性的用于检测的并行数据、采样单元、逻辑运算单元、时序检测单元(电平检测单元和/或边沿检测单元)来检测串化器的时序正确性。然而,可以理解的是,上述示例应用场景是为了便于读者理解本公开的而做出的非限制性示例,可以对上述示例应用场景的各方面进行适当的修改而不超出本公开的范围。例如,可以对用于检测的并行数据、采样单元、逻辑运算单元、时序检测单元(包括电平检测单元和/或边沿检测单元)以及判断标准进行修改。例如,可以对由逻辑运算单元3输出的逻辑运算的结果2c进行电平检测和/或者边沿检测,因此,逻辑运算单元3可以连接到电平检测单元4和边沿检测单元5之一,或者分别连接到电平检测单元4和边沿检测单元5,并且判断标准也可以适应性的修改。另外,可以对上述示例应用场景中的各个单元进行组合或分离,或者可以删除部分单元。例如,采样单元2、逻辑运算单元3、电平检测单元4和/或边沿检测单元5可以组合为一个单元。
图6示出了根据本公开的至少一实施例的检测串化器的时序的电子装置600的示意图。如图6所示,检测串化器的时序的电子装置600包括串化器610和检测串化器的时序的检测电路620。
串化器610可以是实现数据的串行-并行转换的任何类型的串化器。因此,检测串化器的时序的电子装置600可以是包括任何串化器的电子设备。例如,检测串化器的时序的电子装置600可以包括串行ATA(Serial ATA)、RDRAM内存等。
检测串化器的时序的检测电路620与参照图3描述的检测串化器的时序的检测电路300相同。因此,根据本公开的结合图3描述的检测串化器的时序的检测电路的各个方面的效果同样可以映射到本公开的结合图6描述的检测串化器的时序的检测电路620,在此不在赘述。
检测串化器的时序的检测电路620可以实现为内建自测电路,因此检测串化器的时序的电子装置600可以集成到片上,并且可以应用于各种数据转换装置,尤其是需要实现数据的并行-串行转换功能的数据转换装置,以此实现数据的并行-串行转换功能以及串化器的时序的检测。
需要说明的是,在本文中,诸如第一、第二等的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且进一步包括没有明确列出的其他要素,或者是进一步包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。