CN115113927A - 寄存器模型处理方法、装置、计算机设备和存储介质 - Google Patents

寄存器模型处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115113927A
CN115113927A CN202210466354.XA CN202210466354A CN115113927A CN 115113927 A CN115113927 A CN 115113927A CN 202210466354 A CN202210466354 A CN 202210466354A CN 115113927 A CN115113927 A CN 115113927A
Authority
CN
China
Prior art keywords
register
node
model
information
block
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
Application number
CN202210466354.XA
Other languages
English (en)
Inventor
肖攀彬
严靖琳
马自发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210466354.XA priority Critical patent/CN115113927A/zh
Publication of CN115113927A publication Critical patent/CN115113927A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Abstract

本申请涉及一种寄存器模型处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取寄存器描述文件;从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;确定基于各寄存器节点的层级关系生成的寄存器模型框架;根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;将寄存器信息填充至节点模型框架中,得到寄存器模型文件。采用本方法能够提高寄存器自动化建模的处理效率。

Description

寄存器模型处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种寄存器模型处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着数字集成电路的高速发展,数字集成电路的复杂程度日益增加,单个芯片内所集成的晶体管数量也越来越多。在芯片研发的过程中,芯片各个功能模块由处理器配置功能以及访问状态,而与处理器的对话则通过寄存器(Register)的读写得以实现。所以,寄存器的管理和维护是芯片研发过程中的重要环节,贯穿了芯片研发中的各个阶段。
在对寄存器进行管理和维护时,可以通过对寄存器进行建模,利用建模获得的寄存器模型实现对寄存器的管理和维护,但目前寄存器建模的处理效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高寄存器建模的处理效率的寄存器模型处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种寄存器模型处理方法。所述方法包括:
获取寄存器描述文件;
从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
确定基于各寄存器节点的层级关系生成的寄存器模型框架;
根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
第二方面,本申请还提供了一种寄存器模型处理装置。所述装置包括:
描述文件获取模块,用于获取寄存器描述文件;
寄存器信息获取模块,用于从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
寄存器模型框架确定模块,用于确定基于各寄存器节点的层级关系生成的寄存器模型框架;
节点模型框架确定模块,用于根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
寄存器模型获得模块,用于将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取寄存器描述文件;
从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
确定基于各寄存器节点的层级关系生成的寄存器模型框架;
根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取寄存器描述文件;
从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
确定基于各寄存器节点的层级关系生成的寄存器模型框架;
根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取寄存器描述文件;
从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
确定基于各寄存器节点的层级关系生成的寄存器模型框架;
根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
上述寄存器模型处理方法、装置、计算机设备、存储介质和计算机程序产品,根据从寄存器描述文件中识别出的节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息,并将寄存器信息填充至根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定的节点模型框架中,得到寄存器模型文件。通过将从寄存器描述文件中提取得到的寄存器信息,直接填充到节点标识所标识的寄存器节点的节点模型框架中,以实现对寄存器的建模,简化了寄存器建模处理的繁琐流程,提高了寄存器建模的处理效率。
附图说明
图1为一个实施例中寄存器模型处理方法的应用环境图;
图2为一个实施例中寄存器模型处理方法的流程示意图;
图3为一个实施例中确定寄存器模型框架的流程示意图;
图4为一个实施例中寄存器模型处理的系统架构图;
图5为一个实施例中寄存器模型应用的示意图;
图6为一个实施例中节点拼接的处理示意图;
图7为一个实施例中用户手册展示的界面示意图;
图8为一个实施例中寄存器描述文件拼接的流程示意图;
图9为另一个实施例中寄存器模型处理方法的流程示意图;
图10为一个实施例中保留域确定的示意图;
图11为一个实施例中自环测试的流程示意图;
图12为一个实施例中交叉测试的流程示意图;
图13为一个实施例中寄存器模型处理装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例提供的方案涉及人工智能的寄存器模型处理等技术,具体通过如下实施例进行说明。
本申请实施例提供的寄存器模型处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。芯片开发人员可以在终端102编写寄存器描述文件,并通过终端102将编写完成的寄存器描述文件发送至服务器104,服务器104接收到寄存器描述文件后,根据从寄存器描述文件中识别出的节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息,并将寄存器信息填充至根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定的节点模型框架中,得到寄存器模型文件。此外,寄存器模型处理也可以由服务器104独立实现,如在数据存储系统中存储有寄存器描述文件时,服务器104可以直接从数据存储系统中获取寄存器描述文件,并基于获得的寄存器描述文件进行寄存器模型处理,得到寄存器模型文件。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种寄存器模型处理方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行,在本申请实施例中,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取寄存器描述文件。
其中,寄存器(Register)的功能是存储二进制代码,由具有存储功能的触发器组合起来构成。一个触发器可以存储1位二进制代码,存放n位二进制代码的寄存器,需用n个触发器来构成。寄存器可以作为数字集成电路各模块之间互相对话的窗口,实现数字集成电路的功能控制和状态显示。寄存器模型是指对寄存器这一部件进行建模得到的模型。寄存器模型也可称RAL(Register Abstract Level,寄存器抽象层)。寄存器建模是指在软件中复刻RTL(Register-Transfer Level,寄存器传输级)中的寄存器,此处软件指的是整个验证环境所构造出来的面向对象的世界。通过建模得到的寄存器模型,可以方便获取到当前RTL的功能配置和状态,并收集到对寄存器各个域段甚至位的测试覆盖情况等等。寄存器模型的框架与实际的寄存器对应,是从实际的寄存器的设计中,一一映射为对应的数据结构得到的抽象表示。
寄存器描述文件是指寄存器的定义文件,用于描述寄存器。基于寄存器描述文件可以生成寄存器模型,以供验证过程中的激励使用、寄存器测试和功能覆盖率收集;也可以用于软件开发的寄存器配置的头文件,从而提高软件开发的可维护性;还可以生成可读性高的寄存器说明书。寄存器描述文件可以为各种格式的描述文件,如可以为xml(Extensible Markup Language,可扩展标记语言)格式、Excel格式、DOC格式、IP-XACT格式等各种数据结构化的格式。其中,IP-XACT是一个标准的电子知识产权的说明,包括XML架构定义文件类型,以及一套语义规则,描述了这些文件之间的关系。寄存器描述文件可以由芯片研发人员根据需求架构设计对寄存器进行定义获得。
具体地,服务器获取寄存器描述文件,寄存器描述文件可以由芯片研发人员编写得到,具体可由芯片研发人员在终端编写寄存器描述文件,并通过终端将编写完成的寄存器描述文件发送至服务器,服务器接收得到终端发送的寄存器描述文件。此外,服务器也可以从寄存器描述文件数据中,获取寄存器描述文件,寄存器描述文件定义了需要建模的寄存器的结构。
步骤204,从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息。
其中,节点标识用于标识寄存器节点,寄存器节点为对寄存器中的功能单元进行相应建模得到的节点,即寄存器节点通过对寄存器中的功能单元进行映射得到。例如,寄存器中最小的功能单元为域段(field),也称寄存器域,一个寄存器要切分成多少个域段、每个域段的位宽、默认值、读写属性以及分别用于什么功能的控制或状态的指示,需要根据功能规范进行定义,以构建各个域段各自对应的寄存器节点。节点标识可以区分各个寄存器节点,具体可以包括但不限于包括节点名称、节点编号等各种能够用于区分各寄存器节点的标识信息。寄存器信息是指节点标识所标识的寄存器节点的信息,具体可以包括寄存器节点的名称、编号、地址信息、语法格式、默认值、访问属性等节点属性信息。对于节点标识所标识的不同寄存器节点,具有不同的寄存器信息。
具体地,服务器从寄存器描述文件中识别出节点标识,如服务器可以基于节点标识的定义格式,对寄存器描述文件进行识别,从而从寄存器描述文件中识别出标识各寄存器节点的节点标识。识别出节点标识后,服务器根据该节点标识,从寄存器描述文件中进行信息提取,从而提取得到节点标识所标识的寄存器节点的寄存器信息。例如,服务器从所述寄存器描述文件中识别出的节点标识所标识的寄存器节点为寄存器块(block),服务器根据该节点标识从寄存器描述文件中提取得到的寄存器块的寄存器信息,可以包括但不限于包括寄存器块的大小、起始地址、以及寄存器块的位宽、访问属性、默认值等信息。在具体实现时,服务器可以在识别出节点标识后,在寄存器描述文件中确定节点标识所标识的寄存器节点的描述字段,并从确定的描述字段中,提取得到节点标识所标识的寄存器节点的寄存器信息。
步骤206,确定基于各寄存器节点的层级关系生成的寄存器模型框架。
其中,各个寄存器节点之间具备层级关系,该层级关系根据寄存器节点在寄存器中的所属层次对应,上层对子层存在例化或者包含关系。如寄存器可以包括寄存器域、寄存器、寄存器块等层次,各个层次之间存在层级关系,如寄存器域,即域段为最小的功能单位,即单个寄存器中可以包括多个域段,而寄存器块可以由一个或多个寄存器组成,则单个寄存器的所属层次高于域段所处的层次。寄存器模型框架是寄存器建模中的模型模板,不同层级的具有不同的模型模板。寄存器模型框架可以包括各个层次的寄存器节点的模型框架,且根据各个层次的寄存器节点的模型框架之间的层级关系组合得到。寄存器模型框架可以反映出目标建模的寄存器中各个寄存器节点之间的层级关系。
具体地,服务器确定寄存器模型框架,该寄存器模型框架基于各寄存器节点之间的层级关系生成得到。具体实现时,服务器可以生成寄存器模型框架,具体可以先生成各寄存器节点各自的模型框架,并基于各寄存器节点之间的层级关系,将各寄存器节点各自的模型框架进行组合,得到能够反映出各个寄存器节点之间层级关系的寄存器模型框架。
步骤208,根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架。
其中,节点模型框架是与节点标识所标识的寄存器节点关联的模型框架,即节点模型框架作为节点标识所标识的寄存器节点的模型模板,通过对节点模型框架进行信息填充,可以实现对节点标识所标识的寄存器节点的建模处理,得到节点标识所标识的寄存器节点的寄存器模型。
具体地,服务器确定节点标识所标识的寄存器节点的层级关系,从而按照该层级关系,从寄存器模型框架中查询与节点标识所标识的寄存器节点关联的节点模型框架,具体可以查询到与节点标识所标识的寄存器节点属于相同层次的模型框架,作为该寄存器节点所关联的节点模型框架。
步骤210,将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
其中,寄存器模型文件包括基于寄存器信息进行建模得到的寄存器模型。根据所针对建模的寄存器节点以及功能需求的不同,得到的寄存器模型文件具有不同的形式,例如可以包括但不限于包括rtl、ral、c header(C头文件)、html(Hyper Text MarkupLanguage,超文本标记语言)文件、以及macro(宏文件)等寄存器模型文件。
具体地,从寄存器模型框架中确定节点模型框架后,服务器将该节点模型框架作为识别出的节点标识所标识的寄存器节点的模型模板,并将该寄存器节点的寄存器信息填充至节点模型框架中,得到寄存器模型文件。在具体应用中,若寄存器描述文件为完整描述寄存器中各寄存器节点的描述文件,则可以从寄存器描述文件中识别出各个寄存器节点的节点标识,服务器可以将每个寄存器节点的寄存器信息,分别填充至寄存器模型框架中关联的节点模型框架中,并整合寄存器模型框架,得到全芯片级的寄存器模型文件,如得到寄存器传输级文件或寄存器抽象层文件,通过寄存器传输级文件或寄存器抽象层文件可以对寄存器进行高效地管理和维护,从而能够提高芯片的研发效率。
上述寄存器模型处理方法中,根据从寄存器描述文件中识别出的节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息,并将寄存器信息填充至根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定的节点模型框架中,得到寄存器模型文件。通过将从寄存器描述文件中提取得到的寄存器信息,直接填充到节点标识所标识的寄存器节点的节点模型框架中,以实现对寄存器的建模,简化了寄存器建模处理的繁琐流程,提高了寄存器建模的处理效率。
在一个实施例中,从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息,包括:从寄存器描述文件中识别出节点名称;确定在寄存器描述文件中,节点名称所标识的寄存器节点的节点描述字段;从节点描述字段中,提取得到节点名称所标识的寄存器节点的寄存器信息。
其中,节点标识包括节点名称,具体为寄存器节点的节点命名名称,在寄存器描述文件中通过节点名称区别各个寄存器节点相应的描述文件。如节点名称可以为“AXI_FW_MST_CTRL”。节点描述字段是指对寄存器节点进行描述的字段。在寄存器描述文件中,不同的寄存器节点具有不同的节点描述字段,即通过不同的节点描述字段描述不同的寄存器节点,寄存器节点的寄存器信息记录于关联的节点描述字段中。
具体地,服务器对寄存器描述文件进行解析,从寄存器描述文件中识别出节点名称,如可由服务器按照预设的节点名称格式,从寄存器描述文件中进行名称识别,从而识别出节点名称。服务器基于识别出的节点名称,在寄存器描述文件中确定节点名称所标识的寄存器节点的节点描述字段。例如,服务器可以基于节点名称,在寄存器描述文件中查询用于描述节点名称所标识的寄存器节点的节点描述字段。确定节点名称所标识的寄存器节点的节点描述字段后,服务器对节点描述字段进行信息提取,以从节点描述字段中提取得到节点名称所标识的寄存器节点的寄存器信息,如提取得到寄存器节点的地址信息、语法格式、默认值、访问属性等节点属性信息。
本实施例中,通过识别出的节点名称从寄存器描述文件中确定节点描述字段,并从节点描述字段中提取节点名称所标识的寄存器节点的寄存器信息,可以根据节点名称从寄存器描述文件中快速、准确地提取寄存器信息,有利于提高基于寄存器信息进行寄存器建模的处理效率。
在一个实施例中,从节点描述字段中,提取得到节点名称所标识的寄存器节点的寄存器信息,包括:确定节点名称所标识的寄存器节点的目标节点类型;确定与目标节点类型关联的节点描述格式;按照节点描述格式对节点描述字段进行字段解析,获得节点名称所标识的寄存器节点的寄存器信息。
其中,节点类型为寄存器节点的类型,如可以包括项目类型、寄存器块类型、寄存器类型和寄存器段类型等。不同类型的寄存器节点具有不同的寄存器信息字段,即具有不同范围的寄存器信息。目标节点类型为节点名称所标识的寄存器节点的节点类型。节点描述格式为描述寄存器节点的格式,不同的节点类型可以关联不同的节点描述格式,从而能针对各式各样的寄存器节点进行灵活地描述。例如,对于寄存器块,其节点描述格式可以通过“<block_name>”指定寄存器块的名称、通过“<block_offset>”指定寄存器块的偏移地址,通过“<data_width>”指定寄存器块的数据宽度,通过“<block_size>”指定寄存器块所占据的地址深度,从而通过该四个字段描述寄存器块。
具体地,从所述节点描述字段中提取寄存器信息时,服务器确定节点名称所标识的寄存器节点的目标节点类型。在具体应用中,在节点名称中携带节点类型信息,如通过节点名称表示出节点类型时,可以由服务器直接根据节点名称,确定所标识的寄存器节点的目标节点类型。在节点名称中未携带节点类型信息时,服务器可以确定节点名称所标识的寄存器节点,并基于节点名称所标识的寄存器节点,确定该寄存器节点目标节点类型,如服务器可以根据节点名称所标识的寄存器节点的层级关系,确定该寄存器节点目标节点类型。服务器查询与目标节点类型关联的节点描述格式。不同的节点类型预先与不同的节点描述格式关联,在生成寄存器描述文件时,按照节点描述格式对属于节点类型的寄存器节点进行描述。节点描述格式可以包括关键词格式、字段范围、取值范围等各种与描述寄存器节点相关的格式。服务器按照确定的节点描述格式,对从寄存器描述文件中确定的节点描述字段进行字段解析,从而获得节点名称所标识的寄存器节点的寄存器信息。
本实施例中,按照与节点名称所标识的寄存器节点的目标节点类型关联的节点描述格式,对节点描述字段进行字段解析,得到寄存器信息,可以基于与节点类型关联的节点描述格式对节点描述字段进行准确、高效地字段解析,有利于提高基于寄存器信息进行寄存器建模的处理效率。
在一个实施例中,如图3所示,确定寄存器模型框架的处理,即确定基于各寄存器节点的层级关系生成的寄存器模型框架,包括:
步骤302,生成各寄存器节点各自的模型框架。
其中,模型框架为基于寄存器节点生成的模型模板,通过向模型框架中填充寄存器信息,可以构建寄存器节点的寄存器模型。模型框架可以通过模型生成引擎生成得到,不同节点类型的寄存器节点可以生成不同的模型框架。节点类型为寄存器节点的类型,如可以包括项目类型、寄存器块类型、寄存器类型和寄存器段类型等。例如,寄存器块可以生成寄存器块模型框架,而寄存器域可以生成寄存器域模型框架。
具体地,服务器确定各寄存器节点,各寄存器节点根据需要进行建模处理的寄存器硬件确定,用于对寄存器进行抽象表示。服务器生成各寄存器节点各自的模型框架,具体服务器可以针对每个寄存器节点分别生成模型框架,得到各寄存器节点各自的模型框架。
步骤304,根据各寄存器节点之间的层级关系,确定各寄存器节点的模型框架层次信息。
其中,各个寄存器节点之间具备层级关系,该层级关系与寄存器节点在寄存器中的所属层次对应。模型框架层次信息是指寄存器节点相应的模型框架在寄存器模型框架中的层次信息,即模型框架在寄存器模型框架中所处的层次。寄存器节点的模型框架层次信息,与各寄存器节点之间的层级关系对应,具体可以根据各寄存器节点之间的层级关系映射得到各寄存器节点的模型框架层次信息。如模型框架层次信息可以包括寄存器节点A、寄存器节点B和寄存器节点C各自对应的模型框架A、模型框架B和模型框架C所处的层次。
具体地,服务器确定各寄存器节点之间的层级关系,该层级关系与寄存器节点所抽象表示的结构在寄存器硬件中所属层次对应。服务器根据各寄存器节点之间的层级关系,确定各寄存器节点的模型框架层次信息,具体可以由服务器将各寄存器节点之间的层级关系进行映射,以映射获得各寄存器节点各自的模型框架的模型框架层次信息。
步骤306,按照各寄存器节点的模型框架层次信息,将各模型框架进行组合,得到寄存器模型框架。
其中,寄存器模型框架根据各寄存器节点各自的模型框架组合得到,且寄存器模型框架能够反映各寄存器节点之间的层级关系。具体地,得到各寄存器节点的模型框架层次信息后,服务器按照该模型框架层次信息,将各寄存器节点各自的模型框架进行组合,具体可以按照模型框架层次信息所反映的不同模型框架之间的层级关系,将模型框架进行组合,并保留模型框架之间的层级关系,从而根据各寄存器节点的模型框架组合得到寄存器模型框架。在寄存器模型框架中,保留了各个模型框架之间的层级关系,能够体现各个模型框架的模型框架层次信息。
本实施例中,根据各寄存器节点之间的层级关系,确定各寄存器节点各自的模型框架的模型框架层次信息,并按照模型框架层次信息将各模型框架进行组合,得到寄存器模型框架,使得寄存器模型框架能够反映出各寄存器节点之间的层级关系,通过向寄存器模型框架填充寄存器信息以构建寄存器模型,不需要再基于各寄存器节点之间的层级关系进行关联处理,简化了寄存器建模的处理流程,提高了寄存器建模的处理效率。
在一个实施例中,生成各寄存器节点各自的模型框架,包括:确定针对寄存器描述文件的寄存器建模需求;获取与寄存器建模需求关联的模型生成引擎;通过模型生成引擎,生成各寄存器节点的模型框架。
其中,寄存器建模需求是指基于寄存器描述文件进行寄存器建模处理时,所需要构建的寄存器模型的需求,如可以包括需要构建的寄存器模型的类型,具体可以包括但不限于包括rtl、ral、c header、html文件、以及macro文件等寄存器模型文件。针对不同的寄存器建模需求,需要通过不同的模型生成引擎进行建模处理。例如,若寄存器建模需求包括rtl、ral、c header、html文件以及macro文件等寄存器模型文件,则针对rtl需要通过rtl模型生成引擎进行建模处理,针对ral需要通过ral模型生成引擎进行建模处理,针对cheader需要通过c文件生成引擎进行建模处理,针对html文件需要通过html生成引擎进行建模处理,针对macro文件需要通过macro模型生成引擎进行建模处理。
具体地,服务器确定针对寄存器描述文件的寄存器建模需求,基于寄存器建模需求可以确定需要将建模的模型类型,如rtl、ral、c header、html文件、以及macro文件等类型的寄存器模型文件。寄存器建模需求可以预先通过需求指令进行描述,服务器通过对需求指令进行解析,得到针对寄存器描述文件的寄存器建模需求。服务器基于寄存器建模需求,确定与该寄存器建模需求关联的模型生成引擎,不同的寄存器建模需求需要通过不同的模型生成引擎支持建模处理。服务器确定针对寄存器描述文件的寄存器建模需求后,根据该寄存器建模需求确定针对寄存器描述文件进行建模处理所需的模型生成引擎。在具体应用中,寄存器建模需求与模型生成引擎之间可以预先构建映射关系,服务器可以基于该映射关系,根据确定的针对寄存器描述文件的寄存器建模需求,确定与寄存器建模需求关联的模型生成引擎。服务器通过获取的模型生成引擎,生成各寄存器节点的模型框架,具体服务器可以按照各寄存器节点的节点特性进行定义,以由模型生成引擎生成能够抽象表示寄存器节点的模型框架。
本实施例中,服务器通过与寄存器建模需求关联的模型生成引擎,生成各寄存器节点的模型框架,从而使生成的各寄存器节点的模型框架满足针对寄存器描述文件的寄存器建模需求,进而构建得到满足寄存器建模需求的寄存器模型文件。
在一个实施例中,将寄存器信息填充至节点模型框架中,得到寄存器模型文件,包括:确定节点模型框架中的至少一个待填充区;将寄存器信息填充至至少一个待填充区中,得到寄存器模型文件。
其中,待填充区是节点模型框架中需要填充寄存器信息以得到寄存器模型的信息填充区域。节点模型框架中包括至少一个待填充区,以在该至少一个待填充区中填充寄存器节点的寄存器信息,从而得到针对寄存器节点进行抽象表示的寄存器模型文件。寄存器模型文件包括基于寄存器信息进行建模得到的寄存器模型,具体如rtl、ral、c header(C头文件)、html(Hyper Text Markup Language,超文本标记语言)文件、以及macro(宏文件)等寄存器模型文件。
具体地,在将寄存器信息填充至节点模型框架中时,服务器确定节点模型框架中的至少一个待填充区,并将述寄存器信息填充到至少一个的待填充区中,得到寄存器模型文件。在具体应用中,存在多个待填充区时,各个待填充区可以填充不同的寄存器信息,则服务器可以将基于各个待填充区,分别从寄存器信息中确定需要进行填充的待填充信息,并将待填充信息填充至相应的待填充区中,从而确保信息填充的准确性,得到准确的寄存器模型文件。
本实施例中,通过将寄存器信息填充至节点模型框架中的至少一个待填充区中,获得寄存器模型文件,从而利用寄存器信息对节点模型框架的待填充区进行配置,实现寄存器建模处理,简化了寄存器建模的处理流程,提高了寄存器建模的处理效率。
在一个实施例中,待填充区包括内容区和目录区;将寄存器信息填充至至少一个待填充区中,得到寄存器模型文件,包括:从寄存器信息中提取内容信息,将内容信息填充至内容区中;基于寄存器信息确定目录信息,将目录信息填充至目录区中;建立目录区中的目录信息与内容区中的内容信息之间的链接关系,得到寄存器说明书文件。
其中,所述待填充区包括内容区和目录区,内容区为展示寄存器节点的具体信息的区域,目录区为展示寄存器节点之间关联信息的区域。内容信息为描述寄存器节点的节点属性信息的信息,如寄存器节点为寄存器块时,内容信息可以包括但不限于包括寄存器块的寄存器块名、基地址、模块大小、数据总线位宽以及模块例化次数等信息。目录信息反映了当前寄存器节点在所有寄存器节点中的层级关系。通过建立目录信息与内容信息之间的链接关系,可以实现目录信息与内容信息的链接,如可以基于目录信息快速查询定位到相应的内容信息。寄存器说明书文件是对建立的寄存器模型的说明文件,可以作为建模的寄存器模型的使用手册,即用户可以通过寄存器说明书文件快速掌握建模的寄存器模型的使用方法,以通过寄存器模型进行相应作业。
具体地,服务器从寄存器信息中提取内容信息,并将提取得到的内容信息填充至节点模型框架的内容区中,如可以将寄存器块的寄存器块名、基地址和模块大小等内容信息填充到节点模型框架的内容区中。服务器基于寄存器信息确定目录信息,目录信息可以包括当前寄存器节点与各寄存器节点之间的层级关系,服务器将确定的目录信息填充至节点模型框架的目录区中。例如,服务器可以将寄存器块与其他寄存器节点之间的层级关系,写入节点模型框架的目录区中。服务器建立目录区中的目录信息与内容区中的内容信息之间的链接关系,从而将目录区中的目录信息与内容区中的内容信息进行链接关联,从而可以通过目录区中的目录信息实现对内容区中的内容信息的快速查询和定位,得到寄存器说明书文件。用于可以通过寄存器说明书文件,查询目录区中的目录信息,并通过目录区中的目录信息实现对内容区中的内容信息进行快速定位,从而提高了寄存器信息的可读性。
本实施例中,通过建立目录区中的目录信息与内容区中的内容信息之间的链接关系,将目录区中的目录信息与内容区中的内容信息进行链接关联,从而可以通过目录区中的目录信息实现对内容区中的内容信息的快速查询和定位,增强了寄存器说明书文件的可读性,有利于提高基于寄存器说明书文件进行寄存器模拟作业的处理效率。
在一个实施例中,从寄存器描述文件中识别出的节点标识为多个;将寄存器信息填充至节点模型框架中,得到寄存器模型文件,包括:按照多个节点标识各自标识的寄存器节点的层级关系,通过自底向上的顺序,逐级填充多个节点标识各自标识的寄存器节点的节点模型框架;根据填充后的各节点模型框架,整合得到寄存器模型文件。
其中,从寄存器描述文件中识别出的节点标识为多个,即寄存器描述文件中描述了多个寄存器节点。例如,寄存器描述文件为描述寄存器完整结构的描述文件,则寄存器描述文件中包括针对寄存器的各个结构进行抽象描述的描述文件。在填充节点模型框架以得到寄存器模型文件时,可以根据识别出的多个寄存器节点之间的层级关系,按照从层级由低向高的顺序进行逐级填充,并对填充结果进行整合得到寄存器模型文件。
具体地,服务器从寄存器描述文件中识别出的节点标识为多个,在将寄存器信息填充至节点模型框架中时,服务器确定多个节点标识各自标识的寄存器节点的层级关系,上层对子层存在例化或者包含关系,并按照层级关系自底向上的顺序,即从层级低到层级高的顺序,逐级填充多个节点标识各自标识的寄存器节点的节点模型框架,得到填充后的各节点模型框架。服务器根据填充后的各节点模型框架,整合得到寄存器模型文件,从而实现对寄存器的建模处理。例如,寄存器描述文件中描述了寄存器块、寄存器和寄存器域等各层次的寄存器节点,则在构建寄存器模型文件时,服务器可以确定各寄存器块、寄存器和寄存器域之间的层级关系,其中寄存器块的层次高于寄存器的层次,而寄存器的层次又高于寄存器域的层次。服务器可以先将寄存器域的寄存器信息填充至寄存器域的节点模型框架中,再将寄存器的寄存器信息填充至寄存器的节点模型框架中,最后将寄存器块的寄存器信息填充至寄存器块的节点模型框架中,服务器整合填充后的各节点模型框架,得到寄存器模型文件。
本实施例中,对于多层次的寄存器模型的构建中,按照寄存器节点的层级关系,通过自底向上的顺序逐级填充多个寄存器节点的节点模型框架,并整合填充后的各节点模型框架得到寄存器模型文件,从而能够确保寄存器模型文件有序构建,确保寄存器模型文件构建的处理效率。
在一个实施例中,根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息,包括:根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的原始信息;当确定原始信息存在缺失时,对原始信息进行信息补全,获得中间信息;当中间信息通过信息错误检验时,根据中间信息得到节点标识所标识的寄存器节点的寄存器信息。
其中,原始信息是从寄存器描述文件中直接提取得到的寄存器节点的寄存器信息,提取到的原始信息可能存在缺失或错误。中间信息是对存在缺失的原始信息进行信息补全后得到的寄存器节点的寄存器信息,中间信息确保了寄存器信息的完整性。信息错误检验是指对寄存器节点的寄存器信息进行错误校验的过程,以确保寄存器节点的寄存器信息的准确性。
具体地,服务器根据节点标识对寄存器描述文件进行信息提取,以从寄存器描述文件中提取得到节点标识所标识的寄存器节点的原始信息,原始信息是直接提取得到的源信息,原始信息中可能存在信息缺失或信息错误,需要对原始进行处理,以确保寄存器信息的完整性和准确性,从而确保构建的寄存器模型的可靠性。服务器对原始信息的完整性进行校验,在确定原始信息存在缺失时,服务器可以对原始信息进行信息补全,具体可以由服务器从寄存器描述文件中进行补充提取,以提取得到原始信息所缺失的信息,服务器也可以对缺失的信息进行预测和推理,得到原始信息所缺失的信息,并通过原始信息所缺失的信息对原始信息进行信息补全,得到获得中间信息。获得的中间信息符合完整性要求,即寄存器节点的关键信息未遗漏。
服务器对中间信息进行信息错误检验,以校验中间信息的准确性,具体可以包括但不限于包括对块间、块内的地址踩踏、域段踩踏、块内溢出、域段溢出、复位值与域段位宽不匹配、重复描述、信息遗漏、块大小不工整等各种校验处理。当服务器确定中间信息通过信息错误检验时,表明中间信息满足准确性要求,则服务器根据中间信息得到节点标识所标识的寄存器节点的寄存器信息,如服务器可以将通过信息错误检验的中间信息,作为节点标识所标识的寄存器节点的寄存器信息。此外,若中间信息未通过信息错误检验,则服务器可以对中间信息的准确性进行报警和修正,以在修正后的中间信息通过信息错误检验时,根据修正后的中间信息得到节点标识所标识的寄存器节点的寄存器信息,从而确保了寄存器信息的准确性。
本实施例中,对直接从寄存器描述文件中提取得到的原始信息依次进行信息补全和信息错误检验,确保了寄存器信息的完整性和准确性,从而提高了基于寄存器信息构建得到的寄存器模型的可靠性。
在一个实施例中,获取寄存器描述文件,包括:获取基于分布式开发得到的各寄存器描述子文件;将各寄存器描述子文件进行拼接,获得寄存器描述文件。
其中,寄存器描述文件用于定义寄存器,可由芯片研发人员根据研发需求进行编写得到。芯片研发中往往基于分布式开发方式实现,即不同的研发人员开发不同的部分,再将各部分的开发结果进行拼接得到完整的芯片研发结果。在分布式开发过程中,各个研发人员可以编写分配的芯片开发任务所相关的寄存器描述子文件,即寄存器描述子文件为寄存器完整的描述文件的部分。
具体地,服务器获取基于分布式开发得到的各寄存器描述子文件,在芯片研发任务分布式处理时,寄存器的描述文件也可以拆分成多个寄存器描述子文件。服务器将获得的各寄存器描述子文件进行拼接,具体可以按照各寄存器节点之间层级关系,将各寄存器描述子文件进行拼接,得到完整的寄存器描述文件。
例如,对于芯片研发中将芯片研发任务T划分为任务A、任务B、任务C和任务D进行分布式开发处理,任务A涉及的寄存器包括寄存器A1、寄存器A2和寄存器A3,任务B涉及的寄存器包括寄存器B1和寄存器B2,任务C涉及的寄存器包括寄存器C1、寄存器C2和寄存器C3,任务D涉及的寄存器包括寄存器D1、寄存器D2和寄存器D3,若任务A、任务B、任务C和任务D由四个开发人员分别进行处理,则在分布式开发过程中,每个开发人员可以针对其开发任务编写相应的寄存器描述子文件,从而得到寄存器描述子文件A、寄存器描述子文件B、寄存器描述子文件C和寄存器描述子文件D,而通过将寄存器描述子文件A、寄存器描述子文件B、寄存器描述子文件C和寄存器描述子文件D拼接,可以得到芯片研发任务T对应的完整的寄存器描述文件,如可以为寄存器描述子文件A+寄存器描述子文件B+寄存器描述子文件C+寄存器描述子文件D。
本实施例中,芯片研发基于分布式开发实现,基于分布式开发获得各寄存器描述子文件,通过将分布式开发得到的各寄存器描述子文件进行拼接,得到完整的寄存器描述文件,使得寄存器描述文件可以拆分出多个子文件进行分布式开发,能够提高寄存器描述文件的生成效率,从而提高基于寄存器描述文件进行寄存器建模的处理效率。
在一个实施例中,将各寄存器描述子文件进行拼接,获得寄存器描述文件,包括:从各寄存器描述子文件中,提取各寄存器描述子文件各自描述的寄存器节点的节点属性信息;基于节点属性信息,确定各寄存器描述子文件描述的寄存器节点之间的层级关系;按照各寄存器描述子文件描述的寄存器节点之间的层级关系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。
其中,节点属性信息是指寄存器描述子文件所描述的寄存器节点的属性信息,具体可以包括所描述的寄存器节点的ID(唯一编码)、名称、字符串等各种属性信息。寄存器节点之间的层级关系,是指不同的寄存器节点所处层次之间的联系关系。例如,寄存器节点1为域段,而寄存器节点2为寄存器,则寄存器节点2包括寄存器节点1为域段,寄存器节点2的层次高于寄存器节点1的层次。
具体地,得到各寄存器描述子文件,服务器确定各寄存器描述子文件各自描述的寄存器节点,并从寄存器描述子文件中提取所描述的寄存器节点的节点属性信息,具体可以对寄存器描述子文件中的节点属性字段进行解析,从而提取得到所描述的寄存器节点的节点属性信息。例如,服务器可以提取到所描述的寄存器节点的ID信息。服务器根据提取的节点属性信息确定各寄存器描述子文件描述的寄存器节点之间的层级关系。具体服务器可以基于节点属性信息确定所描述的寄存器节点所处的层次,基于各个描述的寄存器节点所处层次之间的联系,得到各寄存器描述子文件描述的寄存器节点之间的层级关系。服务器按照确定的各寄存器描述子文件描述的寄存器节点之间的层级关系,将各个寄存器描述子文件进行拼接,具体按照层级关系之间的层次联系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。寄存器描述文件可以记录有各寄存器描述子文件描述的寄存器节点之间的层级关系。
在具体应用中,节点属性信息可以为寄存器描述子文件所描述寄存器节点的ID信息,服务器将该ID信息作为寄存器描述子文件的句柄,并将各ID信息进行归类、排序,确定根节点ID,遍历所有的ID信息,确定ID信息之间的父子关系,从而确定各ID信息关联的寄存器描述子文件之间的层级关系,服务器按照各ID信息之间的父子关系,将各ID信息关联的寄存器描述子文件进行拼接,得到寄存器描述文件,寄存器描述文件的句柄即为根节点ID信息。
本实施例中,基于寄存器描述子文件描述的寄存器节点的节点属性信息,将各寄存器描述子文件进行拼接,可以支持芯片研发的分布式开发需求,确保各寄存器描述子文件能够高效进行拼接,从而提高基于拼接后得到的寄存器描述文件进行寄存器建模的处理效率。
在一个实施例中,将各寄存器描述子文件进行拼接,获得寄存器描述文件,包括:确定各寄存器描述子文件之间的关联关系;基于各寄存器描述子文件之间的关联关系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。
其中,各寄存器描述子文件可以为基于寄存器块进行划分,各寄存器描述子文件之间存在关联关系,具体可以包括各寄存器描述子文件之间的父子关系、层级关系、嵌套关系等联系。根据各寄存器描述子文件之间的关联关系,可以依次将各寄存器描述子文件进行拼接,得到寄存器描述文件,寄存器描述文件可以反映各寄存器描述子文件描述的寄存器节点之间的层级关系。
具体地,服务器确定各寄存器描述子文件之间的关联关系,各寄存器描述子文件之间的关联关系,可以在针对各寄存器描述子文件进行分布式开发时确定,并记录在关联关系表中,服务器可以通过查询关联关系表,确定各寄存器描述子文件之间的关联关系。服务器根据各寄存器描述子文件之间的关联关系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。例如,服务器可以按照各寄存器描述子文件之间的父子关系,将各寄存器描述子文件进行拼接,以形成反映了各寄存器描述子文件描述的寄存器节点之间的层级关系的寄存器描述文件。
在具体实现中,进行分布式开发时,按照各寄存器节点之间的层级关系进行开发任务划分,从而得到存在关联关系的开发子任务,针对各开发子任务生成各自的各寄存器描述子文件,并基于各寄存器描述子文件之间的关联关系,该关联关系反映了各寄存器描述子文件所描述的寄存器节点之间的层级关系。服务器可以通过直接查询各寄存器描述子文件之间的关联关系,并按照关联关系将各寄存器描述子文件进行拼接,从而得到寄存器描述文件。
此外,在具体应用时,基于各寄存器描述子文件之间的关联关系进行拼接的处理,可以与基于寄存器描述子文件描述的寄存器节点的节点属性信息,将各寄存器描述子文件进行拼接的处理进行结合,从而丰富寄存器描述子文件的拼接方式,以扩展更多的适用场景,并进一步提高寄存器描述子文件拼接的处理效率。
本实施例中,基于各寄存器描述子文件之间的关联关系,将各寄存器描述子文件进行拼接,可以基于各寄存器描述子文件直接进行拼接,提高了寄存器描述子文件的拼接效率,从而提高基于拼接后得到的寄存器描述文件进行寄存器建模的处理效率。
在一个实施例中,寄存器模型处理方法还包括:根据从寄存器描述文件提取得到的各寄存器节点的寄存器信息,确定各寄存器块各自的块起始地址和块大小;基于块起始地址和块大小,确定各寄存器块的块间保留域和块内保留域;对块间保留域和块内保留域进行访问测试,得到各寄存器块的访问测试结果。
其中,寄存器块是寄存器节点中的块节点,寄存器块可以包括一个或多个寄存器。块起始地址是指寄存器块的起始地址,也称基地址,块大小指寄存器块所占地址的多少。保留域(Reserved)是指寄存器中保留用以将来添加新功能的地址区域。块间保留域是指寄存器块与寄存器块之间所保留的地址区域,块内保留域则为在寄存器块内部所保留的地址区域。访问测试指对块间保留域和块内保留域的读写访问进行的测试,从而检测块间保留域和块内保留域的读写功能是否正常。访问测试结果为对块间保留域和块内保留域进行访问测试得到的测试结果。
具体地,服务器从寄存器描述文件中提取到各寄存器节点的寄存器信息后,基于各寄存器节点的寄存器信息,确定各个寄存器块各自的块起始地址和块大小。具体可由服务器从提取得到的寄存器信息中,筛选得到寄存器块的寄存器信息,并根据寄存器块的寄存器信息确定各寄存器块各自的块起始地址和块大小。服务器根据确定的块起始地址和块大小,分析确定各寄存器块的块间保留域和块内保留域。例如,对于块间保留域,服务器可以将各寄存器块按照块起始地址和块结束地址进行排列,块结束地址可以根据块起始地址和块大小确定,服务器基于排列结果,确定块间保留域。如对于排序后相邻的寄存器块A和寄存器块B,若寄存器块A的块起始地址为a1,寄存器块A的块结束地址为a2,寄存器块B的块起始地址为b1,寄存器块B的块结束地址为b2,服务器可以将块结束地址a2至块起始地址b1之间的地址区域,确定为寄存器块A和寄存器块B之间的块间保留域。服务器分别对确定的块间保留域和块内保留域进行访问测试,即测试块间保留域和块内保留域的读写功能,得到各寄存器块的访问测试结果。进一步地,若访问测试结果表示块间保留域和块内保留域的访问功能正常,即块间保留域和块内保留域能够正常进行读写,块间保留域和块内保留域正常。
本实施例中,根据各寄存器块各自的块起始地址和块大小确定块间保留域和块内保留域,并对块间保留域和块内保留域进行访问测试,从而可以对块间保留域和块内保留域进行测试,确保块间保留域和块内保留域的正常功能。
在一个实施例中,基于块起始地址和块大小,确定各寄存器块的块间保留域和块内保留域,包括:根据块起始地址和块大小,确定各寄存器块各自的块结束地址;根据各寄存器块各自的块起始地址和块结束地址,确定各寄存器块之间的块间保留域;根据各寄存器块各自的块内最大寄存器地址和块结束地址,确定各寄存器块各自的块内保留域。
其中,块结束地址是指寄存器块的结束地址,可以根据块起始地址和块大小计算得到,如从块起始地址开始,跨越块大小的地址空间,即可确定块结束地址。块间保留域可以根据各寄存器块各自的块起始地址和块结束地址确定,一般地,对于在地址空间中排序的队列中,相邻寄存器块之间的块间保留域为排序在前的寄存器块的块结束地址,至排序在后的寄存器块的块起始地址之间的地址区间。块内最大寄存器地址是指在寄存器块的内部,寄存器的最大地址,即非保留域的最大地址。根据寄存器块的块内最大寄存器地址、块起始地址和块大小,可以确定寄存器块的块内保留域,具体可以根据块起始地址和块大小确定寄存器块的块结束地址,并根据块内最大寄存器地址至块结束地址之间的地址区间,得到寄存器块的块内保留域。
具体地,服务器根据各寄存器块各自的块起始地址和块大小,确定各寄存器块各自的块结束地址,具体可以根据块起始地址与块大小的和,确定寄存器块的块结束地址。服务器根据各寄存器块各自的块起始地址和块结束地址,确定各寄存器块之间的块间保留域,具体可以由服务器将各寄存器块的块起始地址和块结束地址进行比较,根据比较结果确定各寄存器块之间的块间保留域。具体应用中,服务器可以根据各寄存器块各自的块起始地址和块结束地址,按照地址先后进行排序,并根据排序后相邻的寄存器块的块起始地址和块结束地址,确定相邻的寄存器块之间的块间保留域,遍历所有寄存器块,得到所有的块间保留域。服务器确定各寄存器块各自的块内最大寄存器地址,块内最大寄存器地址为寄存器块内部非保留域的最大地址,服务器根据块内最大寄存器地址和块结束地址,确定寄存器块的块内保留域,具体可以将寄存器块的块内最大寄存器地址至块结束地址之间的地址区间,确定为块内保留域该寄存器块的块内保留域。
本实施例中,根据各寄存器块各自的块起始地址和块大小确定寄存器块各自的块结束地址,根据块起始地址和块结束地址确定块间保留域,根据块内最大寄存器地址和块结束地址确定块内保留域,从而基于块起始地址和块大小准确确定寄存器块的块间保留域和块内保留域,以便对块间保留域和块内保留域进行访问测试。
在一个实施例中,寄存器模型处理方法还包括:通过寄存器模型文件进行寄存器扫描测试,得到扫描测试结果;通过寄存器模型文件进行功能验证测试,得到功能验证测试结果;将扫描测试结果和功能验证测试结果进行匹配,获得寄存器模型文件的自环测试结果。
其中,寄存器扫描测试是指基于建模得到的寄存器模型文件对测试参数进行处理,从而测试寄存器模型的功能,得到扫描测试结果。功能验证测试是指对寄存器模型的功能进行验证的测试,得到功能验证测试结果。自环测试结果指对寄存器模型文件进行自环测试的测试结果。自环测试是指将寄存器模型文件的扫描测试结果和功能验证测试结果进行匹配,以测试两条测试路径是否形成闭环,即是否获得相匹配的测试结果,从而测试寄存器模型文件的寄存器扫描测试和功能验证测试是否统一。
具体地,服务器通过寄存器模型文件进行寄存器扫描测试,具体可以由寄存器模型文件对预设的测试参事进行处理,得到扫描测试结果。服务器通过寄存器模型文件进行功能验证测试,具体可以根据寄存器模型文件中的寄存器说明书文件进行功能验证测试,得到功能验证测试结果。服务器将得到的扫描测试结果和功能验证测试结果进行比对,以测试扫描测试结果和功能验证测试结果是否统一,得到自环测试结果。当扫描测试结果和功能验证测试结果相匹配时,表明寄存器扫描测试和功能验证测试这两条测试路径形成闭环,则自环测试结果为通过自环测试;若扫描测试结果和功能验证测试结果不匹配,则自环测试结果为不通过自环测试,表明寄存器模型文件未通过测试,寄存器模型文件不可信,无法进行可靠处理,需要重新进行建模处理。
本实施例中,通过将寄存器扫描测试得到的扫描测试结果,与功能验证测试得到的功能验证测试结果进行匹配,实现对寄存器模型文件的自环测试,可以确保寄存器模型文件的准确性和可靠性。
在一个实施例中,寄存器模型处理方法还包括:获取寄存器参考模型;寄存器参考模型,是基于参考方式进行寄存器建模得到的、与寄存器描述文件所描述的寄存器相匹配的寄存器模型;通过寄存器模型文件中的目标寄存器模型和寄存器参考模型,分别对测试参数进行模型处理,得到目标寄存器模型和寄存器参考模型各自的模型处理结果;基于目标寄存器模型和寄存器参考模型各自的模型处理结果,得到寄存器模型文件的交叉测试结果。
其中,寄存器参考模型是基于参考方式进行寄存器建模得到的、与寄存器描述文件所描述的寄存器相匹配的寄存器模型。参考方式是第三方的寄存器建模方式,寄存器参考模型通过第三方的寄存器建模方式,针对寄存器描述文件所描述的寄存器进行寄存器建模得到,寄存器参考模型与寄存器描述文件所描述的寄存器相匹配。即寄存器参考模型与寄存器模型文件所针对建模的是相同的寄存器。测试参数根据实际需要进行灵活设置,以通过由寄存器模型文件中的目标寄存器模型和寄存器参考模型,对测试参数进行模型处理,得到各自的模型处理结果。目标寄存器模型为寄存器模型文件中需要进行测试处理的寄存器模型。交叉测试是指目标寄存器模型和寄存器参考模型针对相同的测试参数进行模型处理,测试是否能够获得匹配模型处理结果,从而测试寄存器模型文件中的目标寄存器模型,与第三方的寄存器建模方式建模得到的寄存器参考模型能够实现功能的一致性。
具体地,服务器获取寄存器参考模型,该寄存器参考模型是基于参考方式进行寄存器建模得到的、与寄存器描述文件所描述的寄存器相匹配的寄存器模型。服务器确定寄存器模型文件中需要进行测试的目标寄存器模型,并分别通过目标寄存器模型和寄存器参考模型对相同的测试参数进行模型处理,得到目标寄存器模型和寄存器参考模型各自的模型处理结果。服务器基于目标寄存器模型和寄存器参考模型各自的模型处理结果,得到寄存器模型文件的交叉测试结果。例如,服务器可以将目标寄存器模型和寄存器参考模型各自的模型处理结果进行匹配,根据匹配结果得到寄存器模型文件的交叉测试结果。若目标寄存器模型和寄存器参考模型各自的模型处理结果相匹配,表明目标寄存器模型和寄存器参考模型能够实现一致性的功能,则交叉测试结果可以为测试通过;若目标寄存器模型和寄存器参考模型各自的模型处理结果不匹配,则表明目标寄存器模型无法与寄存器参考模型实现一致性的功能,表明寄存器模型文件未通过测试,寄存器模型文件不可信,无法进行可靠处理,需要重新进行建模处理,得到的交叉测试结果为测试不通过。
本实施例中,通过将寄存器模型文件中的目标寄存器模型和基于参考方式进行寄存器建模得到的、与寄存器描述文件所描述的寄存器相匹配的寄存器参考模型进行交叉测试,可以确保寄存器模型文件的准确性和可靠性。
本申请还提供一种应用场景,该应用场景应用上述的寄存器模型处理方法。具体地,该寄存器模型处理方法在该应用场景的应用如下:
寄存器的管理和维护贯穿了芯片研发的各个阶段,而目前寄存器管理方案大多基于ralf(synopsys指定的一套标准)协议实现,具体流程为基于excel描述寄存器,基于ralf协议构建寄存器的rtl、ral等模型。即用户通过excel描述寄存器,通过脚本生成ralf,在利用synopsys提供的工具生成目标格式的寄存器模型。此外,还可以基于通用的标准实现,寄存器管理的方案,具体可以基于ip-xact实现,ip-xact为一种互联和集成协议。具体流程为基于excel描述寄存器,基于ip-xact协议构建寄存器rtl、ral等格式的模型。在目前寄存器管理和维护中,不仅需要掌握excel等寄存器输入方式,还需要使用ralf协议或者ip-xact协议等多种协议,增加了寄存器管理的成本。而且,excel寄存器输入方式在集成时对用户不友好,不适于大数据量的编辑处理,同时由于寄存器定义源头不严格,导致输出源头未得到统一,影响了寄存器建模的处理效率。此外,寄存器用户手册无法呈现与硬件层次对应的层次化效果,影响了寄存器模型的实际应用。
基于此,本实施例提供了一种寄存器模型处理方法,从寄存器描述源头进行规划,采用xml且可兼容ip-xact,并引入基于id的灵活高效集成方式,从而支持一键式生成寄存器的所有目标文件,形成一整套贯穿芯片开发全流程的管理方案。具体地,如图4所示,本实施例提供的寄存器模型处理方法,可以划分为用户输入层、内部处理层和输出层。其中,用户输入层为寄存器的描述部分,也就是定义寄存器,这一步在芯片开发流程中通常由设计人员完成。用户可以在用户输入层按层次合并通过各种方式编写的寄存器描述文件,包括ip-xact描述文件、xml描述文件以及excel描述文件,ip-xact描述文件也可以直接挂载至xml描述文件中,按层次合并得到的xml描述文件可以输入内部处理层进行模型构建处理。此外,在用户输入层,也可以指定目标层级输入至内部处理层进行模型构建处理。内部处理层完成寄存器信息提取转化,该过程可由服务器内部实现,使用户不感知。具体地,内部处理层对输入的寄存器描述文件进行信息提取,得到寄存器信息的中间表示,并基于中间表示进行模型构建处理。输出层为目标格式寄存器模型和用户手册,可供芯片研发流程各阶段使用。具体地,输出层可以输出由内部处理层建模得到的各种格式的寄存器模型,可以包括但不限于包括寄存器传输级模型(rtl)、寄存器抽象层模型(ral)、宏文件模型(macro)、保留域模型(reserved)、头文件模型(c header)和多层级用户手册(html)等。此外,还可以采用json作为寄存器定义入口,基于python或者其他脚本、或者引用第三库来作为引擎,而构建的寄存器模型也可根据需要产生不同组织形式,用户手册呈现也可替换成html以外的其他方式,如txt文件等。
进一步地,如图5所示,在芯片各研发阶段,寄存器各目标文件可以在不同阶段得到应用。具体地,在芯片研发流程中,首先导入芯片研发需求,并基于需求进行规格制定与架构设计,得到寄存器定义文件,具体为xml格式文件。基于寄存器定义文件建模得到的寄存器传输级模型可以在芯片设计实现的流程中得到应用,而各种格式的寄存器模型,包括ral、macro、html和c header等可以在芯片功能验证过程中得到应用。芯片通过功能验证后进行物理实现,即生产出相应的芯片产品,并对得到的芯片进行回片测试,回片测试过程可以利用用户手册和头文件。芯片通过回片测试后,用户可以基于芯片进行应用开发,在应用开发过程中,用户可以利用用户手册和头文件基于芯片进行应用开发。
本实施例提供的寄存器模型处理方法,可以支持xml、ip-xact和excel等各种寄存器定义方式,可在自定义的xml描述文件中挂载ip-xact描述文件,能够有效解决自研模块和外购模块的融合问题,实现全芯片级的模型输出。通过统一寄存器定义入口,以一键式生成多种寄存器模型和手册,可用于各个研发环节,彻底贯穿了芯片研发流程。基于xml一键式生成全芯片级且具备多层次导航栏的html作为寄存器用户手册。而且,能够自动识别地址包含块内和块间的保留域(reserved)地址,并支持导出EDA(电子设计自动化,Electronic design automation)验证的序列seq,可以实现边界地址空间自动化扫描,序列seq能够自动实现地址空间的读写功能、属性等测试。基于分布式开发的描述文件能够基于id实现xml灵活强大的拼接,项目各层次可并行开发,自动化合并,同时具备高容错性,自动化检查地址/域段踩踏、溢出等错误。此外,rtl接口通用,支持众多协议,如apb(AdvancedPeripheral Bus,高级外设总线)和axi(Advanced eXtensible Interface,一种总线协议)等。
本实施例提供的寄存器模型处理方法,在产品表现角度包括两方面。其一为用户输入角度,用户可以输入基于自定义xml且兼容ip-xact方式,用户从field、register、block等几个层次描述寄存器,涉及到寄存器块的大小,起始地址等,以及寄存器和域段的位宽、访问属性、默认值等信息。在一个具体应用中,对于寄存器的描述xml形式可以如下。
Figure BDA0003624337710000271
Figure BDA0003624337710000281
对于不同的寄存器结构,可以设置相应的描述格式。例如,对于对寄存器的描述,可以通过“reg_name”指定当前register的名称;通过非必要选项“reg_offset”指定当前register在子块subblock中的偏移地址,以byte为单位计算偏移,不指定时默认由上一个寄存器的偏移地址;通过非必要选项“reg_type”指定当前register的实现属性,可选配置为(register,memory),不指定时默认为register;在当前寄存器为宽寄存器时,通过非必要选项“reg_width”指定寄存器的宽度,必须为2即bits宽度,单位为bit。又如,对于寄存器域的描述,可以通过“field_name”指定当前field名称;通过“field_offset”指定当前field在register中的bit偏移起始位置;通过“field_width”指定当前field的bit宽度;通过“field_access”指定当前field的读写属性;通过“field.init.value”指定当前field的初始默认值(复位值);通过“field_description”记录关于当前field的描述。
进一步地,对于芯片研发过程中的协同问题,可以通过xml实现分布式开发。在芯片研发项目前期阶段,各模块可以基于各分支xml开展研发工作,到了集成阶段,可以对分支xml做拼接merge,然后生成子系统级或者系统级的模型和文档。拼接方式可以有两种,一种为可以由寄存器块地址block_map和寄存器子块subblock对应关系进行拼接,block_map用于系统工程师对地址进行统一的规划。如图6所示,对于分布式开发得到的各种寄存器描述文件,包括系统寄存器描述文件、寄存器描述子文件1、寄存器描述子文件2……寄存器描述子文件n,将各描述文件进行节点拼接,得到拼接后的描述文件。在基于id地址进行合并时,可以通过已标注id进行展示,如可以通过“<all_register id="xianjing.smp.qspi_ctrl">”进行标注。描述文件的拼接方式可以灵活搭配使用,合并类型也不只支持自定义xml的合并,还支持ip-xact、excel的合并,也支持ip-xact挂载到xml树中进行合并。
本实施例提供的寄存器模型处理方法在产品表现的第二方面在输出层中进行体现。输出层rtl模型为设计可直接交付的verilog寄存器模型,verilog为一种硬件描述语言;ral为uvm(Universal Verification Methodology,通用验证方法学)寄存器抽象模型用于功能验证;macro也用于验证或者其他功能中;寄存器序列seq用于寄存器域reserved地址的扫描测试;c header model可用于功能验证也可用于回片测试以及应用开发;html为寄存器手册用于芯片研发应用各个阶段。
本实施例提供的寄存器模型处理方法具备强大的xml集成功能,能够基于xml生成各层级rtl/ral/c header/html/macro等文件,rtl为通用模型,适配各种host协议格式,如apb、ahb(Advanced High Performance Bus,高级高性能总线)、axi等。ral为标准的uvm寄存器传输级模型,完全适配uvm验证平台,且支持不同级别层次的使用。而且,寄存器访问数据和地址总线位宽可灵活设置,适配各种开发场景使用,支持多地址寄存器、支持存储器memory结构寄存器模型。寄存器模型处理方法具有较强的容错性,对块间、块内的地址踩踏,域段踩踏,块内溢出,域段溢出,复位值与域段位宽不匹配,重复描述,信息遗漏,块大小不工整能够起警示。支持'RW','RWHW','WRC','W1C','W1S','WO','RC','RO'等uvm支持的各种寄存器类型的存取方式。其中,RW会尽量写入,读取时无影响;RWHW为针对硬件的读写;WRC为尽量写入,读取时清零;W1C为写1清零,写0时无影响,读取时无影响;W1S为写1设置所有的位,写0时无影响,读取时无影响;WO为尽可能写入,读取时会出错;RC为写入时无影响,读取时会清零;RO为读写均无影响。此外,本实施例提供的寄存器模型处理方法中,交互接口用界面interface实现,满足多级寄存器结构的需要,不限层级,兼容ip_xact,xml树中能够挂载ip_xact,可以进行多次例化模块的表示。另外,通过生成seq用于reserved地址寄存器扫描测试,支持版本迭代携带提示信息,可以解决多视角编址问题,且块内重复寄存器可只描述一次,可以减少开发工作量。
其中,rtl、ral、c等是与研发用户的代码交付件,Html寄存器手册是与用户的文档交付件。Html作为研发流程中各阶段都会使用的交付件,文档的展示效果非常重要,本实施例中html交付件展示可以具备多层次结构目录和灵活好用的链接。如图7所示,在界面的左边显示寄存器目录信息,通过在寄存器目录中选中查阅的寄存器,可以在界面右侧显示寄存器的具体信息,包括寄存器地址、寄存器标识,以及寄存器的信息。对于显示的寄存器标识,还可以添加超链接,以实现寄存器信息的快速访问和定位。
具体地,本实施例提供的寄存器模型处理方法,可以利用python脚本解析xml实现,涉及到python、v、sv、c、xml、html、javascript等语言,能够自动化生成芯片开发各个环节使用的代码和资料,形成了贯穿项目开发应用全流程的寄存器管理方案。如图8所示,进行分布式开发后,可以基于block嵌套的合并方式或基于id拼接方式,将分布式的各寄存器描述文件进行拼接。对于id的拼接方式,xml的管理采用树形结构,自顶向下,完成项目分工开发,合并过程采用自底向上,逐级合并,到树根root即可获得全芯片(full chip)级的xml。此外,也可以根据各阶段开发需要,将任意节点进行开发以建立相应的寄存器模型。具体地,导入各个寄存器描述文件xml,获取每个寄存器描述文件袋的标识,具体为id,作为文件句柄,具体可以提取xml文件中的所有register节点的id(节点属性)信息,并将此id作为该xml节点的句柄。将id进行归类排序,获得根节点,即root节点,也就是root id。遍历所有id节点,算出该节点的父节点,并将其挂载到父节点,以root id作为句柄,输出合并后的xml文件。
进一步地,生成目标模型和使用手册文档时,如图9所示,读入寄存器描述文件,检索并提取关键信息,补全缺省信息,并进行错误排查,输出错误,从而得到中间表示。基于中间表示可以通过各种模型产生引擎生成相应的模型,包括寄存器传输级(rtl)产生引擎、寄存器抽象层(ral)产生引擎、头文件(c产生引擎以及说明文档(html)产生引擎等。此外,根据中间表示还可以提取保留域地址,并生成保留域空间测试序列,通过保留域空间测试序列可以对保留域进行读写测试。
具体地来说,先产生基于python内建的数据结构的中间表示,再利用开发的模型和手册产生引擎生成目标模型和手册。生成中间表示时需要对输入的xml进行信息筛查和补全,对错误输入进行报警,达到各引擎能够适配的标准输入。生成目标模型和手册时,引擎需要构造出各种目标模型框架,并将中间表示信息填充到框架中,完成模型输出。同时,可以支持块间和块内reserved地址测试序列的自动生成,以对保留域进行读写测试。
其中,首先读入合并后的xml文件,并根据xml节点名提取不同层次的寄存器信息。寄存器信息分成四个层次,第一个是系统层的工程名、基地址、数据总线位宽,第二个是寄存器块的模块名、基地址、模块大小、数据总线位宽,模块例化次数等,第三个是寄存器块内的寄存器信息,包括寄存器名、寄存器偏移地址、寄存器位宽、寄存器份数等,第四个是域段信息,包括域段名、域段位宽、域段起始位置、域段属性、域段初始值,域段描述等。寄存器信息提取后,对缺省的信息进行自动补齐,以确保关键信息未发生遗漏。还需要进行错误检查,错误检查可分为两块,包括缺省信息检查和错误冲突问题的检查。检查包括对块间、块内的地址踩踏、域段踩踏、块内溢出、域段溢出、复位值与域段位宽不匹配、重复描述、信息遗漏、块大小不工整等。错误检查完成后得到基于python数据结构的中间表示。
得到中间表示后,利用模型产生引擎,生成目标模型文件。具体地,模型产生引擎包括rtl、ral、c、html等各种引擎,具体可以基于模型框架的基础上,将中间表示层信息逐个对应进行填充。先产生一个模型框架,框架需要将预留出可变的填充口,框架也根据需要分几个层次,自底向上可分为field层、register层、block层、subsystem层、project层,上层对子层存在例化或者包含关系。再同样采用自底向上方式,逐级填充所在层次的内容。最后整合各层次内容,最终形成full_chip级的模型输出。
以html引擎为例,html产生两个栏目,为内容栏和目录栏,两个栏目可以各自构成。内容栏的field层为表格行,register层为html表格,block层则为一系列register表格和头部的register链接表格,表格为框架,表格种的内容为中间表示信息的对应填充。内容栏由许许多多的文件组成,每个block层为一个html文件,往上每个id层级又是一个包含多个block的html文件,组成方式依然含当前层所有block层信息和链接的表格。如此到project级,就为整个内容栏。对于目录栏,首先生成框架结构,框架由html的head(头)、body(主体)和script(脚本)三部分组成。head部分对html样式进行规划,包括html整体结构、栏目组成、缩进形式等;body部分则是目录的核心,构成形式严格遵循三步法,涉及到的多层级嵌套都是基于脚本用循坏产生。Script层是html需要调用的一些通用函数,如页面切换switchpage、折叠展开fold/unfold等函数。
此外,本实施例提供的寄存器模型处理方法支持自动生成reserved地址扫描测试序列(seq)。具体地,从中间表示中提取所有寄存器块的基地址和模块大小,从而计算出每个模块的起始地址和结束地址,并将此组成一个地址序列,然后对该序列进行排序,如果将序列索引号表示成1、2、3……,那么索引号2n到2n+1所代表的地址区间就是块间的reserved地址,n为索引号。块内的reserved地址计算原理为,首先获取到块内的最大寄存器地址,并根据块基地址和块大小算出块的结束地址,块内的最大寄存器地址到块结束地址这段范围确定为块内的reserved地址。如图10所示,对寄存器块1、寄存器块2和寄存器块3,块起始1+块大小1至块起始2之间的地址为块间保留域区间,块起始2+块大小2至块起始3之间的地址为块间保留域区间。而对于一个寄存器块,块内的最大寄存器地址至块起始+块大小之间的地址为块内保留域区间。根据确定的reserved地址套用于扫描组件中,扫描组件可以对reserved地址逐个发起读写访问,并且可以自动判断读写属性、读写结果等是否符合预期,从而可以生成reserved地址测试序列seq,以完成全自动化的reserved地址扫描测试。
此外,对于寄存器模型的测试,可以证明寄存器模型处理方法的充分可靠性。具体可以通过两个层面进行验证,包括自环测试和交叉测试,每个层面的测试还可以划分为模型扫描测试和功能测试。其中,对于自环测试,如图11所示,测试平台可以基于uvm搭建,通过测试参数进行寄存器扫描测试,包括模块1中的寄存器抽象层和模块2中的寄存器传输级,模块1可以为testbench模块,模块2可以为top_v模块。另一方面,通过html寄存器手册和c头文件进行功能验证,两条测试路径已经形成闭环,即得到相匹配的测试结果,验证构建的寄存器模型充分可信。如图12所示,交叉测试为基于第三方商用工具的对接测试,同样可以基于uvm进行等价性验证,通过本实施例构建的目标模型和第三方商用工具获得的参考模型,分别对测试激励进行模型处理,并根据各自的模型输出进行一致性验证。模型覆盖rtl、ral等,同时需要做扫描测试和功能验证,测试项不仅可以寄存器的基本功能,还可以包括寄存器的读写属性、初始值、bit是否存在粘连、地址是否重叠等等各种测试。
本实施例提供的寄存器模型处理方法,能够自动化生成芯片研发各个环节使用的寄存器代码和资料,形成了贯穿芯片研发和应用全流程的寄存器管理方案,不仅可以保证芯片研发质量,而且省去了各环节寄存器模型和手册开发的繁琐工作,提高了寄存器建模的处理效率,且可确保版本的高质量交付。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的寄存器模型处理方法的寄存器模型处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个寄存器模型处理装置实施例中的具体限定可以参见上文中对于寄存器模型处理方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种寄存器模型处理装置1300,包括:描述文件获取模块1302、寄存器信息获取模块1304、寄存器模型框架确定模块1306、节点模型框架确定模块1308和寄存器模型获得模块1310,其中:
描述文件获取模块1302,用于获取寄存器描述文件;
寄存器信息获取模块1304,用于从寄存器描述文件中识别出节点标识,并根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的寄存器信息;
寄存器模型框架确定模块1306,用于确定基于各寄存器节点的层级关系生成的寄存器模型框架;
节点模型框架确定模块1308,用于根据节点标识所标识的寄存器节点的层级关系,从寄存器模型框架中确定节点模型框架;
寄存器模型获得模块1310,用于将寄存器信息填充至节点模型框架中,得到寄存器模型文件。
在一个实施例中,寄存器信息获取模块1304包括节点名称识别模块、描述字段确定模块和描述字段处理模块;其中:节点名称识别模块,用于从寄存器描述文件中识别出节点名称;描述字段确定模块,用于确定在寄存器描述文件中,节点名称所标识的寄存器节点的节点描述字段;描述字段处理模块,用于从节点描述字段中,提取得到节点名称所标识的寄存器节点的寄存器信息。
在一个实施例中,描述字段处理模块包括节点类型确定模块、描述格式确定模块和字段解析模块;其中:节点类型确定模块,用于确定节点名称所标识的寄存器节点的目标节点类型;描述格式确定模块,用于确定与目标节点类型关联的节点描述格式;字段解析模块,用于按照节点描述格式对节点描述字段进行字段解析,获得节点名称所标识的寄存器节点的寄存器信息。
在一个实施例中,寄存器模型框架确定模块1306包括模型框架生成模块、层次信息确定模块和模型组合模块;其中:模型框架生成模块,用于生成各寄存器节点各自的模型框架;层次信息确定模块,用于根据各寄存器节点之间的层级关系,确定各寄存器节点的模型框架层次信息;模型组合模块,用于按照各寄存器节点的模型框架层次信息,将各模型框架进行组合,得到寄存器模型框架。
在一个实施例中,模型框架生成模块包括需求确定模块、引擎确定模块和引擎处理模块;其中:需求确定模块,用于确定针对寄存器描述文件的寄存器建模需求;引擎确定模块,用于获取与寄存器建模需求关联的模型生成引擎;引擎处理模块,用于通过模型生成引擎,生成各寄存器节点的模型框架。
在一个实施例中,寄存器模型获得模块1310包括填充区确定模块和填充处理模块;其中:填充区确定模块,用于确定节点模型框架中的至少一个待填充区;填充处理模块,用于将寄存器信息填充至至少一个待填充区中,得到寄存器模型文件。
在一个实施例中,待填充区包括内容区和目录区;填充处理模块还用于从寄存器信息中提取内容信息,将内容信息填充至内容区中;基于寄存器信息确定目录信息,将目录信息填充至目录区中;建立目录区中的目录信息与内容区中的内容信息之间的链接关系,得到寄存器说明书文件。
在一个实施例中,从寄存器描述文件中识别出的节点标识为多个;寄存器模型获得模块1310,还用于按照多个节点标识各自标识的寄存器节点的层级关系,通过自底向上的顺序,逐级填充多个节点标识各自标识的寄存器节点的节点模型框架;根据填充后的各节点模型框架,整合得到寄存器模型文件。
在一个实施例中,寄存器信息获取模块1304包括原始信息提取模块、信息补全模块和错误检验模块;其中:原始信息提取模块,用于根据节点标识,从寄存器描述文件中提取得到节点标识所标识的寄存器节点的原始信息;信息补全模块,用于当确定原始信息存在缺失时,对原始信息进行信息补全,获得中间信息;错误检验模块,用于当中间信息通过信息错误检验时,根据中间信息得到节点标识所标识的寄存器节点的寄存器信息。
在一个实施例中,描述文件获取模块1302包括子文件获取模块和拼接模块;其中:子文件获取模块,用于获取基于分布式开发得到的各寄存器描述子文件;拼接模块,用于将各寄存器描述子文件进行拼接,获得寄存器描述文件。
在一个实施例中,拼接模块包括节点属性信息提取模块、层级关系确定模块和子文件拼接模块;其中:节点属性信息提取模块,用于从各寄存器描述子文件中,提取各寄存器描述子文件各自描述的寄存器节点的节点属性信息;层级关系确定模块,用于基于节点属性信息,确定各寄存器描述子文件描述的寄存器节点之间的层级关系;子文件拼接模块,用于按照各寄存器描述子文件描述的寄存器节点之间的层级关系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。
在一个实施例中,拼接模块还用于,确定各寄存器描述子文件之间的关联关系;基于各寄存器描述子文件之间的关联关系,将各寄存器描述子文件进行拼接,得到寄存器描述文件。
在一个实施例中,还包括地址确定模块、保留域确定模块和访问测试模块;其中:地址确定模块,用于根据从寄存器描述文件提取得到的寄存器信息,确定各寄存器块各自的块起始地址和块大小;保留域确定模块,用于基于块起始地址和块大小,确定各寄存器块的块间保留域和块内保留域;访问测试模块,用于对块间保留域和块内保留域进行访问测试,得到各寄存器块的访问测试结果。
在一个实施例中,保留域确定模块包括地址分析模块、块间保留域确定模块和块内保留域确定模块;其中:地址分析模块,用于根据块起始地址和块大小,确定各寄存器块各自的块结束地址;块间保留域确定模块,用于根据各寄存器块各自的块起始地址和块结束地址,确定各寄存器块之间的块间保留域;块内保留域确定模块,用于根据各寄存器块各自的块内最大寄存器地址和块结束地址,确定各寄存器块各自的块内保留域。
在一个实施例中,还包括扫描测试模块、功能验证模块和自环测试结果获得模块;其中:扫描测试模块,用于通过寄存器模型文件进行寄存器扫描测试,得到扫描测试结果;功能验证模块,用于通过寄存器模型文件进行功能验证测试,得到功能验证测试结果;自环测试结果获得模块,用于将扫描测试结果和功能验证测试结果进行匹配,获得寄存器模型文件的自环测试结果。
在一个实施例中,还包括参考模型获取模块、测试参数处理模块和交叉测试结果获取模块;其中:参考模型获取模块,用于获取寄存器参考模型;寄存器参考模型,是基于参考方式进行寄存器建模得到的、与寄存器描述文件所描述的寄存器相匹配的寄存器模型;测试参数处理模块,用于通过寄存器模型文件中的目标寄存器模型和寄存器参考模型,分别对测试参数进行模型处理,得到目标寄存器模型和寄存器参考模型各自的模型处理结果;交叉测试结果获取模块,用于基于目标寄存器模型和寄存器参考模型各自的模型处理结果,得到寄存器模型文件的交叉测试结果。
上述寄存器模型处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储寄存器模型处理数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种寄存器模型处理方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (20)

1.一种寄存器模型处理方法,其特征在于,所述方法包括:
获取寄存器描述文件;
从所述寄存器描述文件中识别出节点标识,并根据所述节点标识,从所述寄存器描述文件中提取得到所述节点标识所标识的寄存器节点的寄存器信息;
确定基于各寄存器节点的层级关系生成的寄存器模型框架;
根据所述节点标识所标识的寄存器节点的层级关系,从所述寄存器模型框架中确定节点模型框架;
将所述寄存器信息填充至所述节点模型框架中,得到寄存器模型文件。
2.根据权利要求1所述的方法,其特征在于,所述从所述寄存器描述文件中识别出节点标识,并根据所述节点标识,从所述寄存器描述文件中提取得到所述节点标识所标识的寄存器节点的寄存器信息,包括:
从所述寄存器描述文件中识别出节点名称;
确定在所述寄存器描述文件中,所述节点名称所标识的寄存器节点的节点描述字段;
从所述节点描述字段中,提取得到所述节点名称所标识的寄存器节点的寄存器信息。
3.根据权利要求2所述的方法,其特征在于,所述从所述节点描述字段中,提取得到所述节点名称所标识的寄存器节点的寄存器信息,包括:
确定所述节点名称所标识的寄存器节点的目标节点类型;
确定与所述目标节点类型关联的节点描述格式;
按照所述节点描述格式对所述节点描述字段进行字段解析,获得所述节点名称所标识的寄存器节点的寄存器信息。
4.根据权利要求1所述的方法,其特征在于,所述确定基于各寄存器节点的层级关系生成的寄存器模型框架,包括:
生成各寄存器节点各自的模型框架;
根据所述各寄存器节点之间的层级关系,确定所述各寄存器节点的模型框架层次信息;
按照所述各寄存器节点的模型框架层次信息,将各所述模型框架进行组合,得到寄存器模型框架。
5.根据权利要求4所述的方法,其特征在于,所述生成各寄存器节点各自的模型框架,包括:
确定针对所述寄存器描述文件的寄存器建模需求;
获取与所述寄存器建模需求关联的模型生成引擎;
通过所述模型生成引擎,生成所述各寄存器节点的模型框架。
6.根据权利要求1所述的方法,其特征在于,所述将所述寄存器信息填充至所述节点模型框架中,得到寄存器模型文件,包括:
确定所述节点模型框架中的至少一个待填充区;
将所述寄存器信息填充至所述至少一个待填充区中,得到寄存器模型文件。
7.根据权利要求6所述的方法,其特征在于,所述待填充区包括内容区和目录区;所述将所述寄存器信息填充至所述至少一个待填充区中,得到寄存器模型文件,包括:
从所述寄存器信息中提取内容信息,将所述内容信息填充至所述内容区中;
基于所述寄存器信息确定目录信息,将所述目录信息填充至所述目录区中;
建立所述目录区中的目录信息与所述内容区中的内容信息之间的链接关系,得到寄存器说明书文件。
8.根据权利要求1所述的方法,其特征在于,从所述寄存器描述文件中识别出的节点标识为多个;所述将所述寄存器信息填充至所述节点模型框架中,得到寄存器模型文件,包括:
按照多个所述节点标识各自标识的寄存器节点的层级关系,通过自底向上的顺序,逐级填充多个所述节点标识各自标识的寄存器节点的节点模型框架;
根据填充后的各节点模型框架,整合得到寄存器模型文件。
9.根据权利要求1所述的方法,其特征在于,所述根据所述节点标识,从所述寄存器描述文件中提取得到所述节点标识所标识的寄存器节点的寄存器信息,包括:
根据所述节点标识,从所述寄存器描述文件中提取得到所述节点标识所标识的寄存器节点的原始信息;
当确定所述原始信息存在缺失时,对所述原始信息进行信息补全,获得中间信息;
当所述中间信息通过信息错误检验时,根据所述中间信息得到所述节点标识所标识的寄存器节点的寄存器信息。
10.根据权利要求1所述的方法,其特征在于,所述获取寄存器描述文件,包括:
获取基于分布式开发得到的各寄存器描述子文件;
将所述各寄存器描述子文件进行拼接,获得寄存器描述文件。
11.根据权利要求10所述的方法,其特征在于,所述将所述各寄存器描述子文件进行拼接,获得寄存器描述文件,包括:
从所述各寄存器描述子文件中,提取所述各寄存器描述子文件各自描述的寄存器节点的节点属性信息;
基于所述节点属性信息,确定所述各寄存器描述子文件描述的寄存器节点之间的层级关系;
按照所述各寄存器描述子文件描述的寄存器节点之间的层级关系,将所述各寄存器描述子文件进行拼接,得到寄存器描述文件。
12.根据权利要求10所述的方法,其特征在于,所述将所述各寄存器描述子文件进行拼接,获得寄存器描述文件,包括:
确定所述各寄存器描述子文件之间的关联关系;
基于所述各寄存器描述子文件之间的关联关系,将所述各寄存器描述子文件进行拼接,得到寄存器描述文件。
13.根据权利要求1至12任意一项所述的方法,其特征在于,所述方法还包括:
根据从所述寄存器描述文件提取得到的寄存器信息,确定各寄存器块各自的块起始地址和块大小;
基于所述块起始地址和所述块大小,确定各所述寄存器块的块间保留域和块内保留域;
对所述块间保留域和所述块内保留域进行访问测试,得到各所述寄存器块的访问测试结果。
14.根据权利要求13所述的方法,其特征在于,所述基于所述块起始地址和所述块大小,确定各所述寄存器块的块间保留域和块内保留域,包括:
根据所述块起始地址和所述块大小,确定各所述寄存器块各自的块结束地址;
根据各所述寄存器块各自的块起始地址和块结束地址,确定各所述寄存器块之间的块间保留域;
根据各所述寄存器块各自的块内最大寄存器地址和块结束地址,确定各所述寄存器块各自的块内保留域。
15.根据权利要求1至12任意一项所述的方法,其特征在于,所述方法还包括:
通过所述寄存器模型文件进行寄存器扫描测试,得到扫描测试结果;
通过所述寄存器模型文件进行功能验证测试,得到功能验证测试结果;
将所述扫描测试结果和所述功能验证测试结果进行匹配,获得所述寄存器模型文件的自环测试结果。
16.根据权利要求1至12任意一项所述的方法,其特征在于,所述方法还包括:
获取寄存器参考模型;所述寄存器参考模型,是基于参考方式进行寄存器建模得到的、与所述寄存器描述文件所描述的寄存器相匹配的寄存器模型;
通过所述寄存器模型文件中的目标寄存器模型和所述寄存器参考模型,分别对测试参数进行模型处理,得到所述目标寄存器模型和所述寄存器参考模型各自的模型处理结果;
基于所述目标寄存器模型和所述寄存器参考模型各自的模型处理结果,得到所述寄存器模型文件的交叉测试结果。
17.一种寄存器模型处理装置,其特征在于,所述装置包括:
描述文件获取模块,用于获取寄存器描述文件;
寄存器信息获取模块,用于从所述寄存器描述文件中识别出节点标识,并根据所述节点标识,从所述寄存器描述文件中提取得到所述节点标识所标识的寄存器节点的寄存器信息;
寄存器模型框架确定模块,用于确定基于各寄存器节点的层级关系生成的寄存器模型框架;
节点模型框架确定模块,用于根据所述节点标识所标识的寄存器节点的层级关系,从所述寄存器模型框架中确定节点模型框架;
寄存器模型获得模块,用于将所述寄存器信息填充至所述节点模型框架中,得到寄存器模型文件。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至16中任一项所述的方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至16中任一项所述的方法的步骤。
20.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至16中任一项所述的方法的步骤。
CN202210466354.XA 2022-04-29 2022-04-29 寄存器模型处理方法、装置、计算机设备和存储介质 Pending CN115113927A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210466354.XA CN115113927A (zh) 2022-04-29 2022-04-29 寄存器模型处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210466354.XA CN115113927A (zh) 2022-04-29 2022-04-29 寄存器模型处理方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115113927A true CN115113927A (zh) 2022-09-27

Family

ID=83326382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210466354.XA Pending CN115113927A (zh) 2022-04-29 2022-04-29 寄存器模型处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115113927A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115983173A (zh) * 2023-03-21 2023-04-18 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质
CN116932304A (zh) * 2023-09-15 2023-10-24 北京燧原智能科技有限公司 一种寄存器测试方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115983173A (zh) * 2023-03-21 2023-04-18 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质
CN116932304A (zh) * 2023-09-15 2023-10-24 北京燧原智能科技有限公司 一种寄存器测试方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106970819B (zh) 一种基于prdl规则描述语言的c程序代码规范检查装置
EP1347394B1 (en) Schema-oriented content management system
US8417504B2 (en) Conversion of circuit description to a transaction model
US5815402A (en) System and method for changing the connected behavior of a circuit design schematic
CN115113927A (zh) 寄存器模型处理方法、装置、计算机设备和存储介质
CN110287097A (zh) 批量测试方法、装置及计算机可读存储介质
US20080109780A1 (en) Method of and apparatus for optimal placement and validation of i/o blocks within an asic
CN110096434A (zh) 一种接口测试方法及装置
US9524366B1 (en) Annotations to identify objects in design generated by high level synthesis (HLS)
CN113255258B (zh) 逻辑综合方法、装置、电子设备及存储介质
EP2021963A1 (en) Method, system and program product supporting specification of signals for simulation result viewing
CN115935872A (zh) 一种可扩展的fpga仿真验证自动化方法
US8510714B2 (en) Implementing integrated documentation and application testing
US20060036422A1 (en) Methods and systems for electronic device modelling
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
US20070124716A1 (en) Method for generalizing design attributes in a design capture environment
US8001503B2 (en) Method and system for automatically accessing internal signals or ports in a design hierarchy
CN113254455B (zh) 数据库的动态配置方法、装置、计算机设备及存储介质
CN116976252A (zh) 一种回归仿真方法、装置、设备、介质及程序产品
Cheng et al. Enabling automated analysis through the formalization of object-oriented modeling diagrams
Lehmann et al. The geoknow handbook
Chaturvedi Change impact analysis based regression testing of web services
Zhang et al. Formal Verification of Data Modifications in Cloud Block Storage Based on Separation Logic
Woodsford Spatial Database Update and Validation—Current Advances in Theory and Technology
KR20240014460A (ko) 회로 설계에서 강하게 접속된 컴포넌트들의 병렬 및 확장가능한 계산

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