CN115357289A - 寄存器应用信息生成方法、装置、电子设备和存储介质 - Google Patents
寄存器应用信息生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115357289A CN115357289A CN202210752360.1A CN202210752360A CN115357289A CN 115357289 A CN115357289 A CN 115357289A CN 202210752360 A CN202210752360 A CN 202210752360A CN 115357289 A CN115357289 A CN 115357289A
- Authority
- CN
- China
- Prior art keywords
- register
- application information
- data
- target
- object tree
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及芯片技术领域,尤其涉及一种寄存器应用信息生成方法、装置、电子设备和存储介质,用以基于统一方法自动化生成寄存器应用信息,减少信息不同步、不匹配等问题的影响。其中,方法包括:获取目标寄存器的寄存器描述文件,并对寄存器描述文件进行解析,获得相应的寄存器数据;将寄存器数据存储至寄存器对象树;基于寄存器对象树和目标类型的应用信息模板,生成目标类型的寄存器应用信息,以基于寄存器应用信息执行相应操作,应用信息模板是基于针对目标寄存器的不同应用需求预先配置的。本申请寄存器对象树可存储不同类型的寄存器描述文件的解析结果,并结合统一的应用信息模板,生成寄存器应用信息,可有效减少信息不同步、不匹配的影响。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种寄存器应用信息生成方法、装置、电子设备和存储介质。
背景技术
寄存器作为软件硬件相互沟通的桥梁,在SoC(System on Chip,系统级芯片)设计流程中起着举足轻重的作用。
其中,寄存器描述文件一般由概念设计团队产生,是整个流程中的数据源,设计团队,验证团队、软件团队及应用支持团队等,都需要依赖寄存器描述文件产生自己的代码或者文档,可统称寄存器应用信息。
在相关技术中,概念设计的改变需要各种类型的应用器寄存信息同步更新,这个过程如果手动完成会非常费时且容易出错,造成额外的沟通和调试工作。并且,不同团队会针对自己的问题使用脚本处理,不同团队使用不同的脚本来生成寄存器应用信息,因而,不同团队的工程师维护各自需要的代码或文档时,往往会带来不同步的问题,比如使用不同版本的概念设计,同一个团队的不同模块使用不同版本的设计也会带来不匹配的问题。
因而,针对不同的设计阶段,如何基于统一脚本自动化生成寄存器应用信息,减少信息不同步、不匹配等问题的影响,是亟待解决的。
发明内容
本申请实施例提供一种寄存器应用信息生成方法、装置、电子设备和存储介质,用以基于统一方法自动化生成寄存器应用信息,减少信息不同步、不匹配等问题的影响。
本申请实施例提供的一种寄存器应用信息生成方法,包括:
获取目标寄存器的寄存器描述文件,并对所述寄存器描述文件进行解析,获得相应的寄存器数据;
将所述寄存器数据存储至寄存器对象树;
基于所述寄存器对象树和目标类型应用信息模板,生成针对所述目标寄存器的目标类型的寄存器应用信息,以基于所述寄存器应用信息执行相应的操作。
可选的,所述对所述寄存器描述文件进行解析,获得相应的寄存器数据,包括:
根据所述寄存器描述文件的文件类型,调用相应的文件解析模块解析所述寄存器描述文件,获得所述寄存器数据。
可选的,所述对所述寄存器描述文件进行解析,还包括:
若确定对所述寄存器描述文件解析错误,则进行错误提示。
可选的,若所述目标类型为指定非纯文本类型,所述基于所述寄存器对象树和目标类型的应用信息模板,生成相应的寄存器应用信息,包括:
遍历所述寄存器对象树中的数据,并调用与所述指定非纯文本类型相应的库工具,基于所述指定非纯文本类型的应用信息模板填写遍历结果,生成所述指定非纯文本类型的寄存器应用信息。
可选的,若所述目标类型为指定纯文本类型,所述基于所述寄存器对象树和目标类型的应用信息模板,生成相应的寄存器应用信息,包括:
基于所述指定纯文本类型的应用信息模板和目标语言的模板库工具,将所述寄存器对象树中的数据与所述指定纯文本类型的应用信息模板中的内容进行融合,生成所述指定纯文本类型的寄存器应用信息。
可选的,所述寄存器对象树包括:父节点以及至少一个级别的子节点;所述将所述寄存器数据存储至寄存器对象树,包括:
将所述寄存器数据中的寄存器通用数据,存储至所述寄存器对象树中的父节点;
基于所述寄存器数据中的其他数据与所述通用数据之间的关系,以及子节点自身特征,将所述其他数据存储至相应的子节点。
本申请实施例提供的一种寄存器应用信息生成装置,包括:
解析单元,用于获取目标寄存器的寄存器描述文件,并对所述寄存器描述文件进行解析,获得相应的寄存器数据;
存储单元,用于将所述寄存器数据存储至寄存器对象树;
生成单元,用于基于所述寄存器对象树和目标类型的应用信息模板,生成针对所述目标寄存器的目标类型的寄存器应用信息,以基于所述寄存器应用信息执行相应的操作,其中,所述应用信息模板是:基于针对所述目标寄存器的不同应用需求预先配置的。
可选的,所述解析单元具体用于:
根据所述寄存器描述文件的文件类型,调用相应的文件解析模块解析所述寄存器描述文件,获得所述寄存器数据。
可选的,所述装置还包括:
提示单元,用于若确定对所述寄存器描述文件解析错误,则进行错误提示。
可选的,若所述目标类型为指定非纯文本类型,所述生成单元具体用于:
遍历所述寄存器对象树中的数据,并调用与所述指定非纯文本类型相应的库工具,基于所述指定非纯文本类型的应用信息模板填写遍历结果,生成所述指定非纯文本类型的寄存器应用信息。
可选的,若所述目标类型为指定纯文本类型,所述生成单元具体用于:
基于所述指定纯文本类型的应用信息模板和目标语言的模板库工具,将所述寄存器对象树中的数据与所述指定纯文本类型的应用信息模板中的内容进行融合,生成所述指定纯文本类型的寄存器应用信息。
可选的,所述寄存器对象树包括:父节点以及至少一个级别的子节点;所述存储单元具体用于:
将所述寄存器数据中的寄存器通用数据,存储至所述寄存器对象树中的父节点;
基于所述寄存器数据中的其他数据与所述通用数据之间的关系,以及子节点自身特征,将所述其他数据存储至相应的子节点。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述任意一种寄存器应用信息生成方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述任意一种寄存器应用信息生成方法的步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行上述任意一种寄存器应用信息生成方法的步骤。
本申请有益效果如下:
本申请实施例提供了一种寄存器应用信息生成方法、装置、电子设备和存储介质。在本申请实施例中,预先针对不同的团队不同的应用需求配置了不同的应用信息模板,进而,在获取到目标寄存器的寄存器描述文件之后,即可对该文件进行解析,获取用于表征寄存器相关配置的寄存器数据,并采用统一的数据结构:对象树,将解析得到的寄存器数据存储至寄存器对象树。在生成寄存器应用信息时,由于本申请预先配置了对应不同应用需求的应用信息模板,因而,在需要生成某种或某些特定类型的寄存器应用信息时,即可基于相应的应用信息模板遍历该寄存器对象树,以生成相应的寄存器应用信息,其中,预先配置好的应用信息模板在使用过程中是固定不变的,统一脚本的,因而,基于这些应用信息模板生成的寄存器应用信息不会带来不同步的问题,也不会存在因不同版本的问题带来的不匹配的问题。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的一种寄存器应用信息生成方法的实施流程图;
图2为本申请实施例中的一种excel类型的寄存器描述文件的示例;
图3为本申请实施例中的一种对象树结构示意图;
图4为本申请实施例中的一种整体框架的示意图;
图5为本申请实施例中的一种应用信息模板的示意图;
图6为本申请实施例中的一种寄存器应用信息的示意图;
图7为本申请实施例中的一种逻辑示意图;
图8为本申请实施例中的一种寄存器应用信息生成方法的具体实施流程示意图;
图9为本申请实施例中的一种寄存器应用信息生成装置的组成结构示意图;
图10为本申请实施例中的一种电子设备的组成结构示意图;
图11为应用本申请实施例的一种计算装置的一个硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
SoC(System on Chip,系统级芯片):也称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
寄存器:指SoC中的寄存器,作为软件硬件相互沟通的桥梁,在SoC设计流程中起着举足轻重的作用。在SOC设计领域中,是通过构成SOC的不同电路功能模块来设计的,即SOC片上系统由不同电路功能模块构成,其中不同电路功能模块都要一些相应的寄存器(即IP核相关的寄存器)。
寄存器描述文件:包含寄存器配置信息的文件,其中,配置信息具体可以有:寄存器基地址,偏移地址,寄存器位宽,寄存器内位域起始比特位,位域宽度,位域名称,硬件访问属性,软件访问属性,默认值,功能详细说明等等。在本申请实施例中,寄存器描述文件的文件类型包括但不限于excel文件,IP-XACT格式的XML文件。
寄存器应用信息:基于寄存器描述文件生成的信息,可用于不同的应用场景下,根据实际需求,可分为:纯文本类型和非纯文本类型这两大类。其中,纯文本是指可以用记事本软件打开的,而不能用记事本软件打开的是非纯文本。比如芯片设计场景下,寄存器应用信息可以是纯文本类的设计代码;芯片验证场景下,可以是纯文本类的UVM寄存器模型;芯片使用场景下,寄存器应用信息可以是纯文本类的固件驱动代码,非纯文本类的设计文档(word,excel)等。
寄存器对象树:指基于寄存器数据生成的对象树,包括父节点以及至少一个级别的子节点,本文是以一级子节点为例说明的(还可进一步包括二级子节点,三级子节点等等),其中,父节点主要用于存储寄存器通用数据,如:名称,访问属性,默认值,详细描述等;子节点则用于存储其他数据,例如寄存器内个位域的名称,位域宽,位域描述等。
IP-XACT:信息存储库,提供有关IP(Internet Protocol,互联网协议)存储器映射和寄存器的详细信息。IP-XACT标准规定了一种基于XML(eXtensible Markup Language,扩展标记语言)的数据结构,从不同方面描述IP的完整信息:配置信息、信号端口、总线接口和寄存器地址分配等,同时该标准可以用于描述子系统和完整的SoC。采用IP-XACT标准描述的IP和系统,能够被任何支持IP-XACT标准的EDA工具集成,从而有效地提高IP和系统在不同EDA(Electronic Design Automation,电子设计自动化)工具间的移植重用性。
UVM(Universal Verification Methodology,通用验证方法学):是一个以SystemVerilog(为SV语言)类库为主体的验证平台开发框架,验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。在本申请实施例中芯片验证阶段,需要基于UVM寄存器模型来进行芯片验证。UVM寄存器模型是一组高级抽象的类,用来对DUT(Device Under Test,被测设备)中具有地址映射的寄存器和存储器进行建模。它非常贴切的反映DUT中寄存器的各种特性,可以产生激励作用于DUT并进行寄存器功能检查。UVM寄存器模型的本质就是重新定义了验证平台与DUT的寄存器接口,使验证人员更好地组织及配置寄存器,简化流程、减少工作量。
下面对本申请实施例的设计思想进行简要介绍:
寄存器作为软件硬件相互沟通的桥梁,在SoC(System on Chip,系统级芯片)设计流程中起着举足轻重的作用。
以芯片验证这一阶段为例,在该阶段中,需要对待测模块进行寄存器的配置,配置不正确,直接导致验证的失败,由此可见寄存器配置对于芯片验证的重要性。
在相关技术中,寄存器描述文件(用于描述寄存器的配置)一般由概念设计团队产生,是整个流程中的数据源,设计团队,验证团队、软件团队及应用支持团队都需要依赖寄存器描述文件产生自己的代码或者文档。
概念设计的改变需要设计代码,验证代码,固件,应用软件,设计文档,用户手册等同步更新,这个过程如果手动完成会非常费时且容易出错,造成额外的沟通和调试工作。
此外,有的团队也会针对自身的问题使用脚本处理,不同团队使用不同的脚本,不同团队的工程师维护各自需要的代码或文档往往会带来不同步的问题,比如使用不同版本的概念设计,同一个团队的不同模块使用不同版本的设计也会带来不匹配的问题。
有鉴于此,本申请实施例提出了一种寄存器应用信息生成方法、装置、电子设备和存储介质。在本申请实施例中,预先针对不同的团队不同的应用需求配置了不同的应用信息模板,进而,在获取到目标寄存器的寄存器描述文件之后,即可对该文件进行解析,获取用于表征寄存器相关配置的寄存器数据,并采用统一的数据结构:对象树,将解析得到的寄存器数据存储至寄存器对象树。在生成寄存器应用信息时,由于本申请预先配置了对应不同应用需求的应用信息模板,因而,在需要生成某种或某些特定类型的寄存器应用信息时,即可基于相应的应用信息模板遍历该寄存器对象树,以生成相应的寄存器应用信息,其中,预先配置好的应用信息模板在使用过程中是固定不变的,统一脚本的,因而,基于这些应用信息模板生成的寄存器应用信息不会带来不同步的问题,也不会存在因不同版本的问题带来的不匹配的问题。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式提供的寄存器应用信息生成方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
参阅图1所示,为本申请实施例提供的一种寄存器应用信息生成方法的实施流程图,该方法的具体实施流程包括如下S11-S13:
S11:获取目标寄存器的寄存器描述文件,并对寄存器描述文件进行解析,获得相应的寄存器数据。
在本申请实施例中,寄存器描述文件用于表征概念设计团队的寄存器设计信息。其中,寄存器描述文件的文件类型包括但不限于:excel文件,IP-XACT格式的XML文件。也即,寄存器描述文件可以是excel文件,IP-XACT格式的XML文件或其他类型的文件,本文不做具体限定。
其中,IP-XACT是一个IEEE的标准用来描述电子元件及其设计,芯片集成常用的ARM(Advanced RISC Machines,一款RISC微处理器)、Synopsis的IP均可以生成IP-XACT格式的XML文件。
在对寄存器描述文件进行解析时,一种可选的实施方式为,根据寄存器描述文件的文件类型,调用相应的文件解析模块解析寄存器描述文件,获得解析后的寄存器数据。
在本申请实施例中,针对不同的文件类型,实现内容的解析时,以excel文件为例,excel文件模板中需要提前指定模板包含所有可能用到的信息,包括寄存器基地址,偏移地址,寄存器位宽,寄存器内位域起始比特位,位域宽度,位域名称,硬件访问属性,软件访问属性,默认值,功能详细说明等。
参阅图2所示,其为本申请实施例中的一种excel类型的寄存器描述文件的示例。
其中,Reg_Description表示寄存器描述,Field_Name表示位域名称,Field_Width表示位域宽度,Field_Offest表示寄存器内位域起始比特位,Field_Reset_Value表示位域复位值,Field_Description表示位域功能详细说明。
进一步地,图2示例性的列举了一种PLL(Phase Locked Loop,锁相环)的寄存器描述文件,寄存器描述为:PLL Configeration(锁相环配置),该寄存器(32位)内划分了6个位域,位域名称分别为:pdrst_pll、n_pll、m_pll、od_pll、bp_pll、rvsd;位域宽度分别为:1、4、8、2、1、16,位域起始比特位分别为:0、1、5、13、15、16,位域复位值分别为:0×0、0×3、0×64、0×1、0×0、0×0,这6个位域的描述分别为:Used to power down analog blocks andreset digital D-flip flop(用于关闭模拟电源并重置数字D触发器)、Input 4-bitdivider control pins.N[0]is LSB(输入4位分频器控制引脚N[0]为最低有效位)、Feedback8-bit divider control pins.M[0]is LSB(反馈4位分频器控制引脚M[0]为最低有效位)、Output divider control pin(输出分频器控制引脚)、Bypass the pll.activehigh(地址偏移量)、Reserved bits(保留位)。
需要说明的是,图2所示的excel类型的寄存器描述文件的格式和内容只是举例说明,具体可根据实际设计灵活调整,本申请不做具体限定。
可选的,考虑到excel文件为手动输入产生,难免产生错误,比如比特位踩踏,地址重复,寄存器位域宽度之和与寄存器位宽不同等语法错误。IP-XACT格式拥有丰富的关键字,包含了上述所有寄存器相关的内容,按照IP-XACT的定义扫描读取即可。在解析过程中如果有错,即对寄存器描述文件解析错误时,则可向用户进行错误提示,便于用户检查寄存器描述文件中的错误,进而更正寄存器描述文件。
其中,进行错误提示的方式可以是文本,图像,语音,震动等,本文步骤具体限定。
S12:将寄存器数据存储至寄存器对象树。
在本申请实施例中,不同输入格式的寄存器描述文件解析后得到的寄存器数据,可以存储到统一的数据结构——对象树中,本文将存储有寄存器数据的对象树简称为寄存器对象树。
可选的,寄存器对象树包括:父节点以及至少一个级别的子节点;再将寄存器数据存储时,主要过程如下:
将寄存器数据中的寄存器通用数据,存储至寄存器对象树中的父节点;以及,基于寄存器数据中的其他数据与通用数据之间的关系,以及子节点自身特征,将其他数据存储至相应的子节点。
如图3所示,其为本申请实施例中所列举的一种对象树结构示意图。该示意图中的寄存器对象树有一个父节点(也称根节点)root 0,以及6个一级子节点register 1-6,18个二级子节点field 7-24。每个节点包含各自的数据成员和方法,所有节点继承于父节点,具体地,父类包含了名称,访问属性,默认值,详细描述等寄存器通用数据,子类则针对自己的特点新增了特殊的数据成员和方法。
比如,针对位域pdrst_pll对应的子节点,新增的特殊的数据成员可以表征该位域是可读、可写,还是可读写等等。
需要说明的是,上述所列举的是寄存器对象树只是举例说明,具体构建的寄存器数据结构需要根据实际情况而定,本文不做具体限定。
S13:基于寄存器对象树和目标类型的应用信息模板,生成针对目标寄存器的目标类型的寄存器应用信息,以基于寄存器应用信息执行相应的操作,其中,应用信息模板是:基于针对目标寄存器的不同应用需求预先配置的。
在本申请实施例中,寄存器应用信息包括但不限于:纯文本类型的寄存器应用信息,非纯文本类型的寄存器应用信息。其中,非纯文本类型比如word,excel,pdf等,纯文本类型比如markdown(一种轻量级标记语言,又称MD),html(HyperText Markup Language,超文本标记语言),c头文件,c源文件,UVM寄存器模型,Verilog(描述语言)设计代码等。相应地,非纯文本类型的寄存器应用信息包括但不限于:设计文档、用户手册;纯文本类型的寄存器应用信息包括但不限于:设计代码、验证UVM寄存器模型、固件驱动代码。
其中,不同类型的寄存器应用信息的应用需要采用对应类型的应用信息模板来生成,而本申请实施例中的应用信息模板,则是由各个团队根据自身需求预设配置的。
如图4所示,其为本申请实施例中的一种整体框架的示意图。可以理解为,本申请实施例中的整体框架可以划分为以下四个部分:
一、寄存器文件输入模块;二、文件解析模块;三、寄存器对象树;四、输出模块。
其中,寄存器文件输入模块用于来处理概念设计团队的寄存器设计,根据不同文件类型,调用相应的文件解析模块对寄存器描述文件进行解析,比如,输入的寄存器描述文件为excel文件时,即可调用excel文件相关的文件解析模块,来进行文件解析,提取其中的关键信息,如图2中所列举的寄存器描述,位域名称,位域宽度等等。再比如,输入的寄存器描述文件为IP-XACT格式的XML文件时,即可调用XML文件相关的文件解析模块,来进行文件解析,提取其中的关键信息等等。
进而,将解析后的寄存器数据建模为寄存器对象树。最终,经过输出模块,结合应用信息模板,输出相应的寄存器应用信息。其中,图4所列举的几个应用信息模板分别为:设计代码模板,验证UVM寄存器模型模板,固件驱动代码模板和设计文档模板;相应地,生成的寄存器应用信息分别为:设计代码.v,验证UVM寄存器模型.sv,固件驱动代码.c和设计文档.doc。
概括来说,本申请实施例中的输出模块可分为非纯文本类输出和纯文本类输出两个子部分。
在一种可选的实施方式中,若目标类型为指定非纯文本类型,则步骤S13的具体执行过程如下:
遍历寄存器对象树中的数据,并调用与指定非纯文本类型相应的库工具,基于指定非纯文本类型的应用信息模板填写遍历结果,生成指定非纯文本类型的寄存器应用信息。
对于非纯文本类输出,需要给定应用信息模板文件,遍历寄存器对象树中的文件,进而调用word/excel/pdf的库工具,基于应用信息模板,填写模板中与寄存器数据相关的内容。
针对这几种不同的非纯文本类型,不同之处则在于生成寄存器应用信息时调用的库工具不同,若指定非纯文本类型为word,则调用word的库工具,若指定非纯文本类型为excel,则调用excel的库工具,若指定非纯文本类型为pdf,则调用pdf的库工具等等。
在一种可选的实施方式中,若目标类型为指定纯文本类型,则步骤S13的具体执行过程如下:
基于指定纯文本类型的应用信息模板和目标语言的模板库工具,将寄存器对象树中的数据与指定纯文本类型的应用信息模板中的内容进行融合,生成指定纯文本类型的寄存器应用信息。
以目标语言为jinja2为例,对于纯文本类的输出,统一使用jinja2模板库工具,jinja2是一个python(一种通用型编程语言)的模板工具,可以将寄存器对象树中的数据与应用信息模板中的其他内容(指模板中固定不变的内容)融合到一起,生成一个文本文件,这样可以使用一份数据,根据不同的输出需求,生成不同的代码或者文本。
该方式下,不同的团队只需要完成不同的jinja2模板,比如设计团队根据自己的需求编写设计代码模板,验证团队正对UVM寄存器模型编写寄存器模型模板以及寄存器扫描、头文件等模板,软件团队编写驱动代码模板,以后有其他团队有其他需求也可以新建自己的输出模板。
如图5所示,其为本申请实施例中的一种应用信息模板的示意图,具体地,图5列举的是一种jinja2的应用信息模板文件代码片段(只展示了部分代码)。
其中,该模板中的一些内容是固定不变的(可简称固定内容),而一些内容是需要基于实际的寄存器描述文件相应的寄存器对象树来进行填写的,最终,将填写的内容与固定内容进行融合,即可生成相应的寄存器应用信息。
在图5中,概括来说两个%之间的内容时需要进行填写的,而其他内容是固定内容,例如固定内容有第一行代码中的address_offset 0x,第二行代码,第四行代码,第六行代码,第八行代码和第十行代码;而需要填写的有第一行代码,第三行代码,第五行代码,第七行代码和第九行代码中两个%之间的内容。
如图6所示,其为本申请实施例中的一种寄存器应用信息的示意图,具体地,图6列举的是使用应用信息模板生成的一段C代码(也称寄存器头文件,同样只展示了部分代码),表示基于图5所示的应用信息模板生成的一种C代码,在芯片销售给用户之后,用户在芯片使用过程中,可以根据该寄存器应用信息了解芯片的详情并使用,等等。
需要说明的是,上述所列举的应用信息模板和寄存器应用信息的方式只是举例说明,本文不做具体限定。
参阅图7所示,其为本申请实施例中的一种逻辑示意图。
以X寄存器为例,首先,概念设计团队对X寄存器进行设计,得到excel格式的寄存器描述文件。进而,对寄存器描述文件进行解析,获得解析后的寄存器数据,如:寄存器描述:xxx,寄存器位域名称:xxx,位域宽度:xxx,位域描述:xxx,……。再基于解析得到的寄存器数据创建寄存器对象树,具体过程可参见上述实施例,重复之处不再赘述。由于本申请实施例中,针对不同的团队,预先配置好了不同的应用信息模板,因而,在获得寄存器对象树后,即可基于不同团队的应用信息模板,和寄存器对象树,生成相应的寄存器应用信息,如基于(芯片)设计团队的设计代码模板生成设计代码.v,可用于芯片设计,基于(芯片)验证团队的验证UVM寄存器模型模板生成验证UVM寄存器模型.sv,可用于芯片验证,……。
参阅图8所示,其为本申请实施例中的一种寄存器应用信息生成方法的具体实施流程示意图。该方法的具体实施流程如下:
步骤S801:基于寄存器文件输入模块,输入寄存器描述文件和目标类型的应用信息模板;
步骤S802:根据寄存器描述文件的文件类型(如IP-XACT格式的XML文件),调用相应的文件解析模块解析寄存器描述文件,获得寄存器数据;
步骤S803:若确定对寄存器描述文件解析错误,则进行错误提示;
步骤S804:将寄存器数据中的寄存器通用数据,存储至寄存器对象树中的父节点,并基于寄存器数据中的其他数据与通用数据之间的关系,以及子节点自身特征,将其他数据存储至相应的子节点;
步骤S805:若目标类型为指定非纯文本类型,遍历寄存器对象树中的数据,并调用与指定非纯文本类型相应的库工具,基于的应用信息模板填写遍历结果,生成指定非纯文本类型的寄存器应用信息;
步骤S806:若目标类型为指定纯文本类型,基于指定纯文本类型的应用信息模板和jinja2模板库工具,将寄存器对象树中的数据与指定纯文本类型的应用信息模板中的内容进行融合,生成指定纯文本类型的寄存器应用信息。
基于相同的发明构思,本申请实施例还提供一种寄存器应用信息生成装置。如图9所示,其为寄存器应用信息生成装置900的结构示意图,可以包括:
解析单元901,用于获取目标寄存器的寄存器描述文件,并对寄存器描述文件进行解析,获得相应的寄存器数据;
存储单元902,用于将寄存器数据存储至寄存器对象树;
生成单元903,用于基于寄存器对象树和目标类型的应用信息模板,生成针对目标寄存器的目标类型的寄存器应用信息,以基于寄存器应用信息执行相应的操作,其中,应用信息模板是:基于针对目标寄存器的不同应用需求预先配置的。
可选的,解析单元901具体用于:
根据寄存器描述文件的文件类型,调用相应的文件解析模块解析寄存器描述文件,获得寄存器数据。
可选的,装置还包括:
提示单元904,用于若确定对寄存器描述文件解析错误,则进行错误提示。
可选的,若目标类型为指定非纯文本类型,生成单元903具体用于:
遍历寄存器对象树中的数据,并调用与指定非纯文本类型相应的库工具,基于指定非纯文本类型的应用信息模板填写遍历结果,生成指定非纯文本类型的寄存器应用信息。
可选的,若目标类型为指定纯文本类型,生成单元903具体用于:
基于指定纯文本类型的应用信息模板和目标语言的模板库工具,将寄存器对象树中的数据与指定纯文本类型的应用信息模板中的内容进行融合,生成指定纯文本类型的寄存器应用信息。
可选的,寄存器对象树包括:父节点以及至少一个级别的子节点;存储单元902具体用于:
将寄存器数据中的寄存器通用数据,存储至寄存器对象树中的父节点;
基于寄存器数据中的其他数据与通用数据之间的关系,以及子节点自身特征,将其他数据存储至相应的子节点。
在本申请实施例中,预先针对不同的团队不同的应用需求配置了不同的应用信息模板,进而,在获取到目标寄存器的寄存器描述文件之后,即可对该文件进行解析,获取用于表征寄存器相关配置的寄存器数据,并采用统一的数据结构:对象树,将解析得到的寄存器数据存储至寄存器对象树。在生成寄存器应用信息时,由于本申请预先配置了对应不同应用需求的应用信息模板,因而,在需要生成某种或某些特定类型的寄存器应用信息时,即可基于相应的应用信息模板遍历该寄存器对象树,以生成相应的寄存器应用信息,其中,预先配置好的应用信息模板在使用过程中是固定不变的,统一脚本的,因而,基于这些应用信息模板生成的寄存器应用信息不会带来不同步的问题,也不会存在因不同版本的问题带来的不匹配的问题。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的寄存器应用信息生成方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。在该实施例中,电子设备的结构可以如图10所示,包括存储器1001,通讯模块1003以及一个或多个处理器1002。
存储器1001,用于存储处理器1002执行的计算机程序。存储器1001可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1001可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1001也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1001是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1001可以是上述存储器的组合。
处理器1002,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1002,用于调用存储器1001中存储的计算机程序时实现上述寄存器应用信息生成方法。
通讯模块1003用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1001、通讯模块1003和处理器1002之间的具体连接介质。本申请实施例在图10中以存储器1001和处理器1002之间通过总线1004连接,总线1004在图10中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1004可以分为地址总线、数据总线、控制总线等。为便于描述,图10中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1001中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的寄存器应用信息生成方法。处理器1002用于执行上述的寄存器应用信息生成方法,如图1所示。
下面参照图11来描述根据本申请的这种实施方式的计算装置110。图11的计算装置110仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11,计算装置110以通用计算装置的形式表现。计算装置110的组件可以包括但不限于:上述至少一个处理单元111、上述至少一个存储单元112、连接不同系统组件(包括存储单元112和处理单元111)的总线113。
总线113表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元112可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储器(ROM)1123。
存储单元112还可以包括具有一组(至少一个)程序模块1124的程序/实用工具1125,这样的程序模块1124包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置110也可以与一个或多个外部设备114(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置110交互的设备通信,和/或与使得该计算装置110能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口115进行。并且,计算装置110还可以通过网络适配器116与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图11所示,网络适配器116通过总线113与用于计算装置110的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置110使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的寄存器应用信息生成方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的寄存器应用信息生成方法中的步骤,例如,电子设备可以执行如图1中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机程序可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种寄存器应用信息生成方法,其特征在于,该方法包括:
获取目标寄存器的寄存器描述文件,并对所述寄存器描述文件进行解析,获得相应的寄存器数据;
将所述寄存器数据存储至寄存器对象树;
基于所述寄存器对象树和目标类型的应用信息模板,生成针对所述目标寄存器的目标类型的寄存器应用信息,以基于所述寄存器应用信息执行相应的操作,其中,所述应用信息模板是:基于针对所述目标寄存器的不同应用需求预先配置的。
2.如权利要求1所述的方法,其特征在于,所述对所述寄存器描述文件进行解析,获得相应的寄存器数据,包括:
根据所述寄存器描述文件的文件类型,调用相应的文件解析模块解析所述寄存器描述文件,获得所述寄存器数据。
3.如权利要求1所述的方法,其特征在于,所述对所述寄存器描述文件进行解析,还包括:
若确定对所述寄存器描述文件解析错误,则进行错误提示。
4.如权利要求1所述的方法,其特征在于,若所述目标类型为指定非文本类型,所述基于所述寄存器对象树和目标类型的应用信息模板,生成相应的寄存器应用信息,包括:
遍历所述寄存器对象树中的数据,并调用与所述指定非文本类型相应的库工具,基于所述指定非文本类型的应用信息模板填写遍历结果,生成所述指定非文本类型的寄存器应用信息。
5.如权利要求1所述的方法,其特征在于,若所述目标类型为指定文本类型,所述基于所述寄存器对象树和目标类型的应用信息模板,生成相应的寄存器应用信息,包括:
基于所述指定文本类型的应用信息模板和目标语言的模板库工具,将所述寄存器对象树中的数据与所述指定纯文本类型的应用信息模板中的内容进行融合,生成所述指定纯文本类型的寄存器应用信息。
6.如权利要求1~5任一项所述的方法,其特征在于,所述寄存器对象树包括:父节点以及至少一个级别的子节点;所述将所述寄存器数据存储至寄存器对象树,包括:
将所述寄存器数据中的寄存器通用数据,存储至所述寄存器对象树中的父节点;
基于所述寄存器数据中的其他数据与所述通用数据之间的关系,以及子节点自身特征,将所述其他数据存储至相应的子节点。
7.一种寄存器应用信息生成装置,其特征在于,包括:
解析单元,用于获取目标寄存器的寄存器描述文件,并对所述寄存器描述文件进行解析,获得相应的寄存器数据;
存储单元,用于将所述寄存器数据存储至寄存器对象树;
生成单元,用于基于所述寄存器对象树和目标类型的应用信息模板,生成针对所述目标寄存器的目标类型的寄存器应用信息,以基于所述寄存器应用信息执行相应的操作,其中,所述应用信息模板是:基于针对所述目标寄存器的不同应用需求预先配置的。
8.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~6中任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~6中任一所述方法的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行权利要求1~6中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210752360.1A CN115357289A (zh) | 2022-06-28 | 2022-06-28 | 寄存器应用信息生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210752360.1A CN115357289A (zh) | 2022-06-28 | 2022-06-28 | 寄存器应用信息生成方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357289A true CN115357289A (zh) | 2022-11-18 |
Family
ID=84030209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210752360.1A Pending CN115357289A (zh) | 2022-06-28 | 2022-06-28 | 寄存器应用信息生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357289A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659941A (zh) * | 2022-11-11 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 适应于多类型接口的文件生成方法及装置 |
CN117687626A (zh) * | 2024-02-04 | 2024-03-12 | 双一力(宁波)电池有限公司 | 一种上位机和主程序匹配系统及方法 |
-
2022
- 2022-06-28 CN CN202210752360.1A patent/CN115357289A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659941A (zh) * | 2022-11-11 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 适应于多类型接口的文件生成方法及装置 |
CN117687626A (zh) * | 2024-02-04 | 2024-03-12 | 双一力(宁波)电池有限公司 | 一种上位机和主程序匹配系统及方法 |
CN117687626B (zh) * | 2024-02-04 | 2024-05-03 | 双一力(宁波)电池有限公司 | 一种上位机和主程序匹配系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9218269B2 (en) | Testing multiple target platforms | |
CN115357289A (zh) | 寄存器应用信息生成方法、装置、电子设备和存储介质 | |
US20070277163A1 (en) | Method and tool for automatic verification of software protocols | |
US20040158820A1 (en) | System for generating an application framework and components | |
Balasubramanian et al. | Polyglot: modeling and analysis for multiple statechart formalisms | |
CN102592023A (zh) | 集成电路设计过程中的寄存器设计方法及装置 | |
Monteiro et al. | Bounded model checking of C++ programs based on the Qt cross‐platform framework | |
CN114691464A (zh) | 一种接口测试方法、计算机设备及计算机可读存储介质 | |
Arcaini et al. | ASM-based formal design of an adaptivity component for a Cloud system | |
Koch et al. | Autolink-a tool for automatic test generation from SDL specifications | |
Bravetti et al. | A formal approach to microservice architecture deployment | |
CN115587558A (zh) | 基于接口的验证环境生成方法及装置、设备和存储介质 | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN111782207A (zh) | 任务流代码生成方法、装置、设备及存储介质 | |
Plosch et al. | Contracts: From analysis to C++ implementation | |
US12013777B2 (en) | Controlling heterogeneous component-based testing in a portable automation framework with test scripts in both API mode and UI mode | |
US10606569B2 (en) | Declarative configuration elements | |
US11132286B1 (en) | Dynamic reordering of test case execution | |
Ebeid et al. | HDL code generation from UML/MARTE sequence diagrams for verification and synthesis | |
El-Attar et al. | Matching antipatterns to improve the quality of use case models | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
Hartmann et al. | UML-based test generation and execution | |
JP2008305079A (ja) | 要求仕様自動検証方式 | |
US20190317877A1 (en) | Application state monitoring |
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 |