一种片上系统以及存储器
技术领域
本申请涉及片上系统技术领域,特别是涉及一种片上系统以及存储器。
背景技术
片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括处理器、存储器、以及外围电路等。SoC是与其它技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。
现有的片上系统中会使用多个存储器分别对数据和指令进行存储,在读取数据和读取指令时,也是分别读取,一来设计上会增加设计难度,二来操作较为繁琐,易用性差。
发明内容
为解决上述问题,本申请提供了一种片上系统以及存储器,能够提高了片上系统的资源共享和复用,具有良好的扩展性和易用性,并且可以降低片上系统的设计复杂度。
本申请采用的一个技术方案是:提供一种片上系统,该片上系统包括:处理器;存储器,连接处理器的系统总线,该存储器基于FPGA的逻辑资源实现;模式选择器,连接处理器和存储器,并用于接收外部控制信号,以实现存储器工作模式的切换,在存储器工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器工作在处理器模式时,作为处理器的指令存储器。
其中,处理器包括处理器内核,FPGA包括FPGA内核和存储器;模式选择器包括:控制信号端口,用于接收外部控制信号;输入端口,连接处理器内核和FPGA内核;输出端口,连接存储器。
其中,存储器包括:系统总线接口,连接处理器的系统总线,用于建立与处理器之间的通信连接;功能接口模块,连接系统总线接口,用于与系统总线接口进行交互,并用于对数据和指令进行存储;控制器,连接系统总线接口和功能接口模块,用于根据系统总线接口从处理器接收的地址对相应的功能接口模块中的指令进行读取或控制。
其中,控制器包括控制模块和多个寄存器;其中,控制模块连接系统总线接口,每一寄存器分别连接控制模块和功能接口模块的一个端口,控制模块用于根据处理器通过系统总线发送的寄存器地址对相应的寄存器进行操作。
其中,多个寄存器包括控制寄存器、状态寄存器、地址寄存器、读指令寄存器和使能寄存器。
其中,功能接口模块包括:存储器接口,连接控制器和系统总线接口,用于与控制器和系统总线接口进行数据通信;存储器功能模块,连接存储器接口,用于对数据或指令进行存储。
其中,存储器接口包括:时钟端口和复位端口,连接系统总线接口,用于分别接收时钟信号和复位信号;控制端口、状态端口、地址端口、读指令端口和使能端口,分别连接控制器中对应的寄存器。
其中,系统总线接口用于将处理器通过系统总线发送的存储地址信号,映射成对应的功能接口模块的一个端口的寄存器地址信号,建立处理器与功能接口模块的通信连接;功能接口模块根据存储地址信号在对应的存储空间进行数据或指令的读取。
其中,存储器为只读存储器。
本申请采用的另一个技术方案是:提供一种存储器,该存储器基于FPGA的逻辑资源实现,并连接外部处理器和模式选择器,存储器包括:系统总线接口,连接处理器的系统总线,用于建立与处理器之间的通信连接;功能接口模块,连接系统总线接口,用于与系统总线接口进行交互,并用于对数据和指令进行存储;控制器,连接系统总线接口和功能接口模块,用于根据系统总线接口从处理器接收的地址对相应的功能接口模块中的指令进行读取或控制;其中,模式选择器连接处理器和存储器,并用于接收外部控制信号,以实现存储器工作模式的切换,在存储器工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器工作在处理器模式时,作为处理器的指令存储器。
本申请提供的片上系统包括:处理器;存储器,连接处理器的系统总线,该存储器基于FPGA的逻辑资源实现;模式选择器,连接处理器和存储器,并用于接收外部控制信号,以实现存储器工作模式的切换,在存储器工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器工作在处理器模式时,作为处理器的指令存储器。通过上述方式,利用FPGA可编程的特点实现存储器,可分时将该存储器作为FPGA的数据存储器或者处理器的指令存储器,提高了片上系统的资源共享和复用;并可通过外部的控制指令来动态调整存储器的工作模式,具有良好的扩展性和易用性;并且一个存储器的设计可以降低片上系统的设计复杂度,便于研发人员开发。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的片上系统的第一结构示意图;
图2是本申请提供的片上系统的第二结构示意图;
图3是本申请提供的存储器的结构示意图;
图4是本申请提供的控制器和功能接口模块的连接示意图;
图5是本申请提供的功能接口模块的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的片上系统的第一结构示意图,该片上系统10包括处理器11、存储器12和模式选择器13,其中,存储器12基于FPGA(Field-Programmable GateArray,现场可编程门阵列)的逻辑资源实现,处理器11和FPGA通过处理器11的系统总线14连接。
其中,在本实施例中,FPGA内部的逻辑资源主要包括LCB(Logical ControlBlock,逻辑控制区块)(包括显示查找表、加法器、寄存器、多路选择器)、时钟网络资源、时钟处理单元、块随机存储器(Block RAM)、DSP核和接口资源。
在本实施例中,存储器12中可以预先存入数据和指令,以便读取。模式选择器13连接处理器11和存储器12,并用于接收外部控制信号,以实现存储器12工作模式的切换,在存储器12工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器12工作在处理器模式时,作为处理器的指令存储器。
结合图2,图2是本申请提供的片上系统的第二结构示意图,该片上系统10包括处理器11、存储器12和模式选择器13,其中,存储器12基于FPGA的逻辑资源实现,处理器11和FPGA通过处理器11的系统总线14连接。
其中,处理器11包括处理器内核11a,FPGA(未标示)包括FPGA内核15和存储器12;模式选择器13包括控制信号端口13a、输入端口13b和输出端口13c。其中,控制信号端口13a用于接收外部控制信号,输入端口13b连接处理器内核11a和FPGA内核15,输出端口13c连接存储器12。
其中,模式选择器13用于接收外部控制信号,以实现存储器12工作模式的切换,在存储器12工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器12工作在处理器模式时,作为处理器11的指令存储器。
在本实施例中,存储器12中可以同时存储有数据和指令,其中该数据为FPGA中的数据,指令为处理器11可读取的指令。可选地,存储器12可以对其中的存储地址进行划分,将数据和指令分别存储于两个地址段中。
可选地,模式选择器13通过控制信号端口13a接收到第一控制信号,切换至FPGA模式,存储器12作为FPGA中的数据存储器。进一步,在此种模式下,处理器11不能从存储器12中读取指令。
可选地,模式选择器13通过控制信号端口13a接收到第二控制信号,切换至处理器模式,存储器12作为处理器的指令存储器。进一步,在此种模式下,不能从存储器12中读取FPGA数据。
可选地,上述的第一控制信号和第二控制信号可以根据电平高低来区分,例如第一控制信号采用高电平(比特1),第二控制信号采用低电平(比特0)。
区别于现有技术,本实施例提供的片上系统包括:处理器;存储器,基于FPGA的逻辑资源实现;模式选择器,连接处理器和存储器,并用于接收外部控制信号,以实现存储器工作模式的切换,在存储器工作在FPGA模式时,作为FPGA片内的数据存储器,在存储器工作在处理器模式时,作为处理器的指令存储器。通过上述方式,利用FPGA可编程的特点实现存储器,可分时将该存储器作为FPGA的数据存储器或者处理器的指令存储器,提高了片上系统的资源共享和复用;并可通过外部的控制指令来动态调整存储器的工作模式,具有良好的扩展性和易用性;并且一个存储器的设计可以降低片上系统的设计复杂度,便于研发人员开发。
参阅图3,图3是本申请提供的存储器的结构示意图,该存储器12包括系统总线接口121、控制器122和功能接口模块123。
其中,系统总线接口121连接处理器的系统总线,用于建立与处理器之间的通信连接;功能接口模块123连接系统总线接口121,用于与系统总线接口121进行交互,并用于对数据和指令进行存储;控制器122连接系统总线接口121和功能接口模块123,用于根据系统总线接口从处理器接收的地址对相应的功能接口模块123中的指令进行读取或控制。
具体地,系统总线接口121用于将处理器通过系统总线发送的存储地址信号,映射成对应的功能接口模块的一个端口的寄存器地址信号,建立处理器与功能接口模块123的通信连接;功能接口模块123根据存储地址信号在对应的存储空间进行数据或指令的读取。
具体地,系统总线接口121中可以包括一地址译码器,用于译码处理器内核指令存储器地址空间,分析控制器122中的寄存器组地址深度,在处理器内核指令存储器地址空间映射寄存器组,实现处理器内核与存储器的访问交互。处理器内核与存储器连接后,系统总线接口121分析处理器内核的地址信号,在存储器合适的地址位置取指,完成指令读取。
结合图4,图4是本申请提供的控制器和功能接口模块的连接示意图,其中控制器122包括控制模块以及和该控制模块连接的控制寄存器、状态寄存器、地址寄存器、读指令寄存器和使能寄存器;功能接口模块123包括时钟端口、复位端口、控制端口、状态端口、地址端口、读指令端口和使能端口。
可理解地,控制模块可由组合逻辑电路实现,组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。可选地,在一实施例中,多个寄存器可以分别对应一个控制模块,在另一实施例中,多个寄存器可以对应同一个控制模块。
其中,控制寄存器、状态寄存器、地址寄存器、读指令寄存器和使能寄存器分别连接控制端口、状态端口、地址端口、读指令端口和使能端口。
其中,时钟端口和复位端口连接系统总线接口121,以分别接收时钟信号和复位信号。
其中,控制模块连接系统总线接口,每一寄存器分别连接控制模块和功能接口模块的一个端口,控制模块用于根据处理器通过系统总线发送的寄存器地址对相应的寄存器进行操作。
再结合图5,图5是本申请提供的功能接口模块的结构示意图,该功能接口模块123包括存储器接口123a和存储器功能模块123b,存储器接口123a连接控制器122和系统总线接口121,用于与控制器122和系统总线接口121进行数据通信;具体地,该存储器接口123a具有上述的端口(时钟端口、复位端口、控制端口、状态端口、地址端口、读指令端口和使能端口)。存储器功能模块123b连接存储器接口123a,用于对数据或指令进行存储。
本实施例提供的存储器基于FPGA的逻辑资源实现,并连接外部处理器和模式选择器,存储器包括:系统总线接口,连接处理器的系统总线,用于建立与处理器之间的通信连接;功能接口模块,连接系统总线接口,用于与系统总线接口进行交互,并用于对数据和指令进行存储;控制器,连接系统总线接口和功能接口模块,用于根据系统总线接口从处理器接收的地址对相应的功能接口模块中的指令进行读取或控制。通过上述方式,利用FPGA可编程的特点实现存储器,可分时将该存储器作为FPGA的数据存储器或者处理器的指令存储器,提高了片上系统的资源共享和复用;并可通过外部的控制指令来动态调整存储器的工作模式,具有良好的扩展性和易用性;并且一个存储器的设计可以降低片上系统的设计复杂度,便于研发人员开发。
在上述的几个实施例中,其中的处理器可以是MCU(Microcontroller Unit,微控制单元),其中的存储器可以是只读存储器(ROM,Read-Only Memory),ROM是一种只能读出事先所存数据的固态半导体存储器,在工作过程中只能读出,不能改写。ROM的特点是所存数据稳定,断电后所存数据不会改变,结构简单,读出方便,常用于存储各种固定程序和数据。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是根据本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。