CN115408066A - 一种芯片的初始化方法、系统、芯片及可读存储介质 - Google Patents
一种芯片的初始化方法、系统、芯片及可读存储介质 Download PDFInfo
- Publication number
- CN115408066A CN115408066A CN202211038999.XA CN202211038999A CN115408066A CN 115408066 A CN115408066 A CN 115408066A CN 202211038999 A CN202211038999 A CN 202211038999A CN 115408066 A CN115408066 A CN 115408066A
- Authority
- CN
- China
- Prior art keywords
- trimming
- target
- data
- test
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种芯片的初始化方法、系统、芯片及可读存储介质,初始化方法包括:获取模式选择信号;根据模式选择信号执行芯片初始化策略;测试初始化策略包括:依次将多个预设的测试修调数据由外部写入修调寄存模块中;根据每个测试修调数据对待修调模块进行修调,一一对应得到多个修调结果;根据多个修调结果从多个测试修调数据中选取目标修调数据;通过处理单元将目标修调数据写入存储单元中;非测试初始化策略包括:通过数据加载电路将目标修调数据从存储单元读取到修调寄存模块中;根据目标修调数据对待修调模块进行修调。本发明实施例的初始化方法能够提高系统的稳定性,减轻CPU的运行负荷。
Description
技术领域
本发明涉及电子相关技术领域,尤其是涉及一种芯片的初始化方法、系统、芯片及可读存储介质。
背景技术
在系统级芯片(System On Chip,简称SOC)设计中,由于工艺参数或者环境的影响,部分器件(比如振荡器(OSC)、锁相环(PLL)、数模转换器(ADC)等)会引入一种修调的方式来改善流片后的性能,即在芯片使用时将修调值加载到相关寄存器,从而对待修调模块进行修调。相关寄存器的加载是芯片初始化的一个重要部分。
现有的芯片初始化方法是通过软件去实现,软件是通过指令的方式来驱动硬件去执行相应的操作,指令的运行都需要经过取指令,指令译码,指令执行,一条简单的寄存器加载指令也会占用较大的CPU开销。而且在一些工艺偏差比较大的情况下,一些重要的待修调模块(如OSC、PLL等)的初始化执行越复杂,芯片的时钟可能会越不稳定,系统可能在取指、译码阶段就会跑入非法状态,对系统的运行来说会有一定的风险。另外,芯片初始化如果全部由硬件完成,芯片的面积会增大,加大了芯片开发的成本。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种芯片的初始化方法,能够提高系统的稳定性,减轻CPU的运行负荷。
本发明还提供了一种芯片的初始化系统、一种芯片以及计算机可读存储介质。
根据本发明的第一方面实施例的芯片的初始化方法,所述芯片包括待修调模块、修调寄存模块、存储单元、处理单元和数据加载电路;所述初始化方法包括以下步骤:
获取模式选择信号;
根据所述模式选择信号执行芯片初始化策略,所述芯片初始化策略包括测试初始化策略和非测试初始化策略;
其中,所述测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入所述修调寄存模块中;根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果;根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据;通过所述处理单元将所述目标修调数据写入所述存储单元中;
所述非测试初始化策略包括以下步骤:通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中;根据所述目标修调数据对所述待修调模块进行修调。
根据本发明实施例的初始化方法,至少具有如下有益效果:
通过获取模式选择信号,可以得知芯片是否为测试阶段,若模式选择信号表征芯片为测试阶段,则执行测试初始化策略,依次将多个预设的测试修调数据由外部写入修调寄存模块中,根据每个测试修调数据对待修调模块进行修调,并从多个测试修调数据中选取目标修调数据,然后通过处理单元将目标修调数据写入存储单元中。若模式选择信号表征芯片为非测试阶段,则执行非测试初始化策略,直接通过数据加载电路将目标修调数据从存储单元读取到修调寄存模块中,根据目标修调数据对待修调模块进行修调。利用数据加载电路加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的初始化方法采用软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
根据本发明的一些实施例,所述通过所述处理单元将所述目标修调数据写入所述存储单元中,包括以下步骤:
获取所述存储单元中预设的目标地址区域;
通过所述处理单元将所述目标修调数据写入至所述目标地址区域。
根据本发明的一些实施例,所述数据加载电路包括复位信号检测电路、地址存储器和读使能电路,所述读使能电路分别与所述复位信号检测电路和所述地址存储器连接;
所述通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中,包括以下步骤:
获取所述存储单元中预设的目标地址区域;
将所述目标地址区域的地址信息读取到所述地址存储器中;
若所述复位信号检测电路检测到所述复位信号,通过所述读使能电路根据所述地址信息将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中,以使得根据所述目标修调数据对所述待修调模块进行修调。
根据本发明的一些实施例,所述通过所述读使能电路根据所述地址信息将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中,包括以下步骤:
通过所述读使能电路根据所述地址信息生成读使能控制信号;
将所述读使能控制信号发送至所述存储单元,以将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中。
根据本发明的一些实施例,所述根据所述模式选择信号执行芯片初始化策略,包括以下步骤:
若所述模式选择信号表征所述芯片为测试阶段,执行所述测试初始化策略;
若所述模式选择信号表征所述芯片为非测试阶段,执行所述非测试初始化策略。
根据本发明的第二方面实施例的芯片的初始化系统,包括:
模式选择信号获取单元,用于获取模式选择信号;
芯片初始化策略执行单元,用于根据所述模式选择信号执行芯片初始化策略,所述芯片初始化策略包括测试初始化策略和非测试初始化策略;其中,所述测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入所述修调寄存模块中,根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果,根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据,通过所述处理单元将所述目标修调数据写入所述存储单元中;所述非测试初始化策略包括以下步骤:通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中,根据所述目标修调数据对所述待修调模块进行修调。
根据本发明实施例的初始化系统,至少具有如下有益效果:
通过模式选择信号获取单元获取模式选择信号,可以得知芯片是否为测试阶段,然后通过芯片初始化策略执行单元根据模式选择信号选择执行测试初始化策略或非测试初始化策略。若模式选择信号表征芯片为测试阶段,则执行测试初始化策略,依次将多个预设的测试修调数据由外部写入修调寄存模块中,根据每个测试修调数据对待修调模块进行修调,并从多个测试修调数据中选取目标修调数据,然后通过处理单元将目标修调数据写入存储单元中。若模式选择信号表征芯片为非测试阶段,则执行非测试初始化策略,直接通过数据加载电路将目标修调数据从存储单元读取到修调寄存模块中,根据目标修调数据对待修调模块进行修调。利用数据加载电路加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的初始化系统采用软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
根据本发明的第三方面实施例的芯片,包括:
待修调模块;
修调寄存模块,与所述待修调模块连接;
存储单元;
选择器,具有第一选择端、第二选择端、输出端和控制端,所述第一选择端用于依次输入由外部写入的多个预设的测试修调数据,所述输出端与所述修调寄存模块连接;
处理单元,用于获取模式选择信号并将所述模式选择信号输出至所述控制端,以及根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果,根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据,并将所述目标修调数据写入所述存储单元中;
数据加载电路,分别与所述第二选择端和所述处理单元连接,所述数据加载电路用于将所述目标修调数据从所述存储单元读取至所述第二选择端,以将所述目标修调数据传输至所述修调寄存模块,从而根据所述目标修调数据对所述待修调模块进行修调。
根据本发明实施例的芯片,至少具有如下有益效果:
通过处理单元可以获取模式选择信号,得知芯片是否为测试阶段,若模式选择信号表征芯片为测试阶段,则通过选择器的第一选择端依次将多个预设的测试修调数据由外部写入修调寄存模块中,并根据每个测试修调数据对待修调模块进行修调,从多个测试修调数据中选取目标修调数据,然后通过处理单元将目标修调数据写入存储单元中。若模式选择信号表征芯片为非测试阶段,则直接通过数据加载电路将目标修调数据从存储单元读取到选择器的第二选择端,从而输出到修调寄存模块中,最终根据目标修调数据对待修调模块进行修调。利用数据加载电路加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的芯片通过软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
根据本发明的一些实施例,所述存储单元包括目标地址区域,所述目标地址区域用于存储所述目标修调数据;所述数据加载电路包括:
复位信号检测电路,用于检测复位信号;
地址存储器,用于存储所述目标地址区域的地址信息;
读使能电路,用于在所述复位信号检测电路检测到所述复位信号后,根据所述地址信息将所述目标修调数据从所述目标地址区域中读取至所述第二选择端,以将所述目标修调数据传输至所述修调寄存模块,从而根据所述目标修调数据对所述待修调模块进行修调。
根据本发明的一些实施例,所述修调寄存模块包括多个修调寄存器,多个所述修调寄存器共同用于提高所述待修调模块的修调精度。
根据本发明的第四方面实施例的计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面实施例所述的初始化方法。由于计算机可读存储介质采用了上述实施例的初始化方法的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的芯片的电气原理图;
图2是本发明实施例的初始化方法的流程图。
附图标记:
待修调模块100;
修调寄存模块200;
存储单元300;
选择器400;
处理单元500;
数据加载电路600。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,如果有描述到第一、第二等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
本发明的描述中,需要说明的是,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
为了更好地说明清楚本发明实施例的初始化方法,首先对修调的概念进行简单解释。
例如,芯片中内嵌FLASH闪存一个0.8V的电压基准,这个电压基准对应的是一个3比特的寄存器,芯片上电后寄存器默认值000对应的是0.8V,但是由于制造工艺的偏差,芯片上电后默认值000对应的不是0.8V电压,而是在0.8V上下有偏差,所以我们就需要对其对应的寄存器重新配置来完成修调,以使得电压基准值为0.8V。需要说明的是,上述具体参数仅用于举例说明,不能看作是对本发明的限定。
本发明实施例提供了一种芯片,包括待修调模块100、修调寄存模块200、存储单元300、选择器400、处理单元500和数据加载电路600。修调寄存模块200,与待修调模块100连接;选择器400,具有第一选择端、第二选择端、输出端和控制端,第一选择端用于依次输入由外部写入的多个预设的测试修调数据,输出端与修调寄存模块200连接;处理单元500,用于获取模式选择信号并将模式选择信号输出至控制端,以及根据每个测试修调数据对待修调模块100进行修调,一一对应得到多个修调结果,根据多个修调结果从多个测试修调数据中选取目标修调数据,并将目标修调数据写入存储单元300中;数据加载电路600,分别与第二选择端和处理单元500连接,数据加载电路600用于将目标修调数据从存储单元300读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。
下面将结合图1和图2对本发明实施例的初始化方法进行清楚、完整的描述,显然,以下所描述的实施例是本发明一部分实施例,并非全部实施例。
根据本发明的第一方面实施例的初始化方法,芯片包括待修调模块100、修调寄存模块200、存储单元300、处理单元500和数据加载电路600;初始化方法包括以下步骤:
获取模式选择信号;
根据模式选择信号执行芯片初始化策略,芯片初始化策略包括测试初始化策略和非测试初始化策略;
其中,测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入修调寄存模块200中;根据每个测试修调数据对待修调模块100进行修调,一一对应得到多个修调结果;根据多个修调结果从多个测试修调数据中选取目标修调数据;通过处理单元500将目标修调数据写入存储单元300中;
非测试初始化策略包括以下步骤:通过数据加载电路600将目标修调数据从存储单元300读取到修调寄存模块200中;根据目标修调数据对待修调模块100进行修调。
存储单元300为FLASH闪存,可以对称为块的存储器单元块进行擦写和再编程,且在没有电流供应的条件下能够长久地保持数据。FLASH闪存包括两种类型的区域,一个是主区(main array),用作程序空间使用,另一个是非易失寄存器区域(Non-volatileRegister,NVR),用来记录一些反复使用的寄存器数据。FLASH闪存上有多个接口,皆用于对FLASH闪存进行使能操作。在测试阶段将目标修调数据存储在FLASH闪存中的非易失寄存器区域中,可以实现芯片在非测试阶段直接将存储在FLASH闪存中的目标修调数据加载至修调寄存模块200中,以使得根据目标修调数据对待修调模块100进行修调。需要说明的是,存储单元300还可以采用其他可以实现同样功能的存储器件,不能看作是对本发明的限定。
选择器400具有第一选择端、第二选择端、输出端和控制端,其中,控制端用于接收模式选择信号,用来选择芯片是否是测试阶段。模式选择信号为高低电平形式,模式选择信号为高电平时,表征芯片为测试阶段,选择器400会选择外部IO(第一选择端)对修调寄存模块200直接串行写入,通过遍历一遍所有的测试修调数据,然后从其中选择最合适的作为目标修调数据,并且将目标修调数据记录在约定的FLASH闪存的非易失寄存器区域。模式选择信号为低电平时,表征芯片为非测试阶段,选择器400会选择从数据加载电路600(第二选择端)输出的目标修调数据来写入修调寄存模块200,以根据目标修调数据对待修调模块100进行修调。需要说明的是,也可以模式选择信号为高电平时,表征芯片为非测试阶段,模式选择信号为低电平时,表征芯片为测试阶段。模式选择信号也可以采用其他形式,只要能区分两种状态即可,不能看作是对发明的限定。
数据加载电路600包括复位信号检测电路、地址存储器、读使能电路。复位信号检测电路,用于检测芯片的复位信号;地址存储器,用于存储目标地址区域的地址信息,其中,目标地址区域为约定的FLASH闪存的非易失寄存器区域,用于存储目标修调数据;读使能电路,用于在复位信号检测电路检测到复位信号后,根据地址信息将目标修调数据从目标地址区域中读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。芯片每次复位释放后,读使能电路都会完成一次目标地址区域的读操作,从而将目标地址区域内的目标修调数据读取至第二选择端。数据加载电路600还包括时钟电路,目标修调数据的加载过程可以在一个时钟周期内完成,提高了系统的稳定性。
需要说明的是,若待修调模块100为多个,一个待修调模块100对应一个修调寄存模块200、一个选择器400和一个数据加载电路600,多个待修调模块100可以采用同一个存储单元300也可以一一对应采用多个存储单元300,在此不作限定。
根据本发明实施例的初始化方法,通过获取模式选择信号,可以得知芯片是否为测试阶段,若模式选择信号表征芯片为测试阶段,则执行测试初始化策略,依次将多个预设的测试修调数据由外部写入修调寄存模块200中,根据每个测试修调数据对待修调模块100进行修调,并从多个测试修调数据中选取目标修调数据,然后通过处理单元500将目标修调数据写入存储单元300中。若模式选择信号表征芯片为非测试阶段,则执行非测试初始化策略,直接通过数据加载电路600将目标修调数据从存储单元300读取到修调寄存模块200中,根据目标修调数据对待修调模块100进行修调。利用数据加载电路600加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的初始化方法采用软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
在本发明的一些实施例中,参考图1,通过处理单元500将目标修调数据写入存储单元300中,包括以下步骤:
获取存储单元300中预设的目标地址区域;
通过处理单元500将目标修调数据写入至目标地址区域。
存储单元300为FLASH闪存,其中,非易失寄存器区域中一个地址对应36位数据,其中16位到19位用于记录目标修调数据。在待修调模块100的电压基准为0.8V的前提下,在测试阶段,将目标修调数据写入预设的目标地址区域,在一些实施例中,可以将目标修调数据写入地址为0x201的区域,写入的目标修调数据为0x201区域的数据的16到18位,写入的目标修调数据为011,表明基于当前的工艺参数下,待修调模块100默认输出是0.65V左右,需要增加0.15V才能达到0.8V,具体目标修调数据对应的修调档位参见表1。
表1目标修调数据对应的修调档位
000 | 初始电压(理想情况下是0.8V) |
001 | 初始电压+0.05V |
010 | 初始电压+0.1V |
011 | 初始电压+0.15V |
100 | 初始电压-0.05V |
101 | 初始电压-0.1V |
110 | 初始电压-0.15V |
111 | 初始电压-0.2V |
需要说明的是,上述提到的具体参数皆可以根据实际情况进行变化,不能看作是对本发明的限定。
在本发明的一些实施例中,参考图1,数据加载电路600包括复位信号检测电路、地址存储器和读使能电路,读使能电路分别与复位信号检测电路和地址存储器连接;通过所述数据加载电路600将目标修调数据从存储单元300读取到修调寄存模块200中,包括以下步骤:
获取存储单元300中预设的目标地址区域;
将目标地址区域的地址信息读取到地址存储器中;
若复位信号检测电路检测到复位信号,通过读使能电路根据地址信息将目标修调数据从目标地址区域中读取到修调寄存模块200中,以使得根据目标修调数据对待修调模块100进行修调。
目标地址区域为约定的FLASH闪存的非易失寄存器区域,用于存储目标修调数据。芯片每次复位释放后,读使能电路都会完成一次目标地址区域的读操作,从而将目标地址区域内的目标修调数据读取到修调寄存模块200中。数据加载电路600还包括时钟电路,目标修调数据的加载过程可以在一个时钟周期内完成,提高了系统的稳定性。目标修调数据是在复位信号检测电路检测到复位信号后立即加载的,在这之前,处理单元500没有对FLASH闪存进行额外的擦除、编程、连续读操作,这使得系统更加稳定可靠,不易出错。
在本发明的一些实施例中,参考图1,通过读使能电路根据地址信息将目标修调数据从目标地址区域中读取到修调寄存模块200中,包括以下步骤:
通过读使能电路根据地址信息生成读使能控制信号;
将读使能控制信号发送至存储单元300,以将目标修调数据从目标地址区域中读取到修调寄存模块200中。
读使能控制信号用于使能FLASH闪存的目标地址区域,高电平有效,若读使能控制信号为高电平,则将读使能控制信号发送至存储单元300,以将目标修调数据从目标地址区域中读取到修调寄存模块200中。
在本发明的一些实施例中,参考图1和图2,根据模式选择信号执行芯片初始化策略,包括以下步骤:
若模式选择信号表征芯片为测试阶段,执行测试初始化策略;
若模式选择信号表征芯片为非测试阶段,执行非测试初始化策略。
模式选择信号为高低电平形式,模式选择信号为高电平时,表征芯片为测试阶段,执行测试初始化策略,选择器400会选择外部IO(第一选择端)对修调寄存模块200直接串行写入,通过遍历一遍所有的测试修调数据,然后从其中选择最合适的作为目标修调数据,并且将目标修调数据记录在约定的FLASH闪存的非易失寄存器区域。模式选择信号为低电平时,表征芯片为非测试阶段,执行非测试初始化策略,选择器400会选择从数据加载电路600(第二选择端)输出的目标修调数据来写入修调寄存模块200,以根据目标修调数据对待修调模块100进行修调。
需要说明的是,也可以模式选择信号为高电平时,表征芯片为非测试阶段,模式选择信号为低电平时,表征芯片为测试阶段。模式选择信号也可以采用其他形式,只要能区分两种状态即可,不能看作是对发明的限定。
经过以上叙述,为了更好地体现本发明实施例的初始化方法的优势,下面通过一个具体示例进行说明,但以下提到的具体参数并不能看作是对本发明的限定。
存储单元300为FLASH闪存,FLASH闪存包括两种类型的区域,一个是主区(mainarray),用作程序空间使用,另一个是非易失寄存器区域(Non-volatile Register,NVR),用来记录一些反复使用的寄存器数据。FLASH闪存上有多个接口,皆用于对FLASH闪存进行使能操作,FLASH闪存的操作信号为高低电平形式,高电平有效,低电平无效,FLASH闪存的操作信号对应的操作包括读、擦除、编程。在对FLASH闪存进行操作前,需要先获取FLASH闪存的片选信号,片选信号为高电平有效,表示此时FLASH闪存被选中,FLASH闪存的任何操作都需要在片选信号有效的情况下进行。需要说明的是,FLASH闪存的操作信号也可以采用其他形式,只要能区分两种状态即可。操作信号也可以高电平无效,低电平有效,不能看作是对本发明的限定。
在待修调模块100的电压基准为0.8V,片选信号为高电平,地址为0x201的区域对应的操作信号为高电平(表示使能这块区域)的前提下,在测试阶段,处理单元500发送模式选择信号(此时为高电平)至选择器400,依次将多个预设的测试修调数据由外部IO写入修调寄存模块200中,根据每个测试修调数据对待修调模块100进行修调,一一对应得到多个修调结果,根据多个修调结果从多个测试修调数据中选取目标修调数据,通过处理单元500将目标修调数据写入存储单元300中地址为0x201的区域,写入的目标修调数据为0x201区域的数据的16到18位,写入的目标修调数据为011,表明基于当前的工艺参数下,待修调模块100默认输出是0.65V左右,需要增加0.15V才能达到0.8V。
在非测试阶段,处理单元500发送模式选择信号(此时为低电平)至选择器400,若复位信号检测电路检测到复位信号,则通过读使能电路生成读使能控制信号(此时为高电平),此时根据读使能控制信号将目标修调数据从地址为0x201的区域读出,并通过选择器400输出至修调寄存模块200,以使得根据目标修调数据对待修调模块100进行修调。其中,目标修调数据的加载过程在一个时钟周期内完成,且目标修调数据是在复位信号检测电路检测到复位信号后立即加载的,在这之前,处理单元500没有对FLASH闪存进行额外的擦除、编程、连续读操作,这使得系统更加稳定可靠,不易出错。
下面将结合图1和图2对本发明实施例的初始化系统进行清楚、完整的描述,显然,以下所描述的实施例是本发明一部分实施例,并非全部实施例。
根据本发明的第二方面实施例的初始化系统,包括模式选择信号获取单元和芯片初始化策略执行单元。模式选择信号获取单元,用于获取模式选择信号;芯片初始化策略执行单元,用于根据模式选择信号执行芯片初始化策略,芯片初始化策略包括测试初始化策略和非测试初始化策略;其中,测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入修调寄存模块200中,根据每个测试修调数据对待修调模块100进行修调,一一对应得到多个修调结果,根据多个修调结果从多个测试修调数据中选取目标修调数据,通过处理单元500将目标修调数据写入存储单元300中;非测试初始化策略包括以下步骤:通过数据加载电路600将目标修调数据从存储单元300读取到修调寄存模块200中,根据目标修调数据对待修调模块100进行修调。
存储单元300为FLASH闪存,可以对称为块的存储器单元块进行擦写和再编程,且在没有电流供应的条件下能够长久地保持数据。FLASH闪存包括两种类型的区域,一个是主区(main array),用作程序空间使用,另一个是非易失寄存器区域(Non-volatileRegister,NVR),用来记录一些反复使用的寄存器数据。FLASH闪存上有多个接口,皆用于对FLASH闪存进行使能操作。在测试阶段将目标修调数据存储在FLASH闪存中的非易失寄存器区域中,可以实现芯片在非测试阶段直接将存储在FLASH闪存中的目标修调数据加载至修调寄存模块200中,以使得根据目标修调数据对待修调模块100进行修调。需要说明的是,存储单元300还可以采用其他可以实现同样功能的存储器件,不能看作是对本发明的限定。
选择器400具有第一选择端、第二选择端、输出端和控制端,其中,控制端用于接收模式选择信号,用来选择芯片是否是测试阶段。模式选择信号为高低电平形式,模式选择信号为1时,表征芯片为测试阶段,选择器400会选择外部IO(第一选择端)对修调寄存模块200直接串行写入,通过遍历一遍所有的测试修调数据,然后从其中选择最合适的作为目标修调数据,并且将目标修调数据记录在约定的FLASH闪存的非易失寄存器区域。模式选择信号为0时,表征芯片为非测试阶段,选择器400会选择从数据加载电路600(第二选择端)输出的目标修调数据来写入修调寄存模块200,以根据目标修调数据对待修调模块100进行修调。需要说明的是,也可以模式选择信号为1时,表征芯片为非测试阶段,模式选择信号为0时,表征芯片为测试阶段,不能看作是对发明的限定。
数据加载电路600包括复位信号检测电路、地址存储器、读使能电路。复位信号检测电路,用于检测芯片的复位信号;地址存储器,用于存储目标地址区域的地址信息,其中,目标地址区域为约定的FLASH闪存的非易失寄存器区域,用于存储目标修调数据;读使能电路,用于在复位信号检测电路检测到复位信号后,根据地址信息将目标修调数据从目标地址区域中读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。芯片每次复位释放后,读使能电路都会完成一次目标地址区域的读操作,从而将目标地址区域内的目标修调数据读取至第二选择端。数据加载电路600还包括时钟电路,目标修调数据的加载过程可以在一个时钟周期内完成,提高了系统的稳定性。
根据本发明实施例的初始化系统,通过模式选择信号获取单元获取模式选择信号,可以得知芯片是否为测试阶段,然后通过芯片初始化策略执行单元根据模式选择信号选择执行测试初始化策略或非测试初始化策略。若模式选择信号表征芯片为测试阶段,则执行测试初始化策略,依次将多个预设的测试修调数据由外部写入修调寄存模块200中,根据每个测试修调数据对待修调模块100进行修调,并从多个测试修调数据中选取目标修调数据,然后通过处理单元500将目标修调数据写入存储单元300中。若模式选择信号表征芯片为非测试阶段,则执行非测试初始化策略,直接通过数据加载电路600将目标修调数据从存储单元300读取到修调寄存模块200中,根据目标修调数据对待修调模块100进行修调。利用数据加载电路600加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的初始化系统采用软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
下面将结合图1和图2对本发明实施例的芯片进行清楚、完整的描述,显然,以下所描述的实施例是本发明一部分实施例,并非全部实施例。
根据本发明的第三方面实施例的芯片,包括待修调模块100、修调寄存模块200、存储单元300、选择器400、处理单元500和数据加载电路600。修调寄存模块200,与待修调模块100连接;选择器400,具有第一选择端、第二选择端、输出端和控制端,第一选择端用于依次输入由外部写入的多个预设的测试修调数据,输出端与修调寄存模块200连接;处理单元500,用于获取模式选择信号并将模式选择信号输出至控制端,以及根据每个测试修调数据对待修调模块100进行修调,一一对应得到多个修调结果,根据多个修调结果从多个测试修调数据中选取目标修调数据,并将目标修调数据写入存储单元300中;数据加载电路600,分别与第二选择端和处理单元500连接,数据加载电路600用于将目标修调数据从存储单元300读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。
存储单元300为FLASH闪存,可以对称为块的存储器单元块进行擦写和再编程,且在没有电流供应的条件下能够长久地保持数据。FLASH闪存包括两种类型的区域,一个是主区(main array),用作程序空间使用,另一个是非易失寄存器区域(Non-volatileRegister,NVR),用来记录一些反复使用的寄存器数据。FLASH闪存上有多个接口,皆用于对FLASH闪存进行使能操作。在测试阶段将目标修调数据存储在FLASH闪存中的非易失寄存器区域中,可以实现芯片在非测试阶段直接将存储在FLASH闪存中的目标修调数据加载至修调寄存模块200中,以使得根据目标修调数据对待修调模块100进行修调。需要说明的是,存储单元300还可以采用其他可以实现同样功能的存储器件,不能看作是对本发明的限定。
选择器400具有第一选择端、第二选择端、输出端和控制端,其中,控制端用于接收模式选择信号,用来选择芯片是否是测试阶段。模式选择信号为高低电平形式,模式选择信号为1时,表征芯片为测试阶段,选择器400会选择外部IO(第一选择端)对修调寄存模块200直接串行写入,通过遍历一遍所有的测试修调数据,然后从其中选择最合适的作为目标修调数据,并且将目标修调数据记录在约定的FLASH闪存的非易失寄存器区域。模式选择信号为0时,表征芯片为非测试阶段,选择器400会选择从数据加载电路600(第二选择端)输出的目标修调数据来写入修调寄存模块200,以根据目标修调数据对待修调模块100进行修调。需要说明的是,也可以模式选择信号为1时,表征芯片为非测试阶段,模式选择信号为0时,表征芯片为测试阶段,不能看作是对发明的限定。
数据加载电路600包括复位信号检测电路、地址存储器、读使能电路。复位信号检测电路,用于检测芯片的复位信号;地址存储器,用于存储目标地址区域的地址信息,其中,目标地址区域为约定的FLASH闪存的非易失寄存器区域,用于存储目标修调数据;读使能电路,用于在复位信号检测电路检测到复位信号后,根据地址信息将目标修调数据从目标地址区域中读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。芯片每次复位释放后,读使能电路都会完成一次目标地址区域的读操作,从而将目标地址区域内的目标修调数据读取至第二选择端。数据加载电路600还包括时钟电路,目标修调数据的加载过程可以在一个时钟周期内完成,提高了系统的稳定性。
需要说明的是,本发明实施例的芯片包括但不限于待修调模块100、修调寄存模块200、存储单元300、选择器400、处理单元500和数据加载电路600。待修调模块100可以为多个,一个待修调模块100对应一个修调寄存模块200、一个选择器400和一个数据加载电路600,多个待修调模块100可以采用同一个存储单元300也可以一一对应采用多个存储单元300,在此不作限定。
根据本发明实施例的芯片,通过处理单元500可以获取模式选择信号,得知芯片是否为测试阶段,若模式选择信号表征芯片为测试阶段,则通过选择器400的第一选择端依次将多个预设的测试修调数据由外部写入修调寄存模块200中,并根据每个测试修调数据对待修调模块100进行修调,从多个测试修调数据中选取目标修调数据,然后通过处理单元500将目标修调数据写入存储单元300中。若模式选择信号表征芯片为非测试阶段,则直接通过数据加载电路600将目标修调数据从存储单元300读取到选择器400的第二选择端,从而输出到修调寄存模块200中,最终根据目标修调数据对待修调模块100进行修调。利用数据加载电路600加载目标修调数据减轻了CPU的运行负荷,且目标修调数据的加载可以在一个时钟周期内完成,提高了系统的稳定性。本发明实施例的芯片通过软硬件结合的方式实现芯片的初始化过程,能够提高系统的稳定性,减轻CPU的运行负荷。
在本发明的一些实施例中,存储单元300包括目标地址区域,目标地址区域用于存储目标修调数据;数据加载电路600包括复位信号检测电路、地址存储器、读使能电路。复位信号检测电路,用于检测复位信号;地址存储器,用于存储目标地址区域的地址信息;读使能电路,用于在复位信号检测电路检测到复位信号后,根据地址信息将目标修调数据从目标地址区域中读取至第二选择端,以将目标修调数据传输至修调寄存模块200,从而根据目标修调数据对待修调模块100进行修调。目标地址区域为约定的FLASH闪存的非易失寄存器区域,用于存储目标修调数据。芯片每次复位释放后,读使能电路都会完成一次目标地址区域的读操作,从而将目标地址区域内的目标修调数据读取到修调寄存模块200中。数据加载电路600还包括时钟电路,目标修调数据的加载过程可以在一个时钟周期内完成,提高了系统的稳定性。目标修调数据是在复位信号检测电路检测到复位信号后立即加载的,在这之前,处理单元500没有对FLASH闪存进行额外的擦除、编程、连续读操作,这使得系统更加稳定可靠,不易出错。
在本发明的一些实施例中,修调寄存模块200包括多个修调寄存器,多个修调寄存器共同用于提高待修调模块100的修调精度。修调寄存模块200为n位寄存器(n至少为2),每个待修调模块100可以对应一组或多组修调寄存器,待修调模块100会有几个修调档位,假设修调寄存模块200为n位就会对应2n个不同的修调档位,修调档位越多则修调精度越高。以电压基准为0.8V为例,具体目标修调数据对应的修调档位参见表1。
表1目标修调数据对应的修调档位
000 | 初始电压(理想情况下是0.8V) |
001 | 初始电压+0.05V |
010 | 初始电压+0.1V |
011 | 初始电压+0.15V |
100 | 初始电压-0.05V |
101 | 初始电压-0.1V |
110 | 初始电压-0.15V |
111 | 初始电压-0.2V |
另外,本发明实施例的处理单元500包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例的初始化方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的初始化方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明第四方面实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被本发明实施例中的处理器执行,可使得上述处理器执行上述实施例中的初始化方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (10)
1.一种芯片的初始化方法,其特征在于,所述芯片包括待修调模块、修调寄存模块、存储单元、处理单元和数据加载电路;所述初始化方法包括以下步骤:
获取模式选择信号;
根据所述模式选择信号执行芯片初始化策略,所述芯片初始化策略包括测试初始化策略和非测试初始化策略;
其中,所述测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入所述修调寄存模块中;根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果;根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据;通过所述处理单元将所述目标修调数据写入所述存储单元中;
所述非测试初始化策略包括以下步骤:通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中;根据所述目标修调数据对所述待修调模块进行修调。
2.根据权利要求1所述的初始化方法,其特征在于,所述通过所述处理单元将所述目标修调数据写入所述存储单元中,包括以下步骤:
获取所述存储单元中预设的目标地址区域;
通过所述处理单元将所述目标修调数据写入至所述目标地址区域。
3.根据权利要求1所述的初始化方法,其特征在于,所述数据加载电路包括复位信号检测电路、地址存储器和读使能电路,所述读使能电路分别与所述复位信号检测电路和所述地址存储器连接;
所述通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中,包括以下步骤:
获取所述存储单元中预设的目标地址区域;
将所述目标地址区域的地址信息读取到所述地址存储器中;
若所述复位信号检测电路检测到所述复位信号,通过所述读使能电路根据所述地址信息将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中,以使得根据所述目标修调数据对所述待修调模块进行修调。
4.根据权利要求3所述的初始化方法,其特征在于,所述通过所述读使能电路根据所述地址信息将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中,包括以下步骤:
通过所述读使能电路根据所述地址信息生成读使能控制信号;
将所述读使能控制信号发送至所述存储单元,以将所述目标修调数据从所述目标地址区域中读取到所述修调寄存模块中。
5.根据权利要求1所述的初始化方法,其特征在于,所述根据所述模式选择信号执行芯片初始化策略,包括以下步骤:
若所述模式选择信号表征所述芯片为测试阶段,执行所述测试初始化策略;
若所述模式选择信号表征所述芯片为非测试阶段,执行所述非测试初始化策略。
6.一种芯片的初始化系统,其特征在于,包括:
模式选择信号获取单元,用于获取模式选择信号;
芯片初始化策略执行单元,用于根据所述模式选择信号执行芯片初始化策略,所述芯片初始化策略包括测试初始化策略和非测试初始化策略;其中,所述测试初始化策略包括以下步骤:依次将多个预设的测试修调数据由外部写入所述修调寄存模块中,根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果,根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据,通过所述处理单元将所述目标修调数据写入所述存储单元中;所述非测试初始化策略包括以下步骤:通过所述数据加载电路将所述目标修调数据从所述存储单元读取到所述修调寄存模块中,根据所述目标修调数据对所述待修调模块进行修调。
7.一种芯片,其特征在于,包括:
待修调模块;
修调寄存模块,与所述待修调模块连接;
存储单元;
选择器,具有第一选择端、第二选择端、输出端和控制端,所述第一选择端用于依次输入由外部写入的多个预设的测试修调数据,所述输出端与所述修调寄存模块连接;
处理单元,用于获取模式选择信号并将所述模式选择信号输出至所述控制端,以及根据每个所述测试修调数据对所述待修调模块进行修调,一一对应得到多个修调结果,根据多个所述修调结果从多个所述测试修调数据中选取目标修调数据,并将所述目标修调数据写入所述存储单元中;
数据加载电路,分别与所述第二选择端和所述处理单元连接,所述数据加载电路用于将所述目标修调数据从所述存储单元读取至所述第二选择端,以将所述目标修调数据传输至所述修调寄存模块,从而根据所述目标修调数据对所述待修调模块进行修调。
8.根据权利要求7所述的芯片,其特征在于,所述存储单元包括目标地址区域,所述目标地址区域用于存储所述目标修调数据;所述数据加载电路包括:
复位信号检测电路,用于检测复位信号;
地址存储器,用于存储所述目标地址区域的地址信息;
读使能电路,用于在所述复位信号检测电路检测到所述复位信号后,根据所述地址信息将所述目标修调数据从所述目标地址区域中读取至所述第二选择端,以将所述目标修调数据传输至所述修调寄存模块,从而根据所述目标修调数据对所述待修调模块进行修调。
9.根据权利要求7所述的芯片,其特征在于,所述修调寄存模块包括多个修调寄存器,多个所述修调寄存器共同用于提高所述待修调模块的修调精度。
10.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至5中任意一项所述的初始化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211038999.XA CN115408066A (zh) | 2022-08-29 | 2022-08-29 | 一种芯片的初始化方法、系统、芯片及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211038999.XA CN115408066A (zh) | 2022-08-29 | 2022-08-29 | 一种芯片的初始化方法、系统、芯片及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115408066A true CN115408066A (zh) | 2022-11-29 |
Family
ID=84162519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211038999.XA Pending CN115408066A (zh) | 2022-08-29 | 2022-08-29 | 一种芯片的初始化方法、系统、芯片及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115408066A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687488A (zh) * | 2023-12-27 | 2024-03-12 | 湖南进芯电子科技有限公司 | 一种带复位控制的片上电源校准电路及方法 |
-
2022
- 2022-08-29 CN CN202211038999.XA patent/CN115408066A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687488A (zh) * | 2023-12-27 | 2024-03-12 | 湖南进芯电子科技有限公司 | 一种带复位控制的片上电源校准电路及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7434122B2 (en) | Flash memory device for performing bad block management and method of performing bad block management of flash memory device | |
US7877669B2 (en) | Non-volatile memory with error detection | |
CN102597975B (zh) | 一次可编程存储器装置及其方法 | |
CN108122588A (zh) | 非易失性存储器设备及包括其的存储设备 | |
CN106776359B (zh) | 一种NAND Flash坏块管理方法及系统 | |
US6442092B1 (en) | Interface circuit and method for writing data into a non-volatile memory, and scan register | |
US8201037B2 (en) | Semiconductor integrated circuit and method for controlling semiconductor integrated circuit | |
US9269456B2 (en) | Semiconductor memory test method and semiconductor memory | |
US9437311B1 (en) | Flash memory apparatus and initialization method for programming operation thereof | |
US20090070523A1 (en) | Flash memory device storing data with multi-bit and single-bit forms and programming method thereof | |
CN115408066A (zh) | 一种芯片的初始化方法、系统、芯片及可读存储介质 | |
CN104637536A (zh) | 具有高效刷新操作的闪存设备 | |
US9786373B2 (en) | EEPROM backup method and device | |
US20080181008A1 (en) | Flash memory system capable of improving access performance and access method thereof | |
CN108376551A (zh) | 存储装置及对其数据进行刷新的方法 | |
CN109493911A (zh) | 存储器控制器的操作方法、以及存储器件及其操作方法 | |
US20220283726A1 (en) | Method for assisting in the identification of blank sectors of a non-volatile memory of a microcontroller | |
CN113870931A (zh) | 数据写入和数据读取方法及装置、电子设备和存储介质 | |
CN109814888B (zh) | NandFlash控制器EFUSE代替方法及装置 | |
CN108665942A (zh) | 一种nand闪存芯片的测试方法及设备 | |
CN113345505B (zh) | 闪存及闪存的工作方法 | |
US11200925B2 (en) | Read only memory (ROM)-emulated memory (REM) profile mode of memory device | |
CN117292735A (zh) | Fpga中具备ecc功能的块存储器的测试系统及方法 | |
US20210342714A1 (en) | Dynamic intelligent test method and computer device employing the method | |
US20070168775A1 (en) | Programmable Memory Test Controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Feng Inventor after: Liu Yang Inventor after: Wu Xiuying Inventor before: Zhang Feng Inventor before: Liu Yang Inventor before: Wu Xiuying Inventor before: Xiao Hebao |