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

芯片多实例模块初始化系统

文献发布时间:2024-04-18 19:56:50


芯片多实例模块初始化系统

技术领域

本发明涉及芯片初始化技术领域,尤其涉及一种芯片多实例模块初始化系统。

背景技术

芯片在流片之后,需要基于预先编写好的启动代码(Boot Code)对芯片进行初始化。启动代码固化在只读存储器(ROM)中,主要用于芯片启动时做初始化配置。芯片中通常包括多实例模块,多个实例模块的硬件电路相同,需要初始化的信息可能相同,也可能不同。例如芯片中的时钟模块,现有的启动代码中,在芯片初始化过程中,当对多个相同的时钟模块做相同的初始化配置,需要对每一个模块编写对应的初始化代码,对于多个相同初始化配置的模块,需要重复编写多份相同的代码,使得启动代码冗余,降低了芯片初始化效率。此外,启动代码固化好之后,在初始化配置的过程中是无法更改的,但是,根据不同应用需求,一些参数是需要改变的,由于芯片规模巨大,结构复杂,很多情况下,芯片的初始化还需要满足顺序处理等复杂逻辑需求,现有的芯片初始化操作无法直接满足复杂逻辑需求。由此可知,如何提高芯片多实例模块初始化效率成为亟待解决的技术问题。

发明内容

本发明目的在于,提供一种芯片多实例模块初始化系统,能够简化实例模块的初始化启动代码,以及满足顺序处理等复杂逻辑需求,提高了芯片初始化效率。

根据本发明一方面,提供了一种芯片多实例模块初始化系统,包括启动代码、存储器和地址映射表,其中,所述存储器用于存储配置信息,所述配置信息按照预设的初始化执行顺序排序;

芯片包括N个实例化模块{W

所述启动代码包括N个实例化模块对应的循环代码,所述循环代码能够访问所述存储器,所述循环代码设置为从n=1开始执行,从循环代码中获取逻辑起始地址,基于n值和逻辑起始地址确定对应的物理起始地址,基于对应的物理起始地址从所述存储器中获取对应的配置信息执行,执行完成后,判断n是否等于N,若不等于N,则设置n=n+1,重新执行所述循环代码,直至基于n=N执行完毕所述循环代码。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种芯片多实例模块初始化系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:

本发明通过在启动代码中设置循环代码、结合地址映射表和存储器,能够简化实例模块的初始化启动代码,以及满足顺序处理等复杂逻辑需求,提高了芯片初始化效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的芯片多实例模块初始化系统示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种芯片多实例模块初始化系统,包括启动代码、存储器和地址映射表(Address Map),其中,所述存储器为芯片外接存储器或芯片内置存储器,所述存储器用于存储配置信息,所述配置信息按照预设的初始化执行顺序排序,以满足顺序处理等复杂逻辑需求。所述存储器为非易失且可编程存储器,可以实现掉电保存,以及可以进行一次或多次编程。所述存储器具体可以为fuse存储器、SPI flash存储器以及一次可编程存储器(one time programmable,简称OTP)等。fuse存储器、SPI flash存储器以及一次可编程存储器均为现有的存储器,在此不再赘述。

芯片包括N个实例化模块{W

如果为每一个实例化模块分别设置对应的启动代码,而其中一些初始化配置完全相同的实例化模块,也都分别设置了对应的启动代码,会导致启动代码冗余,降低初始化效率,基于此,作为一种实施例,所述启动代码包括N个实例化模块对应的循环代码,所述循环代码能够访问所述存储器,所述循环代码设置为从n=1开始执行,从循环代码中获取逻辑起始地址,基于n值和逻辑起始地址确定对应的物理起始地址,基于对应的物理起始地址从所述存储器中获取对应的配置信息执行,执行完成后,判断n是否等于N,若不等于N,则设置n=n+1,重新执行所述循环代码,直至基于n=N执行完毕所述循环代码。通过设置循环代码,可以把N份代码缩减为一份,极大缩小了启动代码的篇幅,避免了启动代码冗余,且通过设置地址映射表,能够使得初始化信息不同的实例化模块在共用相同的循环代码的前提下,快速准确地确定配置信息对应的物理地址。

作为一种实施例,所述地址映射表中,N个实例化模块对应的逻辑起始地址均相同,初始化配置相同的实例化模块对应的物理起始地址相同,初始化配置不同的实例化模块对应的物理起始地址不同。循环代码中始终仅呈现一个相同的逻辑起始地址,根据n值的变化,通过地址映射表确定每一实例化模块对应的物理起始地址。

作为一种实施例,所述存储器包括第一存储区域和第二存储区域,所述第一存储区用于存储M个一级配置信息{P

作为一种实施例,所述循环代码基于n值和逻辑起始地址确定对应的物理起始地址,再基于物理起始地址和一级配置信息确定有效标识信息,若有效,则基于对应的物理起始地址从所述存储器中获取对应的配置信息执行,否则,直接判断n是否等于N,若不等于N,则设置n=n+1,重新执行所述循环代码,直至基于n=N执行完毕所述循环代码。即当某一二级信息不需要配置时,直接在一级信息中将有效标识信息设置为无效,无需再在第二存储区域中设置对应的二级配置信息,节省存储器空间,提高芯片初始化效率。

所述二级配置信息包括轮询(Poll)配置信息、延时(Delay)配置信息、跳转配置信息和连续写配置信息。在芯片初始化过程中,实现轮询、延时、跳转以及连续写配置等复杂流程。

作为一种实施例,所述轮询配置信息基于轮询配置数据结构生成,所述轮询配置数据结构包括轮询操作码数据段、轮询地址数据段、轮询起始位数据段、轮询终止位数据段、轮询结束条件数据段。需要说明的是,轮询操作码数据段用于存储轮询操作码,轮询地址数据段用于存储芯片内部寄存器芯片内部寄存器需要轮询的地址信息,轮询起始位数据段、轮询终止位数据段用于存储寄存器需要读取的地址中的轮询起始位和轮询终止位,即可以寄存器某一地址仅对寄存器某一地址的中的部分位进行轮询操作,且不同配置信息可以选择不同长度的位,极大增加了配置的灵活性。当所述启动代码获取轮询配置信息执行时,根据轮询地址数据段确定芯片内部寄存器中对应的待轮询地址,根据轮询起始位数据段、轮询终止位数据段确定待轮询地址对应的目标轮询区域,读取目标轮询区域中的数据,判断读取的数据是否满足对应的轮询结束条件,若满足,则继续执行所述循环代码,否则,继续读取目标轮询区域中的数据,直至读取的数据满足对应的轮询结束条件,从而实现了芯片初始过程中的轮询操作,以及满足芯片初始化的复杂逻辑需求。

作为一种实施例,所述延时配置信息基于延时配置数据结构生成,所述延时配置数据结构包括延时操作码数据段、延时时间数据段,延时操作码数据段用于存储延时操作码,所述延时时间数据段用于根据具体延时需求设置需要延时的时间。当所述循环代码获取延时配置信息执行时,暂停执行对应的延时时间,然后继续执行所述循环代码,实现对应的延时需求。作为一种实施例,所述跳转配置信息基于跳转配置数据结构生成,跳转配置数据结构包括跳转操作码数据段、读地址数据段、读起始位数据段、读终止位数据段、跳转条件数据段和跳转配置信息数量数据段。跳转操作码数据段用于存储跳转操作码,读地址数据段用于存储芯片内部寄存器芯片内部寄存器需要读取的地址信息,读起始位数据段、读终止位数据段用于存储寄存器需要读取的地址中的读起始位和读终止位,跳转配置信息数量数据段用于配置跳转信息,实现配置信息跳转操作。当所述循环代码获取跳转配置信息执行时,根据读地址数据段确定芯片内部寄存器中对应的待读取地址,根据读起始位数据段、读终止位数据段确定所述待读取地址对应的目标读取区域,读取目标读取区域中的数据,判断读取的数据是否满足跳转条件数据段,若满足,则根据跳转配置信息数量跳转至对应的配置信息继续执行,否则,继续执行下一条配置信息。

作为一种实施例,所述连续写配置信息基于连续写配置信息数据结构生成,所述连续写配置信息数据结构包括连续写操作码数据段、写地址数据段、写起始位数据段、写中止位数据段、连续写入数据序列。连续写操作码数据段用于存储连续写操作码,写地址数据段用于存储芯片内部寄存器芯片内部寄存器需要写入的地址信息,写起始位数据段、写终止位数据段用于存储寄存器需要写入的地址中的写起始位和写终止位,即可以仅对寄存器某一地址的中的部分位进行连续写入操作,且不同配置信息可以选择不同长度的位,极大增加了写配置的灵活性。当所述循环代码获取连续写配置信息执行时,根据写地址数据段确定芯片内部寄存器中对应的待写入地址,根据写起始位数据段、写中止位数据段确定所述待写入地址对应的目标写入区域,依次将连续写入数据序列的数据逐个写入所述目标写入区域中。需要说明的是,连续写入数据序列中包含了多个需要写入的数据,因此启动代码需要按照数据序列中的顺序执行数据序列中对应写入数据的数量的写入操作。

作为上述实施例的变形,连续写配置信息还可以设置为支持地址自增的形式,即将数据序列中的数据写到不同的寄存器中,例如addr,addr+4,addr+8。相应地,也可以通过设置连续读配置信息实现连续读操作,地址可以设置为自增或不自增。连续写也可以设置为按照读取序号连续写,根据每一具体应用场景,设置对应的配置信息即可,不再一一展开描述。

除了上述初始化配置之外,所述启动代码包括至少一个用于存储读数据的变量或者至少一个数组,所述二级配置信息还可以为读配置信息,

所述读配置信息基于预设的读配置数据结构生成,所述预设的读配置数据结构包括读操作码数据段、读地址数据段、读起始位数据段、读终止位数据段和目标存放位置数据段,所述目标存放位置为目标变量或目标数组。可以理解的是,读操作码数据段用于存储读操作码,读地址数据段用于存储芯片内部寄存器需要读取的地址信息,读起始位数据段、读终止位数据段用于存储寄存器需要读取的地址中的读起始位和读终止位,即本申请不仅可以在芯片初始化过程中实现读操作,还可以对寄存器中的部分位进行读操作,且不同配置信息可以选择不同长度的位,极大增加了配置的灵活性。

当所述启动代码获取读配置信息执行时,根据读地址数据段确定芯片内部寄存器中对应的待读取地址,根据读起始位数据段、读终止位数据段确定所述待读取地址对应的目标读取区域,读取目标读取区域中的数据,确定读取序号。若目标存放位置数据段为目标变量,则根据目标变量将读取的数据和对应的读取序号存储至所述启动代码对应的变量中。若目标存放位置数据段为目标数组,则根据读取序号和目标数组中数据位的对应关系,将读取的数据存储至目标数组对应的数据位中。将所读取的数据按序号存储至启动代码对应的变量或目标数组中,供后续写入操作使用,提高了读配置的灵活性。

作为上述示例的变形,所述预设的读配置数据结构可以不设置目标存放位置数据段,预先在启动代码中定义一个数组,然后根据读操作的顺序依次将读取的数据存放在数组中,供后续写操作使用。

所述二级配置信息还可以为第一写配置信息,第一写配置信息基于第一写配置数据结构生成,所述第一写配置数据结构包括第一写操作码数据段、写地址数据段、写起始位数据段、写终止位数据段、数据序号。其中,第一写操作码数据段用于存储第一写操作码,写地址数据段用于存储芯片内部寄存器芯片内部寄存器需要写入的地址信息,写起始位数据段、写终止位数据段用于存储寄存器需要写入的地址中的写起始位和写终止位,即可以寄存器某一地址仅对寄存器某一地址的中的部分位进行写入操作,且不同配置信息可以选择不同长度的位,极大增加了写配置的灵活性。数据序号用于存储需要写入数据对应的序号。需要说明的是,需要写入数据的位数和写起始位数至写终止位之间的位数相等。需要说明的是,写配置信息中的数据序号不一定按照读取序号的顺序设置,可以是乱序的,对于同一个读取序号也可以多次使用。当所述启动代码获取写配置信息执行时,根据写地址数据段确定芯片内部寄存器中对应的待写入地址,根据写起始位数据段、写终止位数据段确定所述待写入地址对应的目标写入区域,根据数据序号从所述启动代码的变量中获取对应的数据,作为目标写入数据,将所述目标写入数据写入所述目标写入区域中。需要说明的是,现有技术中,在芯片初始化过程中,只能在存储器中配置好需要写入的数据,无法通过读取芯片存储器中的数据,再写入芯片其他存储器中,本发明能够先将芯片内部寄存器中的数据读取出来,再将读取出的数据写入芯片其他内部寄存器中,能够满足芯片初始化过程中的复杂逻辑需求。

所述二级配置信息还可以为第二写配置信息,基于第二写配置数据结构生成,所述第二写配置数据结构包括第二写操作码数据段、写地址数据段、写起始位数据段、写终止位数据段,目标数据数据段。其中,第二写操作码数据段用于存储第二写操作码,写地址数据段用于存储芯片内部寄存器芯片内部寄存器需要写入的地址信息,写起始位数据段、写终止位数据段用于存储寄存器需要写入的地址中的写起始位和写终止位,即可以寄存器某一地址仅对寄存器某一地址的中的部分位进行写入操作,且不同配置信息可以选择不同长度的位,极大增加了写配置的灵活性。目标数据数据段用于存储预先设置好的需要写入的数据。当所述启动代码获取写配置信息执行时,根据写地址数据段确定芯片内部寄存器中对应的待写入地址,根据写起始位数据段、写终止位数据段确定所述待写入地址对应的目标写入区域,将所述目标数据写入所述目标写入区域中。

由此可知,所述系统既支持从芯片内部寄存器中读取数据写入芯片内部寄存器中,也支持设置数据写入芯片存储器中,且可以对寄存器某一地址的中的部分位进行写入操作,也可以对寄存器某一地址的中的整体位进行写入操作,极大提高了芯片初始化的灵活性。

本发明实施例通过在启动代码中设置循环代码、结合地址映射表和存储器,能够简化实例模块的初始化启动代码,以及满足顺序处理等复杂逻辑需求,提高了芯片初始化效率。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 保护定值的初始化方法及系统、阀控装置、功率模块
  • 芯片初始化方法及其芯片初始化系统
  • 程序模块的初始化方法、系统、设备、介质及芯片
技术分类

06120116437726