CN114880986A - 一种快速生成全局配置组件的方法 - Google Patents
一种快速生成全局配置组件的方法 Download PDFInfo
- Publication number
- CN114880986A CN114880986A CN202210544988.2A CN202210544988A CN114880986A CN 114880986 A CN114880986 A CN 114880986A CN 202210544988 A CN202210544988 A CN 202210544988A CN 114880986 A CN114880986 A CN 114880986A
- Authority
- CN
- China
- Prior art keywords
- register
- name
- global configuration
- configuration component
- user
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种快速自动生成全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种快速生成全局配置组件的方法。
背景技术
随着集成电路产业的快速发展,芯片的规模越来越大,功能越来越多,灵活性越来越强,这导致寄存器规模呈指数级的增长。在查看某个芯片使用手册时,其配置寄存器说明页数长达数十页,甚至有的占据一半页数。因此,在芯片功能验证阶段,验证工程师需要对如此数量的寄存器进行操控,其难度可想而知。传统的验证工程师喜欢定义总线读、写配置任务来对寄存器进行操控,这种方式看似简单粗暴,但是寄存器数量过多时就容易对寄存器地址或名称混淆,而且查找起来费时费力。因此,国外的一些科技公司对寄存器单独进行了研究,在VMM
(Verification Methodology Manual)验证语言阶段,新思科技公司针对寄存器提出了RAL(Register Abstraction Layer)解决方案,到如今的UVM(UniversalVerification Methodology)演变成了今天的寄存器模型。该模型虽然解决了寄存器容易混淆的难题,但是面对如此庞大的配置寄存器模型,如何使用才能最大体现出该模型的最优之处也成了当今验证工程师的头痛难题,目前普遍常用方法是在寄存器模型生成后,手动输入的方式生成配置组件。例如一个普通芯片的初始化配置需要上百的寄存器配置,手动敲代码的方式必定会造成费时费力,还容易出错。
为了解决现有技术的不足,本发明提供了一种基于寄存器模型快速自动生成验证平台的全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
发明内容
为了解决现有技术中的不足,本发明提供了一种快速生成全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
为实现上述目的,本发明采用如下的技术方案。
在本发明实施例中,提出了一种快速自动生成全局配置组件的方法,该方法包括如下步骤:
S1提供一份关于某个模块或系统的寄存器表格;
S2验证平台按用户输入的模块名生成目录,并获取已定义的寄存器表格sheet数和每个sheet名字;用户选择需要运行的寄存器表格的sheet名称或编号;
S3对用户所选中的寄存器表格进行数据提取,将寄存器名字存储一个全局列表中,定义字典数据结构存储相应寄存器的数据;
S4按照S3生成的字典数据结构生成全局配置组件。
进一步的,所述字典数据结构用来存储寄存器地址、位宽、寄存器域名字以及寄存器域所有数字参数。
进一步的,所述寄存器表格数据提取还包括数据合法性的校验。
进一步的,所述寄存器表格内容包括且不限于寄存器名称、地址、位宽,以及寄存器内部每个域的名字、偏移量、位宽和复位值。
进一步的,所述全局配置组件包括通用寄存器模型文件以及系统配置文件等。
本发明的有益效果在于,针对现有的芯片验证系统中存在的问题,提出了一种快速自动生成全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实现流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。以下实施用例仅用于更加清楚地说明本发明的系统方法及技术方案,而不能以此来限制本申请的保护范围。
根据本发明的实施方式,本发明提出了一种快速自动生成全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是一种快速自动生成全局配置组件的方法的处理流程示意图。如图1所示,该方法包括如下步骤:
S1提供一份关于某个模块或系统的寄存器表格;
进一步的,所述寄存器表格内容包括且不限于寄存器名称、地址、位宽,以及寄存器内部每个域的名字、偏移量、位宽和复位值。
S2验证平台按用户输入的模块名生成目录,并获取已定义的寄存器表格sheet数和每个sheet名字;用户选择需要运行的寄存器表格的sheet名称或编号;
S3对用户所选中的寄存器表格进行数据提取,将寄存器名字存储一个全局列表中,定义字典数据结构存储相应寄存器的数据;
进一步的,所述字典数据结构用来存储寄存器地址、位宽、寄存器域名字以及寄存器域所有数字参数。
具体实施时,所述寄存器表格数据提取还包括数据合法性的校验。
S4按照S3生成的字典数据结构生成全局配置组件。
具体实施时,所述全局配置组件包括通用寄存器模型文件,系统配置文件等。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述一种快速自动生成全局配置组件的方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
实施例一:
一种快速自动生成全局配置组件的方法,具体实施步骤如下:
S1提供一份关于某个模块或系统的寄存器表格;
需要开发人员或系统方案人员提供一份关于某个模块或系统的寄存器表格。
所述寄存器表格内容包括且不限于寄存器名称、地址、位宽,以及寄存器内部每个域的名字、偏移量、位宽和复位值。
S2验证平台按用户输入的模块名生成目录,并获取已定义的寄存器表格sheet数和每个sheet名字;用户选择需要运行的寄存器表格的sheet名称或编号;
具体实施时,采用Python语言来实施本发明,除了用Python语言实现外还可以用其他脚本语言实现,由于Python语言具有开源、可读性强、可移植性强等优点,不建议使用其他语言实现。
按用户输入的模块名生成目录,并获取已定义的寄存器表格sheet数,并记录每个sheet名字,并以此按序号打印每个sheet名字供用户选择。若用户在运行该脚本时已确定提取哪一个sheet,上述显示过程可不必呈现。
寄存器文件名打印和选择方法:第一步是把指定路径中筛选符合要求的寄存器表格,并把寄存器文件名按编号打印出来,供用户进行选择。用户按要求输入要提取的寄存器表格前的编号。
寄存器文件中存在多sheet的处理方法:第一步把该文件所有的sheet名按编号打印出来,供用户选择。用户按要求输入要提取的寄存器表格sheet编号。
在该发明产生的脚本(以下均称为脚本)开始需要用户指定寄存器表格所在路径(绝对路径或者相对路径),用户可以在脚本中修改,也可作为脚本的运行参数,也可以脚本交互命令中指定。
S3对用户所选中的寄存器表格进行数据提取,将寄存器名字存储一个全局列表中,定义字典数据结构存储相应寄存器的数据;
对用户所选中的寄存器表格中的数据进行提取,将寄存器名字存储一个全局列表中,分别定义字典数据结构以存储寄存器地址和位宽,寄存器域名字,寄存器域所有数字参数,并检查寄存器参数编写错误,生成错误报告。
寄存器表格sheet提取方法包括:主要提取每个寄存器名字、寄存器偏移地址、寄存器域名字、寄存器域位宽及寄存器域默认值等,将其存入嵌套的哈希变量中,以用生成文件方法时调用;此外,在提取过程当中,检查寄存器名字是否合法(主要检查寄存器名字中是否符合公司定制的规范,如是否以数字开头,名字是否与其他寄存器名字重复等)、寄存器偏移地址是否有重复(采用检查寄存器偏移地址是否唯一的算法遍历)、寄存器域位宽是否符合设计要求等。
所述字典数据结构是指Python中的一种数据结构,用来存储寄存器地址和位宽,寄存器域名字以及寄存器域所有数字参数。
一个寄存器数据位宽为32比特,其中每个比特控制不同的功能,称为寄存器域;每个寄存器域可以多比特构成,也可以是单比特构成。
所述数字参数指每个寄存器域的占用位宽;在一个寄存器32比特中的位段、复位值、最小值和最大值。
S4按照S3生成的字典数据结构生成全局配置组件;具体包括:
1、生成全局配置组件名sys_cfg;
2、采用寄存器域字典生成定义每个域变量;
3、采用寄存器域字典生成每个寄存器的约束块,块中约束的内容为每个域变量的初始化值;
4、采用寄存器域字典向UVM注册寄存器域变量;这里指的是编程语言中的task,即任务,也就是文中所说的寄存器模型需要配置的任务;
5、生成new函数;,一个类的结构函数,可以为创建的对象提供初始值;
6、生成寄存器模型需要配置的寄存器任务;这里指的是编程语言中的task,即任务,也就是文中所说的寄存器模型需要配置的任务;
7、生成寄存器扫描任务;
8、运行结束,生成全局配置组件sys_cfg.sv。
所述全局配置组件包括通用寄存器模型文件,系统配置文件等。
本发明的有益效果在于,针对现有的芯片验证系统中存在的问题,提出了一种快速自动生成全局配置组件的方法,通过脚本自动生成全局配置组件,大大节约搭建验证平台的时间,提高验证效率,全局配置组件还具有非常好的灵活性,可以在验证平台的任意位置例化及句柄调用。
本发明申请人结合说明书附图对本发明的实施用例做了详细的说明与描述,以上实施用例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
Claims (5)
1.一种快速生成全局配置组件的方法,其特征在于,该方法包括如下步骤:
S1提供一份关于某个模块或系统的寄存器表格;
S2验证平台按用户输入的模块名生成目录,并获取已定义的寄存器表格sheet数和每个sheet名字;用户选择需要运行的寄存器表格的sheet名称或编号;
S3对用户所选中的寄存器表格进行数据提取,将寄存器名字存储一个全局列表中,定义字典数据结构存储相应寄存器的数据;
S4按照S3生成的字典数据结构生成全局配置组件。
2.根据权利要求1所述的一种快速生成全局配置组件的方法,其特征在于:所述寄存器表格内容包括且不限于寄存器名称、地址、位宽,以及寄存器内部每个域的名字、偏移量、位宽和复位值。
3.根据权利要求1所述的一种快速生成全局配置组件的方法,其特征在于:所述寄存器表格数据提取还包括数据合法性的校验。
4.根据权利要求1所述的一种快速生成全局配置组件的方法,其特征在于:所述字典数据结构用来存储寄存器地址、位宽、寄存器域名字以及寄存器域所有数字参数。
5.根据权利要求1所述的一种快速生成全局配置组件的方法,其特征在于:所述全局配置组件包括通用寄存器模型文件以及系统配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210544988.2A CN114880986A (zh) | 2022-05-19 | 2022-05-19 | 一种快速生成全局配置组件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210544988.2A CN114880986A (zh) | 2022-05-19 | 2022-05-19 | 一种快速生成全局配置组件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114880986A true CN114880986A (zh) | 2022-08-09 |
Family
ID=82676163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210544988.2A Pending CN114880986A (zh) | 2022-05-19 | 2022-05-19 | 一种快速生成全局配置组件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880986A (zh) |
-
2022
- 2022-05-19 CN CN202210544988.2A patent/CN114880986A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6226535A (ja) | プログラム内の変換テ−ブルの修正方法 | |
JP2012059226A (ja) | 帳票処理装置、帳票処理方法、帳票処理プログラム、及びそのプログラムを記録した記録媒体 | |
CN103488482A (zh) | 一种生成测试用例的方法和装置 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN109614325A (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN110637521B (zh) | 一种基于模型仿真的数据实时存储方法和系统 | |
CN116029080A (zh) | 芯片存储装置设计及验证方法、装置及电子设备 | |
CN107577482A (zh) | 软件语种的自动转换方法和装置 | |
CN114880986A (zh) | 一种快速生成全局配置组件的方法 | |
CN109117431B (zh) | 用于将来自源应用的源数据合并至目标应用的目标数据的系统和方法 | |
JP2760682B2 (ja) | ハードウェアの設計支援システム | |
JP2001117855A (ja) | バスインタフェース回路作成装置及び記録媒体 | |
CN108563621B (zh) | 一种pdf报表生成方法、装置、设备及存储介质 | |
CN110659097B (zh) | 语种文件处理方法、装置、设备及存储介质 | |
CN115185486B (zh) | 用于生成asic结构声明的方法、装置及存储介质 | |
JP4362777B2 (ja) | プログラミング装置、シンボル自動登録方法、プログラムおよび記録媒体 | |
CN113656004A (zh) | 自动生成寄存器配置的代码生成方法及可读存储介质 | |
CN117149188A (zh) | 一种页面设计图转页面代码的方法及装置 | |
JP2002366880A (ja) | フォーム編集装置及び方法及びコンピュータ読取り可能なプログラムが格納された記憶媒体 | |
JPS63106044A (ja) | フロ−指向プログラム開発方式 | |
KR20210049458A (ko) | 오픈소스 gis 데스크톱 qgis를 이용한 1:25000 지도 제작 자동화 방법 | |
CN114048175A (zh) | 多语言文件生成方法及装置 | |
JP2001022817A (ja) | 論理回路自動生成装置 | |
CN113609821A (zh) | 一种正则表达式转换方法、装置、设备及存储介质 | |
CN115885252A (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 |