掌桥专利:专业的专利平台
掌桥专利
首页

一种片上系统、装置及访问存储器的方法

文献发布时间:2024-04-18 19:58:26


一种片上系统、装置及访问存储器的方法

技术领域

本申请涉及但不限于集成电路技术,其中涉及一种片上系统、装置及访问存储器的方法。

背景技术

基于微控制单元(MCU)与现场可编程门阵列(FPGA)的片上系统(SoC),例如赛灵思(Xilinx)的Zynq系列,是赛灵思公司推出的一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平),包括MCU和FPGA单元,一般被应用在工控等领域;上述片上系统,如果MCU是硬核单元,则MCU一般作为一个相对独立的系统,包括内核、指令存储器(Memory)和数据Memory,指令Memory和数据Memory是MCU运行指令和数据的存储介质,为避免指令被破而造成MCU奔溃,相关技术基于物理内存保护机制(physical memory protection)来设置MCU的Memory访问权限,例如,通过分区技术和物理内存保护机制(PMP)设置FPGA单元的逻辑不能访问MCU的指令Memory和数据Memory;当MCU没有被使用时,MCU内的指令Memory和数据Memory实际上是被浪费的。综上,如何提升片上系统的存储资源的应用效率,提升片上系统的工作性能,成为一个有待解决的问题。

发明内容

以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本公开实施例提供一种片上系统、装置及访问存储器的方法,能够提升片上系统的存储资源的应用效率和系统的工作性能。

本公开实施例提供了一种片上系统,包括:基于同一现场可编程门阵列FPGA芯片构建的微控制单元MCU和FPGA单元,MCU为硬核单元,FPGA单元为逻辑单元,MCU和FPGA单元通过预先设置的一组总线接口建立通信连接;

所述MCU未被使用时,所述FPGA单元通过所述总线接口访问所述MCU内的存储器Memory。

在一种示例性实例中,所述FPGA单元为主单元,所述MCU为从单元。

在一种示例性实例中,所述MCU为通过占据所述FPGA芯片的门阵列中的一个阵列块构建的单元。

在一种示例性实例中,所述MCU为所述FPGA芯片上通过硬件描述语言实例化的一个原语。

在一种示例性实例中,所述MCU内的存储器包括:指令存储器和数据存储器。

在一种示例性实例中,所述一组总线接口包括:

所述MCU内的从总线接口和所述FPGA单元内的主总线接口。

在一种示例性实例中,所述FPGA单元中还包括:用于进行通过所述主总线接口访问MCU的存储器的内存控制器的软核网际互连协议IP模块;

其中,所述内存控制器的软核IP模块包括:在FPGA单元的逻辑结构部分,通过硬件描述语言实现的IP模块。

在一种示例性实例中,所述硬件描述语言包括:Verilog或VHDL。

在一种示例性实例中,所述MCU未被使用,包括:

在MCU的寄存器传输级RTL中,不包含预先配置的调用MCU的原语;和/或,

系统未给所述MCU提供时钟。

另一方面,本公开实施例还提供一种装置,包括上述的片上系统。

再一方面,本公开实施例还提供一种访问存储器的方法,包括:

判断微控制单元MCU是否被使用;

MCU未被使用时,配置FPGA单元通过预先设置的一组总线接口访问MCU内的存储器;

其中,MCU和FPGA单元集成在同一FPGA芯片的,MCU为硬核单元,FPGA单元为逻辑单元。

与相关技术相比,本申请包括:基于同一现场可编程门阵列FPGA芯片构建的微控制单元MCU和FPGA单元,其特征在于,MCU为硬核单元,FPGA单元为逻辑单元,MCU和FPGA单元通过预先设置的一组总线接口建立通信连接;所述MCU未被使用时,所述FPGA单元通过所述总线接口访问所述MCU内的存储器Memory。本公开实施例在MCU未被使用时,通过预先设置的一组总线接口建立MCU和FPGA单元的通信连接,使得FPGA单元可以访问MCU的存储器,提升了片上系统的存储资源的应用效率和系统的工作性能。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。

附图说明

附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本公开实施例片上系统的结构框图;

图2为本公开实施例FPGA门阵列的结构示意图;

图3为本公开实施例总线接口的示意图;

图4为本公开实施例访问存储器的方法的流程图。

具体实施方式

本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。

本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。

图1为本公开实施例片上系统的结构框图,如图1所示,包括基于同一现场可编程门阵列(FPGA)芯片构建的微控制单元(MCU)和FPGA单元,其中,MCU为硬核单元,FPGA单元为逻辑单元,MCU和FPGA单元通过预先设置的一组总线接口建立通信连接;

MCU未被使用时,FPGA单元通过总线接口访问MCU内的存储器(Memory)。

本公开实施例在MCU未被使用时,通过预先设置的一组总线接口建立MCU和FPGA单元的通信连接,使得FPGA单元可以访问MCU的存储器,提升了片上系统的存储资源的应用效率和系统的工作性能。

在一种示例性实例中,本公开实施例构建了MCU和FPGA单元的FPGA芯片,属于基于物理内存保护机制设置MCU的Memory访问权限的芯片,包括但不限于通过分区技术和物理内存保护机制(PMP)设置FPGA单元的逻辑不能访问MCU的Memory。本公开实施例FPGA芯片还可以包括,通过其他方式设置MCU的Memory不被FPGA单元访问的芯片。

在一种示例性实例中,本公开实施例中的FPGA单元可以作为主(Master)单元,MCU可以作为从(Slave)单元。本公开实施例FPGA作为Master访问MCU内的memory时,须先关闭MCU里的clock gate,即MCU除内核在运转外其他部分都是关闭的,只确认从总线到memory的路线是在运行的。

本公开实施例通过设置FPGA单元和MCU的主从关系,总线接口的输入输出分别连接作为从单元的MCU和作为主单元的FPGA单元,MCU作为从单元被FPGA单元控制,通过上述主动的系统架构,为FPGA单元访问MCU的存储器提供架构支持。

在一种示例性实例中,本公开实施例中的MCU可以通过占据FPGA芯片的门阵列中的一个阵列块构建的单元。

本公开实施例芯片架构为FPGA可编程门阵列架构,MCU仅是门阵列中的一个块,参考图2所示的FPGA门阵列的结构,与相关其中的片上系统设计不同,本公开实施例MCU只是FPGA芯片的一个阵列块的架构设计,为实现FPGA单元访问MCU内的Memory提供了结构支撑。

在一种示例性实例中,本公开实施例中的MCU为FPGA芯片上通过硬件描述语言实例化的一个Primitive(原语)。

在一种示例性实例中,本公开实施例中的硬件描述语言包括:Verilog或VHDL。Verilog是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。VHDL语言是一种用于电路设计的高级语言,是用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言,主要用于描述数字系统的结构、行为、功能和接口;除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。

在一种示例性实例中,本公开实施例中MCU内的Memory包括:指令Memory和数据Memory。

在一种示例性实例中,参照相关设计本公开实施例中的MCU还可以包括MCU内核。

在一种示例性实例中,本公开实施例中的一组总线接口包括:

MCU内的从(Slave)总线接口和FPGA单元内的主(Maste)总线接口。

在一种示例性实例中,本公开实施例中的FPGA单元中还包括:用于进行通过Maste总线接口访问MCU的Memory的内存控制器的软核IP模块;

其中,内存控制器的软核IP模块包括:在FPGA单元的逻辑结构(Logic Fabric)部分,通过硬件描述语言实现的IP模块。

图3为本公开实施例总线接口的示意图,如图3所示,本公开实施例FPGA单元经由该软核IP模块,通过Maste总线接口和Slave总线接口,进而访问MCU的存储器。本公开实施例访问MCU的存储器的处理,涉及Maste总线和Slave总线的信号,总线的信号可以包括地址总线信号、数据总线信号和控制总线信号,地址总线信号用于提供数据访问的地址,数据总线信号用于陈述读写的数据,控制总线信号用于控制读写方向。

在一种实施例实例中,本公开实施例编辑实现软核IP模块的硬件描述语言可以包括:Verilog或VHDL。

在一种实施例实例中,本公开实施例MCU未被使用,包括:

在MCU的寄存器传输级(RTL)中,不包含预先配置的调用MCU的原语(Primitive);和/或,

系统未给MCU提供时钟。

本公开实施例中是否使用MCU,可以由技术人员根据芯片开发需求设计。

本公开实施例还提供一种装置,包括片上系统,片上系统包括集成在FPGA芯片的MCU和FPGA单元,其中,MCU为硬核单元,FPGA单元为逻辑单元,MCU和FPGA单元通过预先设置的一组总线接口建立通信连接;

MCU未被使用时,FPGA单元通过总线接口访问MCU内的存储器。

本公开实施例在MCU未被使用时,通过预先设置的一组总线接口建立MCU和FPGA单元的通信连接,使得FPGA单元可以访问MCU的存储器,提升了片上系统的存储资源的应用效率和系统的工作性能。

在一种示例性实例中,本公开实施例中的FPGA单元可以作为主(Master)单元,MCU可以作为从(Slave)单元。

本公开实施例通过设置FPGA单元和MCU的主从关系,总线接口的输入输出分别连接作为从单元的MCU和作为主单元的FPGA单元,MCU作为从单元被FPGA单元控制,通过上述主动的系统架构,为FPGA单元访问MCU的存储器提供架构支持。

在一种示例性实例中,本公开实施例中的MCU可以是通过占据FPGA芯片的门阵列中的一个阵列块构建的单元。

本公开实施例芯片架构为FPGA可编程门阵列架构,MCU仅是门阵列中的一个块,与相关其中的片上系统设计不同,本公开实施例MCU只是FPGA芯片的一个阵列块的架构设计,为实现FPGA单元访问MCU内的Memory提供了结构支撑。

在一种示例性实例中,本公开实施例中的MCU为FPGA芯片上通过硬件描述语言实例化的一个Primitive(原语)。

在一种示例性实例中,本公开实施例中的硬件描述语言包括:Verilog或VHDL。Verilog是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。VHDL语言是一种用于电路设计的高级语言,是用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言,主要用于描述数字系统的结构、行为、功能和接口;除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。

在一种示例性实例中,本公开实施例中MCU内的Memory包括:指令Memory和数据Memory。

在一种示例性实例中,参照相关设计本公开实施例中的MCU还可以包括MCU内核。

在一种示例性实例中,本公开实施例中的一组总线接口包括:

MCU内的从(Slave)总线接口和FPGA单元内的主(Maste)总线接口。

在一种示例性实例中,本公开实施例中的FPGA单元中还包括:用于进行通过Maste总线接口访问MCU的Memory的内存控制器的软核IP模块;

其中,内存控制器的软核IP模块包括:在FPGA单元的逻辑结构(Logic Fabric)部分,通过硬件描述语言实现的IP模块。

本公开实施例FPGA单元经由该软核IP模块,通过Maste总线接口和Slave总线接口,进而访问MCU的存储器。

在一种实施例实例中,本公开实施例编辑实现软核IP模块的硬件描述语言可以包括:Verilog或VHDL。

在一种实施例实例中,本公开实施例MCU未被使用,包括:

在MCU的寄存器传输级(RTL)中,不包含预先配置的调用MCU的原语(Primitive);和/或,系统未给MCU提供时钟。

图4为本公开实施例访问存储器的方法的流程图,如图4所示,包括:

步骤401、判断MCU是否被使用;

步骤402、MCU未被使用时,配置FPGA单元通过预先设置的一组总线接口访问MCU内的Memory;

其中,MCU和FPGA单元集成在同一FPGA芯片的,MCU为硬核单元,FPGA单元为逻辑单元。

在一种示例性实例中,本公开实施例可以由FPGA芯片作为执行主体实施上述处理。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

相关技术
  • 一种片上存储器的调试装置及方法
  • NAND存储器及其访问方法、访问装置
  • 访问快闪存储器模块的方法及相关闪存控制器与电子装置
  • 一种存储器多模访问控制方法及其片上SRAM存储器控制系统
  • 用于片上系统的分布式直接存储器访问的方法和装置
技术分类

06120116488581