CN107436762B - 一种寄存器代码文件生成方法、装置和电子设备 - Google Patents
一种寄存器代码文件生成方法、装置和电子设备 Download PDFInfo
- Publication number
- CN107436762B CN107436762B CN201710534135.XA CN201710534135A CN107436762B CN 107436762 B CN107436762 B CN 107436762B CN 201710534135 A CN201710534135 A CN 201710534135A CN 107436762 B CN107436762 B CN 107436762B
- Authority
- CN
- China
- Prior art keywords
- register
- developed
- file
- code file
- domain
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Abstract
本发明公开了一种寄存器代码文件生成方法、装置和电子设备,所述方法,包括:从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息;并利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件。采用本发明提供的方法,不仅可以根据寄存器汇总文件自动生成大量寄存器的寄存器代码文件,还有效降低了设计人员和验证人员编写代码和后期维护的工作负担。
Description
技术领域
本发明涉及数字集成电路设计技术领域,尤其涉及一种寄存器代码文件生成方法、装置和电子设备。
背景技术
目前,在对芯片中寄存器代码进行设计时,常采用人工编写代码的方式,即:设计人员和验证人员需要分别手动编写寄存器设计代码和验证时寄存器描述代码,由此会存在以下问题:首先,芯片中寄存器数目往往比较多,且每个寄存器包含多个字段信息,如长度、位置、属性和初始值等,设计人员或验证人员在编写各个寄存器代码时会比较繁琐,工作量较大且耗时较多;其次,芯片中寄存器的设计实现和仿真模型通常由设计人员和验证人员分别进行,而芯片中寄存器数目比较多,由此会带来大量重复性的设计和验证工作,出错率较高,同时导致代码稳定的周期较长;再者,芯片设计过程中,会出现增加或减少寄存器,或者修改寄存器中某些字段的情况,而当新增或减少寄存器或修改寄存器时,设计人员和验证人员需要分别重新编写设计代码和仿真模型需要的描述代码,从而导致人工编码后期维护的困难度大大提高,对设计人员和验证人员带来工作负担。
因此,如何快速自动生成大量寄存器代码文件,进而有效降低设计人员和验证人员编写代码和后期维护的工作负担和节省设计代码或验证代码的时间是亟待解决的技术问题之一。
发明内容
本发明实施例提供一种寄存器代码文件生成方法、装置和电子设备,用以快速自动生成大量寄存器的寄存器代码文件,进而降低设计人员和验证人员编写代码和后期维护的工作负担和节省设计代码或验证代码的时间。
第一方面,本发明实施例提供一种寄存器代码文件生成方法,包括:
从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;并
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
第二方面,本发明实施例提供一种寄存器代码文件生成装置,包括:
提取单元,用于从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;并
生成单元,用于利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
第三方面,本发明实施例提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例提供的寄存器代码文件生成方法。
第四方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例提供的寄存器代码文件生成方法。
第五方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,其中,当所述程序指令被计算机执行时,使所述计算机执行本发明实施例提供的寄存器代码文件生成方法。
本发明有益效果:
本发明实施例提供一种寄存器代码文件生成方法、装置和电子设备,从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;并利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。采用本发明实施例提供的方法,只需根据寄存器汇总文件即可灵活高效自动生成大量寄存器的寄存器代码文件,设计人员无需手动编写寄存器设计代码,以及验证人员也无需手动编写寄存器描述代码,有效降低了设计人员和验证人员的编写代码的工作负担,大大节省了编写寄存器设计代码或寄存器验证代码的时间。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a为本发明实施例一提供的寄存器代码文件生成方法的流程示意图;
图1b为本发明实施例一提供的寄存器代码文件生成方法中生成寄存器设计代码文件的方法的流程示意图;
图1c为本发明实施例一提供的寄存器代码文件生成方法中生成的寄存器设计代码文件的示意图;
图1d为本发明实施例一提供的寄存器代码文件生成方法中生成的寄存器描述代码文件的示意图;
图1e为本发明实施例一提供的寄存器代码文件生成方法中生成的寄存器模型文件的示意图
图2为本发明实施例一提供的生成寄存器设计代码文件后的流程示意图;
图3为本发明实施例二提供的寄存器代码文件生成装置的结构示意图;
图4为本发明实施例四提供的实施寄存器代码文件生成方法的电子设备的硬件结构示意图。
具体实施方式
本发明实施例提供一种寄存器代码文件生成方法、装置和电子设备,用以自动生成大量寄存器的寄存器代码文件,进而降低设计人员和验证人员编写代码和后期维护的工作负担和节省设计代码或验证代码的时间。
本发明实施例提供的寄存器代码文件生成方法可以应用于涉及寄存器的各种设计和验证环境中,由于任一设计环境或验证环境涉及的寄存器为多个,利用本发明提供的方法可以同时并自动生成多个寄存器的寄存器代码,避免了开发人员手动编写各个寄存器的代码,减轻了开发人员的工作负担。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
如图1a所示,为本发明实施例一提供的寄存器代码文件生成方法的流程示意图,可以包括以下步骤:
S11、从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息。
其中,所述待开发寄存器可以但不限于为待设计寄存器和待验证寄存器。
较佳地,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块。
具体地,所述寄存器汇总文件中存储的待开发寄存器可以为一个,也可以为多个;当所述待开发寄存器为一个时,则只需从寄存器汇总文件中提取、与该待开发寄存器的寄存器代码文件对应的关键信息;当所述待开发寄存器为多个时,则从寄存器汇总文件中提取、与多个待开发寄存器对应的一个寄存器代码文件的关键信息,也就是说利用提取的多个待开发寄存器的关键信息生成一个寄存器代码文件中。
较佳地,在实际应用中,大多是按照模块进行分工的,不同的开发人员负责不同的模块,为了便于开发人员的后期维护,将同属于一个模块的待开发寄存器的参数信息汇总到一个寄存器汇总文件中,由此根据模块进行划分,分别生成各个模块对应的寄存器代码文件,以使负责各个模块的开发人员不会造成更改或维护冲突。
具体实施时,在提取关键信息时,可以采用高级语言对寄存器汇总文件进行字段匹配,速度快且准确率高。
具体实施时,所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值。
具体地,所述提取的、与待开发寄存器的寄存器代码文件对应的关键信息为所述寄存器汇总文件中待开发寄存器的寄存器参数信息中的至少一个。
此外,所述寄存器汇总文件是按照设计规格书的规则编写的。
较佳地,所述寄存器汇总文件可以但不限于为txt格式或excel格式等。具体地,由于开发人员在开发某芯片时,一般会进行模块化设计,而每个模块又是由多个待开发寄存器构成,因此,本发明提供的寄存器汇总文件中每一待开发寄存器的寄存器参数信息还包含寄存器功能、寄存器位宽和待开发寄存器包含的域的域字段及域功能等信息。例如,所述寄存器汇总文件可以按照下表所示的格式填写寄存器的寄存器参数信息:
表1
表1中可以表示为某模块下包含若干个待开发寄存器,例如包含待开发寄存器Reg1和待开发寄存器Reg2等,且待开发寄存器Reg1可以包括多个域,且每一个域具有自身的域字段信息、域功能描述、域属性及域初始值等。具体实施时,设计或验证人员可以根据具体情况对待开发寄存器的功能及其包括的域字段、域描述等信息进行设定,本发明实施例对此不进行限定。
具体实施时,开发人员可以为设计人员或验证人员,设计人员或验证人员可以根据实际需要添加或删除寄存器参数信息等。
例如,模块名称为mm的模块及该模块包含的待开发寄存器的寄存器名称等信息在寄存器汇总文件中的信息可以为表2所示:
表2
表2中,模块mm包含一个待开发寄存器Reg1,该模块的基地址为0x250000,待开发寄存器Reg1的偏移地址为0x1BA63,则表明该待开发寄存器的地址从0x250000+0x1BA63开始。此外,该待开发寄存器Reg1包含两个域,分别为Field8和Field9,Field8和Field9的域属性均为可读可写,且域初始值均为0x0。Field8的域功能可以为允许CPU在IFH.CL_RES中掩码,域功能值为1表示允许,值为0表示禁止。Field9的域功能可以为许可vid作为计数器索引,域功能值为1表示许可,其值为0表示禁止。
具体地,在生成寄存器代码时,表1中的信息并不都提取,可以由寄存器代码的类型而定。
S12、利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件。
较佳地,如果步骤S11中的待开发寄存器为待设计寄存器,则所述待设计寄存器的寄存器代码文件为寄存器设计代码文件;如果所述待开发寄存器为待验证寄存器,则所述待验证寄存器的寄存器代码文件为寄存器描述代码文件
较佳地,针对属于同一模块的大量待开发寄存器,比如100个,但当前可能只需要生成10个待开发寄存器对应的一个寄存器代码文件,具体实施时,可以生成包含100个待开发寄存器的寄存器代码文件,但在实际应用时只应用寄存器代码文件中的10个待开发寄存器,也就是说对这10个待开发寄存器进行布线连接,这样无需对寄存器汇总文件中的待开发寄存器进行标记,同时也无需对文本转换工具进行改造。
较佳地,还可以在寄存器汇总文件中对需要生成寄存器代码文件的寄存器做标记,如对10个待开发寄存器添加标识等,以便文本转换工具在提取与待开发寄存器的寄存器代码文件对应的关键信息时,根据添加的标识提取关键信息,由此只转换并生成包含标记的10个待开发寄存器的寄存器代码文件,有效节省了生成寄存器代码文件的时间。
较佳地,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
具体地,由于本发明实施例中生成的寄存器描述文件可以不限于上述三种,也就是说采用本发明提供的方法可以生成多个用于验证寄存器的描述文件。此外,本发明在生成寄存器描述文件时,可以同时生成寄存器模型文件、寄存器配置文件及与待开发寄存器相关的仿真验证用例case文件。具体实施时,可以通过文本转换工具先选择提取的关键信息,再选择要输出的寄存器描述文件,可以设置多个按钮分别对应各个寄存器描述文件。当点击任一按钮时会出现下拉列表供验证人员选择,待选择完成后点击生成按钮即可生成各个寄存器描述代码,在生成寄存器描述代码后验证人员可以选择保存该寄存器代码进而可以得到各个寄存器描述代码文件。
本发明实施例提供的寄存器汇总文件既可以生成寄存器描述代码文件也可以生成寄存器设计代码文件,只需根据期望生成的寄存器代码类型,如生成设计代码或描述代码等,从寄存器汇总文件中提取相应的关键信息,进而利用文本转换工具得到期望生成的寄存器代码;而且,验证人员和设计人员只需共同管理和维护一个寄存器汇总文件,只需要保证文本转换工具对寄存器汇总文件的处理算法正确,即可正确生成寄存器代码文件,减少了重复工作,执行效率高,且后期维护方便。
此外,当设计人员修改寄存器设计代码或验证人员修改寄存器描述代码文件时,只需修改寄存器汇总文件,然后再从修改后的寄存器汇总文件中获取寄存器设计代码或寄存器描述代码对应的关键信息,再利用文本转换工具转换获取的寄存器设计代码或寄存器描述代码对应的关键信息即可得到寄存器设计代码或寄存器描述代码,无需设计人员或验证人员重新编写设计代码或描述代码,可以直接利用新生成的寄存器设计代码或寄存器描述代码分别替换原有代码即可,大大降低了设计人员或验证人员的工作负担。
具体实施时,由于寄存器代码文件是由寄存器代码构成的,因此在转换得到寄存器代码时即可得到寄存器代码文件。此外,由于寄存器代码文件可以为寄存器描述代码文件,也可以是寄存器设计代码文件,因此,在利用步骤S11从寄存器汇总文件中提取关键信息时,提取的关键信息根据寄存器代码文件的不同而不同,以下详细介绍之。
较佳地,如果所述寄存器代码文件为寄存器设计代码文件,则提取的、与所述寄存器设计代码文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块基地址、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;
具体实施时,由于所述寄存器代码文件为寄存器设计代码文件,则待开发寄存器对应于待设计寄存器。
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到该寄存器的寄存器代码文件,具体包括图1b所示的流程:
S121、为所述提取的、与所述寄存器设计代码文件对应的关键信息配置相应的接口信息。
所述接口信息包括以下至少一项:时钟信号、读/写使能信号和总线信息,以及所述总线信息至少包括以下一项:总线使能信号、读/写数据总线信息和地址总线信息。
具体实施时,时钟信号可以用clk标识,读/写使能信号可以用bus_op标识;以及所述总线信息中的总线使能信息可以用bus_cmd_valid标识,读数据总线信息可以用bus_rd_data标识,写数据总线信息可以用bus_wr_data标识,地址总线信息可以用bus_addr标识等。
S122、利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息以及配置的接口信息转换成所述待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件。
具体实施时,根据提取到的模块基地址、寄存器名称等关键信息与步骤S121配置的接口信息,利用文本转换工具对前述信息进行转换获得寄存器设计代码文件,具体参考图1c所示的寄存器设计代码文件示意图。
进一步地,为了将所述获得的寄存器设计代码应用于实际项目中,在获得寄存器设计代码文件后,还可以执行图2所示的流程,包括以下步骤:
S21、在应用所述寄存器设计代码时,利用脚本工具将寄存器设计代码文件中的总线信息替换为实际总线信息,得到替换后的寄存器设计代码文件。
具体实施时,由于实际项目中的总线信息可能与寄存器代码中预设的总线信息不同,因此在应用寄存器设计代码时,利用脚本工具将寄存器代码文件中的总线信息替换为实际总线信息。
S22、实例化所述替换后的寄存器设计代码文件,以完成所述待开发寄存器的布线连接。
在替换完成后,为了将寄存器与项目中其它模块或寄存器连接,需要实例化所述替换后的寄存器代码文件,也就是说替换后的寄存器代码文件是静态的且存储于开发环境预设位置处,为了在开发过程中使用该待开发寄存器,需要调用该寄存器设计代码文件,完成该待开发寄存器的布线连接,进而实现该待开发寄存器的功能。
较佳地,如果所述寄存器代码文件为寄存器描述文件,则提取的、与所述寄存器描述文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块名称、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;
具体实施时,由于所述寄存器代码文件为寄存器描述代码文件,则待开发寄存器对应于待验证寄存器。
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器描述文件,具体包括:
利用文本转换工具将所述提取的、与所述寄存器描述文件对应的关键信息转换成该待开发寄存器的寄存器描述代码并得到该待开发寄存器的寄存器描述文件。
具体实施时,可以利用VBA工具(Visual Basic for Application,宏语言)将所述提取的、与所述寄存器描述文件对应的关键信息转换成该待开发寄存器的寄存器描述代码,例如获得的寄存器描述文件为.ralf文件,参考图1d所示,该文件可以在验证平台中调用和例化,以实现对待开发寄存器的验证或配置待开发寄存器完成其他功能的验证。
此外,所述.ralf文件为ralgen命令能够识别的文件,为固定格式。Ralgen命令由vcs工具提供,包含vmmralgen命令和uvmralgen命令;由于寄存器描述文件可以为寄存器模型文件,则可以利用UVM(Universal Verification Methodogy,通用验证方法)或VMM(Verification Methodology,验证方法)的ralgen命令的reg_module.sv寄存器模型文件,参考图1e所示。
优选地,所述文本转换工具为:实用报表提取语言Perl、工具命令语言tcl、C/C++或者宏语言VBA工具。
本发明实施例一提供的寄存器代码文件的生成方法,从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;并利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。采用本发明实施例提供的方法,只需根据寄存器汇总文件即可灵活高效自动生成大量寄存器代码文件,设计人员无需手动编写寄存器设计代码,以及验证人员也无需手动编写寄存器描述代码,有效降低了设计人员和验证人员的编写代码的工作负担,大大节省了编写寄存器设计代码或寄存器验证代码的时间。
实施例二
基于同一发明构思,本发明实施例中还提供了一种寄存器代码文件生成装置,由于上述装置解决问题的原理与寄存器代码文件生成方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,为本发明实施例二提供的寄存器代码文件生成装置的结构示意图,包括提取单元31和生成单元32,其中:
提取单元31,用于从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为一个或多个,如果所述待开发寄存器为多个,则多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;
生成单元32,用于利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
具体实施时,如果所述寄存器代码文件为寄存器设计代码文件,则提取的、与所述寄存器设计代码文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块基地址、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
所述生成单元32,具体用于为所述提取的、与所述寄存器设计代码文件对应的关键信息配置相应的接口信息,所述接口信息包括以下至少一项:时钟信号、读/写使能信号和总线信息,以及所述总线信息至少包括以下一项:总线使能信号、读/写数据总线信息和地址总线信息;并利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息以及配置的接口信息转换成所述待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件。
进一步地,所述装置,还包括:替换单元和例化单元,其中:
所述替换单元,用于在所述生成单元利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息转换成待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件之后,在应用所述寄存器设计代码时,利用脚本工具将寄存器设计代码文件中的总线信息替换为实际总线信息,得到替换后的寄存器设计代码文件;
所述例化单元,用于实例化所述替换后的寄存器设计代码文件,以完成所述待开发寄存器的布线连接。
较佳地,如果所述寄存器代码文件为寄存器描述文件,则提取的、与所述寄存器描述文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块名称、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
所述生成单元32,还用于利用文本转换工具将所述提取的、与所述寄存器描述文件对应的关键信息转换成所述待开发寄存器的寄存器描述代码并得到所述待开发寄存器的寄存器描述文件。
优选地,所述文本转换工具为:实用报表提取语言Perl、工具命令语言tcl、C/C++或者宏语言VBA工具。
为了描述的方便,以上寄存器代码生成装置的各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
实施例三
本申请实施例三提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的寄存器代码文件生成方法。
实施例四
图4是本发明实施例四提供的实施寄存器代码文件生成方法的电子设备的硬件结构示意图,如图4所示,该电子设备包括:
一个或多个处理器410以及存储器420,图4中以一个处理器410为例。
执行寄存器代码文件生成方法的电子设备还可以包括:输入装置430和输出装置440。
处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的寄存器代码文件生成方法对应的程序指令/模块/单元(例如,附图3所示的提取单元31和生成单元32)。处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块/单元,从而执行服务器或者智能终端的各种功能应用以及数据处理,即实现上述方法实施例寄存器代码文件生成方法。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据寄存器代码文件生成装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至寄存器代码文件生成装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可接收输入的数字或字符信息,以及产生与寄存器代码文件生成装置的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的寄存器代码文件生成方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
实施例五
本申请实施例五提供了一种计算机程序产品,其中,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,其中,当所述程序指令被计算机执行时,使所述计算机执行本申请上述方法实施例中任一项寄存器代码文件生成方法。
本申请的实施例所提供的寄存器代码文件生成装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要寄存器代码文件生成装置具有上述功能,都应该在本申请的保护范围之内。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种寄存器代码文件生成方法,其特征在于,包括:
从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为多个,多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;并
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
2.如权利要求1所述的方法,其特征在于,如果所述寄存器代码文件为寄存器设计代码文件,则提取的、与所述寄存器设计代码文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块基地址、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,具体包括:
为所述提取的、与所述寄存器设计代码文件对应的关键信息配置相应的接口信息,所述接口信息包括以下至少一项:时钟信号、读/写使能信号和总线信息,以及所述总线信息至少包括以下一项:总线使能信号、读/写数据总线信息和地址总线信息;并
利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息以及配置的接口信息转换成所述待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件。
3.如权利要求2所述的方法,其特征在于,在利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息转换成所述待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件之后,还包括:
在应用所述寄存器设计代码时,利用脚本工具将寄存器设计代码文件中的总线信息替换为实际总线信息,得到替换后的寄存器设计代码文件;并
实例化所述替换后的寄存器设计代码文件,以完成所述待开发寄存器的布线连接。
4.如权利要求1所述的方法,其特征在于,如果所述寄存器代码文件为寄存器描述文件,则提取的、与所述寄存器描述文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块名称、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器描述文件,具体包括:
利用文本转换工具将所述提取的、与所述寄存器描述文件对应的关键信息转换成所述待开发寄存器的寄存器描述代码并得到所述待开发寄存器的寄存器描述文件。
5.一种寄存器代码文件生成装置,其特征在于,包括:
提取单元,用于从寄存器汇总文件中提取、与待开发寄存器的寄存器代码文件对应的关键信息,所述待开发寄存器为多个,多个所述待开发寄存器从属于同一模块,其中所述寄存器汇总文件为文本文件,独立于寄存器设计环境和验证环境,且存储有若干个待开发寄存器的寄存器参数信息,每一待开发寄存器的寄存器参数信息包括以下至少一项:待开发寄存器所属模块的模块名称及模块基地址、待开发寄存器的寄存器名称及寄存器偏移地址、待开发寄存器包含的域的域名称、域所在待开发寄存器的bit位、域属性和域初始值;
生成单元,用于利用文本转换工具将所述关键信息转换成所述待开发寄存器的寄存器代码并得到所述待开发寄存器的寄存器代码文件,其中,所述寄存器代码文件为寄存器描述代码文件或寄存器设计代码文件,以及所述寄存器描述代码文件包括至少以下一种:寄存器模型文件、与待开发寄存器相关的仿真验证用例case文件和寄存器配置文件。
6.如权利要求5所述的装置,其特征在于,如果所述寄存器代码文件为寄存器设计代码文件,则提取的、与所述寄存器设计代码文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块基地址、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
所述生成单元,具体用于为所述提取的、与所述寄存器设计代码文件对应的关键信息配置相应的接口信息,所述接口信息包括以下至少一项:时钟信号、读/写使能信号和总线信息,以及所述总线信息至少包括以下一项:总线使能信号、读/写数据总线信息和地址总线信息;并利用文本转换工具将所述提取的、与所述寄存器设计代码文件对应的关键信息以及配置的接口信息转换成所述待开发寄存器的寄存器设计代码并得到所述待开发寄存器的寄存器设计代码文件。
7.如权利要求5所述的装置,其特征在于,如果所述寄存器代码文件为寄存器描述文件,则提取的、与所述寄存器描述文件对应的关键信息至少包括以下一项:所述待开发寄存器所属模块的模块名称、所述待开发寄存器的寄存器名称及寄存器偏移地址、所述待开发寄存器包含的域的域名称、域所在所述待开发寄存器的bit位、域属性和域初始值;以及
所述生成单元,还用于利用文本转换工具将所述提取的、与所述寄存器描述文件对应的关键信息转换成所述待开发寄存器的寄存器描述代码并得到所述待开发寄存器的寄存器描述文件。
8.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至4任一权利要求所述的方法。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534135.XA CN107436762B (zh) | 2017-07-03 | 2017-07-03 | 一种寄存器代码文件生成方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534135.XA CN107436762B (zh) | 2017-07-03 | 2017-07-03 | 一种寄存器代码文件生成方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107436762A CN107436762A (zh) | 2017-12-05 |
CN107436762B true CN107436762B (zh) | 2021-02-23 |
Family
ID=60460806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710534135.XA Active CN107436762B (zh) | 2017-07-03 | 2017-07-03 | 一种寄存器代码文件生成方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107436762B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228965B (zh) * | 2017-12-06 | 2022-01-11 | 北京物芯科技有限责任公司 | 一种存储单元的仿真验证方法、装置和设备 |
CN108153961A (zh) * | 2017-12-21 | 2018-06-12 | 盛科网络(苏州)有限公司 | 一种用于芯片验证的寄存器生成方法装置 |
KR20210017985A (ko) | 2018-06-08 | 2021-02-17 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 범용 기계학습 모델, 모델 파일의 생성 및 분석방법 |
CN111260018B (zh) * | 2018-11-30 | 2022-03-22 | 上海寒武纪信息科技有限公司 | 机器学习二级模型文件生成方法、装置、存储介质 |
CN109542707A (zh) * | 2018-12-03 | 2019-03-29 | 盛科网络(苏州)有限公司 | 基于寄存器的测试代码生成方法及系统 |
CN109918343B (zh) * | 2019-03-25 | 2024-01-30 | 合芯科技(苏州)有限公司 | 一种自动生成ralf文件的方法及系统 |
CN109977558B (zh) * | 2019-03-28 | 2023-04-07 | 合芯科技(苏州)有限公司 | 一种芯片寄存器代码结构的生成方法、装置及存储介质 |
CN110489128B (zh) * | 2019-08-23 | 2023-08-29 | 第四范式(北京)技术有限公司 | 将特征计算脚本转换成底层程序代码的方法和设备 |
CN111522583A (zh) * | 2020-04-08 | 2020-08-11 | 芯海科技(深圳)股份有限公司 | 一种生成配置文件的方法、装置、计算机设备及存储介质 |
CN112100949A (zh) * | 2020-09-15 | 2020-12-18 | 北京士昌鼎科技有限公司 | 集成电路芯片的自动开发方法及装置、电子设备 |
CN113177020A (zh) * | 2021-03-31 | 2021-07-27 | 上海阵量智能科技有限公司 | 数据处理方法及装置 |
CN113312080B (zh) * | 2021-05-24 | 2024-04-19 | 眸芯科技(上海)有限公司 | 芯片eda仿真中更新芯片软硬件配置的系统、装置及方法 |
CN116501305B (zh) * | 2023-06-28 | 2023-10-13 | 芯耀辉科技有限公司 | 用于寄存器代码自动生成的方法、设备、介质及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862730B1 (en) * | 2000-04-26 | 2005-03-01 | Lucent Technologies Inc. | Register allocation in code translation between processors |
CN1741026A (zh) * | 2005-09-16 | 2006-03-01 | 北京中星微电子有限公司 | 一种快速生成逻辑电路的方法 |
CN102841950A (zh) * | 2011-06-21 | 2012-12-26 | 中兴通讯股份有限公司 | 一种逻辑存储单元自动验证的方法及装置 |
CN103135997A (zh) * | 2011-11-24 | 2013-06-05 | 中兴通讯股份有限公司 | 实现嵌入式设备引导程序通用性的方法及装置 |
CN104898991A (zh) * | 2015-06-10 | 2015-09-09 | 烽火通信科技股份有限公司 | 一种基于自动化ral的寄存器访问方法及系统 |
CN105607897A (zh) * | 2015-09-30 | 2016-05-25 | 烽火通信科技股份有限公司 | 芯片寄存器代码自动生成方法及其系统 |
CN106484415A (zh) * | 2016-10-08 | 2017-03-08 | 武汉瑞纳捷电子技术有限公司 | 一种寄存器配置代码自动生成方法及装置 |
-
2017
- 2017-07-03 CN CN201710534135.XA patent/CN107436762B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862730B1 (en) * | 2000-04-26 | 2005-03-01 | Lucent Technologies Inc. | Register allocation in code translation between processors |
CN1741026A (zh) * | 2005-09-16 | 2006-03-01 | 北京中星微电子有限公司 | 一种快速生成逻辑电路的方法 |
CN102841950A (zh) * | 2011-06-21 | 2012-12-26 | 中兴通讯股份有限公司 | 一种逻辑存储单元自动验证的方法及装置 |
CN103135997A (zh) * | 2011-11-24 | 2013-06-05 | 中兴通讯股份有限公司 | 实现嵌入式设备引导程序通用性的方法及装置 |
CN104898991A (zh) * | 2015-06-10 | 2015-09-09 | 烽火通信科技股份有限公司 | 一种基于自动化ral的寄存器访问方法及系统 |
CN105607897A (zh) * | 2015-09-30 | 2016-05-25 | 烽火通信科技股份有限公司 | 芯片寄存器代码自动生成方法及其系统 |
CN106484415A (zh) * | 2016-10-08 | 2017-03-08 | 武汉瑞纳捷电子技术有限公司 | 一种寄存器配置代码自动生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107436762A (zh) | 2017-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436762B (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
CN101231589B (zh) | 用于原位开发嵌入式软件的系统和方法 | |
CN107247859B (zh) | 逻辑电路设计的验证方法、装置、电子设备及存储介质 | |
CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
Dumas II | Computer architecture: fundamentals and principles of computer design | |
Ramesh et al. | Turning coders into makers: The promise of embedded design generation | |
CN105468797B (zh) | 一种信息处理方法及装置 | |
Emilio | Embedded systems design for high-speed data acquisition and control | |
CN103838626A (zh) | 一种处理串行任务的数据处理装置及方法 | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN104598659A (zh) | 对数字电路进行仿真的方法和设备 | |
Gay | Beginning STM32 | |
CN108228754A (zh) | 流程生成方法及终端设备 | |
CN102147831A (zh) | 逻辑验证方法和装置 | |
CN108228965B (zh) | 一种存储单元的仿真验证方法、装置和设备 | |
WO2021031137A1 (zh) | 人工智能应用开发系统、计算机设备及存储介质 | |
CN109542398B (zh) | 一种业务系统生成方法、装置及计算机可读存储介质 | |
JPWO2016189642A1 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
CN102193860A (zh) | 微控制器在线调试电路及方法、微控制器 | |
WO2021031110A1 (zh) | 配置文件生成方法及装置、存储介质 | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN102789418A (zh) | 处理器功能仿真模型生成装置、方法及功能验证方法 | |
CN110515604A (zh) | 验证环境的可执行程序文件的获取方法及装置 | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |