本发明的目的是提供在相互异步电路模块之间支持一致和有效的数据传输的电路。根据本发明通过如下实现该目的
包括第一和第二电路模块以及同步模块的电路,该第一和第二模块相互异步,并且通过同步模块耦合,该同步模块包括
-传输寄存器,其用于存储在两个电路模块之间通信的数据,
-控制电路,其用于响应来自第一和第二电路模块的相应定时信号来产生用于传输寄存器的控制信号,该控制电路至少包括
-转发器,其用于引起控制信号值的变化,
-至少一个沿敏感单元,用于延迟控制信号中的有效沿(active edge)直到在所选择的一个定时信号中检测到同步转变为止。
在本发明的电路中将被通信的数据存储在传输寄存器中。控制电路可以实现:当更新传输寄存器时两个电路模块不涉及改变写数据(WDAT)或使用读数据(RDAT)。
因此,传输的数据始终是一致的,并且对于读数据的模块,总存在小的延迟和很少的微小中断。可以利用第一和第二电路模块的一部分延伸控制链。
参考附图详细说明这些以及其他方面。其中
图1示意地示出根据本发明的电路。它包括第一电路模块10、第二电路模块20、以及同步模块30,其中第一电路模块10和第二电路模块20互相异步。
同步模块30包括用于暂时存储从第一电路模块10传输到第二电路模块20的数据的传输寄存器31,和用于存储反向通信数据的传输寄存器33。传输寄存器31和33由控制电路32控制,该控制电路32响应来自第一和第二电路模块10、20的相应定时信号St1、St2进行工作。定时信号St1可以具有规律性,例如为时钟信号,或者可以是无规律的,在此信号中的同步转变表示它的写数据(WDAT0)在短时间延迟后会稳定较长的时间,并且在较长的时间内不会使用进入的读数据信号(RDAT1)。在这种情况下,第一电路模块10是具有时钟信号St1的时钟控制模块,并且第二模块20是具有信号交换信号(handshake signals)St2和St3的异步模块。电路模块20使用St2以请求访问传输寄存器,并且St3是确认信号,通过该确认信号同步模块30表示有权访问寄存器。控制电路32包括用于产生控制寄存器31和33的控制信号CR的控制链。控制电路32包括用于引起控制信号CR的值转变的转发器34、以及至少一个沿敏感元件35,其用于延迟控制信号值的有效转变(active transition)直到在选定的一个定时信号(在此是信号St1)中检测到同步转变为止。另外,控制链包括仲裁元件38。第一和第二电路模块可以集成在芯片上,或者可以是不同芯片的一部分。该电路可以包括一个或多个其他的电路模块。
图1所示电路如下工作。控制链产生用于对传输寄存器进行三级控制的信号CR。转发器34例如通过反相修正控制信号CR1的值,以获得第二级CR2。延迟在信号CR2中的有效转变直到通过沿敏感元件35在定时信号St1中检测到同步转变为止。同步控制信号CR3是仲裁器(38)的输入之一,该仲裁器具有作为另一输入的请求信号St2。当电路模块20有权访问传输寄存器时该仲裁器阻止CR3中的有效转变。当电路模块20没有使用传输寄存器时,将信号CR3中的有效转变传递给信号CR4。
该事件使得传输寄存器能存储它们的输入值:在寄存器31中的WDAT0和在寄存器33中的WDAT1。通过定时信号St2,第二电路模块20表示它想要进行通信:读RDAT0或者改变WDAT1(或者两者都有)。定时信号St3对模块20表明它有权读TDAT0并改变WDAT1。然后仲裁器38阻止信号CR中的有效转变,以便传输寄存器不改变它们的值直到电路模块20通过信号St2表明它已完成通信为止。
对于控制信号可以使用二相或四相信号。在二相信号方案中所有的转变都是有效的。在四相信号方案中上升沿或下降沿是有效的。本发明的优选实施例是四相信号交换信号,上升沿为有效转变。在这种情况下,沿敏感元件35必须延迟这两种转变直到它被定时信号St1触发为止。对在本发明中所使用的元件的实际实施,例如等待单元、沿敏感元件、仲裁器、序列发生器和转发器,对于异步信号处理领域的技术人员而言都是公知的,因此这里不详细描述。
图2更详细地示出同步模块30的实施例。其中对应于图1的部件具有高于100的参考数字。其中所示的模块进一步包括比较器136,其用于在检测到传输寄存器131的输入和输出之间的差别时产生差信号ΔD。控制链还包括用于延迟控制信号CR中的有效转变直到检测到传输寄存器的输入和输出之间有差别为止的等待元件137。图2所示的电路包括提供时钟信号Wclk作为选定的定时信号的第一电路模块110。来自第二电路模块120的定时信号是读请求信号Rreq。仲裁器138具有其设置在沿敏感元件135的输出和转发器134的输入之间的第一通路。其第二通路具有用于接收读请求信号Rreq的第一输入和用于将读确认信号Rack提供给第二电路模块的第二输出。
图2所示的电路的运行与图1所示的电路在如下方面不同。如果没有新数据提供给传输寄存器131,即如果在传输寄存器131输入端提供的数据等于存储在其中的数据,则控制信号ΔD为假,因此等待单元137阻止控制信号中的有效转变。当等待元件137与元件134、135和138形成闭合链时,该链中的所有活动中断直到向传输寄存器131提供新的数据。该措施可以减少电路的功耗。
或者,同步模块130可以具有寄存器133,其用于暂时存储来自第二电路模块120的数据WDAT1以将此作为数据RDAT1提供给第一电路模块110而不是寄存器131。此外,同步模块130可以具有用于比较数据WDAT1和RDAT1以控制等待元件137的比较器136’。或者,同步电路可以既包括用于暂时存储WDAT0的寄存器131又包括用于存储WDAT1的寄存器133,如图2A所示。同样,除了用于比较WDAT0和RDAT0的比较器136之外,同步模块还可以具有用于比较WDAT1和RDAT1的比较器136’。逻辑门136”可以使信号ΔD0与表示信号WDAT1和RDAT1之间是否存在差别的相应信号ΔD1结合。作为响应,逻辑门136”提供信号ΔD,其表示信号ΔD0或ΔD1中的至少一个是否表示差别,从而使等待元件137能够传递由转发器34提供的控制信号中的有效转变。
图3示出另一实施例。其中对应于图1的部件具有高于200的参考数字。在图3的实施例中,第一电路模块210和第二电路模块220同步运行,但是它们具有独立的时钟(分别为Wclk,Rclk)。定时信号中选定的一个控制沿敏感元件235的定时信号是来自第一电路模块210的时钟信号Wclk。该电路包括用于将数据从传输寄存器231传输到第二电路模块220的附加寄存器231A。控制电路包括可比控制链,其用于产生辅助传输寄存器231A的控制信号CRA。特别地,该电路包括另外的沿敏感元件235A,其用于延迟辅助寄存器231A的控制信号中的有效转变直到在来自第二电路模块220的定时信号Rclk中检测到同步转变为止。通过共享仲裁元件238使用于传输寄存器231和辅助传输寄存器231A的控制链相互耦合。仲裁元件238防止传输寄存器231和辅助传输寄存器231A同时更新。
图4示出具有与图3的实施例相同功能的简化实施例。与图3中的元件可比的元件具有高于100的参考数字。
如在图3的实施例中那样,同步模块330包括辅助传输寄存器331A。这里通过序列发生器339使用于传输寄存器331和辅助传输寄存器331A的控制链相互耦合,从而便形成单链。在该实施例中另外的沿敏感元件335A是控制链的一部分。
在本实施例中用于传输寄存器331和331A的控制信号CR重复经历以下阶段。控制信号的第一阶段CR1是通过转发器334的有效事件的产生。该转发器将事件发送给序列发生器339,接着其通过信号CR2将此事件发送给等待元件337。在下一阶段CR2将有效事件传递给等待元件337从而一旦在传输寄存器331的输入和输出之间检测到差别就将其作为第3阶段信号CR3传递给沿敏感元件335。如果在时钟信号Wclk中检测到同步沿,则沿敏感元件335将第3阶段信号中的有效转变传输给第4阶段信号CR4。轮到第4阶段信号使传输寄存器331接收由第一模块310提供的新数据。传输寄存器331通过第5阶段信号CR5对此进行确认,其通常是第4阶段信号CR4的无条件延迟形式。序列发生器339将该信号作为第6阶段信号CR6传递给辅助沿敏感元件335A,其在时钟信号Rclk中检测到同步转变时将此作为第7阶段信号CR7进行传输。信号CR7使得辅助传输寄存器331A接收来自传输寄存器331的新数据。它将表示完成的信号CR8提供给序列发生器339,而该序列发生器339将该信号传递给转发器334。然后轮到转发器334在下一轮中产生控制信号的第1阶段CR1。在该实施例中序列发生器339防止传输寄存器231和辅助传输寄存器231A同时更新。
图5示出又一个实施例。它包括用于将数据从第一模块410传输到寄存器431的辅助寄存器431B。选定的定时信号是来自第二电路模块420的时钟信号Rclk。来自第一电路模块410的定时信号是写请求信号Wreg。
该信号链包括仲裁元件438的第一通路,其位于耦合到沿敏感元件435的第一输入a和耦合到寄存器431的控制输入的第一输出b之间。寄存器431具有耦合到转发器434的控制输出。寄存器431的控制输入和控制输出通常直接连接在一起或者可以通过延迟功能元件(delay function)耦合在一起。转发器434通过等待元件437耦合到沿敏感元件435的第一输入a上。仲裁元件438的第二通路具有用于接收写请求信号Wreq的第二输入c,和用于提供控制信号来控制辅助寄存器431B的第二输出d。辅助寄存器431B可以任选地包括延迟元件以响应控制信号Wreq而将写确认信号Wack提供给第一电路模块410。或者,可以将写确认信号Wack无延迟地提供给第一电路模块410。
也可以不使用等待元件来实施图3、4和5的实施例而以额外的功耗为代价。
可以在“Handshake Circuits:an Asynchronous Architecture for{VLSI}Programming”,by“Kees van Berkel,series=“InternationalSeries on Parallel Computation”,Volume 5,“Cambridge UniversityPress”,1993,pp.162-163中找到几个电路。文章“Bridging ClockDomains by Synchronizing the Mice in the Mousetrap”by Joep Kesselsand Ad Peeters and Suk-Jin Kim,editor:Jorge Juan Chico and EnricoMacii,Patmos Incs,Volume 2799,pp.“141-150”,Sep,2003描述了几个同步电路的例子。此外,在二相和四相信号交换信号之间进行转换的模块对于异步电路设计领域的技术人员来说是公知的。根据数据有效要求,有效时钟沿、消极时钟沿(passive clock edge)或这两者可以用作信号St1中的同步事件。
应该注意的是本发明的保护范围不限于这里所述的实施例。本发明的保护范围也不受权利要求书中的参考标记的限制。词“包括”不排除在权利要求中提到的部件以外的其他部件。在元件前的词‘一个’不排除多个这些元件。可以以专用硬件的形式或者编程的通用处理器的形式来实施形成本发明部件的模块。本发明存在于每个新特征或特征的组合中。