一种apb总线跨时钟域访问的电路及方法

文档序号:6464862阅读:708来源:国知局
专利名称:一种apb总线跨时钟域访问的电路及方法
技术领域
本发明涉及一种APB总线跨时钟域访问的电路及方法。
背景技术
片上集成系统(SoC)中存在多个功能模块,如处理器和各种硬件模块 等。处理器通过修改各个硬件模块内部的控制寄存器来控制硬件模块的运 行。同时,为了降低功耗,各个硬件模块和处理器可能分别处于不同的时 钟频率。例如,运算密集型模块需要工作在高频时钟,而端口传输等模块 可能工作在较低的时钟频率。因此,当处理器对模块内部的控制寄存器进 行配置时,需要考虑到跨时钟域的行为。传统地,处理器通过某种通用总 线,如APB总线,来访问模块内部的各个寄存器。
图1是APB3.0传输协议的写数据的示意图,图2是APB3.0传输协议 的读数据的示意图。
如图1、 2所示,PCLK是APB时钟域的时钟信号,PADDR是APB时 钟域的地址信号,PWRITE是APB时钟域的写信号,PSEL是APB时钟域 的片选信号,PENABLE是APB时钟域的使能信号,PWDATA是APB时 钟域的写数据信号(图2中为PRDATA,是APB时钟域的读数据信号), PREADY是APB时钟域的握手信号。
APB总线主要用于低带宽的周边外设之间的连接,例如UART、 1284 等,它的总线架构不支持多个主模块,其唯一的主模块(master)就是APB 桥。APB3.0的特性在于不定时钟周期传输;需等待回应信号pready;控 制逻辑简单,只有四个控制信号,如图中所示,分别为PWRITE、 PSEL、 PENABLE、 PREADY。系统初始化为IDLE状态,此时没有传输操作,也 没有选中任何从才莫块。当有传输要进行时,PSEL=1, PENABLE = 0,系统 进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一 个上升沿时到来时,系统进入ENABLE状态。系统进入ENABLE状态时,
维持之前在SETUP状态的PADDR、 PSEL、 PWRITE不变,并将PENABLE 置为1。传输会在ENABLE状态下维持不定周期,在pready信号为1的时 候结束。之后,如果没有传输要进行,就进入IDLE状态等待;如果有连续 的传输,则进入SETUP状态。
传统地,在利用APB总线访问硬件模块内部的寄存器的时候,模 块的内部寄存器都必须和A P B总线采用相同的时钟。在被访问模块的每 个寄存器中一般都会设置一个状态位,用于指示APB桥对该寄存器的配置 是否完成。当被访问模块中的所有寄存器都配置完毕后,再将最后一个寄 存器的状态位设置为有效。在该状态位没有与模块时钟同步之前,模块中 的控制寄存器到模块内部的路径都认为是无效路径(falsepath)。所述状态 位通过两级寄存器实现与模块时钟的同步。所述状态位与模块时钟同步之 后,模块发现该状态位有效,再釆用各个控制寄存器的配置。可以看出, 这种方法使得异步时钟的同步只需要同步一位数据,可靠性高。然而,该 方法需要保证每次都一次性完成寄存器的配置,而且处理器如果要探测模 块的运行状态,可能读出不确定的状态,增加了系统潜在的错误风险。

发明内容
本发明提供了一种能解决以上问题的APB总线跨时钟域访问的电路及 方法。
在第一方面,本发明提供了一种APB总线跨时钟域访问的电路,包括
APB桥,作为APB的控制端,工作在APB时钟域;
控制寄存器(Control register),作为APB的被访问端,工作在被访问
端的时钟域;以及
时钟同步电路,将APB时钟域的片选信号(psel)和使能信号(penable)
同步到被访问端的时钟域,作为控制信号(msel)输出到所述控制寄存器,
然后将所述控制信号(msel)同步回APB时钟域,作为握手信号(pready)
送回所述APB桥。
在本发明的第一方面中,优选地,所述时钟同步电路包括 顺序串联的第一切换信号生成单元、第一同步单元、控制信号生成单
元、第二切换信号生成单元、第二同步单元,握手信号生成单元,其中,
所述第一切换信号生成单元的两个输入端连接到APB桥,分别接收
APB时钟域的片选信号(psel)和使能信号(penable),用于生成APB时 钟域的第一切换信号(ptrans)并将其送入所述第 一同步单元,所述第一切 换信号代表APB桥是否发出访问请求;
第一同步单元,用于将所述第一切换信号从APB时钟域同步到被访问 端的时钟域并将其送入所述控制信号生成单元;
控制信号生成单元,其分别连接到所述第二切换信号生成单元和被访 问端,用于根据模块时钟域的第一切换信号生成所述控制信号(msel),并 且将所述控制信号(msel)将其输出到被访问端和所述第二切换信号生成单 元,所述控制信号(msel)代表访问是否到来,所述被访问端根据所述控制 信号(msel)进行寄存器操作;
第二切换信号生成单元,用于根据所述控制信号(msel)生成第二切换 信号(mready)并将其送入所述第二同步单元,所述第二切换信号(mready)代 表寄存器操作是否完成;
第二同步单元,用于将所述第二切换信号从it块时钟域同步到APB时 钟域并将其送入所述握手信号生成单元;
握手信号生成单元,其连接到APB桥,用于根据APB时钟域的第二切 换信号生成握手信号(pready)并将其送回APB桥,握手信号(pready)代 表在APB时钟域4企测到 一次访问完成。
在本发明的第一方面中,优选地,所述第一同步单元是串联并且之间 无任何组合逻辑的触发器和/或所述第二同步单元是串联并且之间无任何 组合逻辑的触发器。
在本发明的第一方面中,优选地,所述第一切换信号生成单元包括反 相器、与门、多路选择器和触发器-.
所述反相器的输入为所述使能信号,其输出端连接到所述与门的一个 输入端,
所述与门的另 一个输入为所述片选信号,其输出端连接到所述多路选 择器的控制端,
所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为O时控制输出所述触发器的正相输出,
所述触发器的正相输出端为所述第一切换信号生成单元的输出端。 在本发明的第一方面中,优选地,所述控制信号生成单元包括触发器、
异或门
所述触发器的数据输入端和所述异或门的一个输入端连接到所述第一
同步单元的输出端,
所述触发器的正相输出端连接到所述异或门的另 一个输入端, 所述异或门的输出端连接到所述多路选择器的控制端,并且将所述控
制信号(msel)输出给被访问端。
在本发明的第一方面中,优选地,所述第二切换信号生成单元包括多
路选择器和触发器
所述多路选择器的两个信号输入端分別连接所述触发器的正、反相输
出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输
出,为0时控制输出所述触发器的正相输出,
所述触发器的正相输出端为所述第二切换信号生成单元的输出端。 在本发明的第一方面中,优选地,所述多路选择器是二选一选择器。 在本发明的第一方面中,优选地,所述触发器是D触发器。 在本发明的第一方面中,优选地,所述握手信号生成单元包括触发器
和异或门
所述触发器数据输入端和异或门的一个输入端都连接到所述第二同步 单元的输出端,
所述触发器的输出端连接到所述异或门的另 一个输入端,所述异或门 的输出端为所述握手信号生成单元的输出端。
在本发明的第一方面中,优选地,所述APB桥还包括写寄存器(write data register),用于在所述控制信号(msel)生成之后,将其中的教:据写入 被访问的控制寄存器。
在本发明的第一方面中,优选地,所述被访问端还包括读寄存器(read
data register),用于在所述控制信号(msel)生成之后,读入被访问的控制 寄存器中的数据,并且在接收到所述握手信号(pready)的同时将其中的数 据送入APB桥。
在第二方面,本发明提供了一种实现APB总线跨时钟域访问的时钟同 步电路,所述访问由APB桥向被访问端发出,所述电路包括顺序串联的第 一切换信号生成单元、第一同步单元、控制信号生成单元、第二切换信号 生成单元、第二同步单元,握手信号生成单元,其中
所述第一切换信号生成单元的两个输入端连接到APB桥,分别接收 APB时钟域的片选信号(psel)和使能信号(penable),用于生成APB时 钟域的第一切换信号(ptrans)并将其送入所述第 一同步单元,所述第一切 换信号代表APB桥是否发出访问请求;
第一同步单元,用于将所述第一切换信号从APB时钟域同步到被访问 端的时钟域并将其送入所述第二切换信号生成单元;
控制信号生成单元,其分别连接到所述第二切换信号生成单元和被访 问端,用于根据模块时钟域的第一切换信号生成所述控制信号(msel),并 且将所述控制信号(msel)将其输出到被访问端和所述第二切换信号生成单 元,所述控制信号(msel)代表访问是否到来,所述被访问端根据所述控制 信号(msd)进行寄存器搡作;
第二切换信号生成单元,用于根据所述控制信号(msel)生成第二切换 信号(mready)并将其送入所述第二同步单元,所述第二切换信号(mready)代 表寄存器操作是否完成;
第二同步单元,用于将所述第二切换信号从模块时钟域同步到APB时
钟域并将其送入所述握手信号生成单元;
握手信号生成单元,其连接到APB桥,用于根据APB时钟域的第二切 换信号生成握手信号(pready)并将其送回APB桥,握手信号(pready)代 表在APB时钟域检测到一次访问完成。
在本发明的第二方面中,优选地,所述第一同步单元是串联并且之间 无任何组合逻辑的触发器;和/或所述第二同步单元是串联并且之间无任何 组合逻辑的触发器。
在本发明的第二方面中,优选地,所述第一切换信号生成单元包括反
相器、与门、多路选择器和触发器
所述反相器的输入为所述使能信号,其输出端连接到所述与门的一个 输入端,
所述与门的另 一个输入为所述片选信号,其输出端连接到所述多路选 择器的控制端,
所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为O时控制输出所述触发器的正相输出,
所述触发器的正相输出端为所述第一切换信号生成单元的输出端。 在本发明的第二方面中,优选地,所述控制信号生成单元包括触发器、 异或门
所述触发器的数据输入端和所述异或门的一个输入端连接到所述第一
同步单元的输出端,
所述触发器的正相输出端连接到所述异或门的另 一个输入端, 所述异或门的输出端连接到所述多路选择器的控制端,并且将所述控
制信号(msel)输出给被访问端。
在本发明的第二方面中,优选地,所述第二切换信号生成单元包括多
路选择器和触发器
所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输
出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输
出,为O时控制输出所述触发器的正相输出,
所述触发器的正相输出端为所述第二切换信号生成单元的输出端。 在本发明的第二方面中,优选地,所述多路选择器是二选一选择器。 在本发明的第二方面中,优选地,所述触发器是D触发器。 在本发明的第二方面中,优选地,所述握手信号生成单元包括触发器
和异或门
所述触发器数据输入端和异或门的一个输入端都连接到所述第二同步 单元的输出端,
所述触发器的输出端连接到所述异或门的另 一个输入端,所述异或门 的输出端为所述握手信号生成单元的输出端。
在第三方面,本发明提供了一种APB总线跨时钟域访问的方法,包括 将APB时钟域的片选信号(psel)和^f吏能信号(penable)同步到被访 问端的时钟域,作为控制信号(msel)输出到所述控制寄存器,然后将所述 控制信号(msel)同步回APB时钟域,作为握手信号(pready)送回所述 APB桥;
其中,APB桥作为APB的控制端,工作在APB时钟域; 控制寄存器(Control register)作为APB的被访问端,工作在被访问端 的时钟域。
本发明通过让APB总线和模块内部寄存器处在跨时钟域,并结合APB 3.0的访问握手方法,保证了模块的控制寄存器工作在模块内部的时钟,去 除了模块内部寄存器及其内部状态不确定的风险,同时减少了由此附加的 硬件开销,和访问延迟。


下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图

图1是APB3.0传输协议的写数据的示意图2是APB3.0传输协议的读数据的示意图3是片上集成系统的一个示例框图4是根据本发明的APB跨时钟域访问的框图5是图4的时钟同步模块的电路图6是图5电路中的一种情况的信号图;以及
图7是图5电路中的另一种情况的信号图。
具体实施例方式
图3是片上集成系统(SoC)的一个示例框图。
如图3所示,ARM处理器通过高速协议(AHB/ASB )访问高速设备(如 存储器,DMA)。具体地说,是通过APB总线桥,采用APB3.0协议去访
问模块的寄存器,被访问模块比如有通用异步收发器UART、计时器timer、 键盘、编程输入输出PIO等等。AHB和APB总线釆用同一时钟,被访问模 块采用各自的时钟。
图4是根据本发明的APB跨时钟访问的框图。
本发明的访问方法通过APB3.0的控制端(master)和模块的控制寄存 器所处的被访问端(slave)相互配合而实现。APB3.0的控制端发出由处理 器发起的对被访问端的访问请求。
如图4所示,APB桥、写寄存器、paddr、 pwdata、时钟同步模块pmclk 的左半框都工作在APB的时钟域(PCLK, APB CLOCK)下,控制寄存器、 读寄存器、prdata、时钟同步模块pmclk的右半框都工作在被访问端的时钟 域(MCLK, MODULE CLOCK)下。
APB桥(APB Bridge)作为APB的控制端,被访问模块的控制寄存器 (Control register)作为APB的被访问端。所有^争时钟域的处理都在中间的 时钟同步模块(pmclk)中完成,,该模块用以将PCLK的控制信号PSEL (片 选)和PENABLE (使能)同步到MCLK,作为控制信号MSEL输出到被访 问模块中的控制寄存器。然后,再把MSEL同步回PCLK,作为握手信号 PREADY反馈回APB桥。应当指出,每个被访问模块可以有自己单独的 pmclk,也可能多个^^莫块共用一个时钟,即多个才莫块可以共用一个pmclk。
在本发明的采用APB 3.0的访问方法中,所有APB 3.0的信号都必须工 作在APB的时钟域,即PCLK内。而且,控制端发出的信号PSEL、PENABLE、 PWDATA、 PADDR、 PWRITE都必须是寄存器输出。被访问端返回的握手 信号PREADY也处在PCLK域,并且默认值为0。当模块的所有寄存器完 全配置完毕后,该值才为1,持续一个PCLK时钟周期。控制端直到PREADY 信号为1时才能取消写操作,然后进行下一次的读或写操作。
APB 3.0的被访问端需要将控制端发出的访问信号从PCLK同步到模块 内部时钟MCLK。 PCLK和MCLK是完全异步的,无任何频率和相位的限 制。为了减少硬件开销,被访问端只在MCLK域内采样PSEL和PENABLE , 生成处于MCLK域的模块内部寄存器访问控制信号MSEL。所有控制端的 信号都是寄存器同时生成有效,即这些信号是在同 一 时刻产生并且在访问
过程中保持稳定。所以当MSEL生成时,PADDR, PWRITE, PWDATA虽 然是PCLK内部的控制信号,但是已经稳定,可以正确地被MCLK采样。 MSEL信号需要从MCLK同步回PCLK,作为握手信号PREADY反馈回APB 的控制端,代表在APB时钟域检测到一次访问完成。
对于读寄存器(read data register ),在MSEL生成之后,根据PADDR 读入被访问的控制寄存器中的数据。读寄存器工作在MCLK时钟内,并且 会一直维持状态到下一次读访问。由于PRDATA有效后,MSEL在经过了 PCLK的同步之后才会生成PREADY,所以当控制端收到PREADY时, PRDATA已经稳定,控制端可以直接采样PRDATA而不会生成亚稳态。
对于写寄存器(write data register ),在MSEL生成之后,模块在MCLK 域下,根据PADDR将PWDATA写入需要写入的寄存器。由于此时PADDR 和PWDATA已经稳定,所以不会生成亚稳态。在写操作完成之后,MSEL 在从MCLK同步到PCLK之后才会生成PREADY。 PREADY被送回APB 的控制端,代表写操作已经完成。
由于APB桥实际上发出的是由ARM处理器发出的访问,所以下面描 述ARM处理器(图4未示出)进行一个寄存器写的过程
1 )以AHB协议(或其他协议)向APB总线桥发起一个写请求,并且 发出相应的模块寄存器地址和写数据。
2) APB总线桥根据该模块寄存器地址的高位进行译码,产生对应模块 的psel,将该模块寄存器地址的低位作为模块寄存器内部地址paddr。
3) APB总线桥向对应才莫块发送psel,同时广4番发出penable, pwrite, paddr, pwdata 。
4 ) APB总线桥等待对应模块返回pready,在此期间保持各个控制信号 和pwdata。在等待过程中,psel和penable通过时钟同步模块pmclk (将在 下文中详述)生成控制信号msel。当msel有效(值为1 )时,根据paddr 将pwdata从写寄存器写入被访问端中需要写入的寄存器。在写操作完成之 后,msel再通过时钟同步模块pmclk从MCLK同步到PCLK,生成PREADY 并将其送回APB总线桥。
5 ) APB总线桥收到对应模块返回的pready,产生向ARM处理器发送
表示传输完成的反馈信号(图中未示出)。至此,ARM写寄存器传输结束。 寄存器读与寄存器写的区别在于需要将读数据反馈回ARM,其原理与
寄存器写的过程相同,因此不再赘述。
图5是图4的时钟同步模块的电路图。
如图5所示,按照信号流向顺序,该电路包括反相器、与门、第一多 路选择器、第一触发器(输出ptrans)、第二触发器(输出psel—sl )、第三 触发器(输出psel—s2)、第四触发器(输出pseLs3)、第一异或门(输出 msel)、第二多路选择器、第五触发器(输出mready)、第六触发器(输 出pready—sl )、第七触发器(输出pready—s2 )、第八触发器(输出pready—s3 )、 第二异或门(输出pready )。
其中,第一、第六、第七、第八触发器都工作在APB的时钟域(PCLK, APB CLOCK)下,第二、第三、第四、第五触发器都工作在被访问端的时 钟域(MCLK, MODULE CLOCK)下。
所述反相器的输入为APB时钟域的使能信号(penable),其输出端连 接到所述与门的一个输入端。所述与门的另一个输入为APB时钟域的片选 信号(psel),其输出端连接到所述第一多路选择器的选择端。
所述第 一多路选择器的两个信号输入端分别连接所述第 一触发器的 正、反相输出端,当所述第一多路选择器的选择信号为1时选择输出所述 第一触发器的反相输出,为0时选择输出所述第一触发器的正相输出。
所述第二触发器和所述第三触发器为两级串联并且之间无任何组合逻 辑的触发器。所述第三触发器的正相输出端分别连接到所述第一异或门的 一个输入端和所述第四触发器的数据输入端。
所述第四触发器的正相输出端连接到所述第一异或门的另一个输入 端。所述第 一异或门的输出端连接到所述第二多路选择器的选择端。
所述第二多路选择器的两个信号输入端分别连接所述第五触发器的
正、反相输出端,当所述第二多路选择器的选择信号为1时选择输出所述 第五触发器的反相输出,为0时选择输出所述第五触发器的正相输出。
所述第六触发器和所述第七触发器为两级串联并且之间无任何组合逻 辑的触发器。所述第七触发器的正相输出端分别连接到所述第二异或门的一个输入端和所述第八触发器的数据输入端。所述第八触发器的正相输出 端连接到所述第二异或门的另 一个输入端。所述第二异或门输出握手信号。
本发明的信号同步方法采用的是电平翻转的切换(toggle)信号来传递
跨时钟域的控制信号。下面,对本发明的信号同步方法进行具体描述。
psel和penable分别是APB桥发出的片选信号和使能信号。如图5所示, 当出现psel= 1且penable=0的条件时,代表控制端发出 一次访问请求。这时, 与门输出l,第一多路选择器的控制信号端为1,控制多路选择器选择输出 B。从图中可以看出,第一触发器的正、反相输出分别为A、 B。所以,这 个条件将使PCLK域的切换(toggle)信号ptrans电平翻转,作为一次控制 端访问请求的标志。该切换信号ptrans将经过处于MCLK域内的两级触发 器(第二、第三触发器)同步釆样,去亚稳态。然后,;险查第三、第四触 发器的输出值psel—s2和psel一s3是否不相等。可以看出,当二值不等时, 异或门输出1,所以信号msel为1,信号msel作为访问到来的控制信号被 发送给被访问端的控制寄存器。第二多路选择器输出第五触发器的反相输 出B。换言之,第三、第四触发器的输出值psel—s2和psel—s3不等代表在 MCLK域检查到一次电平信号翻转。这个信号是MCLK域内的一个时钟周 期的脉冲。被访问端根据该信号做出寄存器操作。
为了向控制端通知访问完成,需要将MSEL同步回PCLK域。此时, 将再次生成一个代表电平翻转的切换(toggle )信号MREADY。当MSEL=1 时,第五触发器电平翻转,代表寄存器操作完成。所谓的寄存器操作完成 指的是寄存器将读数据置于RDATA总线,或将写数据保存到对应的寄存 器中。信号MREADY再经过处于PCLK域内的两级触发器(第六、第七触 发器)同步采样,去亚稳态。然后,检查第七、第八触发器的数处置pready—s2 和pready一s3是否不等。同样可以看出,当二值不等时,异或门送回APB 桥的握手信号(pready)为1,代表在PCLK域检查到一次寄存器访问完成。 所谓的寄存器访问完成指的是APB总线对模块的寄存器进行一次读或写 的全过程,其中包括访问建立,寄存器操作和模块反馈。
由上述硬件可见,在本发明的跨时钟域传递控制信号的时钟同步方法 中,只传递了一比特信号,安全可靠。在硬件上来说增加了 8个触发器,
开销较小。而且,这种方法的信号延迟有两种极端情况。最差情况是MCLK 采样的上升沿在PCLK之前且非常接近,这样从ptrans到psel一sl需要几乎 完整的一个MCLK周期;PCLK采样的上升沿在MCLK之前且非常接近, 这样从mready到pready—si需要几乎完整的一个PCLK周期,加上其他固 定同步延迟(ptrans, psel—s2, psel—s3, pready—s2, pready—s3 ), 共需要4 个PCLK周期和3个MCLK周期。最好情况是MCLK采样的上升沿在PCLK 之后且非常接近,这样从ptr肌s到psel_sl需要很小的延迟,可以忽略;PCLK 采样的上升沿在MCLK之后且非常接近,这样从mready到pready_sl需要 很小的延迟,可以忽略。加上其他固定同步延迟(ptrans, psel—s2, psel—s3, pready—s2, pready—s3 ),共需要3个PCLK周期和2个MCLK周期。从这 两种极端情况可以看出,本发明的同步方案的信号延迟较小。
应当指出,图5的电路图的各个电路元件可以从功能上集合。
按照连线顺序,反相器、与门、第一多路选择器和第一触发器的功能 是生成第一切换信号(ptrans),可以将它们统称为第一切换信号生成单元。
第二、第三触发器的功能是将第一切换信号从APB时钟域同步到模块 时钟域,可以将它们统称为第一同步单元。
第四触发器、第 一异或门的作用是根据模块时钟域的第 一切换信号生 成控制信号msel并将其分别送入被访问模块的控制寄存器和第二多路选择 器的选择端,可以将它们统称为控制信号生成单元。
第二多路选择器和第五触发器的作用是根据模块时钟域的控制信号 (msel)生成第二切换信号(mready),可以将它们统称为第二切换信号生成 单元。
第六、第七触发器的功能是将第二切换信号从模块时钟域同步到APB 时钟域,可以将它们统称为第二同步单元。
第八触发器和第二异或门是根据APB时钟域的第二切换信号生成握手 信号(pready)并将其送回APB桥。
本领域的技术人员应当理解,由图5中各个电路元件集合而成的单元 也可以由其他不同的电路元件构成,只要它们能实现所集成单元的功能即 可。比如,其中的逻辑门可以通过其他逻辑门的组合来完成,本发明所采
用的具体的门电路只不过是一种优选形式。又比如,上述多路选择器可以 是二选一选择器,也可以是其他的多路选择器,只要能实现如上所述的切 换信号取与之相连接的触发器的反相输出即可。再比如,上述的触发器可
以是任何能实现所述功能的触发器,如D触发器。因此,图5的电路图只
是本发明的时钟同步模块的一个具体实施例,不应当被看作是对本发明的 限制。
图6是图5电路中的一种情况的信号图,图7是图5电路中另一种情 况的信号图。
如图6、 7所示,可见在两种情况下由APB桥对一个被访问模块的寄存 器进行读写的信号图。
在图6中,APB时钟频率(PCLK)大于模块时钟频率(MCLK)。具 体地,PCLK为133Mhz, MCLK为24Mhz。
在图7中,APB时钟频率(PCLK)小于模块时钟频率(MCLK)。具 体地,PCLK为83Mhz, MCLK为166Mhz。
图6、 7的左边框内是图5电路中的各个信号,其中
pclk是APB的时钟信号,mclk是被访问模块的时钟信号,psel是APB 时钟域的片选信号,penable是APB时钟域的使能信号,ptrans—on是第一 触发器输出的第一切换信号,psel一sl是第二触发器输出的信号,psel一s2是 第三触发器输出的信号,psel一s3是第四触发器输出的信号,msel是第一异 或门输出的被访问模块时钟域的控制信号,mready是第五触发器输出的第 二切换信号,pready一sl是第六触发器输出的信号,pready—s2是第七触发器 输出的信号,pready—s3是第八触发器输出的信号,pready是第二异或门输 出的信号。
图6、 7的右边框内是相应情况下的各信号的波形图。 显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的 本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的 改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的 范围仅由所述的权利要求书进行限定。
权利要求
1. 一种APB总线跨时钟域访问的电路,包括APB桥,作为APB的控制端,工作在APB时钟域;控制寄存器(Control register),作为APB的被访问端,工作在被访问端的时钟域;以及时钟同步电路,将APB时钟域的片选信号(psel)和使能信号(penable)同步到被访问端的时钟域,作为控制信号(msel)输出到所述控制寄存器,然后将所述控制信号(msel)同步回APB时钟域,作为握手信号(pready)送回所述APB桥。
2. 根据权利要求1的电路,其中,所述时钟同步电路包括 顺序串联的第一切换信号生成单元、第一同步单元、控制信号生成单元、第二切换信号生成单元、第二同步单元,握手信号生成单元,其中, 第一切换信号生成单元的两个输入端连接到APB桥,分别接收APB时钟域的片选信号(psel)和使能信号(penable),用于生成APB时钟域的第一切换信号(ptmns)并将其送入所述第一同步单元,所述第一切换信号代表APB桥是否发出访问请求;第一同步单元,用于将所述第一切换信号从APB时钟域同步到被访问端的时钟域并将其送入所述控制信号生成单元;控制信号生成单元,其分别连接到所述第二切换信号生成单元和被访 问端,用于根据模块时钟域的第一切换信号生成所述控制信号(msel),并 且将所述控制信号(msel)将其输出到被访问端和所述第二切换信号生成单 元,所述控制信号(msel)代表访问是否到来,所述被访问端根据所述控制 信号(msel)进行寄存器操作;第二切换信号生成单元,用于根据所述控制信号(msel)生成第二切换 信号(mready)并将其送入所述第二同步单元,所述第二切换信号(mready)代表寄存器操作是否完成;第二同步单元,用于将所述第二切换信号从模块时钟域同步到APB时钟域并将其送入所述握手信号生成单元; 握手信号生成单元,其连接到APB桥,用于根据APB时钟域的第二切 换信号生成握手信号(pready)并将其送回APB桥,握手信号(pready)代 表在APB时钟域斥全测到 一次访问完成。
3. 根据权利要求1的电路,其中,所述第一同步单元是串联并且之间无任何组合逻辑的触发器和/或 所述第二同步单元是串联并且之间无任何组合逻辑的触发器。
4. 根据权利要求1的电路,其中,所述第一切换信号生成单元包括反相 器、与门、多路选择器和触发器所述反相器的输入为所述使能信号,其输出端连接到所述与门的一个 输入端,所述与门的另 一个输入为所述片选信号,其输出端连接到所述多路选 择器的控制端,所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为O时控制输出所述触发器的正相输出,所述触发器的正相输出端为所述第一切换信号生成单元的输出端。
5. 根据权利要求1的电路,其中,所述控制信号生成单元包括触发器、 异或门所述触发器的数据输入端和所述异或门的一个输入端连接到所述第一同步单元的输出端,所述触发器的正相输出端连接到所述异或门的另 一个输入端, 所述异或门的输出端连接到所述多路选择器的控制端,并且将所述控制信号(msel)输出给被访问端。
6. 根据权利要求1的电路,其中,所述第二切换信号生成单元包括多路 选择器和触发器所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为0时控制输出所述触发器的正相输出,所述触发器的正相输出端为所述第二切换信号生成单元的输出端。
7. 根据权利要求4或5的电路,其中,所述多路选择器是二选一选择器。
8. 根据权利要求4、 5、 6中任意一个的电路,其中,所述触发器是D 触发器。
9. 根据权利要求1的电路,其中,所述握手信号生成单元包括触发器和 异或门所述触发器数据输入端和异或门的一个输入端都连接到所述第二同步 单元的输出端,所述触发器的输出端连接到所述异或门的另 一个输入端,所述异或门 的输出端为所述握手信号生成单元的输出端。
10. 根据权利要求1的电路,其中,所述APB桥还包括写寄存器(write dataregister),用于在所述控制信号(msel)生成之后,将其中的数据写入 被访问的控制寄存器。
11. 根据权利要求1的电路,其中,所述被访问端还包括读寄存器(read data register),用于在所述控制信号(msel)生成之后,读入^^皮访问的控制 寄存器中的数据,并且在接收到所述握手信号(pready)的同时将其中的数 据送入APB桥。
12. —种实现APB总线5争时钟域访问的时钟同步电3各,所述访问由APB 桥向被访问端发出,所述电路包括顺序串联的第一切换信号生成单元、第 一同步单元、控制信号生成单元、第二切换信号生成单元、第二同步单元, 握手信号生成单元,其中所述第一切换信号生成单元的两个输入端连接到APB桥,分别接收 APB时钟域的片选信号(psel)和使能信号(penable),用于生成APB时 钟域的第一切换信号(ptrans)并将其送入所述第 一同步单元,所述第一切 换信号代表APB桥是否发出访问请求;第一同步单元,用于将所述第一切换信号从APB时钟域同步到被访问 端的时钟域并将其送入所述第二切换信号生成单元;控制信号生成单元,其分别连接到所述第二切换信号生成单元和被访 问端,用于根据模块时钟域的第一切换信号生成所述控制信号(msel),并 且将所述控制信号(msel)将其输出到被访问端和所述第二切换信号生成单 元,所述控制信号(msel)代表访问是否到来,所述被访问端根据所述控制 信号(msel)进行寄存器操作;第二切换信号生成单元,用于根据所述控制信号(msel)生成第二切换 信号(mready)并将其送入所述第二同步单元,所述第二切换信号(mready)代 表寄存器操作是否完成;第二同步单元,用于将所述第二切换信号从^t块时钟域同步到APB时 钟域并将其送入所述握手信号生成单元;握手信号生成单元,其连接到APB桥,用于根据APB时钟域的第二切 换信号生成握手信号(pready)并将其送回APB桥,握手信号(pready)代 表在APB时钟域;险测到 一次访问完成。
13. 根据权利要求12的电路,其中,所述第一同步单元是串联并且之间无任何组合逻辑的触发器和/或 所述第二同步单元是串联并且之间无任何组合逻辑的触发器。
14. 根据权利要求12的电路,其中,所述第一切换信号生成单元包括反 相器、与门、多路选择器和触发器所述反相器的输入为所述使能信号,其输出端连接到所述与门的一个 输入端,所述与门的另 一个输入为所述片选信号,其输出端连接到所述多路选 择器的控制端,所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为0时控制输出所述触发器的正相输出,所述触发器的正相输出端为所述第一切换信号生成单元的输出端。
15. 根据权利要求12的电路,其中,所述控制信号生成单元包括触发器、 异或门所述触发器的数据输入端和所述异或门的一个输入端连接到所述第一 同步单元的输出端,所述触发器的正相输出端连接到所述异或门的另 一个输入端, 所述异或门的输出端连接到所述多路选择器的控制端,并且将所述控 制信号(msel)输出给^皮访问端。
16. 根据权利要求12的电路,其中,所述第二切换信号生成单元包括多 路选择器和触发器所述多路选择器的两个信号输入端分别连接所述触发器的正、反相输 出端,当所述多路选择器的控制信号为1时控制输出所述触发器的反相输 出,为O时控制输出所述触发器的正相输出,所述触发器的正相输出端为所述第二切换信号生成单元的输出端。
17. 根据权利要求14或16的电路,其中,所述多路选择器是二选一选 择器。
18. 根据权利要求14、 15、 16中任意一个的电路,其中,所述触发器是 D触发器。
19. 根据权利要求12的电路,其中,所述握手信号生成单元包括触发器 和异或门所述触发器数据输入端和异或门的一个输入端都连接到所述第二同步 单元的输出端,所述触发器的输出端连接到所述异或门的另 一个输入端,所述异或门 的输出端为所述握手信号生成单元的输出端。
20. —种APB总线跨时钟域访问的方法,包括将APB时钟域的片选信号(psel)和使能信号(penable)同步到被访 问端的时钟域,作为控制信号(msd)输出到所述控制寄存器,然后将所述 控制信号(msel)同步回APB时钟域,作为握手信号(pready)送回所述 APB桥;其中,APB桥作为APB的控制端,工作在APB时钟域; 控制寄存器(Control register)作为APB的被访问端,工作在被访问端 的时钟域。
全文摘要
本发明涉及一种APB总线跨时钟域访问的电路,包括APB桥,作为APB的控制端,工作在APB时钟域;控制寄存器(Control register),作为APB的被访问端,工作在被访问端的时钟域;以及时钟同步电路,将APB时钟域的片选信号(psel)和使能信号(penable)同步到被访问端的时钟域,作为控制信号(msel)输出到所述控制寄存器,然后将所述控制信号(msel)同步回APB时钟域,作为握手信号(pready)送回所述APB桥。本发明通过让APB总线和模块内部寄存器处在跨时钟域,并结合APB3.0的访问握手方法,保证了模块的控制寄存器工作在模块内部的时钟,去除了模块内部寄存器及其内部状态不确定的风险,同时减少了由此附加的硬件开销,和访问延迟。
文档编号G06F1/12GK101377691SQ20081011968
公开日2009年3月4日 申请日期2008年9月5日 优先权日2008年9月5日
发明者川 林 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1