CN111949069A - 用于异步数据传送的电路 - Google Patents
用于异步数据传送的电路 Download PDFInfo
- Publication number
- CN111949069A CN111949069A CN202010404934.7A CN202010404934A CN111949069A CN 111949069 A CN111949069 A CN 111949069A CN 202010404934 A CN202010404934 A CN 202010404934A CN 111949069 A CN111949069 A CN 111949069A
- Authority
- CN
- China
- Prior art keywords
- signal
- data
- flop
- flip
- synchronization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
- H03K3/0372—Bistable circuits of the primary-secondary type
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
一种用于异步数据传送的电路包括具有异步从时钟的从装置,所述从装置用于将数据传送到具有主时钟的主装置。所述从时钟是非连续时钟信号。所述从装置包括时钟检测电路、寄存器组、暂时存储寄存器和数据通路选择器。所述从装置接收来自所述主装置的数据传送命令。所述时钟检测电路检测从时钟信号的存在并且生成同步信号。为了将所述数据传送到所述主装置,所述数据通路选择器基于所述同步信号选择所述暂时存储寄存器和所述寄存器组中的一个。所述从装置确保到所述主装置的无缝数据传送,而不管从时钟信号的存在与否。
Description
技术领域
本发明一般涉及电子装置之间的数据通信,更具体地说,涉及将数据从具有间歇的、非连续时钟的从装置传送到主装置。
背景技术
例如片上系统(SoC)和专用集成电路(ASIC)等的集成电路通常包括彼此异步的多个时钟域。例如,使用主从协议的系统包括使用异步时钟信号的主装置和使用从时钟信号的从装置。当彼此异步时,主时钟信号和从时钟信号在主装置和从装置之间的数据传送期间引起时钟域交叉(CDC)问题。此类CDC问题可能导致数据丢失或错误数据的传送。
已经使用各种时钟同步技术来解决主时钟信号和从时钟信号之间的不兼容性以克服CDC问题。然而,当从装置使用非连续从时钟信号时,此类时钟同步技术可能无法克服CDC问题。此外,对于通信协议,如串行外围接口(SPI)和集成电路(I2C),主装置在预定的数据传送周期中从从装置接收所请求的数据是关键的。因此,延长数据传送周期并且等待从时钟信号用作同步技术是不合适的。
克服上述问题的一种解决方案包括使用先进先出(FIFO)缓冲器在主装置和从装置之间传送数据。然而,FIFO缓冲器增加了从装置的尺寸和复杂性。
因此,具有不管从时钟信号的可用性如何都能够无缝地将所请求的数据传送到主装置的从装置将是有利的。
发明内容
根据本发明的一个方面,提供一种用于将数据从第一装置传送到第二装置的电路,所述第一装置基于第一非连续时钟信号进行操作,且所述第二装置基于与所述第一时钟信号异步的第二时钟信号进行操作,所述电路包括:时钟检测电路,其(i)从所述第二装置接收用于将数据从所述第一装置传送到所述第二装置的数据传送请求信号,以及(ii)生成同步信号,当所述第一时钟信号不存在时所述同步信号是无效的,并且当所述第一时钟信号存在并且所述数据传送请求信号有效时所述同步信号被断言;寄存器组,其存储所述数据;暂时存储寄存器,其连接到所述时钟检测电路以接收所述同步信号,并且连接到所述寄存器组以从其接收所述数据,其中,所述暂时存储寄存器在所述同步信号被断言时接收所述数据;以及数据通路选择器,其连接到所述寄存器组和所述暂时存储寄存器,其中,所述数据通路选择器基于所述同步信号从所述暂时存储寄存器和所述寄存器组中的一个输出所述数据。
根据一个或多个实施例,还包括:命令解码器,其从所述第二装置接收数据传送命令和所述第二时钟信号,其中,所述命令解码器解码所述数据传送命令以生成数据请求信号、传送结束(EOT)信号和加载信号;以及复位触发器,其连接到所述命令解码器以接收所述EOT信号,其中,所述复位触发器还接收所述第一时钟信号,并且基于所述EOT信号和所述第一时钟信号生成第一复位信号以复位所述时钟检测电路。
根据一个或多个实施例,所述时钟检测电路包括:触发器电路,其连接到所述命令解码器和所述复位触发器,用于分别接收数据请求信号和所述第一复位信号,其中,所述触发器电路还接收所述第一时钟信号并且使数据请求信号与所述第一时钟信号同步以生成同步请求信号;以及脉冲生成器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述脉冲生成器还接收所述第一时钟信号并且生成所述同步信号。
根据一个或多个实施例,所述触发器电路包括:第一触发器,其连接到所述命令解码器和所述复位触发器,用于分别接收数据请求信号和所述第一复位信号,其中,所述第一触发器还接收所述第一时钟信号并且基于数据请求信号和所述第一时钟信号生成中间请求信号;以及第二触发器,其连接到所述第一触发器和所述复位触发器,用于分别接收所述中间请求信号和所述第一复位信号,其中,所述第二触发器还接收所述第一时钟信号并且基于所述中间请求信号和所述第一时钟信号生成所述同步请求信号。
根据一个或多个实施例,,所述脉冲生成器包括:第一触发器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述第一触发器还接收所述第一时钟信号并且基于所述同步请求信号和所述第一时钟信号生成延迟请求信号;以及第一逻辑电路,其连接到所述触发器电路和所述第一触发器,用于分别接收所述同步请求信号和所述延迟请求信号,其中,所述第一逻辑电路基于所述同步请求信号和所述延迟请求信号生成所述同步信号。
根据一个或多个实施例,所述数据通路选择器包括:第一触发器,其连接到所述命令解码器,用于接收数据请求信号,其中,所述第一触发器基于数据请求信号生成寄存器请求信号并且将其提供给所述寄存器组;第一逻辑电路,其连接到所述第一触发器和所述时钟检测电路,用于分别接收所述寄存器请求信号和所述同步信号,其中,所述第一逻辑电路基于所述寄存器请求信号和所述同步信号生成选择信号;以及多路复用器电路,其具有分别连接到所述寄存器组和所述暂时存储寄存器的第一和第二数据输入端,以及连接到所述第一逻辑电路的用于接收所述选择信号的选择端,其中,所述多路复用器电路基于所述选择信号输出存储在所述暂时存储寄存器和所述寄存器组中的一个的所述数据。
根据一个或多个实施例,当所述同步信号和所述寄存器请求信号中的至少一个处于有效状态时,所述选择信号处于有效状态,并且其中,当所述同步信号处于无效状态并且所述寄存器请求信号处于无效状态时,所述选择信号处于所述无效状态。
根据一个或多个实施例,当所述选择信号处于所述有效状态时,所述数据通路选择器选择所述寄存器组,且当所述选择信号处于所述无效状态时,所述数据通路选择器选择所述暂时存储寄存器。
根据一个或多个实施例,所述数据通路选择器还包括:第二逻辑电路,其连接到所述时钟检测电路和所述复位触发器,用于分别接收所述同步信号和所述第一复位信号,其中,所述第二逻辑电路基于所述同步信号和所述第一复位信号生成用于复位所述第一触发器的第二复位信号。
根据一个或多个实施例,还包括:响应生成器,其与所述第二装置通信,其中,所述响应生成器基于所述加载信号从所述多路复用器电路接收所述数据,并且将所述数据输出到所述第二装置。
根据一个或多个实施例,所述第一装置是从装置并且所述第二装置是主装置。
根据本发明的第二方面,提供一种片上系统(SoC),包括:从装置,其将数据传送到主装置,其中,所述从装置和所述主装置分别基于彼此异步的从时钟信号和主时钟信号进行操作,其中,所述从时钟信号是非连续时钟信号,并且其中所述从装置包括:时钟检测电路,其接收用于将所述数据传送到所述主装置的数据请求信号并且生成同步信号,其中,当所述从时钟信号不存在时,所述同步信号保持在无效状态,且当所述从时钟信号存在并且所述数据请求信号处于有效状态时,所述同步信号被断言;寄存器组,其存储所述数据;暂时存储寄存器,其连接到所述时钟检测电路以接收所述同步信号,并且连接到所述寄存器组以从其接收所述数据,其中,所述暂时存储寄存器在所述同步信号被断言时接收所述数据;以及数据通路选择器,其具有分别连接到所述寄存器组和所述暂时存储寄存器的第一数据输入端和第二数据输入端,以及连接到所述时钟检测电路用于接收所述同步信号的控制端,其中,所述数据通路选择器基于所述同步信号在所述第一数据输入端和所述第二数据输入端之间选择,用于将所述数据传送到所述主装置。
根据一个或多个实施例,所述从装置还包括:命令解码器,其连接到所述主装置,用于接收数据传送命令和所述主时钟信号,其中,所述命令解码器解码所述数据传送命令以生成所述数据请求信号、传送结束(EOT)信号和加载信号;以及复位触发器,其连接到所述命令解码器,用于接收所述EOT信号,其中,所述复位触发器还接收所述从时钟信号,并且基于所述EOT信号和所述从时钟信号生成第一复位信号,以复位所述时钟检测电路。
根据一个或多个实施例,所述时钟检测电路包括:触发器电路,其连接到所述命令解码器和所述复位触发器,用于分别接收所述数据请求信号和所述第一复位信号,其中,所述触发器电路还接收所述从时钟信号并且使所述数据请求信号与所述从时钟信号同步,以生成同步请求信号;以及脉冲生成器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述脉冲生成器还接收所述从时钟信号并且生成所述同步信号。
根据一个或多个实施例,所述触发器电路包括:第一触发器,其连接到所述命令解码器和所述复位触发器,用于分别接收所述数据请求信号和所述第一复位信号,其中,所述第一触发器还接收所述从时钟信号并且基于所述数据请求信号和所述从时钟信号生成中间请求信号;以及第二触发器,其连接到所述第一触发器和所述复位触发器,用于分别接收所述中间请求信号和所述第一复位信号,其中,所述第二触发器还接收所述从时钟信号并且基于所述中间请求信号和所述从时钟信号生成所述同步请求信号。
根据一个或多个实施例,所述脉冲生成器包括:第一触发器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述第一触发器还接收所述从时钟信号并且基于所述同步请求信号和所述从时钟信号生成延迟请求信号;以及第一逻辑电路,其连接到所述触发器电路和所述第一触发器,用于分别接收所述同步请求信号和所述延迟请求信号,其中,所述第一逻辑电路基于所述同步请求信号和所述延迟请求信号生成所述同步信号。
根据一个或多个实施例,所述数据通路选择器包括:第一触发器,其连接到所述命令解码器,用于接收所述数据请求信号,其中,所述第一触发器基于所述数据请求信号生成寄存器请求信号并且将其提供给所述寄存器组;第一逻辑电路,其连接到所述第一触发器和所述时钟检测电路,用于分别接收所述寄存器请求信号和所述同步信号;其中,所述第一逻辑电路基于所述寄存器请求信号和所述同步信号生成选择信号,其中,当所述同步信号和所述寄存器请求信号中的至少一个处于有效状态时,所述选择信号处于有效状态,且当所述同步信号处于无效状态并且所述寄存器请求信号处于无效状态时,所述选择信号处于无效状态,并且其中,当所述选择信号处于所述有效状态时,所述数据通路选择器选择所述寄存器组,且当所述选择信号处于所述无效状态时,所述数据通路选择器选择所述暂存存储寄存器;多路复用器电路,其具有分别连接到所述寄存器组和所述暂时存储寄存器的所述第一数据输入端和所述第二数据输入端,以及连接到所述第一逻辑电路的用于接收所述选择信号的选择端,其中,所述多路复用器电路基于所述选择信号输出存储在所述暂时存储寄存器和所述寄存器组中的一个的所述数据;以及第二逻辑电路,其连接到所述时钟检测电路和所述复位触发器,用于分别接收所述同步信号和所述第一复位信号,其中,所述第二逻辑电路基于所述同步信号和所述第一复位信号生成用于复位所述第一触发器的第二复位信号。
根据一个或多个实施例,所述从装置还包括响应生成器,所述响应生成器基于所述加载信号从所述多路复用器电路接收所述数据,并且将所述数据输出到所述主装置。
根据本发明的第三方面,提供一种用于将数据从从装置传送到主装置的方法,所述主装置和所述从装置基于彼此异步的相应的主时钟信号和从时钟信号进行操作,并且其中,所述从时钟信号是非连续时钟信号,所述方法包括:由所述从装置接收由主所述装置发出的数据传送命令;由所述从装置基于所述数据传送命令生成数据请求信号;由所述从装置基于所述数据请求信号检测所述从时钟信号的存在;由所述从装置基于所述从时钟信号的所述存在的检测而生成同步信号,其中,当所述从时钟信号不存在时所述同步信号无效,且当所述从时钟信号存在并且所述数据请求信号有效时所述同步信号被断言;由所述从装置基于所述同步信号选择存储在暂时存储寄存器和寄存器组中的一个中的数据;以及将所选择的数据传送到所述主装置。
根据一个或多个实施例,当所述从时钟信号存在时选择所述暂时存储寄存器,且当所述从时钟信号不存在时选择所述寄存器组。
附图说明
当结合附图阅读时,将更好地理解本发明的优选实施例的以下详细描述。本发明通过举例的方式进行说明,并且不受附图的限制,在附图中,相同的附图标记指示相似的元件。
图1是根据本发明实施例的将数据从从装置传送到主装置的主装置和从装置的示意性框图;
图2是根据本发明实施例的从装置的示意框图;
图3是根据本发明实施例的图2的从装置的时钟检测电路的示意性框图;
图4是根据本发明实施例的图2的从装置的数据通路选择器的示意性框图;
图5是示出根据本发明实施例的在图2的从装置的从时钟信号存在的情况下的第一数据传送操作的时序图;
图6是示出根据本发明实施例的在图2的从装置的从时钟信号不存在的情况下的第二数据传送操作的时序图;以及
图7是示出根据本发明实施例的用于将数据从从装置传送到主装置的方法的流程图。
具体实施方式
对本领域技术人员来说,其他各种变形是显而易见的。
对附图的详细描述旨在作为对本发明的当前优选实施例的描述,而并不旨在表示可以实施本发明的唯一形式。应当理解,相同或等效的功能可以通过旨在包括在本发明的精神和范围内的不同实施例来实现。
术语“主装置”和“从装置”可以分别与术语“主”和“从”互换使用。术语“高”和“低”是指高逻辑状态和低逻辑状态。术语“包括(comprises)”、“包括(comprising)”或其变型旨在覆盖非排他性的包括,使得包括一系列元件或步骤的模块、电路、装置组件、结构和方法步骤不仅包括这些元件,而且可以包括未明确列出的或这些模块、电路、装置组件或步骤所固有的其它元件或步骤。因此,在没有更多约束的情况下,由“包括...”所进行的元件或步骤不排除包括该元件或步骤的额外相同元件或步骤的存在。
在一个实施例中,本发明提供了一种从装置,该从装置使用非连续从时钟信号进行操作,用于将数据传送到使用主时钟信号进行操作的主装置。从装置包括时钟检测电路、寄存器组、暂时存储寄存器和数据通路选择器。时钟检测电路接收用于将数据传送到主装置的数据请求信号,并且生成同步信号。当从时钟信号不存在时,同步信号无效,而当从时钟信号存在并且数据请求信号有效时,同步信号有效。寄存器组存储数据。暂时存储寄存器连接到时钟检测电路并且接收同步信号。暂时存储寄存器还连接到寄存器组,用于从寄存器组接收数据。当同步信号被断言时,暂时存储寄存器接收数据。数据通路选择器具有连接到寄存器组和暂时存储寄存器的数据端,以及连接到用于接收同步信号的时钟检测电路的控制端。数据通路选择器基于同步信号从暂时存储寄存器和寄存器组输出数据,并且输出数据被发送到主装置。
在另一实施例中,本发明提供一种包括将数据传送到主装置的从装置的片上系统(SoC)。主装置和从装置分别基于彼此异步的主时钟信号和从时钟信号进行操作,并且其中从时钟信号是非连续时钟信号。从装置包括时钟检测电路、寄存器组、暂时存储寄存器和数据通路选择器。时钟检测电路接收用于将数据传送到主装置的数据请求信号,并且生成同步信号。当从时钟信号不存在时,同步信号无效,而当从时钟信号存在并且数据请求信号有效时,同步信号有效。寄存器组存储数据。暂时存储寄存器连接到用于接收同步信号的时钟检测电路,并且连接到用于从其接收数据的寄存器组。当同步信号被断言时,暂时存储寄存器接收数据。数据通路选择器具有分别连接到寄存器组和暂时存储寄存器的数据输入端,以及连接到用于接收同步信号的时钟检测电路的控制端。数据通路选择器基于同步信号输出暂时存储寄存器和寄存器组中的一个,并且输出数据被提供到主装置。
在又一实施例中,本发明提供一种用于将数据从基于非连续从时钟信号进行操作的从装置传送到基于与从时钟信号异步的主时钟信号进行操作的主装置的方法。该方法包括:由从装置从主装置接收用于将数据传送到主装置的数据传送命令;以及由从装置基于数据传送命令生成数据请求信号。该方法还包括:由从装置基于数据请求信号检测从时钟信号的存在;以及由从装置基于从时钟信号的检测生成同步信号。当从时钟信号不存在时,同步信号处于无效状态,而当从时钟信号存在并且数据请求信号处于有效状态时,同步信号被断言。该方法还包括由从装置基于同步信号将从装置的暂时存储寄存器以及寄存器组中的一个输出到主装置。
本发明的各种实施例提供包括用于异步数据传送的电路的从装置,使得具有非连续时钟信号的从装置可以将数据传送到主装置。主装置和从装置基于彼此异步的相应的主时钟信号和从时钟信号进行操作。从时钟信号是非连续时钟信号。从装置包括时钟检测电路、寄存器组、暂时存储寄存器和数据通路选择器。寄存器组存储将传送到主装置的数据。时钟检测电路接收用于将数据传送到主装置的数据请求信号,并且生成同步信号。数据请求信号与主时钟信号同步,同步信号与从时钟信号同步。当从时钟信号不存在时,同步信号是无效的。当从时钟信号存在并且数据请求信号有效时,时钟检测电路断言同步信号。当同步信号被断言时,暂时存储寄存器从寄存器组接收数据。数据通路选择器接收同步信号,然后选择暂时存储寄存器和寄存器组中的一个,以将数据传送到主装置。当从时钟信号存在时选择暂时存储寄存器,而当从时钟信号不存在时选择寄存器组。因此,从装置提供到主装置的无缝数据传送,而不管从时钟信号的存在与否。
现在参考图1,示出了根据本发明的实施例的包括与从装置104通信的主装置102的系统的示意性框图。主装置102在第一片上系统(SoC)106上实现,并且基于主时钟信号M_CLK进行操作。主时钟信号M_CLK由与第一SoC 106相关联的第一时钟生成器(未示出)生成。在一个实施例中,主装置102可以包括第一时钟生成器,尽管在其它实施例中,第一时钟生成器可以在主装置102的外部。
主装置102与从装置104通信,并且可以从从装置104接收数据和向从装置104写入数据。例如,主装置102可以通过从装置104读取多个传感器(未示出)的传感器数据,并且可以将传感器配置数据写入从装置104以配置传感器。为了接收来自从装置104的数据,主装置102生成并且向从装置104提供数据传送命令,该命令至少包括要接收的数据的大小和从中检索数据的从装置104的存储器地址。主装置102还向从装置104提供主时钟信号M_CLK。
从装置104在第二SoC 108上实现,并且基于由与第二SoC 108相关联的第二时钟生成器(未示出)生成的从时钟信号S_CLK进行操作。在一个实施例中,从装置104可以包括第二时钟生成器,尽管在其它实施例中,第二时钟生成器可以在从装置104的外部。主时钟信号M_CLK和从时钟信号S_CLK相对于彼此是异步的。此外,从时钟信号S_CLK是非连续时钟信号,即,从时钟信号S_CLK可能不总是可用的。例如,第二时钟生成器可以在第一时段期间启用(即,周期性断言和解除断言)从时钟信号S_CLK,以更新由从装置104存储的数据,并且在第二时段期间禁用(即,使其无效)从时钟信号S_CLK。因此,在第一时段期间,从时钟信号S_CLK存在,而在第二时段期间,从时钟信号S_CLK不存在。
从装置104连接到主装置102,用于接收数据传送命令和主时钟信号M_CLK,并且基于数据传送命令,从装置104将所请求的数据传输到主装置102,而不管从时钟信号S_CLK是否存在。
对于本领域的技术人员显而易见的是,尽管主装置102和从装置104被示为分别在第一SoC 106和第二SoC 108上实现,但是在其它实施例中,主装置102和从装置104可以在单个SoC(例如第一SoC 106或第二SoC 108)上实现。
现在参考图2,示出了根据本发明的实施例的用于将数据从从装置传送到主装置的电路200的示意性框图。电路200包括命令解码器202、复位触发器204、时钟检测电路206、寄存器组208、暂时存储寄存器210、数据通路选择器212和响应生成器214。
命令解码器202连接到主装置102,用于接收数据传送命令和主时钟信号M_CLK。命令解码器202包括第一缓冲寄存器(未示出),其基于主时钟信号M_CLK进行操作以用于暂时存储数据传送命令。命令解码器202对数据传送命令进行解码,以生成与主时钟信号M_CLK同步的数据请求信号D_REQ。数据请求信号D_REQ对应于将数据传送到主装置102的请求。基于数据传送命令,命令解码器202进一步识别存储器地址和主装置102所请求的数据的大小。存储器地址指示寄存器组208中的寄存器(未示出)的物理地址,其中将要传送到主装置102的数据被存储。命令解码器202进一步生成加载信号和传输结束(EOT)信号。在数据传输期间,EOT信号是无效的。在一个实施例中,当数据已经成功地传输到主装置102时,命令解码器202在预定持续时间内断言EOT信号(即,EOT信号从无效状态转换到有效状态)。在一个例子中,预定持续时间等于主时钟信号M_CLK的一个时钟周期。在预定持续时间之后,命令解码器202解除断言EOT信号(即,EOT信号从有效状态转换到无效状态)。在另一实施例中,当要传送到主装置102的数据被加载到响应生成器214中时,命令解码器202可以在预定持续时间内断言EOT信号。
复位触发器204连接到命令解码器202并且接收EOT信号。复位触发器204还接收从时钟信号S_CLK和SoC复位信号。复位触发器204基于EOT信号和SoC复位信号生成第一复位信号RST1。当EOT信号和SoC复位信号无效时,第一复位信号RST1无效。当EOT信号和SoC复位信号中的至少一个被断言时,复位触发器204断言第一复位信号RST1,用于复位时钟检测电路206和暂时存储寄存器210。当EOT信号和SoC复位信号被解除断言时,复位触发器204与从时钟信号S_CLK同步地解除断言第一复位信号RST1。复位触发器204进一步将第一复位信号RST1提供到数据通路选择器212。
时钟检测电路206连接到命令解码器202和复位触发器204,并且分别接收数据请求信号D_REQ和第一复位信号RST1。时钟检测电路206进一步接收从时钟信号S_CLK。在接收数据请求信号D_REQ时,时钟检测电路206检测从时钟信号S_CLK的存在,并且生成与从时钟信号S_CLK同步的同步信号。当从时钟信号S_CLK不存在时,同步信号无效。当从时钟信号S_CLK存在并且数据请求信号D_REQ有效时,时钟检测电路206在预定持续时间(例如,从时钟信号S_CLK的一个周期)内断言同步信号。换句话说,当从时钟信号S_CLK不可用时,同步信号无效,当从时钟信号S_CLK可用并且数据请求信号D_REQ有效时,同步信号被断言。时钟检测电路206在预定持续时间(即,从时钟信号S_CLK的一个时钟周期)的结束处解除断言同步信号。当第一复位信号RST1被断言时,时钟检测电路206被复位。
寄存器组208是在一个实施例中包括用于存储数据的第一和第二组寄存器(未示出)的存储器,其中可以使用唯一的存储器地址来访问每个寄存器。当寄存器组208接收从时钟信号S_CLK时,第一组寄存器中的数据被更新,并且当寄存器组208接收主时钟信号M_CLK时,第二组寄存器被配置数据更新。寄存器组208从命令解码器202接收存储器地址。
暂时存储寄存器210是n位寄存器(例如,n=16),并且接收从时钟信号S_CLK、来自时钟检测电路206的同步信号以及主装置102从暂时存储器210请求的数据。暂时存储寄存器210还从复位触发器204接收第一复位信号RST1。当同步信号被断言时,暂时存储寄存器210从寄存器组208接收数据。当第一复位信号RST1被断言时,暂时存储寄存器210被复位。在本优选实施例中,当同步信号被断言时,暂时存储寄存器210在从时钟信号S_CLK的下降沿处从寄存器组208接收数据。
数据通路选择器212连接到命令解码器202和复位触发器204,用于分别接收数据请求信号D_REQ和第一复位信号RST1。数据通路选择器212具有分别连接到寄存器组208和暂时存储寄存器210的第一和第二数据输入端,以及连接到用于接收同步信号的时钟检测电路206的控制端。基于数据请求信号D_REQ和同步信号,数据通路选择器212生成用于访问存储在寄存器组208中的数据的寄存器请求信号R_REQ。数据通路选择器212将寄存器请求信号R_REQ提供到寄存器组208,并且基于寄存器请求信号R_REQ,数据通路选择器212接收存储在寄存器组208中的存储器地址处的数据。
基于寄存器请求信号R_REQ和同步信号,数据通路选择器212输出存储在寄存器组208和暂时存储寄存器210中的数据中的一个。当寄存器请求信号R_REQ或同步信号有效时(即,当数据传送命令被接收并且从时钟信号S_CLK存在时),则数据通路选择器212输出存储在暂时存储寄存器210中的数据,并且当寄存器请求信号R_REQ和同步信号被解除断言时(即,当数据传送命令被接收并且从时钟信号S_CLK不存在时),数据通路选择器212输出存储在寄存器组208中的数据。
响应生成器214连接到主装置102、命令解码器202和数据通路选择器212,用于分别接收主时钟信号M_CLK、加载信号和数据。响应生成器214包括用于暂时存储要传输到主装置102的数据的第二缓冲寄存器(未示出)。第二缓冲寄存器基于主时钟信号M_CLK操作。当加载信号有效时,第二缓冲寄存器加载数据。响应生成器214将从数据通路选择器212接收的数据传输到主装置102。
现在参考图3,示出了根据本发明实施例的时钟检测电路206的示意性框图。时钟检测电路206包括同步电路302和脉冲生成器304。
同步电路302连接到命令解码器202和复位触发器204,用于分别接收数据请求信号D_REQ和第一复位信号RST1。同步电路302还接收从时钟信号S_CLK。基于数据请求信号D_REQ和从时钟信号S_CLK,触发器电路302生成同步请求信号S_REQ。当从时钟信号S_CLK存在时,触发器电路302使数据请求信号D_REQ与从时钟信号S_CLK同步,并且断言同步请求信号S_REQ。当从时钟信号S_CLK不存在时,同步请求信号S_REQ是无效的。同步电路302包括第一触发器306a和第二触发器306b。
第一触发器306a具有分别连接到命令解码器202和复位触发器204的数据输入端和复位端,用于接收数据请求信号D_REQ和第一复位信号RST1。第一触发器306进一步具有用于接收从时钟信号S_CLK的时钟端和用于提供中间请求信号I_REQ的输出端。当从时钟信号S_CLK存在并且数据请求信号D_REQ有效时,第一触发器306a断言中间请求信号I_REQ。当从时钟信号S_CLK不存在时,中间请求信号I_REQ无效。当第一复位信号RST1被断言时,第一触发器306a被复位。
第二触发器306b具有分别连接到第一触发器306a的输出端和复位触发器204的数据输入端和复位端,用于接收中间请求信号I_REQ和第一复位信号RST1。第二触发器306b进一步具有用于接收从时钟信号S_CLK的时钟端,以及用于生成同步请求信号S_REQ的输出端。当从时钟信号S_CLK存在并且中间请求信号I_REQ有效时,第二触发器306b断言同步请求信号S_REQ,并且当从时钟信号S_CLK不存在时,同步请求信号S_REQ无效。当第一复位信号RST1被断言时,第二触发器306b被复位。对于本领域的技术人员将显而易见的是,触发器电路302的范围不限于两个触发器,而是可以包括任意数目的触发器而不背离本发明的范围。
脉冲生成器304连接到触发器电路302和复位触发器204,用于分别接收同步请求信号S_REQ和第一复位信号RST1。脉冲生成器304还接收从时钟信号S_CLK。基于同步请求信号S_REQ和从时钟信号S_CLK,脉冲生成器304生成同步信号。当从时钟信号S_CLK存在并且数据请求信号D_REQ有效时,脉冲生成器304断言同步信号在预定持续时间内,并且当从时钟信号S_CLK不存在时,同步信号无效。脉冲生成器304包括第三触发器308和第一逻辑电路310。
第三触发器308具有连接到第二触发器306b的输出端的数据输入端,用于接收同步请求信号S_REQ,以及用于接收从时钟信号S_CLK的时钟端。第三触发器308还具有连接到复位触发器204的复位端,用于接收第一复位信号RST1,以及用于提供延迟请求信号DEL_REQ的输出端。当第一复位信号RST1被断言时,第三触发器308被复位。
第一逻辑电路310连接到第二触发器306b和第三触发器308的输出端,用于分别接收同步请求信号S_REQ和延迟请求信号DEL_REQ。基于同步请求信号S_REQ和延迟请求信号DEL_REQ,第一逻辑电路310生成同步信号。在一个实施例中,第一逻辑电路310包括第一逻辑栅极312和第二逻辑栅极314,其是反相器和AND栅极。
第一逻辑栅极312具有连接到第三触发器308的输出端的输入端,用于接收延迟请求信号DEL_REQ,并且在其输出端提供延迟请求信号DEL_REQ的反相形式INV_REQ。第二逻辑栅极314接收同步请求信号S_REQ和INV_REQ信号,并且生成同步信号。
本领域的技术人员将理解,第一逻辑电路310的范围不限于第一逻辑栅极312和第二逻辑栅极314,而是可以使用逻辑栅极的不同组合来实现以达到相同功能性。
现在参考图4,示出了根据本发明实施例的数据通路选择器212的示意性框图。数据通路选择器212包括第四触发器402、第二逻辑电路404和第三逻辑电路406以及多路复用器或多路复用器408。
第四触发器402具有用于接收输入信号VDD的数据输入端,以及连接到命令解码器202用于接收数据请求信号D_REQ的时钟端。输入信号VDD是逻辑高信号(即,设定为1)。第四触发器402还具有连接到第三逻辑电路406的复位端,以及提供提供到寄存器组208的寄存器请求信号R_REQ的输出端。由于第四触发器402由数据请求信号D_REQ计时,并且第四触发器402的输入端接收逻辑高信号VDD,所以当数据请求信号D_REQ被断言时,第四触发器402的输出被断言,即,寄存器请求信号R_REQ。如果同步信号无效(即,如果从时钟信号S_CLK不存在),则寄存器请求信号R_REQ在数据传输期间保持断言。然而,如果同步信号被断言(即,如果从时钟信号S_CLK存在),则寄存器请求信号R_REQ通过第四触发器402的复位端被第三逻辑电路406解除断言。
第二逻辑电路404可以是双输入OR栅极,其接收来自第四触发器402的R_REQ信号和来自第二逻辑栅极314的同步信号,并且生成输入到多路复用器408的选择信号SEL,以选择来自寄存器组208或暂时存储寄存器210的数据中的一个输出到主装置102。当同步信号和寄存器请求信号R_REQ中的至少一个有效时,选择信号SEL有效,而当同步信号和寄存器请求信号R_REQ都无效时,选择信号SEL无效。换句话说,当数据传送命令被接收时,即,当数据请求信号D_REQ被断言时,选择信号被断言。如果从时钟信号S_CLK不存在,那么选择信号保持被断言,并且如果从时钟信号S_CLK存在,那么选择信号被解除断言。
第三逻辑电路406也可以是双输入OR栅极,其接收同步信号和第一复位信号RST1并且生成第二复位信号RST2,第二复位信号RST2被输入到第四触发器402的复位端。当同步信号和第一复位信号RST1被解除断言时,第二复位信号RST2也被解除断言,并且当同步信号和第一复位信号RST1中的至少一个被断言时,第二复位信号RST2被断言。
对于本领域技术人员显而易见的是,第二逻辑电路404和第三逻辑电路406不限于OR栅极,而是可以使用逻辑栅极的不同组合来实现以达到相同功能性。
如上所述,多路复用器408具有分别连接到暂时存储寄存器210和寄存器组208的第一和第二数据输入端,以及连接到用于接收选择信号SEL的第二逻辑电路404的选择端。多路复用器408根据选择信号SEL的值从暂时存储寄存器210和寄存器组208中的一个输出数据。当到数据传送命令被接收并且从时钟信号S_CLK存在时,多路复用器408选择暂时存储寄存器210,并且当选择信号SEL无效时,多路复用器408选择寄存器组208以用于输出数据。
现在参考图5,示出了说明在从时钟信号S_CLK存在的情况下的第一数据传送操作的时序图500。为了进行说明,假定从时钟信号S_CLK从T0到T17被使能。换句话说,从时钟信号S_CLK存在,并且从T0到T17周期性地被断言和被解除断言。存储在暂时存储寄存器210中的数据在下文中被称为“T_Data”,并且存储在寄存器组208的第一寄存器(未示出)中的数据在下文中被称为“R_Data”。由多路复用器408提供给响应生成器214的数据在下文中被称为“Out_Data”。
在时间T0之前,主装置102将数据传送命令传输到从装置104。
从时间T0到时间T1,数据请求信号D_REQ、第一复位信号RST1、同步请求信号S_REQ和延迟请求信号DEL_REQ为低(即,无效)。另外,EOT信号、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD也为低。
从时间T1到时间T2,命令解码器202接收并且解码数据传送命令,并且在主时钟信号M_CLK的上升沿处断言数据请求信号D_REQ。接着,第四触发器402接收数据请求信号D_REQ并且断言寄存器请求信号R_REQ。第二逻辑电路404接收寄存器请求信号R_REQ并且断言选择信号SEL。因此,从时间T1到时间T2,数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL从低转换到高(即,从无效到有效)。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
从时间T2到时间T3,数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL保持为高(即,有效),并且EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
在时间T3处,数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL保持为高。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。寄存器组208的第一寄存器在从时钟信号S_CLK的上升沿处用数据(例如,‘197b’)被更新。因此,R_Data和Out_Data具有数据值‘197b’。第一触发器306a接收数据请求信号D_REQ,并且在时间T3处观察到的从时钟信号S_CLK的上升沿处断言中间请求信号I_REQ。
从时间T3到时间T5,数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL保持为高。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
在时间T5处,第二触发器306b接收中间请求信号I_REQ并且断言同步请求信号S_REQ。因此,同步请求信号S_REQ从低转换到高。当第一逻辑栅极312接收逻辑低状态处的延迟请求信号DEL_REQ时,第一逻辑栅极312断言反相请求信号INV_REQ,因此第二逻辑栅极314接收同步请求信号S_REQ和反相请求信号INV_REQ并且其断言同步信号。因此,同步信号从低转换到高。第三逻辑电路406接收逻辑高状态处的同步信号和逻辑低状态处的第一复位信号RST1,从而断言第二复位信号RST2。第四触发器402接收第二复位信号RST2,并且因此解除断言寄存器请求信号R_REQ。因此,寄存器请求信号R_REQ从高转换到低。数据请求信号D_REQ和选择信号SEL保持为高。EOT信号、第一复位信号RST1、延迟请求信号DEL_REQ和加载信号LD保持为低。
从时间T5到时间T6,数据请求信号D_REQ、同步请求信号S_REQ、同步信号和选择信号SEL为高,而EOT信号、第一复位信号RST1、延迟请求信号DEL_REQ、寄存器请求信号R_REQ和加载信号LD为低。
在时间T6处,数据请求信号D_REQ、同步请求信号S_REQ、同步信号和选择信号SEL为高,而EOT信号、第一复位信号RST1、延迟请求信号DEL_REQ、寄存器请求信号R_REQ和加载信号LD为低。暂时存储寄存器210接收逻辑高状态处的同步信号,并且加载数据,例如‘197b’,因此T_Data是‘197b’。
从时间T6到时间T7,数据请求信号D_REQ、同步请求信号S_REQ、同步信号和选择信号SEL保持为高,而EOT信号、第一复位信号RST1、延迟请求信号DEL_REQ、寄存器请求信号R_REQ和加载信号LD保持为低。
在时间T7处,第三触发器308接收逻辑高处的同步请求信号S_REQ,并且断言延迟请求信号DEL_REQ。因此,延迟请求信号DEL_REQ从低转换到高。第一逻辑栅极312接收逻辑高处的延迟请求信号DEL_REQ,并且因此解除断言反相请求信号INV_REQ。第二逻辑栅极314接收逻辑高处的延迟请求信号DEL_REQ和逻辑低处的反相请求信号INV_REQ,并且解除断言同步信号。因此,同步信号从高转换到低。另外,第二逻辑电路404接收逻辑低处的同步信号和寄存器请求信号R_REQ,并且解除断言选择信号SEL。因此,选择信号SEL从高转换到低,因此多路复用器408输出来自暂时存储寄存器210的数据。数据请求信号D_REQ和同步请求信号S_REQ保持为高。EOT信号、第一复位信号RST1、寄存器请求信号R_REQ和加载信号LD保持为低。寄存器组208的第一寄存器被更新数据,例如,‘29ac’,因此R_Data是‘29ac’。
从时间T7到时间T8,加载信号LD在主时钟信号M_CLK的上升沿处从低转换到高。响应生成器214接收逻辑高处的加载信号LD。因此,第二缓冲寄存器加载有从多路复用器电路408接收的数据。从时间T7到时间T8,当加载信号LD从低转换到高时,多路复用器408选择来自暂时存储寄存器210的数据,并且第二缓冲寄存器加载有T_Data,例如‘197b’。换句话说,当加载信号LD从低转换到高时,Out_Data与T_Data相同。响应生成器214基于主时钟信号M_CLK将加载的数据‘197b’发送到主装置102。数据请求信号D_REQ、延迟请求信号DEL_REQ和同步请求信号S_REQ保持为高。EOT信号、第一复位信号RST1、寄存器请求信号R_REQ、同步信号和选择信号SEL保持为低。
从时间T8到时间T13,数据请求信号D_REQ、延迟请求信号DEL_REQ、同步请求信号S_REQ和加载信号LD保持为高,EOT信号、第一复位信号RST1、寄存器请求信号R_REQ、同步信号和选择信号SEL保持为低。
加载信号LD在预定时间周期内保持为高,例如主时钟信号M_CLK的一个时钟周期。然后加载信号LD从高转换到低,命令解码器202断言EOT信号。因此,从时间T13到时间T14,在主时钟信号M_CLK的上升沿处,EOT信号从低转换到高,并且数据请求信号D_REQ从高转换到低。复位触发器204接收逻辑高状态处的EOT信号,并且因此断言第一复位信号RST1以复位触发器306a、306b和308以及暂时存储寄存器210。因此,第一复位信号RST1从低转换到高。由于第一至第三触发器306a、306b和308的复位,同步请求信号S_REQ和延迟请求信号DEL_REQ从高转换到低。另外,第三逻辑电路406接收逻辑高状态处的第一复位信号RST1,并且因此断言第二复位信号RST2以复位第四触发器402。寄存器请求信号R_REQ、同步信号和选择信号SEL保持为低。由于暂时存储寄存器210的复位,T_Data被更新为数据值‘0’。因此,Out_Data也被更新为数据值‘0’。
从时间T14到时间T15,EOT信号和第一复位信号RST1保持为高。数据请求信号D_REQ、同步请求信号S_REQ、延迟请求信号DEL_REQ、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD保持为低。
在时间T15处,EOT信号和第一复位信号RST1保持为高。数据请求信号D_REQ、同步请求信号S_REQ、延迟请求信号DEL_REQ、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD保持为低。寄存器组208的第一寄存器被更新数据,例如,‘321b’,因此R_Data是‘321b’。
从时间T15到时间T17,EOT信号和第一复位信号RST1保持为高,而数据请求信号D_REQ、同步请求信号S_REQ、延迟请求信号DEL_REQ、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD保持为低。EOT信号在主时钟信号M_CLK的下一个上升沿处被解除断言。在EOT信号被解除断言之后,复位触发器204与从时钟信号S_CLK同步地解除断言第一复位信号RST1。然后从装置104等待接收来自主装置102的下一个数据传送命令。
现在参考图6,示出了说明在从时钟信号S_CLK不存在的情况下的第二数据传送操作的时序图600。即,从时钟信号S_CLK在时间T18到时间T35被禁用或不存在。主装置102向从装置104传输新的数据传送命令,以从从装置104的第一寄存器接收数据。
从时间T18到时间T19,数据请求信号D_REQ、第一复位信号RST1、同步请求信号S_REQ和延迟请求信号DEL_REQ为低。EOT信号、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD也为低。寄存器组208的第一寄存器存储数据,例如,‘a09’,所以R_Data是‘a09’。
从时间T19到时间T20,命令解码器202接收并且解码数据传送命令,并且在主时钟信号M_CLK的上升沿处断言数据请求信号D_REQ,因此数据请求信号D_REQ从低到高。第四触发器402接收数据请求信号D_REQ,因此第四触发器402生成寄存器请求信号R_REQ。因此,寄存器请求信号R_REQ从低转换到高。第二逻辑电路404接收寄存器请求信号R_REQ并且断言选择信号SEL,因此多路复用器408选择寄存器组208数据(R_data)以传送到主装置102。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
从时间T20到时间T25,数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL保持为高。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
从时间T25到时间T26,加载信号LD在主时钟信号M_CLK的上升沿处从低转换到高。响应生成器214接收加载信号LD,因此第二缓冲寄存器加载有从多路复用器408接收的Out_Data(即,‘a09’)。从时间T25到时间T26,当加载信号LD从低转换到高时,多路复用器408选择来自寄存器组208的数据(R_data)以将数据传送到主装置102,并且第二缓冲寄存器加载有Out_Data,即‘a09’。响应生成器214基于主时钟信号M_CLK启动数据‘a09’到主装置102的传输。数据请求信号D_REQ、寄存器请求信号R_REQ和选择信号SEL保持为高。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ、同步信号和加载信号LD保持为低。
从时间T26到时间T31,数据请求信号D_REQ、寄存器请求信号R_REQ、选择信号SEL和加载信号LD保持为高。EOT信号、第一复位信号RST1、同步请求信号S_REQ、延迟请求信号DEL_REQ和同步信号保持为低。
加载信号LD在预定时间周期内保持为高,例如主时钟信号M_CLK的一个时钟周期。然后加载信号LD从高转换到低,命令解码器202断言EOT信号。因此,从时间T31到时间T32,复位触发器204接收EOT信号并且断言第一复位信号RST1,第一复位信号RST1复位第一触发器306a、第二触发器306b和第三触发器308以及暂时存储寄存器210。数据请求信号D_REQ在主时钟信号M_CLK的上升沿处从高到低。由于第一至第三触发器306a、306b和308被复位,寄存器请求信号R_REQ和选择信号SEL从高转换到低。接下来,第三逻辑电路406接收第一复位信号RST1并且断言第二复位信号RST2,第二复位信号RST2复位第四触发器402,因此寄存器请求信号R_REQ从高变到低。同步请求信号S_REQ、延迟请求信号DEL_REQ和同步信号保持为低。
从时间T32到时间T35,EOT信号和第一复位信号RST1保持为高。数据请求信号D_REQ、同步请求信号S_REQ、延迟请求信号DEL_REQ、寄存器请求信号R_REQ、同步信号、选择信号SEL和加载信号LD保持为低。EOT信号在主时钟信号M_CLK的下一个上升沿处被解除断言。在解除断言EOT信号之后,复位触发器204解除断言第一复位信号RST1。然后从装置104等待接收来自主装置102的下一个数据传送命令。
现在参考图7,示出了说明根据本发明的实施例的用于将数据从从装置104传送到主装置102的方法的流程图700。
在步骤702处,从装置104接收用于将数据传送到主装置102的数据传送命令。在步骤704处,从装置104基于数据传送命令生成数据请求信号D_REQ。在步骤706处,时钟检测电路206基于数据请求信号D_REQ检测从时钟信号S_CLK的存在。
在步骤708处,时钟检测电路206基于从时钟信号S_CLK的存在的检测来生成同步信号。当从时钟信号S_CLK不存在时,同步信号保持在无效状态(即,不被断言),而当从时钟信号S_CLK存在时,同步信号被断言。
在步骤710处,数据通路选择器212确定同步信号是否被断言。如果在步骤710处,数据通路选择器212确定同步信号没有被断言,则执行步骤712。在步骤712处,数据通路选择器212选择用于传送到主装置102的寄存器组208数据。
如果在步骤710处,数据通路选择器212确定同步信号被断言,则执行步骤714。在步骤714处,暂时存储寄存器210加载有从寄存器组208接收的数据。在步骤716处,数据通路选择器212从暂时存储寄存器210选择用于传送到主装置102的数据。
从装置104包括时钟检测电路206,其连续地检测从时钟信号S_CLK的存在并且基于该检测生成同步信号。数据通路选择器212接收同步信号作为输入,并且选择寄存器组208数据和暂时存储寄存器210数据中的一个,以传送到主装置102。因此,从装置104不仅克服了由于主装置102和从装置104的时钟域不兼容性而引起的时钟域交叉(CDC)问题,而且确保了到主装置102的无缝数据传送,而与从时钟信号S_CLK的存在或不存在无关。由于从装置104不依赖于先进先出(FIFO)缓冲器来将数据传送到主装置102,因此与使用FIFO缓冲器的传统从装置相比,从装置104具有较小的尺寸和较不复杂的电路。
虽然已经说明和描述了本发明的各种实施例,但是显然本发明并不仅限于这些实施例。在不脱离如权利要求中所描述的本发明的精神和范围的情况下,许多修改、改变、变化、替换和等效物对于本领域的技术人员将是显而易见的。
Claims (10)
1.一种用于将数据从第一装置传送到第二装置的电路,其特征在于,所述第一装置基于第一非连续时钟信号进行操作,且所述第二装置基于与所述第一时钟信号异步的第二时钟信号进行操作,所述电路包括:
时钟检测电路,其(i)从所述第二装置接收用于将数据从所述第一装置传送到所述第二装置的数据传送请求信号,以及(ii)生成同步信号,当所述第一时钟信号不存在时所述同步信号是无效的,并且当所述第一时钟信号存在并且所述数据传送请求信号有效时所述同步信号被断言;
寄存器组,其存储所述数据;
暂时存储寄存器,其连接到所述时钟检测电路以接收所述同步信号,并且连接到所述寄存器组以从其接收所述数据,其中,所述暂时存储寄存器在所述同步信号被断言时接收所述数据;以及
数据通路选择器,其连接到所述寄存器组和所述暂时存储寄存器,其中,所述数据通路选择器基于所述同步信号从所述暂时存储寄存器和所述寄存器组中的一个输出所述数据。
2.根据权利要求1所述的电路,其特征在于,还包括:
命令解码器,其从所述第二装置接收数据传送命令和所述第二时钟信号,其中,所述命令解码器解码所述数据传送命令以生成数据请求信号、传送结束(EOT)信号和加载信号;以及
复位触发器,其连接到所述命令解码器以接收所述EOT信号,其中,所述复位触发器还接收所述第一时钟信号,并且基于所述EOT信号和所述第一时钟信号生成第一复位信号以复位所述时钟检测电路。
3.根据权利要求2所述的电路,其特征在于,所述时钟检测电路包括:
触发器电路,其连接到所述命令解码器和所述复位触发器,用于分别接收数据请求信号和所述第一复位信号,其中,所述触发器电路还接收所述第一时钟信号并且使数据请求信号与所述第一时钟信号同步以生成同步请求信号;以及
脉冲生成器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述脉冲生成器还接收所述第一时钟信号并且生成所述同步信号。
4.根据权利要求3所述的电路,其特征在于,所述触发器电路包括:
第一触发器,其连接到所述命令解码器和所述复位触发器,用于分别接收数据请求信号和所述第一复位信号,其中,所述第一触发器还接收所述第一时钟信号并且基于数据请求信号和所述第一时钟信号生成中间请求信号;以及
第二触发器,其连接到所述第一触发器和所述复位触发器,用于分别接收所述中间请求信号和所述第一复位信号,其中,所述第二触发器还接收所述第一时钟信号并且基于所述中间请求信号和所述第一时钟信号生成所述同步请求信号。
5.根据权利要求3所述的电路,其特征在于,所述脉冲生成器包括:
第一触发器,其连接到所述触发器电路和所述复位触发器,用于分别接收所述同步请求信号和所述第一复位信号,其中,所述第一触发器还接收所述第一时钟信号并且基于所述同步请求信号和所述第一时钟信号生成延迟请求信号;以及
第一逻辑电路,其连接到所述触发器电路和所述第一触发器,用于分别接收所述同步请求信号和所述延迟请求信号,其中,所述第一逻辑电路基于所述同步请求信号和所述延迟请求信号生成所述同步信号。
6.根据权利要求2所述的电路,其特征在于,所述数据通路选择器包括:
第一触发器,其连接到所述命令解码器,用于接收数据请求信号,其中,所述第一触发器基于数据请求信号生成寄存器请求信号并且将其提供给所述寄存器组;
第一逻辑电路,其连接到所述第一触发器和所述时钟检测电路,用于分别接收所述寄存器请求信号和所述同步信号,其中,所述第一逻辑电路基于所述寄存器请求信号和所述同步信号生成选择信号;以及
多路复用器电路,其具有分别连接到所述寄存器组和所述暂时存储寄存器的第一和第二数据输入端,以及连接到所述第一逻辑电路的用于接收所述选择信号的选择端,其中,所述多路复用器电路基于所述选择信号输出存储在所述暂时存储寄存器和所述寄存器组中的一个的所述数据。
7.根据权利要求6所述的电路,其特征在于,当所述同步信号和所述寄存器请求信号中的至少一个处于有效状态时,所述选择信号处于有效状态,并且其中,当所述同步信号处于无效状态并且所述寄存器请求信号处于无效状态时,所述选择信号处于所述无效状态。
8.根据权利要求7所述的电路,其特征在于,当所述选择信号处于所述有效状态时,所述数据通路选择器选择所述寄存器组,且当所述选择信号处于所述无效状态时,所述数据通路选择器选择所述暂时存储寄存器。
9.一种片上系统(SoC),其特征在于,包括:
从装置,其将数据传送到主装置,其中,所述从装置和所述主装置分别基于彼此异步的从时钟信号和主时钟信号进行操作,其中,所述从时钟信号是非连续时钟信号,并且其中所述从装置包括:
时钟检测电路,其接收用于将所述数据传送到所述主装置的数据请求信号并且生成同步信号,其中,当所述从时钟信号不存在时,所述同步信号保持在无效状态,且当所述从时钟信号存在并且所述数据请求信号处于有效状态时,所述同步信号被断言;
寄存器组,其存储所述数据;
暂时存储寄存器,其连接到所述时钟检测电路以接收所述同步信号,并且连接到所述寄存器组以从其接收所述数据,其中,所述暂时存储寄存器在所述同步信号被断言时接收所述数据;以及
数据通路选择器,其具有分别连接到所述寄存器组和所述暂时存储寄存器的第一数据输入端和第二数据输入端,以及连接到所述时钟检测电路用于接收所述同步信号的控制端,其中,所述数据通路选择器基于所述同步信号在所述第一数据输入端和所述第二数据输入端之间选择,用于将所述数据传送到所述主装置。
10.一种用于将数据从从装置传送到主装置的方法,其特征在于,所述主装置和所述从装置基于彼此异步的相应的主时钟信号和从时钟信号进行操作,并且其中,所述从时钟信号是非连续时钟信号,所述方法包括:
由所述从装置接收由主所述装置发出的数据传送命令;
由所述从装置基于所述数据传送命令生成数据请求信号;
由所述从装置基于所述数据请求信号检测所述从时钟信号的存在;
由所述从装置基于所述从时钟信号的所述存在的检测而生成同步信号,其中,当所述从时钟信号不存在时所述同步信号无效,且当所述从时钟信号存在并且所述数据请求信号有效时所述同步信号被断言;
由所述从装置基于所述同步信号选择存储在暂时存储寄存器和寄存器组中的一个中的数据;以及
将所选择的数据传送到所述主装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/414,793 US10915485B2 (en) | 2019-05-17 | 2019-05-17 | Circuit for asynchronous data transfer |
US16/414,793 | 2019-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949069A true CN111949069A (zh) | 2020-11-17 |
CN111949069B CN111949069B (zh) | 2025-01-14 |
Family
ID=70682584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010404934.7A Active CN111949069B (zh) | 2019-05-17 | 2020-05-12 | 用于异步数据传送的电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10915485B2 (zh) |
EP (1) | EP3739463B1 (zh) |
CN (1) | CN111949069B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12072825B2 (en) * | 2022-12-01 | 2024-08-27 | Nxp Usa, Inc. | Detector circuit for start signaling in an eUSB repeater |
EP4451624A1 (en) * | 2023-04-18 | 2024-10-23 | Nxp B.V. | Delay module for a controller area network (can), a can device, and a method for the delay module |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4065862A (en) * | 1975-09-15 | 1978-01-03 | American Express Company | Method and apparatus for synchronizing data and clock signals |
CN102257569A (zh) * | 2009-01-12 | 2011-11-23 | 拉姆伯斯公司 | 时钟转发的低功率信号传输系统 |
US20140143581A1 (en) * | 2012-11-21 | 2014-05-22 | Sandeep Garg | System for data transfer between asynchronous clock domains |
CN103873031A (zh) * | 2014-03-06 | 2014-06-18 | 无锡力芯微电子股份有限公司 | 非时钟触发寄存器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4682304A (en) | 1983-08-04 | 1987-07-21 | Tektronix, Inc. | Asynchronous multiple buffered communications interface having an independent microprocessor for controlling host/peripheral exchanges |
US5339395A (en) | 1992-09-17 | 1994-08-16 | Delco Electronics Corporation | Interface circuit for interfacing a peripheral device with a microprocessor operating in either a synchronous or an asynchronous mode |
US8989331B2 (en) | 2006-05-31 | 2015-03-24 | Broadcom Corporation | Method and system for advance high performance bus synchronizer |
US7685393B2 (en) | 2006-06-30 | 2010-03-23 | Mosaid Technologies Incorporated | Synchronous memory read data capture |
US9292036B2 (en) * | 2013-05-24 | 2016-03-22 | Arm Limited | Data processing apparatus and method for communicating between a master device and an asynchronous slave device via an interface |
US9755821B2 (en) * | 2015-04-02 | 2017-09-05 | Samsung Electronics Co., Ltd. | Device including single wire interface and data processing system including the same |
KR102450521B1 (ko) * | 2018-01-09 | 2022-10-05 | 삼성전자주식회사 | 모바일 장치 및 그것의 인터페이싱 방법 |
-
2019
- 2019-05-17 US US16/414,793 patent/US10915485B2/en active Active
-
2020
- 2020-05-12 EP EP20174094.1A patent/EP3739463B1/en active Active
- 2020-05-12 CN CN202010404934.7A patent/CN111949069B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4065862A (en) * | 1975-09-15 | 1978-01-03 | American Express Company | Method and apparatus for synchronizing data and clock signals |
CN102257569A (zh) * | 2009-01-12 | 2011-11-23 | 拉姆伯斯公司 | 时钟转发的低功率信号传输系统 |
US20140143581A1 (en) * | 2012-11-21 | 2014-05-22 | Sandeep Garg | System for data transfer between asynchronous clock domains |
CN103873031A (zh) * | 2014-03-06 | 2014-06-18 | 无锡力芯微电子股份有限公司 | 非时钟触发寄存器 |
Also Published As
Publication number | Publication date |
---|---|
EP3739463A1 (en) | 2020-11-18 |
CN111949069B (zh) | 2025-01-14 |
US10915485B2 (en) | 2021-02-09 |
US20200364174A1 (en) | 2020-11-19 |
EP3739463B1 (en) | 2023-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI411956B (zh) | 以位元時脈與平行資料轉換發送及/或接收序列資料的方法與系統 | |
US9274997B2 (en) | Point-to-point serial peripheral interface for data communication between devices configured in a daisy-chain | |
JP3856696B2 (ja) | 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置 | |
US8352774B2 (en) | Inter-clock domain data transfer FIFO circuit | |
JP5459807B2 (ja) | マルチプロセッサデータ処理システムにおけるデバッグシグナリング | |
US5987081A (en) | Method and apparatus for a testable high frequency synchronizer | |
CN101135921B (zh) | 多时钟切换装置及其切换方法 | |
CN106487372A (zh) | 包括单线接口的装置和具有该装置的数据处理系统 | |
US7461187B2 (en) | Bus system and data transfer method | |
US8659336B2 (en) | Apparatus and method for synchronising signals | |
US20090121756A1 (en) | Pseudo-synchronous small register designs with very low power consumption and methods to implement | |
TWI602196B (zh) | 記憶體元件的控制方法、記憶體元件以及記憶體系統 | |
CN111949069B (zh) | 用于异步数据传送的电路 | |
CN104049672A (zh) | 使用可选择同步器跨异步边界数据同步以最小化延迟 | |
US20230136815A1 (en) | Clock frequency divider circuit | |
US9880961B2 (en) | Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry | |
US6640277B1 (en) | Input staging logic for latching source synchronous data | |
EP1317085B1 (en) | A method and circuit for initializing a de-skewing buffer in a clock forwarded system | |
CN115952132A (zh) | 异步桥、soc、电子组件、电子设备及芯片设计方法 | |
JP6030033B2 (ja) | メモリ装置 | |
JP3562416B2 (ja) | Lsi間データ転送システム及びそれに用いるソースシンクロナスデータ転送方式 | |
US11644861B2 (en) | Information processing apparatus including function blocks and generation units | |
US9170768B2 (en) | Managing fast to slow links in a bus fabric | |
US7231539B1 (en) | Reset circuit for resetting two clock domains | |
JP2004326222A (ja) | データ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |