一种缓冲接口电路及基于该电路传输数据的方法和应用与流程

文档序号:18164364发布日期:2019-07-13 09:30阅读:220来源:国知局
一种缓冲接口电路及基于该电路传输数据的方法和应用与流程

本发明属于集成电路设计领域,涉及一种缓冲接口电路及基于该电路传输数据的方法和应用。



背景技术:

在大规模多时钟域复杂芯片中,接口电路的性能通常决定着数据访问带宽和系统运行效率。设计一款兼顾速度、灵活性、可靠性且简单易用的高速接口电路往往是芯片设计的关键点。

传统的缓冲接口电路,通常基于fifo结构或双端口ram结构结合硬件控制电路实现。硬件控制电路的控制策略和实现方式决定着接口缓冲电路的传输效率和性能。传统设计通常采用分时访问策略,两个时钟域的控制电路分时访问fifo或者ram,在保证数据正确的前提下实现两个时钟域下数据的交互。然而这种结构的问题是数据传输效率不高,当接口一端的控制结构在访问数据区时,另外一端的控制结构处于等待状态,只有当一端访问完成后,另一端访问才能开始。这对于数据传输速率要求较高的外设来说通常是影响性能的瓶颈。若采取接口两端同时访问缓冲区的策略,如何在保证数据的一致性和正确性的前提下提高传输效率往往是设计的关键。

另外,在当前的大规模芯片soc/mcu系统中,多级系统总线结构已成为常态,在某些应用场景下,外设模块需要支持多级总线系统的访问,设计一种可靠、高效率且简单易用的高速缓冲接口结构,满足系统内多级总线的高效率传输需求,已经成为芯片系统设计中的关键问题。



技术实现要素:

本发明针对高性能soc/mcu系统中多级总线结构对高速外设多层次访问需求,同时针对传统分时访问策略下缓冲区访问效率不高的情况,提出一种缓冲接口电路及基于该电路传输数据的方法和应用,实现片内多级总线和外设的高效率数据交互,在保证传输正确可靠的前提下实现了性能的和效率的提升,有效的解决了目前超大规模复杂芯片如soc、mcu等内部多级总线主机和外设接口之间数据高效率传输的问题。

本发明是通过以下技术方案来实现:

一种缓冲接口电路,包括通道一访问控制模块、通道二访问控制模块、通道选择寄存器、mux单元、同步一模块、同步二模块、双端口缓冲区和外设访问缓冲区控制模块;

通道一访问控制模块一端连接片内一级总线,另一端通过mux单元选择后与双端口缓冲区连接,且通道一访问控制模块通过同步一模块与外设访问缓冲区控制模块进行控制信息交互;

通道二访问控制模块一端连接片内二级总线,另一端通过mux单元选择后与双端口缓冲区连接,且通道二访问控制模块通过同步二模块与外设访问缓冲区控制模块进行控制信息交互;

外设访问缓冲区控制模块一端连接双端口缓冲区,另一端连接外设模块;

双端口缓冲区包括buf1和buf2两个半区;

mux单元通过通道选择寄存器控制,通道选择寄存器驱动的sel信号选择通道一访问控制模块或通道二访问控制模块控制信号选通到双端口缓冲区;

通道一访问控制模块和通道二访问控制模块分别包含对应的配置寄存器和状态寄存器。

进一步,双端口缓冲区共有2n个地址,片内总线访问控制和外设访问缓冲区控制模块的寻址范围为n个地址;

访问过程中,在同一时刻,双端口缓冲区的一个半区对应port1端的信号控制访问,另一个半区对应port2端的信号控制访问,数据传输过程中,port1和port2控制的双端口缓冲区的半区不断进行循环切换。

进一步,双端口缓冲区采用带字节使能或位使能的ram结构,或采用多个低位宽ram拼接成整块ram的结构。

进一步,通道一访问控制模块和通道二访问控制模块均与外设访问缓冲区控制模块采用同步后的脉冲握手信号交互的控制方式,脉冲握手信号包括r1、f1、gnt1、req1、r2、f2、gnt2和req2信号。

进一步,通道一访问控制模块作为片内一级总线主机,控制一级总线数据和外设数据交互;通道二访问控制模块作为片内二级总线从机,接收片内二级总线主机的控制和数据并完成外设和总线之间的数据交互。

进一步,同步一模块和同步二模块均采用pls2pls结构。

进一步,配置寄存器、状态寄存器以及通道选择寄存器均由片内二级总线访问配置;

在通道一访问控制模块内部完成一级总线时钟域下控制信号与二级总线时钟域下配置寄存器和状态寄存器信号的同步处理。

本发明还公开了基于所述的缓冲接口电路将数据从片内总线传输到外设的方法,首先完成通道选择寄存器的初始化,mux单元决定通道一访问控制模块或通道二访问控制模块控制双端口缓冲区;

如果通道选择访问通道一访问控制模块,具体包括以下步骤:

(1)初始化通道一访问控制模块的配置寄存器和状态寄存器;

(2)传输开始后,通道一访问控制模块作为片内一级总线主机,将一级总线数据写入双端口缓冲区的buf1半区中,完成操作后输出标志脉冲信号并同时将配置信息给外设访问缓冲区控制模块,同时通道一访问控制模块寻址区间跳至buf2半区继续进行第二帧数据写入;外设访问缓冲区控制模块接收到标志信号以及传输配置信息后,外设访问缓冲区控制模块寻址区间跳至buf1半区,将第一帧数据读出并传输给外设模块,操作完成后寻址区间跳转至buf2半区并将完成标志脉冲信号传输给通道一访问控制模块;通道一访问控制模块完成第二帧数据写入且接收到外设访问缓冲区控制模块完成第一帧数据传输的标志信号后,跳回buf1半区继续进行第三帧数据传输,外设访问缓冲区控制模块接收到通道一访问控制模块的第二帧数据完成标志后访问buf2半区,进行第二帧数据从双端口缓冲区到外设模块的传输;以此类推,完成后续多帧数据传输;

如果通道选择访问通道二访问控制模块,具体包括以下步骤:

(1)初始化通道二访问控制模块的配置寄存器和状态寄存器;

(2)传输开始后,通道二访问控制模块作为片内二级总线从机,接收二级总线主机写操作将数据写入双端口缓冲区的buf1半区中,完成操作后输出标志脉冲信号并同时将配置信息给外设访问缓冲区控制模块,同时通道二访问控制模块寻址区间跳至buf2半区,继续接收二级总线主机写操作将第二帧数据写入buf2半区;外设访问缓冲区控制模块接收到标志信号以及传输配置信息后,外设访问缓冲区控制模块寻址区间跳至buf1半区,将第一帧数据读出并传输给外设模块,操作完成后寻址区间跳转至buf2半区并将完成标志脉冲信号传输给通道二访问控制模块;通道二访问控制模块完成第二帧数据写入且接收到外设访问缓冲区控制模块完成第一帧数据传输的标志信号后,跳回buf1半区,此时,通道二访问控制模块继续接收二级总线主机写操作进行第三帧数据传输,外设访问缓冲区控制模块接收到通道二访问控制模块的第二帧数据完成标志后访问buf2半区,进行第二帧数据从双端口缓冲区到外设模块的传输;以此类推,完成后续多帧数据传输。

本发明还公开了基于所述的缓冲接口电路将数据从外设传输到片内总线的方法,首先完成通道选择寄存器的初始化,mux单元决定通道一访问控制模块或通道二访问控制模块控制双端口缓冲区;

如果通道选择访问通道一访问控制模块,具体包括以下步骤:

(1)初始化通道一访问控制模块的配置寄存器和状态寄存器;

(2)传输开始后,通道一访问控制模块发送第一帧请求脉冲标志信号给外设访问缓冲区控制模块,同时发送配置信息给外设访问缓冲区控制模块;外设访问缓冲区控制模块接收到标志信号和配置信息后,将外设模块中的第一帧数据读出并写入到双端口缓冲区的buf1半区,完成操作后将完成标志脉冲信号经过同步一模块传输给通道一访问控制模块,同时访问地址区间跳转至buf2半区;通道一访问控制模块接收到外设访问缓冲区控制模块的第一帧完成标志信号后,立即将第二帧请求脉冲标志信号给外设访问缓冲区控制模块,通道一访问控制模块作为片内一级总线主机,同时将第一帧数据从buf1半区传输到片内一级总线上,操作完成后地址区间跳转至buf2半区并发送完成标志信号给外设访问缓冲区控制模块;外设访问缓冲区控制模块接收到第二帧请求标志信号后,将第二帧数据从外设模块传输到双端口缓冲区buf2半区,操作完成后地址区间跳转至buf1半区并发送完成标志脉冲信号给通道一访问控制模块;通道一访问控制模块完成第一帧数据从buf1到片内一级总线的传输且接收到外设访问缓冲区控制模块的第二帧传输完成标志后,发送第三帧请求脉冲信号给外设访问缓冲区控制模块,同时将第二帧数据从buf2半区传输到片内一级总线上;以此类推,完成后续多帧数据的传输;

如果通道选择访问通道二访问控制模块,具体包括以下步骤:

(1)初始化通道二访问控制模块的配置寄存器和状态寄存器;

(2)传输开始后,通道二访问控制模块作为片内二级总线从机,接收二级总线主机配置发送第一帧请求脉冲标志信号给外设访问缓冲区控制模块,同时发送配置信息给外设访问缓冲区控制模块;外设访问缓冲区控制模块接收到标志信号和配置信息后,将外设模块中的第一帧数据读出并写入到双端口缓冲区的buf1半区,完成操作后将完成标志脉冲信号经过同步二模块传输给通道二访问控制模块,同时访问地址区间跳转至buf2半区;通道二访问控制模块接收到外设访问缓冲区控制模块的第一帧完成标志信号后,接收二级总线主机的配置将第二帧请求脉冲标志信号给外设访问缓冲区控制模块,同时接收二级总线主机读操作将第一帧数据从buf1半区传输到片内二级总线上,操作完成后地址区间跳转至buf2半区并发送完成标志信号给外设访问缓冲区控制模块;外设访问缓冲区控制模块接收到第二帧请求标志信号后,将第二帧数据从外设模块传输到双端口缓冲区buf2半区,操作完成后地址区间跳转至buf1半区并发送完成标志脉冲信号给通道二访问控制模块;通道二访问控制模块完成第一帧数据从buf1到片内二级总线的传输且接收到外设访问缓冲区控制模块的第二帧传输完成标志后,接收片内二级总线主机的配置发送第三帧请求脉冲信号给外设访问缓冲区控制模块,同时接收二级总线主机读操作将第二帧数据从buf2半区传输到片内一级总线上;以此类推,完成后续多帧数据的传输。

本发明还公开了所述的缓冲接口电路在制备mcu芯片中的应用。

与现有技术相比,本发明具有以下有益的技术效果:

本发明公开的缓冲接口电路,包括通道一访问控制模块、通道二访问控制模块、mux单元、同步一模块、同步二模块、双端口缓冲区和外设访问缓冲区控制模块;双端口缓冲区采用两级流水和双半区地址循环切换的控制方式,实现了片内控制端和外设控制端对数据缓冲区的同时访问,相较于传统的分时访问缓冲区策略,大大提高了片内总线和外设的数据交互效率;双端口缓冲区port1访问控制端,采用mux单元切换片内不同的访问控制通道,mux单元的sel端由通道选择寄存器控制,对通道选择寄存器的配置必须在对通道一/二访问控制模块配置寄存器和状态寄存器配置之前完成,通过该简单易实现的结构实现了片内多级总线对双端口缓冲区的访问的切换控制。

进一步,port1和port2的控制端在同一时刻都分别访问不同的半区,并从时间上来看处于一种两级流水线的访问机制,两级流水的访问机制使两端可以同时访问数据区,相较于传统的分时访问策略大大提高了数据的传输效率。

进一步,双端口缓冲区采用带字节使能或位使能的ram结构或采用多个低位宽ram拼接成整块ram的结构实现,满足不同访问通道的不同访问位宽需求,相对于整块ram实现下的读修改写操作,ram访问减少了百分之五十的访问时间,提高了系统访问效率。

进一步,port1端的通道访问控制单元和port2端的外设访问缓冲区控制单元采用同步后的脉冲握手信号r1、f1、gnt1、req1、r2、f2、gnt2和req2交互的控制方式,保证了数据传输过程中的一致性和正确性。

进一步,通道一访问控制模块和通道二访问控制模块均有其对应的配置寄存器和状态寄存器,这些配置寄存器和状态寄存器和通道选择寄存器均为片内二级总线从机,由片内二级总线访问配置。在通道一访问控制模块内部完成一级总线时钟域下控制信号与二级总线时钟域下配置和状态寄存器相关信号的同步处理。

进一步,同步一模块和同步二模块均采用pls2pls结构,实现不同时钟域下单周期脉冲信号的跨时钟域转换。

本发明公开的基于该电路的数据传输方法,当通道一访问控制模块/通道二访问控制模块访问buf1半区时,外设访问缓冲区控制模块访问buf2半区,当通道一访问控制模块/通道二访问控制模块跳转至buf2半区时,外设访问缓冲区控制模块跳转至访问buf1半区,通过同步的脉冲信号实现访问的时机控制。同一时刻双端口ram的两边的端口port1和port2的控制的地址范围永远对应两个不同的半区,基于同时访问不同半区数据的策略提高了传输效率,同时保证了两端控制端口不会发生访问冲突,实现了高效可靠的数据传输。

本发明的电路结构清晰、控制逻辑简单,且具有较高的可移植性和可复用性,可应用于不同架构的多种芯片中。

附图说明

图1为本发明的缓冲接口电路结构图;

图2为双端口ram访问流程示意图;

图3为ram控制结构图;

图4为同步模块电路结构图。

具体实施方式

下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。

如图1所示,本发明所述的缓冲接口电路,为一种跨多时钟域的基于两级流水控制的高速缓冲接口电路,包括通道一访问控制模块、通道二访问控制模块、mux单元、同步一模块、同步二模块、双端口缓冲区和外设访问缓冲区控制模块。

通道一访问控制模块一端连接片内一级总线,另外一端经过mux单元选择后连接双端口缓冲区,同时,通道一访问控制模块通过同步一模块与外设访问缓冲区控制模块进行控制信息交互。通道二访问控制模块一端连接片内二级总线,另外一端经过mux单元选择后连接双端口缓冲区,同时,通道二访问控制模块通过同步二模块与外设访问缓冲区控制模块进行控制信息交互。

通道一访问控制模块作为片内一级总线主机,通道二访问控制模块作为片内二级总线从机。一种典型的结构是:通道一访问控制模块作为片内一级总线主机,实现外设和片内一级总线之间数据交互的dma功能;通道二访问控制模块作为总线上的从机,接收片内二级总线主机的访问并将数据传输到外设。

mux单元由通道选择寄存器驱动的sel信号选择通道一或通道二控制信号选通,双端口缓冲区采用同步双端口sram实现,双端口缓冲区一端连接来自片内总线的通道一/通道二访问控制模块控制信号,另外一端连接外设访问缓冲区控制模块控制信号。

双端口缓冲区共有2n个地址,包括buf1和buf2两个半区,访问过程中,在同一时刻,两个半区分别对应两端的控制信号。片内总线访问控制和外设访问缓冲区控制的寻址范围为n个地址。例如,某时刻buf1对应片内总线访问控制的n个地址的访问范围,则此时buf2对应外设访问缓冲区控制模块的n个地址的访问范围;另一时刻buf1对应外设访问缓冲区控制模块的n个地址的访问范围,与此同时buf2对应片内总线访问控制的n个地址的访问范围。

双端口缓冲区采用带字节使能或位使能的ram结构,或采用多个低位宽ram拼接成整块ram的结构实现,能够满足不同访问通道的不同访问位宽需求,提高了系统访问效率。双端口缓冲区的具体实现方式取决于系统需求和设计实现的具体情况。

外设访问缓冲区控制模块除了上述端口连接外,另一端连接芯片的外设模块数据区,实现双端口缓冲区和外设模块的数据交互。传输过程中,采用双缓冲区两级流水控制机制,当通道一访问控制模块/通道二访问控制模块访问buf1半区时,外设访问缓冲区控制模块访问buf2半区,当通道一访问控制模块/通道二访问控制模块跳转至buf2半区时,外设访问缓冲区控制模块跳转至访问buf1半区,通过同步的脉冲信号实现访问的时机控制。同一时刻双端口ram的两边的端口port1和port2的控制的地址范围永远对应两个不同的半区,基于同时访问不同半区数据的策略提高了传输效率,同时保证了两端控制端口不会发生访问冲突,实现了高效可靠的数据传输。

基于上述缓冲接口电路结构,一次完整的将数据从片内总线传输到外设的步骤为:首先完成通道选择寄存器的初始化,mux单元决定访问通道一访问控制模块或通道二访问控制模块。

如果通道选择访问通道一访问控制模块,步骤如下:

(1)完成通道一访问控制模块配置寄存器和状态寄存器的初始化;

(2)此时通道一访问控制模块作为片内一级总线的dma主机,基于对配置寄存器的配置,本次传输开始,通道一访问控制模块读取片内一级总线数据并将数据写入到双端口缓冲区中的buf1中,完成本帧数据写入之后,完成状态f1置位(硬件维持一个周期),同时将本次传输的长度目的地址等必要的配置信息输出给外设访问缓冲区控制模块,f1通过同步一模块同步后传输给外设访问缓冲区控制模块;与此同时,通道一访问控制模块访问双端口缓冲区的地址跳转至buf2的范围,此时通道一访问控制单元可继续基于配置进行第二帧数据传输,第二帧传输开始后,状态寄存器中的wbusy置位,第二帧数据传输到双端口缓冲区后,通道一访问控制模块寻址区间又跳回至buf1范围,此时若外设访问缓冲区控制单元还未完成对buf1数据的读取,则wbusy信号不会清除,需等待wbusy清除后通道一访问控制模块方可继续将新一帧的总线数据传输到双端口缓冲区;

(3)外设访问缓冲区控制模块接收到同步后的写传输完成状态f1后,同时采样本帧传输的相关配置信息,开始访问双端口缓冲区的buf1半区,将buf1半区的数据读出后传输给外设模块;

(4)完成buf1中数据传输后,外设访问缓冲区控制模块的控制信号访问范围切换到buf2,同时将完成状态r1置位(硬件维持一个周期),r1通过同步一模块传输给通道一访问控制模块,wbusy信号会清除,此时通道一访问控制模块可继续读取新的一帧总线数据写入buf1中。

如果通道选择访问通道二访问控制模块,步骤如下:

(1)完成通道二访问控制模块配置寄存器和状态寄存器的初始化;

(2)此时通道二访问控制模块作为片内二级总线从机,接收总线的写访问将数据写入到双端口缓冲区中的buf1中,完成本帧数据写入之后,接收二级总线对配置状态寄存器的操作,将片内写传输完成状态f2置位(硬件维持一个周期),f2通过同步二模块同步后传输给外设访问缓冲区控制模块,同时将本次传输的长度目的地址等必要的配置信息输出给外设访问缓冲区控制模块;与此同时,通道二访问控制模块访问双端口缓冲区的地址跳转至buf2的范围,此时通道二访问控制单元可继续接收片内二级总线的第二帧数据传输,第二帧传输开始后,状态寄存器中的wbusy置位,第二帧数据传输到双端口缓冲区后,通道二访问控制模块寻址区间又跳回至buf1范围,此时若外设访问缓冲区控制单元还未完成对buf1数据的读取,则wbusy信号不会清除,需等待wbusy清除后通道二访问控制模块方可继续接收新的总线数据传输到双端口缓冲区;

(3)外设访问缓冲区控制模块接收到同步后的写传输完成状态f2后,同时采样本帧传输的相关配置信息,开始访问双端口缓冲区的buf1半区,将buf1半区的数据读出后传输给外设模块;

(4)完成buf1中数据传输后,外设访问缓冲区控制模块的控制信号访问范围切换到buf2,同时将完成状态r2置位(硬件维持一个周期),r2通过同步二模块传输给通道二访问控制模块,wbusy信号会清除,此时通道二访问控制模块可继续接收总线访问数据并写入buf1中。

基于上述缓冲接口电路结构,一次完整的将数据从外设传输到片内总线的步骤为:首先完成通道选择寄存器的初始化,mux单元决定访问通道一访问控制模块或通道二访问控制模块。

如果通道选择访问通道一访问控制模块,步骤如下:

(1)完成通道一访问控制模块配置寄存器和状态寄存器初始化;

(2)硬件基于配置寄存器的配置启动传输,将req1位置位,并将本次传输的地址长度等相关信息传输给外设访问缓冲区控制模块,通道一访问控制模块的rbusy状态位同时置位;

(3)req1通过同步一模块传递给外设访问缓冲区控制模块,外设访问缓冲区控制模块接收到req1,同时采样本次传输的配置信息,基于此将本次传输的数据写入到双端口缓冲区的buf1半区;外设访问缓冲区控制模块完成数据传输后,gnt1状态置位(硬件维持一个周期),通过同步一模块将gnt1信号传输给通道一访问控制模块,同时外设访问缓冲区控制模块访问范围跳转至buf2半区;

(4)通道一访问控制模块接收到同步后的gnt1信号后rbusy状态复位,此时若配置的传输长度已完成,则置位watch状态,通道一访问控制模块完成数据从buf1到片内一级总线的传输。此时若配置的传输还未完成,通道一访问控制模块将req1置位(硬件维持一个周期),开始第二帧数据传输,rbusy此时又一次置位;外设访问缓冲区控制模块接收到同步后的req1后开始将第二帧数据传输到buf2半区;req1置位的同时置状态寄存器watch位为1,通道一访问控制模块的访问范围跳转至buf1半区,检测到watch为1后,通道一访问控制模块可读取buf1中的数据并将其写到片内一级总线的目的地址;

(5)等到rbusy第二次复位后,如果还要继续进行传输,则同步骤(4)继续进行第三帧数据传输相关信息配置和req1发起;如果本次是最后一帧数据,置watch为1,通道一访问控制模块访问范围跳转至buf2半区,通道一访问控制模块读取buf2半区中的数据并将其写到片内一级总线的目的地址。

如果通道选择为通道二访问控制模块,步骤如下:

(1)完成通道二访问控制模块的配置寄存器和状态寄存器初始化;

(2)选中的是访问通道二,此时,硬件基于配置寄存器的配置启动传输,将req2位置位(硬件维持一个周期),并将本次传输的地址长度等相关信息传输给外设访问缓冲区控制模块,通道二访问控制模块的rbusy状态位同时置位;

(3)req2通过同步模块二传递给外设访问缓冲区控制模块,外设访问缓冲区控制模块接收到req2,同时采样本次传输的配置信息,基于此将本次传输的数据写入到双端口缓冲区的buf1半区;外设访问缓冲区控制模块完成数据传输后,gnt2状态置位(硬件维持一个周期),通过同步模块二将gnt2信号传输给通道二访问控制模块,同时外设访问缓冲区控制模块访问范围跳转至buf2半区;

(4)通道二访问控制模块接收到同步后的gnt2信号后rbusy状态复位,如果此时片内二级总线没有继续传输数据的需求,则二级总线配置watch位为1,通道二访问控制模块的访问范围跳转至buf1半区,检测到watch为1后,片内二级总线通过通道二访问控制模块读取buf1中的数据;如果还有数据传输需求,此时片内二级总线可配置第二帧数据传输的相关信息,完成配置后置req2位(硬件维持一个周期),开始第二帧数据传输,rbusy此时又一次置位;外设访问缓冲区控制模块接收到同步后的req2后开始将第二帧数据传输到buf2半区;配置req2的同时配置状态寄存器watch位为1,通道二访问控制模块的访问范围跳转至buf1半区,检测到watch为1后,片内二级总线可通过通道二访问控制模块读取buf1中的数据;

(5)等到rbusy第二次复位后,如果还要继续进行传输,则同步骤(4)继续进行第三帧数据传输相关信息配置和req2发起;如果本次是最后一帧数据,配置watch为1,通道二访问控制模块访问范围跳转至buf2半区,片内二级总线主机通过通道二访问控制单元读取buf2中的第二帧数据。

通道一访问控制模块和通道二访问控制模块采用相同的策略与外设访问缓冲区控制模块进行交互。但是,通道一和通道二访问控制分别对应两个时钟域下的硬件控制电路,可以灵活的选择不同的结构来实现。一种典型的结构是,通道二访问控制模块作为片内二级总线从机,接受总线主机对可见缓冲区(可见深度为n)和通道二配置寄存器和状态寄存器的访问,实现片内二级总线设备和外设模块的数据交互;通道一访问控制模块作为片内一级总线主机设备,基于通道一配置寄存器的信息实现dma功能,完成片内一级总线设备和外设模块的数据交互。

外设访问缓冲区控制模块和通道一访问控制模块/通道二访问控制模块采用异步时钟控制,同步一模块和同步二模块实现三个时钟域下的脉冲信号同步。基于控制信号r1/r2、f1/f2和配置信息传输,外设访问缓冲区控制模块完成数据从双端口缓冲区到外设的传输。基于控制信号gnt1/gnt2、req1/req2和配置信息传输,外设访问缓冲区控制模块完成数据从外设到双端口缓冲区的传输。

通道一和通道二访问是互斥的,同一时刻只会有一个通道访问双端口缓冲区。图2为双端口ram访问流程示意图,图2中可见,不论是对外设的写或读传输,port1和port2的控制端在同一时刻都分别访问不同的半区,并从时间上来看处于一种两级流水线的访问机制。两级流水的访问机制使两端可以同时访问数据区,大大提高了数据的传输效率。

缓冲区的实现结构会对传输效率有较大影响。大规模系统芯片的片内多级总线设备以及外设访问缓冲区控制模块对ram访问位宽通常不同,若采取不带位使能或字节使能整块ram实现,则对于低访问位宽的写操作,则需要多步骤的读修改写来实现。例如对于32位的ram,若需要写入8位数据,则需要先读出原32位数据,修改要写入的8位数据组成新的32位数据,最后写入。若采取带字节使能控制或者由四个8bit拼接成一个32bit的ram结构来实现,则只需要控制字节使能或者每个8bitram的使能端即可完成单次写入访问,每次操作较读修改写操作至少节省一个周期。

如图3所示,双端口缓冲区可采用总容量为128×32bit的双端口ram实现,ram的buf1半区对应物理地址0到63,buf2半区对应物理地址64到127,同一时刻片内访问和外设访问分别对应两个半区。ram选用带有字节使能控制的类型或采用四个8bit的ram体拼接成32bit的ram体的方式,可实现不同通道控制下8bit/16bit/24bit/32bit各种位宽的访问。

同步一模块和同步二模块均采用pls2pls结构,实现不同时钟域下单周期脉冲信号的跨时钟域转换。同步模块电路结构如图4所示。

mux单元在切换过程中,由于存在两个时钟域下控制和时钟信号的切换控制,为防止切换过程中出现不稳定状态,sel切换后需要硬件等待一定的时间再进行ram访问操作,具体时长需要根据设计结构和应用情况来确定。

本发明已经成功应用于一款mcu芯片上,在该芯片中,本缓冲接口电路结构作为片内一级总线axi总线、片内二级总线ahb总线和外设通信模块的接口,实现了片内多级总线设备和外设之间高效率的数据交互,并保证了不同应用场景数据的正确性。该mcu芯片已完成仿真验证、fpga验证和后端实现流程,仿真和fpga验证中该缓冲接口电路功能正常。本发明设计结构清晰、控制逻辑简单,且具有较高的可移植性和可复用性,可应用于不同架构的多种芯片中。该技术在民用和军用领域均可适用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1