伪同步时分复用的制作方法

文档序号:6350017阅读:173来源:国知局
专利名称:伪同步时分复用的制作方法
技术领域
本发明涉及数字电路,更具体地涉及具有数字信号的时分复用(TDM)的数字电路的设计。
背景技术
用时域复用方案发送数字信号的优势之一在于可采用共享单个传输信道的方式发送多个数字信号或信道信号。例如,TDM常常应用于ASIC(专用集成电路)和FPGA(现场可编程门阵列)设计中以减少用于与其它芯片通信的管脚数量。虽然芯片密度已经增加, 但是管脚数量尚未跟上以使得基于TDM的通信更加具有吸引力。在ASIC中,可通过将ASIC 设计的部分映射到FPGA上来建立原型。由于ASIC模块过去被设计为连接在单个芯片上, 因此它们之间通常具有IC封装中可用的连接的5-10倍的连接。如果芯片之间的连接针对每个设计时钟循环被共享多次,则传输性能将会限制系统的速度。因此提高TDM传输速率是极其有价值的。通常,TDM要么为同步的,要么为异步的。同步TDM可具有高性能,因为针对每个时钟循环可为待发送的信号分配单个时隙,从而允许高效利用可用时间。然而,维持多个 IC之间的准确时钟同步可能既昂贵又困难,需要生成和分配与芯片互连所涉及的各个时钟相关联的高频时钟。无法维持芯片之间的准确同步限制了传输的速率。在延迟不重要的情况下,源同步传输和在FIFO(先进先出)中缓冲的使用可用于克服同步问题。然而,在诸如 ASIC原型开发之类的很多应用中,对于延迟具有严格的约束,并且不能使用FIFO。异步TDM使用与用户时钟不同步的高频传输时钟。代替地,针对每个设计时钟循环,数据被采样并发送多次,例如,在授予Drazen Borkovic和Kenneth S. McElvain的、题为“Methods and Apparatus for the Design and Analysis of Digital Circuits with Time Division Multiplexing(用于设计和分析具有时分复用的数字电路的方法和装置),, 的美国专利No. 7,007, 254中,对此进行了描述。异步方案的优点在于,可分配具有宽松的同步约束的单个TDM时钟,并且由于反正传输隙也不与设计时钟同步,故无复杂的隙分配需要确定。在这种方案中,给定设计信号的连续采样之间的时间成为芯片到芯片的延迟的一部分。对于在很多不同的信号共享同一信道的情况下的高TDM比率来说,该过采样延迟可能会变得非常大,并成为该方案的主要缺陷。因此,传统的TDM方案未能满足诸如ASIC原型之类的密集互连的多器件系统中的性能和资源要求,因而需要做出改进。

发明内容
本文中描述了用于设计具有伪同步时分复用的数字电路的方法和装置。本节中总结了本发明的某些实施例。在本发明的至少一个实施例中,可根据传输时钟和设计时钟的周期来确定数据项传输隙的数量。数据项为多值符号,特殊情况是布尔(Boolean)值。可将用于数据项的传输隙的数量确定为隙的数量,使得数据项隙的总时间小于设计时钟的周期。大多数隙可用于发送数据项值,某些隙用于同步信息。在本发明的一方面,可生成隙计数器的表示,隙计数器的范围大于传输隙的数量。 计数器可由生成待发送的数据的设计时钟的沿进行复位。计数器值可用于控制选择和发送与各个编号的隙相关联的数据项的输入选择逻辑。在本发明的另一方面,在接收芯片中,生成隙计数器的表示。接收方计数器的值可用于对数据值的流进行分配和/或解复用。在本发明的又一方面,在所有数据项都已被发送之后(其可通过发送计数器计数过传输隙的数量来确定),输入选择逻辑可选择和/或发送‘0’值。当计数器被复位至0 时,输入选择逻辑可选择值‘1’,并且/或者在特定编号的隙(例如,隙O或隙1)中发送该值。在接收芯片或电路中,可针对接收方计数器生成复位发生电路。在接收计数器已计数过所有确定的隙编号之后,接收复位发生电路可等待输入数据流中‘0’到‘1’的变换,其识别值为‘1’的发送隙编号,并且计数器可被复位以与所识别的隙编号匹配。只要TDM时钟足够地快于设计时钟,则不管时钟频率如何变化,该机制都可维持发送电路和接收电路之间在隙编号上的一致。该机制的结果是无需设计时钟与传输时钟同步就能使所编号的数据项传输隙的位置相对于设计时钟沿粗略同步。这是一种无时钟同步的隙同步,故我们将该方法称之为伪同步TDM。在本发明的另一方面,多个并行TDM信道可共享包括复位发生电路和计数器的同步元件中的某些或全部元件。于是,仅并行信道组中的单个成员需要发送同步数据,从而释放了再多几个传输隙以用于发送数据项。在本发明的另一方面,可生成复用器逻辑的表示,以相对于设计时钟异步地发送数据项。所述数据项可在传输时钟的控制之下从第一集成电路发送到第二集成电路。可生成计数器逻辑的表示,以与选择逻辑相耦合,以便在设计时钟的时钟循环内的时隙序列中发送所述数据项。另外,可针对重复地使计数器逻辑复位的配置生成复位逻辑的表示。在本发明的另一方面,可生成解复用逻辑的表示,以相对于设计时钟异步地接收数据。所述数据可在传输时钟的控制之下从第一集成电路接收到第二集成电路。可生成耦合到提取逻辑的表示的计数器逻辑的表示,以异步地接收数据。另外,可生成具有重复地使计数器逻辑复位的配置的复位逻辑的表示。在本发明的另一方面,可针对驱动逻辑器件的设计时钟的设计时钟循环生成同步信号。可经由与设计时钟异步的传输时钟来发送所述同步信号。随后,可经由由传输时钟进行时钟控制的复用方案在设计时钟的时钟循环内发送来自逻辑器件的数据项。在本发明的另一方面,可检测根据传输时钟从逻辑器件的输入端口接收的同步信号。在检测同步信号之后,可从由传输时钟进行时钟控制的输入端口对一个或多个信号进行解复用。解复用后的信号可缓冲在与传输时钟异步的、驱动逻辑器件的设计时钟的时钟循环内。在本发明的另一方面,数字电路可包括设计逻辑、同步逻辑以及用于通过芯片的通信端口传送多个信号的复用逻辑。设计逻辑可生成由设计时钟进行时钟控制的信号。由设计时钟和传输时钟驱动的同步逻辑可基于与设计时钟异步的传输时钟生成同步信号,以近似对准传输隙。与设计逻辑和同步逻辑相耦合的复用逻辑可根据传输时钟通过通信端口发送同步信号和多个信号。在本发明的另一方面,计算相对于各个传输隙的设计时钟沿的最早可能采样时间。该计算可考虑传输计数器的最早可能复位。亦可计算相对于接收设计时钟沿的最晚可能传递时间。该计算可考虑传输计数器的复位的最晚可能时间。随后,可将设计信号分配到隙,使得它们满足所计算出的采样时间和传递时间所暗示的时序分析要求。本发明包括方法和执行这些方法的装置(其包括执行这些方法的数据处理系统) 以及当在数据处理系统上执行时使系统执行这些方法的计算机可读介质。本发明的其它特征将从附图和以下的具体实施方式
中显而易见。


通过举例对本发明进行了说明,本发明不局限于附图中的各幅图,在附图中,相同的附图标记表示相似的元件。图1示出了根据本发明的一个实施例的包括伪同步TDM的多芯片数字设计;图2示出了根据本发明的一个实施例的包括伪同步时分复用器的示例性数字电路;图3是示出了根据本发明的一个实施例的用于时分复用的同步时钟之间的伪同步的一个示例的时序图;图4示出了根据本发明的一个实施例的包括发送同步信号的伪同步TDM复用器的多芯片数字设计;图5是示出了根据本发明的一个实施例的基于异步时钟伪同步地对数据进行复用的控制技术的实施例的流程图;图6是示出了根据本发明的一个实施例的基于异步时钟伪同步地对数据进行解复用的控制技术的实施例的流程图;图7是示出了根据本发明的一个实施例的创建跨伪同步地通信的多个芯片的设计的过程的流程图;图8是示出了根据本发明的一个实施例的对设计执行时序分析的过程的流程图;图9示出了可与本发明的一个实施例一起使用的数据处理系统的示例。
具体实施例方式以下描述和附图用作对本发明的例示,而不应被解释为限制本发明。描述了很多特定细节以提供对本发明的透彻理解。然而,在某些情况下,没有对公知或传统的细节进行描述,以避免模糊了对本发明的描述。本发明的方法中的很多方法可利用诸如传统通用计算机系统之类的数字处理系统来执行。亦可使用被设计或编程为仅执行一项功能的专用计算机。说明书中对“一个实施例”或“实施例”的提及意味着结合该实施例所描述的特定特征、结构或特性可包括在本发明的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”并不一定全部指代同一实施例。在以下的附图中所描绘的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,在通用计算机系统或专用机器上运行的软件)、或这两者的组合。尽管以下围绕某些顺序操作来描述这些过程,但是应认识到,所描述的操作中的某些操作可以不同的顺序执行。此外,某些操作可以并行而非顺序地执行。本发明的至少一个实施例试图经由伪同步TDM系统发送数字信号,其包括带索引时隙的位置在源设计时钟的一时钟循环(或用户时钟循环)的范围上变化。使用源设计时钟的沿,可将计数器或状态机复位,以周期性地定位时隙0(与该沿相关联的时钟循环内的第一时隙)到靠近时钟沿。可通过根据正被传回设计中的触发器的信号进行遍历 (traverse)来识别源设计时钟。时隙0或其它时隙相对于设计时钟沿的定位可基于时序分析,例如基于同步TDM的信号传输中的时序分析。每个信号(或逻辑数据)的发送可仅消耗一个时隙。因此,相对于异步TDM实现来说,带宽得以增加且有效延迟显著减小。例如,以IGHz的传输速率,64/1的复用比率以及表示复用器和解复用器的延迟加上芯片到芯片的互连延迟的20ns,对于异步TDM方案可引起^ns (或64ns+20ns)的有效延迟,从而使系统频率限于约IOMHz。相比之下,对应的伪同步TDM方案可具有约28ns (或 8ns+20ns)的有效延迟,从而产生速度超过25MHz的系统。图1示出了根据本发明的一个实施例的包括伪同步TDM的多芯片数字设计。复用器可将多个信号组合成单个信号流以共享一个传输资源。通常,数字设计可包括遍布于多个芯片(例如,发送方芯片101和接收方芯片115)之间的设计模块。在一个实施例中,芯片101和/或115可为可编程逻辑器件(例如,FPGA器件)以便能够对数字设计进行仿真。 芯片互连117可为芯片之间的物理连线。在某些实施例中,芯片互连117可基于光连接或无线连接。通常,在跨芯片(例如,芯片101和115)的设计模块中传递的数据信号可经由不同的时隙共享相同的物理连接117。在发送方芯片101内部,设计模块可被配置成通过互连(例如,互连111)耦合的一个或多个块105、107。在一个实施例中,设计时钟109驱动发送方芯片101内的多个逻辑块105、107。设计时钟109可基于驱动包括接收方芯片115在内的多个芯片执行计算的时钟源。在一个实施例中,发送方芯片101根据驱动IO逻辑(例如,TDM IO 111)的传输时钟,从芯片内的设计块(例如,105和107)向外部芯片(例如,接收方芯片115)发送逻辑数据。传输时钟113可驱动接收方芯片115的对应IO端口经由芯片互连117从发送方芯片101接收逻辑数据。在一个实施例中,用于源芯片(例如,发送方芯片101)与目标芯片(例如,接收方芯片115)之间的逻辑数据的传输时钟是同步的,或者是基于单个时钟源的。在另一个实施例中,每个芯片上的传输时钟并非是相对于其它芯片上的传输时钟来控制的,并且接收方芯片中的接收逻辑由与数据一起发送的源同步时钟进行时钟控制。TDM IO 111可以伪同步TDM方式从发送方芯片101向接收方芯片115的对应TDM IO 119发送逻辑数据。TDM IO 119可包括从所接收的单个信号流中提取多个信号的伪同步TDM解复用器。在一个实施例中,TDM IO 111与传输时钟103和设计时钟109相耦合, 以基于将设计时钟109的各个时钟循环分别与传输时钟103的多个时钟循环或时隙同步的 TDM方案来发送逻辑数据。在一个实施例中,驱动逻辑操作的设计时钟109和驱动跨芯片的数据传输的传输时钟103是异步的(例如,彼此之间无已知的相位或特定频率关系)。图2示出了根据本发明的一个实施例的包括伪同步时分复用器的示例性数字电路。示例性电路200可在诸如图1的发送方芯片101之类的芯片中实现。诸如图1的TDMIO 111之类的IO逻辑可包括复位发生器逻辑211、隙计数器逻辑213和/或复用器215。 逻辑数据217可为来自用户逻辑209 (例如,图1的逻辑105和/或107)的输出数据。在一个实施例中,多个逻辑数据项217以共享跨分立芯片的互连线219(例如,图1的互连117) 的伪同步TDM方式经由复用器215被发送到另一个芯片。示例性电路200可由多个异步时钟(例如,时钟设计_clk 203和时钟tdm_clk 201)驱动。用户逻辑209可执行由时钟设计_clk 203进行时钟控制的逻辑操作或计算以生成例如包括多个二进制值的逻辑数据217。时钟设计_(让203可根据例如图1的设计时钟109来生成。顺序元件205、207可为流水线输送时钟信号以驱动用户逻辑209的寄存器、触发器或存储元件。在一个实施例中,时钟tdm_clk 201可根据例如图1的传输时钟 103来生成,以驱动跨芯片之间的数字数据的传输。通常,时钟tdm_clk 201的频率将高于时钟设计—clk 203的频率。在一个实施例中,隙计数器213根据诸如时钟tdm_clk 201之类的传输时钟生成计数,以供复用器215选择要在一时隙上发送的逻辑数据217。隙计数器213可控制逻辑数据217的选择次序,以便进行传输。通常,用于复用器215的时隙对应于时钟tdm_clk 201 的时钟循环。在一个实施例中,复用器215在时钟设计_clk 203的一时钟循环内为每个逻辑数据217提供单独的时隙。因此,针对时钟设计_clk 203的每个时钟从用户逻辑209生成的逻辑数据217的所有值在时钟设计_clk 203的对应时钟循环期间,被发送到互连219 的对端。可针对时钟设计_0让203的每个时钟循环生成用于将异步时钟设计_clk 203与时钟tdm_clk 201对准的同步信号(或同步数据)。在一个实施例中,复用器215被配置为根据来自隙计数器213的特定计数生成同步信号。例如,隙计数器213可包括饱和计数和初始计数,以供复用器215选择信号值以生成同步信号。饱和计数可以是为计数器配置的最大计数。当计数器根据相关联的驱动时钟计数到其饱和计数(或计数器范围)时,该计数器饱和。饱和的计数器可能不响应于驱动时钟而执行另外的计数。通常,当计数器被复位时,该计数器在其驱动时钟的下一个时钟循环被设置为初始计数,例如,0。计数器在接收到复位信号时可被复位。在一个实施例中,同步信号基于复用器215根据隙计数器213的初始计数和复位计数所选择的信号值。复位发生器211可为隙计数器213生成复位信号。当隙计数器213 在初始计数与饱和计数之间进行计数时,复用器215可选择逻辑数据217以进行传输。在一个实施例中,一旦隙计数器213饱和,则复用器215即可输出所配置的初始同步信号值, 例如逻辑低或0。在从复位发生器211接收到复位信号时,隙计数器在时钟tdm_clk 201的下一个时钟循环计数到其初始计数(复位)。在一个实施例中,复用器215输出基于隙计数器213 配置的后续同步信号值,所述隙计数器213根据时钟tdm_clk 201自初始计数起进行计数。 例如,经由时钟tdm_clk 201发送的同步信号可包括可明确识别的单个逻辑高和/或从逻辑低到逻辑高的变换。根据一个实施例,复位发生器211从设计_clk 203的沿得到复位信号。例如,复位发生器211可在时钟设计_clk 203的每个时钟循环的沿上生成使隙计数器213复位的复位信号。所使用的沿可取决于生成待发送的数据的时钟沿。通常,在时钟设计_clk 203的一时钟循环内根据时钟tdm_clk 201的时隙的数量多于经由复用器215发送逻辑数据217 所需要的时隙的数量。额外的时隙可被分配给数字电路200以容纳同步信号。在某些实施例中,多个互连可以共享相同的用于对数据传输进行同步的逻辑块 (例如图2的复位发生器211和/或隙计数器21 的方式,并行发送数据。每个互连可与用于发送数据的信道相关联。例如,包括用于互连219的信道在内的多个信道可共享诸如隙计数器213和复位发生器211之类的同步逻辑块,以针对设计时钟203并行发送数据。 因此,可经由并行信道提供附加数据时隙,而无需额外的同步逻辑块的成本。在某些实施例中,并行信道共享经由这些并行信道中的特定信道发送的同步信号。例如,在相同的传输隙期间,当该特定信道发送被共享的同步信号时,无需发送同步信号的信道可并发发送数据。图3是示出了根据本发明的一个实施例的用于时分复用的异步时钟之间的伪同步的一个示例的时序图。例如,设计时钟301可包括驱动芯片中的用户逻辑的设计时钟(例如,图2的设计_clk 203)的时钟循环。隙序列305和307可示出由伪同步TDM复用器(例如,图2的复用器215)进行的对时隙的两个示例性分配,所述伪同步TDM复用器由与设计时钟301不同地对准的传输时钟(例如,图2的tdm_clk 201)驱动。时隙或传输隙可对应于传输时钟的时钟循环的沿(例如,上升沿和/或下降沿)。一时隙可不包括传输时钟的一完整时钟循环。在一个实施例中,隙序列307包括用于发送逻辑数据315的八个时隙(隙_0至隙 _7)和用于同步信号313的两个隙(同步隙317、319)。时隙隙_0可被命名为标记“0”,时隙隙_1可被命名为标记“1”,…等等。两个设计时钟循环(或周期)可包括共同地标记的时隙,例如被标记为“0”的时隙、被标记为“1”的时隙,…等等。隙序列307可对应于8/1 复用器。同步信号可包括从逻辑低(例如,同步隙317)变换到逻辑1 (例如,同步隙319) 的模式。在一个实施例中,同步信号的接收端口(例如,基于对唯一信号模式的识别)将接收到同步信号之后的下一个时隙(隙321)识别为被分配为用于发送逻辑数据的第一时隙。 同步信号(或数据)可指示时隙(或传输隙)位于设计时钟的时钟循环内的位置。故生成同步信号的同步逻辑可选择或确定要为每个时隙分配哪个标记。时隙的时序可相对于传输时钟的时钟循环(或周期)的时钟沿来确定。在某些实施例中,多个时隙可位于在时间上重叠的位置,以例如使用多个电压电平和/或不同的频率光(light)并发地发送多个数据。在某些实施例中,每个标记的时隙位于与和该标记的时隙相关联的设计时钟的时钟循环的沿具有一偏移量(或时间差)的位置。例如,隙_0 312可与相对于设计时钟301 的沿303的偏移量325相关联。对于不同的设计时钟循环,与共同地标记的时隙相关联的偏移量可有所变化。针对共同地标记的时隙的偏移量在不同的设计时钟循环之间的变化可维持在预定界限(例如,与这些时隙相对应的传输时钟的一个或两个传输时钟循环)之内。在一个实施例中,与隙序列307相对应的计数器(例如,图2的隙计数器213)在值9处饱和。因此,在下一个时隙(例如,同步隙317),从相关联的伪同步TDM复用器(例如,图2的复用器21 强制输出(force)与计数器的饱和计数相对应的同步信号值0 (逻辑低)。在时刻303,在一个实施例中,设计时钟301的上升沿例如经由图2的复位发生器211 触发使计数器复位的复位信号。随后,在时刻311,复用器根据驱动计数器的传输时钟(例如,图2的tdm_clk 201),针对同步隙319生成与计数器的初始计数相对应的同步值1 (逻辑高)。因此,设计时钟301的时钟循环经由同步信号313与对应于隙序列307的传输时钟校准。自时隙321开始,逻辑数据315在跟随的索引为从0到7的时隙中被复用。对于不同的设计时钟循环,值为0的同步隙的数量可有所不同。图4示出了根据本发明的一个实施例的包括发送同步信号的伪同步TDM复用器的多芯片数字设计。例如,示例性数字设计400可包括在图1的发送方芯片101和/或接收方芯片115内。在一个实施例中,通过与时钟设计_clk 403异步的传输时钟tdm_clk 405, 来自由时钟设计_clk 403驱动的源逻辑块413的逻辑数据419被发送到芯片互连117的对端。互连117可耦合到由传输时钟tdm_clk 405驱动的发送器逻辑。例如,如图3的时序图300所示,逻辑数据419可在与时钟tdm_clk 405对准(例如,伪同步)的时钟设计_ elk 403的一个时钟循环内被发送。时钟设计_0让403和tdm_clk 405可分别对应于图1 的设计时钟109和传输时钟103。在一个实施例中,同步逻辑411与复用器415相耦合以提供用于为接收方芯片115 生成同步信号的同步信号值。同步逻辑411可包括被配置有同步信号值的存储元件,所述同步信号值可经由复用器例如根据来自发送方计数器409的计数来选择。在一个实施例中,由时钟tdm_clk 405进行时钟控制的发送方计数器409在值N处饱和,以便复用器415 在根据时钟tdm_clk 405分配的下一个时隙,从同步逻辑411中选择第一同步值。时钟设计_(让403的时钟循环可触发复位发生器407将发送方计数器409设置到复位状态。在一个实施例中,时钟循环的上升沿触发复位发生器407生成使发送方计数器409复位的复位信号。随后,在时钟tdm_clk 405的下一个时钟循环,发送方计数器复位至初始计数,以便复用器415在对应的时隙从同步逻辑411中选择第二同步值。包括第一同步值和第二同步值的同步信号可被发送到接收方芯片115,以便使接收方芯片115将用于发送逻辑数据 419的时隙对准。在一个实施例中,接收方芯片115包括以伪同步方式接收从发送方芯片101发送的逻辑数据和同步信号的解复用器431。接收方芯片115可为静态或可编程逻辑器件,例如 FPGA器件。根据传输时钟(例如,时钟r_tdm_clk 423)在一系列时隙上采集的逻辑数据 419可被解复用为逻辑数据433,并被锁存(或缓冲),以便用于目标逻辑块435。在一个实施例中,时钟r_设计_clk 439驱动目标逻辑块435执行计算。接收方芯片115的时钟设计_clk 439和发送方芯片的时钟设计_clk 403可为异步的。在某些实施例中,时钟1~_ 设计_clk 439和设计_clk 403可具有共同的频率。接收方芯片115包括接收方计数器425和同步检测(或同步)逻辑429,其与解复用器431相耦合以将接收方计数器425的计数器值与时隙(或传输隙)对准,例如,从而为目标逻辑块435分配用于所接收的逻辑数据的时隙。例如,同步检测逻辑4 可识别从发送方芯片101发送的同步信号,以指示为逻辑数据433分配的时隙序列的起点。经由互连 117接收的复用后的逻辑数据可经由解复用器431根据由接收方计数器425进行计数得到的计数来解复用。在一个实施例中,接收方计数器被配置为与发送方计数器409共享共同的饱和计数。当接收方计数器425饱和时,从发送方芯片101发送的同步信号可经由解复用器431作为同步信号437被转发到同步检测逻辑429。在检测到经由解复用器431接收到的同步信号时,同步检测逻辑4 可发送复位信号427以使接收方计数器复位。在一个实施例中,在接收方计数器425被复位时紧随的下一个时隙启动用于解复用后的逻辑数据的时隙序列。接收方计数器可在时钟r_tdm_clk423的作用下为解复用器431计数。在一个实施例中,时钟r_tdm_clk 423和tdm_clk 405 共享与驱动芯片互连117的传输时钟相同的时钟源。同步检测逻辑4 可从所接收的同步信号中识别同步模式,例如信号电平从逻辑低到逻辑高的改变。同步检测逻辑4 和对应的同步逻辑411可被配置有共同的同步模式。在某些实施例中,接收方计数器425和发送方计数器409在训练周期期间被对准,在该训练周期期间,从发送方芯片101发送的逻辑数据具有恒定的已知值,例如逻辑低(0)。图5是示出了根据本发明的一个实施例的基于异步时钟伪同步地对数据进行复用的控制技术的实施例的流程图。例如,控制流程500可由如图1所示的数字设计100执行。在一个实施例中,在框501处,控制流程500的逻辑针对驱动逻辑器件的设计时钟(例如,图1的设计时钟109)的每个时钟循环生成同步信号。来自逻辑器件的多个逻辑数据可共享用于与另一逻辑器件(例如,图1的芯片115)相耦合的单个物理连接(例如,图1的互连117)。每个逻辑数据可在相关联的设计时钟的每个时钟循环通过该物理连接。在一个实施例中,控制流程500的逻辑可基于状态机的状态(例如,根据由计数器逻辑进行计数得到的计数)来生成同步信号。控制流程500的逻辑可根据设计时钟的沿 (例如,上升沿)确定用于生成同步信号的状态。因此,生成同步信号以与设计时钟的各个时钟对准。同步信号可包括例如可在与设计时钟的时钟周期(或循环)相对应的周期内明确识别的预定模式。在框503处,根据一个实施例,控制流程500的逻辑根据传输时钟通过物理互连发送同步信号。传输时钟和设计时钟可为异步的(例如,无已知的相位或频率关系),例如图 3的时钟309和303。设计时钟的每个时钟循环(例如,基于同步信号的长度和待在设计时钟的每个时钟循环发送的逻辑数据的数量)可长到足以包括传输时钟的预定数量的时钟循环。在一个实施例中,控制流程500的逻辑根据传输时钟的每个时钟使计数器进行计数, 以确定状态机的状态,从而生成同步信号。在框505处,控制流程500的逻辑可根据传输时钟将对来自逻辑器件的逻辑数据进行复用的数据信号发送到目标器件。逻辑流程500的逻辑可在发送同步信号之后,例如, 自发送同步信号的传输时钟的下一个时钟开始,或者基于其它时序关系,执行数据信号传输。在一个实施例中,控制流程500的逻辑更新状态机以确定在设计时钟的时钟循环期间何时所有的数据值都已被发送。控制流程500的逻辑可在设计时钟的时钟循环期间当完成逻辑数据的传输之后,启动同步信号。图6是示出了根据本发明的一个实施例的基于异步时钟伪同步地对数据进行解复用的控制技术的实施例的流程图。例如,控制流程600可由如图1所示的数字设计100执行。在一个实施例中,在框601处,控制流程600的逻辑检测到达逻辑器件(例如,图1的接收方芯片11 的输入端口的、由传输时钟进行时钟控制的同步信号。接收同步逻辑的逻辑器件可由与传输时钟异步的设计时钟进行时钟控制。每个逻辑数据可在相关联的设计时钟的每个时钟循环通过物理连接。控制流程600的逻辑可基于状态机的状态(例如,根据由图4的计数器逻辑425 进行计数得到的计数),确定在设计时钟的每个时钟循环期间何时开始检测同步信号。状态机可由对同步信号进行时钟控制的传输时钟来驱动。在一个实施例中,在设计时钟的时钟循环期间,当计数器指示已接收到预定数量的逻辑数据时,可开始检测同步信号。在一个实施例中,控制流程600的逻辑根据所接收的信号的变换的模式来识别同步信号。例如从逻辑1到逻辑0的特定变换可指示在设计时钟的时钟循环期间同步信号的结束。在一个实施例中,在检测到同步信号之后,在框603处,控制流程600的逻辑将所接收的数据信号存储到分立的缓冲器中,以对经由由设计时钟进行时钟控制的逻辑器件的输入端口所发送的逻辑数据进行解复用。控制流程600的逻辑可对通过输入端口根据驱动逻辑数据值的传输的传输时钟所接收的逻辑数据值的数量进行计数。在一个实施例中,控制流程600的逻辑开始对根据传输时钟所接收的逻辑数据值的数量进行计数(例如,对传输时钟的时钟循环的数量进行计数)。控制流程600的逻辑可在已接收到预定数量的逻辑数据值之后等待同步信号。在一个实施例中,控制流程600的逻辑针对与传输时钟异步的设计时钟的每个时钟,重复检测同步信号并对所述预定数量的逻辑数据进行解复用。图7是示出了根据本发明的一个实施例的创建跨伪同步地通信的多个芯片的设计的过程的流程图。示例性过程700可由可包括硬件(电路、专用逻辑等)、软件(例如,在专用机器上运行的软件)、或这两者的组合的处理逻辑来执行。例如,软件工具可被配置为根据过程700自动实现跨伪同步地通信的多个芯片的设计。在一个实施例中,在框701处, 过程700的处理逻辑在驱动设计的设计时钟的沿的作用下对设计的数据项(或信号)进行分组。过程700的处理逻辑可通过根据正被传回设计的触发器的数据项遍历设计来识别设计时钟的沿。设计时钟的每个沿或时钟沿可对应于该设计时钟的时钟循环。在一个实施例中,设计可基于HDL(硬件描述语言)描述。与时钟沿相对应的相同组的所有数据项可在时钟沿的时钟循环内到达。在一个实施例中,在框703处,过程700的处理逻辑可执行时序分析,以生成用于将数据信号/值分配到信道/隙的时序要求。过程700的处理逻辑可计算用于发送相同组的每个信号相对于与该组相对应的时钟循环的时钟沿的到达时间。在一个实施例中,在框705处,过程700的处理逻辑针对每个设计时钟插入电路, 以便以伪同步方式对由时钟驱动的信号(或逻辑数据)进行复用。针对设计时钟的时钟循环的时段例如在针对图3的设计时钟301的隙序列305中可包括一个或多个时隙(或信道)。与设计时钟异步的传输时钟可基于传输时钟的时钟循环分配时隙。该电路可根据设计时钟的各个时钟循环内的隙的数量对与一组数据项相对应的逻辑数据进行复用。对于相同组的每个数据项,在框707处,过程700的处理逻辑可根据满足从时序分析生成的时序约束,在时钟循环内分配单独时隙。例如,可基于所计算出的数据值的到达时间来分配用于数据项或信号值的时隙(或传输隙)。在一个实施例中,时隙的分配基于针对对应的数据项可被采样的最早时间的逻辑数据。在框709处,过程700的处理逻辑可创建设计的实现,例如生成包括伪同步时域复用器电路的网表。在一个实施例中,过程700的处理逻辑将设计实现(例如,存储在存储器中的网表)载入(或装入)一个或多个硬件器件,例如PLD (可编程逻辑器件)或FPGA,以配置设计。过程700的处理逻辑可根据所配置的可编程器件对包括对跨多个芯片的逻辑数据进行伪同步复用的设计进行仿真(原型开发)。对于某些实施例,过程700的处理逻辑亦可基于专用集成电路(ASIC)。图8是示出了根据本发明的一个实施例的对设计执行时序分析的过程的流程图。 示例性过程800可由可包括硬件(电路、专用逻辑等)、软件(例如,在专用机器上运行的软件)、或这两者的组合的处理逻辑来执行。例如,示例性过程800可执行包括在图7的框703中的时序分析操作。在一个实施例中,在框801处,过程800的处理逻辑识别设计时钟 (例如,图3的设计时钟310)的一周期(或循环)内的时隙中用于发送数据值(或逻辑信号)的最早时隙(或传输隙)。过程800的处理逻辑可针对每个传输隙计算相对于设计时钟沿的最早可能采样时间。例如,过程800的处理逻辑可考虑与用于发送数据的同步逻辑相关联的传输计数器(例如,图2的隙计数器21 的最早可能复位。在框803处,过程800的处理逻辑可识别设计时钟的该周期内用于发送该数据的最晚可能时隙。在一个实施例中,过程800的处理逻辑计算相对于接收设计时钟沿的最晚可能传递时间。过程800的处理逻辑可考虑与用于发送数据的同步逻辑相关联的传输计数器的复位的最晚可能时间。随后在框805处,过程800的处理逻辑可基于针对该数据所识别的最早和最晚传输隙来生成时序要求。该时序要求可包括针对该数据的最早采样时间和最晚传递时间。图9示出了可与本发明的一个实施例一起使用的数据处理系统的示例。注意,尽管图9示出了计算机系统的各个组件,但是并非旨在表示按照此类细节将组件互连的任何具体架构或方式与本发明无密切关系。还应当认识到,具有较少组件或也许较多组件的网络计算机和其它数据处理系统也可与本发明一起使用。图9的计算机系统可为例如Apple Macintosh(苹果麦金托什)计算机。 如图9所示,计算机系统901 (其为数据处理系统的一种形式)包括总线902,该总线902耦合到微处理器903和ROM 907和易失性RAM 905和非易失性存储器906。如图9 的示例中所示,微处理器903 (其可为来自摩托罗拉公司或IBM的G3或G4微处理器)耦合到高速缓冲存储器904。总线902将这些各个组件互连到一起,并且还将这些组件903、907、 905和906互连到显示控制器和显示设备908,并互连到诸如输入/输出(I/O)设备之类的外围设备,所述输入/输出(I/O)设备可为鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、视频摄影机和本领域公知的其它设备。通常,输入/输出设备910通过输入/输出控制器909耦合到系统。易失性RAM 905通常用动态RAM(DRAM)来实现,动态RAM(DRAM)需要持续电力以刷新或保持存储器中的数据。非易失性存储器906通常为磁性硬盘驱动器或磁性光驱动器或光驱动器或DVDRAM或即便在系统掉电之后依然保持数据的其它类型的存储系统。通常,尽管并非是要求的,但非易失性存储器亦可为随机存取存储器。尽管图1示出了非易失性存储器为直接耦合到数据处理系统中的剩余组件的本地器件,但是将认识到, 本发明可使用远离该系统的非易失性存储器,例如通过诸如调制解调器或以太网接口之类的网络接口耦合到数据处理系统的网络存储设备。总线902可包括通过本领域公知的各种桥、控制器和/或适配器彼此连接的一条或多条总线。在一个实施例中,I/O控制器909包括用于控制USB外围设备的USB(通用串行总线)适配器和/或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。 从本说明书中显而易见的是,本发明的各方面可至少部分地用软件来实施。也就是说,这些技术可在计算机系统或其它数据处理系统中响应于其处理器(例如,微处理器) 执行包含在存储器(例如,ROM 907、易失性RAM 905和非易失性存储器906)或远程存储设备中的指令序列来实现。在各个实施例中,可将硬线电路与软件指令结合使用来实现本发明。因此,这些技术不局限于硬件电路与软件的任何特定组合,也不局限于由数据处理系统执行的指令的任何特定源。另外,在本说明书中,为了简化描述,各种功能和操作被描述为由软件代码执行或促成。然而,本领域技术人员将意识到,此类表述的含义在于这些功能是通过由处理器(例如,微处理器90 执行代码而产生的。机器可读存储介质可用于存储软件和数据,所述软件和数据在由数据处理系统执行时,使系统执行本发明的各种方法。该可执行软件和数据可存储在包括例如如图9所示的ROM 907、易失性RAM 905或非易失性存储器906的各种地方。该软件和/或数据的部分可存储在这些存储设备中的任一个存储设备中。因此,机器可读存储介质包括以可被机器(例如,计算机、网络设备、个人数字助理、制造工具、具有一个或多个处理器的集合的任何设备,等等)存取的形式存储信息的任何机构。例如,机器可读介质包括可记录/不可记录介质(例如,只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存器件,等等)。在上述说明书中,参照本发明的特定示例性实施例对本发明进行了描述。显然,可在不脱离如以下权利要求阐述的本发明的更宽的精神和范围的前提下对其作出各种修改。 因此,说明书和附图应以说明性意义而非限制性意义被对待。
权利要求
1.一种计算机可读存储介质,包含可执行计算机程序指令,所述可执行计算机程序指令在由数据处理系统执行时,使所述数据处理系统执行一种设计电子系统的方法,所述方法包括生成复用器逻辑的表示,所述复用器逻辑在传输时钟的控制之下在多个传输隙中相对于设计时钟异步地将数据项从第一电路发送到第二电路;生成计数器逻辑的表示,所述计数器逻辑的表示耦合到所述复用器逻辑的表示,以选择要在所述设计时钟的设计循环内异步发送的所述数据项;以及生成复位逻辑的表示,所述复位逻辑被配置为重复地使所述计数器逻辑复位。
2.如权利要求1所述的计算机可读存储介质,其中,所述计数器逻辑的重复复位是从所述设计时钟的沿得出的。
3.如权利要求1所述的计算机可读存储介质,其中,所述方法进一步包括确定所述设计时钟周期内用于发送所述数据项的传输隙的数量,其中每个传输隙对应于从所述传输时钟的沿得出的时段。
4.如权利要求1所述的计算机可读存储介质,其中,所述复用器逻辑被配置为向所述第二电路发送同步数据以指示所述传输隙的位置。
5.如权利要求4所述的计算机可读存储介质,其中,所述同步数据是在用于发送所述逻辑数据的所述多个传输隙之后的一个或多个传输隙内被发送的。
6.如权利要求4所述的计算机可读存储介质,其中,所述方法进一步包括生成同步逻辑的表示,所述同步逻辑被配置为生成所述同步数据。
7.如权利要求4所述的计算机可读存储介质,其中,所述计数器逻辑包括多个状态,并且其中,所述复用器逻辑基于所述多个状态中的一个状态来选择所述数据项和同步数据之一,以在传输隙中发送。
8.如权利要求7所述的计算机可读存储介质,其中,当所述计数器逻辑改变由所述设计时钟驱动的状态时,所述复用器逻辑发送所述同步数据。
9.如权利要求4所述的计算机可读存储介质,其中,所述复用器逻辑与相对于所述设计时钟异步地发送所述数据项的信道相关联,所述方法进一步包括生成相对于所述设计时钟异步地并行发送多个数据项的多个信道的表示,其中所述多个信道包括所述信道,并且其中所述多个数据项包括所述数据项。
10.如权利要求9所述的计算机可读存储介质,其中,所述信道与所述计数器逻辑和所述复位逻辑相关联,并且其中,所述多个信道共享所述计数器逻辑和所述复位逻辑。
11.如权利要求10所述的计算机可读存储介质,其中,所述信道发送所述同步数据,并且其中,在所述信道发送所述同步数据的同时,所述多个信道中的至少一个信道并发地发送所述多个数据项中的一个数据项。
12.如权利要求1所述的计算机可读存储介质,其中,所述第一电路包括从所述第一电路外部传送的多个数据项,并且其中,所述方法进一步包括对所述多个数据项执行时序分析;以及将所述多个数据项分组成一个或多个数据项组,其中所述数据项属于所述数据项组之一。
13.如权利要求12所述的计算机可读存储介质,所述时序分析包括识别所述设计时钟周期内的最早可能时隙,以发送所述多个数据项中的各个数据项; 识别所述设计时钟周期内的最晚可能时隙,以发送所述数据项;以及基于所识别的最早可能时隙和最晚可能时隙,生成针对所述多个数据项的时序要求。
14.如权利要求13所述的计算机可读存储介质,其中,所述方法进一步包括根据所述时序要求将所述数据项的每个信号分配给所述多个传输隙中的一个传输隙。
15.如权利要求12所述的计算机可读存储介质,其中,所述方法进一步包括针对至少一个设计时钟周期,将单个初始值分配给所述数据项,以初始化所述同步数据。
16.一种计算机可读存储介质,包含可执行计算机程序指令,所述可执行计算机程序指令在由数据处理系统执行时,使所述数据处理系统执行一种设计电子系统的方法,所述方法包括生成解复用器逻辑的表示,所述解复用器逻辑在传输时钟的控制之下在多个传输隙中相对于设计时钟异步地将数据项从第一电路接收到第二电路;生成计数器逻辑的表示,所述计数器逻辑的表示耦合到所述解复用器逻辑的表示,以在所述设计时钟的设计时钟周期内异步地接收所述数据项;以及生成同步逻辑的表示,所述同步逻辑被配置为将所述计数器与所述传输隙同步。
17.如权利要求16所述的计算机可读存储介质,其中,所述同步逻辑检测从所述第一电路接收的同步数据,并且其中,所述同步逻辑将所述计数器值与所述传输隙对准。
18.如权利要求17所述的计算机可读存储介质,其中,所述计数器逻辑包括多个状态, 并且其中,当所述数据项被接收时,所述计数器逻辑在由所述传输时钟驱动的所述多个状态之间变换。
19.如权利要求18所述的计算机可读存储介质,其中,所述多个状态包括饱和状态和复位状态,其中,所述计数器逻辑在接收到所述数据项之后,在所述传输时钟的作用下变换到所述饱和状态,并且其中,所述复位逻辑将所述计数器逻辑从所述饱和状态复位至所述复位状态。
20.一种机器可读存储介质,包含多个可执行指令,所述多个可执行指令在数字处理系统上执行时,使所述数字处理系统将逻辑器件配置为针对驱动所述逻辑器件的设计时钟的设计时钟循环生成同步信号; 经由与所述设计时钟异步的传输时钟发送所述同步信号;以及在所述设计时钟循环内经由由所述传输时钟进行时钟控制的复用方案从所述逻辑器件发送数据信号。
21.一种位于芯片上的数字电路,用于通过通信端口传送多个数据项,所述数字电路包括设计逻辑,用于生成由设计时钟进行时钟控制的所述多个数据项; 同步逻辑,由所述设计时钟和传输时钟驱动以生成同步信号,所述设计时钟与所述传输时钟异步;以及复用逻辑,与所述设计逻辑和所述同步逻辑相耦合,以根据所述传输时钟通过所述通信端口发送所述同步信号和所述多个数据项。
22.如权利要求21所述的数字电路,其中,所述同步逻辑包括由所述传输时钟进行时钟控制的计数器逻辑。
23.如权利要求22所述的数字电路,其中,所述同步逻辑包括由所述用户时钟进行时钟控制的复位逻辑,所述复位逻辑用于生成使所述计数器逻辑复位的复位信号。
24.如权利要求23所述的数字电路,其中,所述同步信号在所述计数器逻辑饱和时生成。
25.如权利要求M所述的数字电路,其中,所述同步信号包括在所述传输时钟的时钟循环内与所述复位信号对准的变换模式。
26.一种电子系统,包括设计时钟,用于对多个信号进行时钟控制,所述多个信号在所述设计时钟的各个循环内经由多个传输隙来传输,其中每个信号在一个传输隙内发送;传输时钟,其与所述设计时钟异步,用于创建所述多个传输隙,每个传输隙与所述设计时钟的时钟沿具有一偏移量;以及同步逻辑,其耦合到所述设计时钟和所述传输时钟,以标记所述多个传输隙, 其中,针对所述设计时钟的不同循环的具有共同标记的传输隙的偏移量变化保持在有界限的不确定度之内。
27.如权利要求沈所述的电子系统,进一步包括选择逻辑,用于基于所述传输隙的标记来选择在所述传输隙中发送的信号。
全文摘要
描述了伪同步地对逻辑数据进行复用的方法和装置。生成复用器逻辑的表示以相对于设计时钟异步地发送数据项。数据项可在传输时钟的控制之下从第一集成电路发送到第二集成电路。可生成计数器逻辑的表示,计数器逻辑与复用器逻辑相耦合,以用于异步地发送数据。另外,可针对重复地使计数器逻辑复位的配置生成复位逻辑的表示。可针对驱动数据项的设计时钟的设计时钟循环生成同步信号。可经由与设计时钟异步的传输时钟发送同步信号。可经由基于传输时钟和设计时钟的时钟循环确定的若干传输隙发送数据项。用于发送逻辑数据的传输隙的总时间可小于设计时钟的时钟循环。设计时钟的时钟循环内的一个或多个传输隙可用于发送同步数据,从而根据设计时钟指示发送数据项的新循环。
文档编号G06F9/06GK102576303SQ201080033441
公开日2012年7月11日 申请日期2010年7月14日 优先权日2009年7月20日
发明者K·S·麦克尔文 申请人:新思公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1