CN112905450A - 基于模板变量替换的芯片寄存器自动开发系统 - Google Patents
基于模板变量替换的芯片寄存器自动开发系统 Download PDFInfo
- Publication number
- CN112905450A CN112905450A CN202110132137.2A CN202110132137A CN112905450A CN 112905450 A CN112905450 A CN 112905450A CN 202110132137 A CN202110132137 A CN 202110132137A CN 112905450 A CN112905450 A CN 112905450A
- Authority
- CN
- China
- Prior art keywords
- register
- file
- level
- template
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000001174 ascending effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于模板变量替换的芯片寄存器自动开发系统,包括输入文件;所述的输入文件包括:寄存器文档文件,RTL代码、UVM验证、C及C++格式的控制参数文件,以及输出文件格式的模板文件;在寄存器文档文件中,将寄存器分级管理,包括芯片级,模块级,寄存器群3个层次;利用Python编程语言为每一个寄存器、寄存器群、模块级、即芯片级生成一个Python类,同时把代码生成控制参数也转换成Python类,然后调用不同的模板文件,依据控制参数值,替换模板级文件中寄存器变量,最终自动生成芯片寄存器的设计、验证、调试代码。
Description
技术领域
本发明属于数字逻辑芯片开发技术领域,具体涉及一种基于模板变量替换的芯片寄存器自动开发系统。
背景技术
上世纪60年代出现数字逻辑集成电路技术以来,芯片规模越来越大,目前超大规模集成电路单片晶体管数量可以达到几十亿门的规模。于此同时,与数字、混合逻辑芯片规模同步增长的是芯片内部寄存器的数量和种类也大幅度提高。超大规模芯片,寄存器数量可以达到几十万个,而更可怕的是寄存器的种类,常用寄存器种类超过50种,而且,新的特殊寄存器种类还在不断产生,如何快速、高效完成芯片寄存器的开发是一个挑战。
随着芯片规模的扩大,芯片研发流程越来越长,在芯片研发的各个团队,比如:逻辑设计、数字验证、FPGA验证、云端验证、芯片调试等不同团队之间,如何做到寄存器信息来源的一致性,各个部门之间的高效同步,寄存器自动开发系统就显得尤为必要,可以大幅度降低人工代码调试的工作量,提升工作效率,降低芯片开发成本。
Python高级编程语言,具有开源、高效、面向对象的特点,而且具有众多免费的库文件,功能强大。尤其是Python的跨平台特点,可以运行在不同的计算机操作系统,适应不同的客户需求,非常适合用来设计逻辑芯片寄存器开发系统。
中国专利《芯片寄存器代码自动生成方法及其系统》(申请日2015.09.30;授权公告号CN 105607897 B)公开了一种芯片寄存器代码自动生成系统,其方案是利用VisualBasic调用寄存器描述文件,提取所述寄存器描述文档中的寄存器参数,这个方案最大的问题就是覆盖范围窄,且开发效率有待提高。中国专利《基于VMM RAL的寄存器自动化验证方法》(申请日2012.11.27;申请公布号CN 103838653 A)公开了一种寄存器自动化验证系统,实际使用该方案虽然覆盖范围大了,但是开发效率很低。
综上所述,芯片的规模越来越大,研发流程越来越长,大规模芯片寄存器数量动辄以万计,针对寄存器的设计、验证、调试工作量越来越大,研发出一种覆盖范围大且开发效率高、周期短的寄存器自动开发系统成为本领域技术人员的技术瓶颈。
发明内容
本发明目的是提供一种基于模板变量替换的芯片寄存器自动开发系统,所要解决的主要问题是提高数字逻辑芯片寄存器开发效率。利用Python编程语言的开源、高效、跨平台特性,自动生成寄存器逻辑设计源代码、验证模型UVM代码和芯片调试用的C、C++语言头文件,同时,保证芯片开发的设计、验证、调试阶段,寄存器信息来源的一致性。是一种芯片寄存器数字逻辑设计、验证和调试等阶段的代码自动生成的系统。进一步来说,是一种基于模板变量替换的,由Python计算机语言开发的,覆盖整个芯片研发流程的寄存器自动开发系统。
为了实现以上目的,本发明采用的技术方案为:一种基于模板变量替换的芯片寄存器自动开发系统,包括输入文件;所述的输入文件包括:寄存器文档文件,RTL代码、UVM验证、C及C++格式的控制参数文件,以及输出文件格式的模板文件;在寄存器文档文件中,将寄存器分级管理,包括芯片级,模块级,寄存器群3个层次;利用Python编程语言为每一个寄存器、寄存器群、模块级、即芯片级生成一个Python类,同时把代码生成控制参数也转换成Python类,然后调用不同的模板文件,依据控制参数值,替换模板级文件中寄存器变量,最终自动生成芯片寄存器的设计、验证、调试代码;
所述的系统的运行包括以下步骤:
A)、文件读入:由文件读入引擎,读入控制参数文件、寄存器文档文件;
B)、模板级参数替换:由文件输出引擎,读入模板级文件,把模板级文件中的变量,替换为文件读入中的寄存器参数,最后打印输出芯片设计、验证、调试所需要的文件。
进一步的,步骤A)、文件读入中:所述的控制参数文件,是开发系统读入的所有隐含控制参数值,覆盖所有寄存器;在寄存器文档文件中,对所有寄存器分级管理,该分级包括:芯片级,模块级,寄存器群三级;该分级中包括所有寄存器基本参数,同时,在寄存器文档文件中对每级、每个寄存器的控制参数进行修改、替换、重置。
进一步的,步骤B)、模板级参数替换中:由文件输出引擎,读入不同的模板级文件,模板级文件中有控制变量、寄存器变量,输出引擎依据文件读入中得到的参数值,替换模板级文件中的不同变量,自动生成用户需要的芯片设计、验证、调试文件代码。
再进一步的,利用Python编程语言自动生成寄存器逻辑设计源代码、验证模型UVM代码和芯片调试用的C、C++语言头文件,包括步骤如下:
1)、在寄存器文档文件中,把寄存器分为如下层次:芯片级、模块级、寄存器群;每个寄存器可以存放在寄存器群或者寄存器模块级中;
2)、每个寄存器文档文件中包含寄存器的基本信息、为自动生成各类代码需要的控制参数文件,所有所述的控制参数文件添加在寄存器描述栏或者寄存器每一个变量的描述栏中;
3)、控制参数文件提供基本的、隐含的生成各类代码文件需要的控制参数,这些控制参数都在寄存器文档的芯片级、模块级、寄存器群以及寄存器中重置,且重置的控制参数放在寄存器的描述拦中;
4)、依据需要生成的输出文件的类型,系统提供不同的模板级文件,所述的模板级文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
5)、开发系统为每一个寄存器、寄存器群、寄存器模块、芯片级分别建立一个类(Python Class),该类中包括寄存器的基本信息和控制参数;
6)、用python语言写的文件读入引擎,读入寄存器文档文件和控制参数文件,对每一个寄存器生成一个python寄存器类的实例,并按寄存器文档文件的层级结构,把这些寄存器实例组织起来;
7)、依据需要生成的输出文件的类型,系统提供不同的模板级文件,所述的模板级文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
8)、输出引擎在读入模板级文件后,依据读入引擎中得到的寄存器基础参数和控制参数,替换模板级文件中响应的变量;
9)、依据客户需要的输出文档需求,输出引擎读入对应的模板级文件,依据步骤6)中读出的控制参数文件的控制参数,通过计算、分析,把模板级文件中的特殊字符串替换为系统需要的寄存器信息、参数,并最终输出需要的寄存器设计、验证、调试文件。
进一步的,步骤3)中所述的芯片级具有下级的子系统级,所述的控制参数都在寄存器文档的芯片级、子系统级、模块级、寄存器群以及寄存器中重置,且重置的控制参数放在寄存器的描述拦中。
进一步的,步骤5)中开发系统为每一个寄存器、寄存器群、寄存器模块、子系统级、芯片级分别建立一个类(Python Class),该类中包括寄存器的基本信息和控制参数。
再进一步的,若干寄存器组成一个寄存器群;若干寄存器群和模块直属寄存器组成一个寄存器模块;若干寄存器模块,组成整个芯片级系统。
再进一步的,读入引擎预定义寄存器、寄存器群、模块和芯片系统的Python类,在读入寄存器文档文件和控制参数文件后,实例化所有的寄存器、寄存器群、模块和芯片系统。
本发明具有以下技术效果:本发明可以实现芯片设计、验证、调试等部门的工程师,依据唯一的寄存器文档文件,自动生成寄存器代码,保证芯片开发各个阶段寄存器信息来源的一致性,极大地降低了芯片开发人员的工作量和寄存器代码编写的人为错误,缩短芯片开发周期。
附图说明
图1为本发明的寄存器文档文件层次结构图;
图2为本发明提供的代码生成方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照附图,本发明的一种基于模板变量替换的芯片寄存器自动开发系统,其核心方案有:
1.在寄存器文档文件中,将寄存器分级管理,分为芯片级,模块级,寄存器群3个层次。
2.输入文件包括:寄存器文档文件,RTL代码、UVM验证、C及C++格式的控制参数文件,以及输出文件格式的模板文件。
3.利用Python编程语言的开源性及丰富的库文件,为每一个寄存器、寄存器群、模块(级)、系统(即芯片级)生成一个Python类,同时把代码生成控制参数也转换成Python类,然后调用不同的模板文件,依据控制参数值,替换模板(级)文件中寄存器变量,最终自动生成芯片寄存器的设计、验证、调试代码。
本发明可以实现芯片设计、验证、调试等部门的工程师,依据唯一的寄存器文档文件,自动生成寄存器代码,保证芯片开发各个阶段寄存器信息来源的一致性,极大地降低了芯片开发人员的工作量和寄存器代码编写的人为错误,缩短芯片开发周期。
本发明的实施例一:
本发明的一种基于模板变量替换的芯片寄存器自动开发系统的运行包括以下步骤:
A)、文件读入:(由)文件读入引擎,读入控制参数文件、寄存器文档文件。
B)、(模板级)参数替换:(由)文件输出引擎,读入模板(级)文件,把模板(级)文件中的变量,替换为文件读入中的寄存器参数,最后打印输出芯片设计、验证、调试所需要的文件。
进一步的,步骤A)、文件读入中:所述的控制参数文件,是开发系统读入的所有隐含控制参数值,覆盖所有寄存器;
而在寄存器文档文件中,对所有寄存器分级管理,该分级包括:系统(芯片级),模块(级),寄存器群三级;该分级中包括所有寄存器基本参数,同时,在寄存器文档文件中,对每级、每个寄存器的控制参数进行修改、替换、重置。
进一步的,步骤B)、模板(级)参数替换中:(由)文件输出引擎,读入不同的模板(级)文件,模板(级)文件中有控制变量、寄存器变量,输出引擎依据文件读入中得到的参数值,替换模板(级)文件中的不同变量,自动生成用户需要的芯片设计、验证、调试文件代码。从而实现芯片寄存器的自动开发。
再进一步的,本发明利用Python编程语言的开源、高效、跨平台特性,自动生成寄存器逻辑设计源代码、验证模型UVM代码和芯片调试用的C、C++语言头文件,主要步骤如下:
1)、在寄存器文档(文件)中,把寄存器分为如下层次:芯片级、模块级、寄存器群。每个寄存器可以存放在寄存器群或者寄存器模块(级)中;具体寄存器层级结构见附图1;
2)、每个寄存器文档(文件)中不仅包含寄存器的基本信息,还有为自动生成各类代码需要的控制参数(文件),所有所述的控制参数(文件)添加在寄存器描述栏,或者寄存器每一个变量的描述栏中;具体每个寄存器的参数描述方式,见附图2;
3)、控制参数文件提供基本的、隐含的生成各类代码文件需要的控制参数,这些控制参数都在寄存器文档的芯片级、子系统级(芯片级的下级)、模块级、寄存器群以及寄存器中重置,且(需要)重置的控制参数放在寄存器的描述拦中;
4)、依据需要生成的输出文件的类型,系统提供不同的模板(级)文件,所述的模板(级)文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
当然,这一步中,也包括自提供客制化模板(级)文件;
5)、(开发)系统为每一个寄存器、寄存器群、寄存器模块、子系统(级)、芯片(级)分别建立一个类(Python Class),该类中包括寄存器的基本信息和控制参数;
6)、用python语言写的文件读入引擎,读入寄存器文档文件和控制参数文件,对每一个寄存器生成一个python寄存器类的实例,并按寄存器文档(文件)的层级结构,把这些寄存器实例组织起来;
7)、依据需要生成的输出文件的类型,系统提供不同的模板(级)文件,所述的模板(级)文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
同样的,这一步中,也包括自提供客制化模板(级)文件;
8)、输出引擎在读入模板(级)文件后,依据读入引擎中得到的寄存器基础参数和控制参数,替换模板(级)文件中响应的变量;
9)、依据客户需要的输出文档需求,输出引擎读入对应的模板(级)文件,依据步骤6)中读出的(控制参数文件)的控制参数,通过计算、分析,把模板(级)文件中的特殊字符串替换为系统需要的寄存器信息、参数,并最终输出需要的寄存器设计、验证、调试文件。实现芯片寄存器的自动开发。
本发明的实施例二:
该实施例提供的芯片寄存器自动开发系统,自动生成芯片设计、验证、调试阶段代码。包括三个步骤:第一步,读入寄存器文档文件和控制参数文件。第二步,读入各种模板(级)文件。第三步,输出引擎对第一步中的控制参数、寄存器参数进行计算,替换模板(级)文件中的所有寄存器变量,然后打印输出自动生成的格式文件,包括寄存器设计、验证和调试文件代码。
进一步的,第一步:输入引擎读入控制参数文件和寄存器文档文件。
其中,寄存器文档文件,支持目前芯片行业使用的寄存器标准格式文件:IPXACT,SystemRDL,Ralf,同时支持用户自定义的WORD,EXCEL等文档格式文件。在寄存器文档文件中,定义了每一个寄存器的下列参数:寄存器名字,寄存器偏移量、类型、缺省值、以及寄存器内每一个域的名字、域缺省值、HW类型、SW类型、域缺省值、和寄存器及每一个域的描述文本等20余个参数。
其中,控制参数文件,包括通用控制参数,和与输出文件格式相关的控制参数,如UVM验证、RTL设计、C和C++相关的头文件都有之相对应的控制参数:
这其中,通用控制参数对所有寄存器有效,如:寄存器地址宽度,数据宽度,寄存器单元值,芯片寄存器地址范围,模块寄存器地址范围等25个参数。以及与UVM验证模型相关的控制参数10个:是否带coverage模型,是否带RTL路径,是否带约束条件等。以及与寄存器设计RTL代码相关的控制参数有15个:是否输出地址解码出错信息,同步、异步复位,低功耗设计等。以及与调试C、C++相关的8个控制参数:C文件类型,大端序、小端序、struct类型、寄存器域升、降序等。
控制(参数)文件中的所有控制参数,作用域是所有寄存器文件,覆盖每一个寄存器,但在寄存器文档文件中,可在每个寄存器的定义中,重置任何控制参数。
即寄存器文档(文件)中,对寄存器进行分级管理:
包括:
若干寄存器组成一个寄存器群。
若干寄存器群和模块(的)直属寄存器组成一个寄存器模块。
若干寄存器模块,组成整个芯片(级)系统。
输入引擎(即读入引擎)预定义寄存器、(寄存器)群、模块和(芯片)系统的Python类,在读入寄存器文档文件和控制(参数)文件后,实例化所有的寄存器、(寄存器)群、模块和(芯片)系统。
寄存器类包含了寄存器相关的所有寄存器参数和控制参数,具体定义如下:
寄存器群,寄存器模块,寄存器(芯片)系统的Python类定义与寄存器类的定义类似,包括相应的名字、偏移量、描述文本等寄存器参数和控制参数;在寄存器群类的实例中,实例化所有的寄存器,同时包含域群相关的控制参数。
在寄存器模块类的实例中,实例化所有的寄存器群,和模块直属的寄存器。
在系统类实例中,实例化所有的寄存器模块,组成一个完整的芯片寄存器系统,这个寄存器系统类的实例就包含了整个芯片系统的所有寄存器以及对应的控制参数。
第二步:读入模板(级)文件:
针对不同的输出要求,自动开发系统提供了不同的模板(级)文件,覆盖芯片开发的设计、验证、调试。这些模板(级)文件,是经过长期芯片流片验证过的代码转换而来。进一步的,用户可依据自特殊文件格式需要,依据模板书写格式,自开发模板(级)文件。
以下是芯片UVM验证文件模板的一个样本,即描述如何进行变量替换:
上述是一对控制参数,当寄存器的类型是直接类型寄存器,在start%与end%中间的4行代码需要输出;
/$reg.name$/,/$addr_offset$/,这两个是寄存器的名字和偏移量参数,依据上述的控制参数,当寄存器为直接寄存器类型,替换为在第一步中读入的每一个寄存器的相应参数。
对于寄存器设计、调试模板,与UVM模板类似,其内每一行都有控制或者寄存器参数。进一步的,用户也可依据模板书写格式,生成自需要的输出模板。
第三步,代码的自动打印输出:
输出引擎在读入模板(级)文件之后,依据模板(级)文件中的控制参数变量值,当满足控制条件,对控制参数的控制范围内的模板行内所有寄存器参数进行替换,并打印输出。
具体寄存器开发代码生成的流程图同样参见图2;
以上是基于Python语言的输入输出引擎,采用模板变量替换的方法,生成芯片寄存器自动设计、验证、调试代码的原理。
综上所述,本发明的自动开发系统是寄存器文档文件里面的架构分为系统、模块、寄存器群三级;覆盖更宽,采用模板(级)替换,即模板参数替换,效率高,输出支持多种格式,基于此,实现代码生成的方法更高效、可靠。
在不脱离本发明原理的情况下,与本发明具有相同或相近的计算方案,均落入本发明的保护范围之内。
Claims (8)
1.一种基于模板变量替换的芯片寄存器自动开发系统,包括输入文件;其特征在于,所述的输入文件包括:寄存器文档文件,RTL代码、UVM验证、C及C++格式的控制参数文件,以及输出文件格式的模板文件;在寄存器文档文件中,将寄存器分级管理,包括芯片级,模块级,寄存器群3个层次;利用Python编程语言为每一个寄存器、寄存器群、模块级、即芯片级生成一个Python类,同时把代码生成控制参数也转换成Python类,然后调用不同的模板文件,依据控制参数值,替换模板级文件中寄存器变量,最终自动生成芯片寄存器的设计、验证、调试代码;
所述的系统的运行包括以下步骤:
A)、文件读入:由文件读入引擎,读入控制参数文件、寄存器文档文件;
B)、模板级参数替换:由文件输出引擎,读入模板级文件,把模板级文件中的变量,替换为文件读入中的寄存器参数,最后打印输出芯片设计、验证、调试所需要的文件。
2.根据权利要求1所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:步骤A)、文件读入中:所述的控制参数文件,是开发系统读入的所有隐含控制参数值,覆盖所有寄存器;在寄存器文档文件中,对所有寄存器分级管理,该分级包括:芯片级,模块级,寄存器群三级;该分级中包括所有寄存器基本参数,同时,在寄存器文档文件中对每级、每个寄存器的控制参数进行修改、替换、重置。
3.根据权利要求1所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:步骤B)、模板级参数替换中:由文件输出引擎,读入不同的模板级文件,模板级文件中有控制变量、寄存器变量,输出引擎依据文件读入中得到的参数值,替换模板级文件中的不同变量,自动生成用户需要的芯片设计、验证、调试文件代码。
4.根据权利要求2或3所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:利用Python编程语言自动生成寄存器逻辑设计源代码、验证模型UVM代码和芯片调试用的C、C++语言头文件,包括步骤如下:
1)、在寄存器文档文件中,把寄存器分为如下层次:芯片级、模块级、寄存器群;每个寄存器可以存放在寄存器群或者寄存器模块级中;
2)、每个寄存器文档文件中包含寄存器的基本信息、为自动生成各类代码需要的控制参数文件,所有所述的控制参数文件添加在寄存器描述栏或者寄存器每一个变量的描述栏中;
3)、控制参数文件提供基本的、隐含的生成各类代码文件需要的控制参数,这些控制参数都在寄存器文档的芯片级、模块级、寄存器群以及寄存器中重置,且重置的控制参数放在寄存器的描述拦中;
4)、依据需要生成的输出文件的类型,系统提供不同的模板级文件,所述的模板级文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
5)、开发系统为每一个寄存器、寄存器群、寄存器模块、芯片级分别建立一个类(PythonClass),该类中包括寄存器的基本信息和控制参数;
6)、用python语言写的文件读入引擎,读入寄存器文档文件和控制参数文件,对每一个寄存器生成一个python寄存器类的实例,并按寄存器文档文件的层级结构,把这些寄存器实例组织起来;
7)、依据需要生成的输出文件的类型,系统提供不同的模板级文件,所述的模板级文件包括:逻辑设计、UVM模型、C&C++头文件的模板;
8)、输出引擎在读入模板级文件后,依据读入引擎中得到的寄存器基础参数和控制参数,替换模板级文件中响应的变量;
9)、依据客户需要的输出文档需求,输出引擎读入对应的模板级文件,依据步骤6)中读出的控制参数文件的控制参数,通过计算、分析,把模板级文件中的特殊字符串替换为系统需要的寄存器信息、参数,并最终输出需要的寄存器设计、验证、调试文件。
5.根据权利要求4所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:步骤3)中所述的芯片级具有下级的子系统级,所述的控制参数都在寄存器文档的芯片级、子系统级、模块级、寄存器群以及寄存器中重置,且重置的控制参数放在寄存器的描述拦中。
6.根据权利要求5所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:步骤5)中开发系统为每一个寄存器、寄存器群、寄存器模块、子系统级、芯片级分别建立一个类(Python Class),该类中包括寄存器的基本信息和控制参数。
7.根据权利要求4所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:若干寄存器组成一个寄存器群;若干寄存器群和模块直属寄存器组成一个寄存器模块;若干寄存器模块,组成整个芯片级系统。
8.根据权利要求7所述的基于模板变量替换的芯片寄存器自动开发系统,其特征在于:读入引擎预定义寄存器、寄存器群、模块和芯片系统的Python类,在读入寄存器文档文件和控制参数文件后,实例化所有的寄存器、寄存器群、模块和芯片系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110132137.2A CN112905450B (zh) | 2021-01-31 | 2021-01-31 | 基于模板变量替换的芯片寄存器自动开发系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110132137.2A CN112905450B (zh) | 2021-01-31 | 2021-01-31 | 基于模板变量替换的芯片寄存器自动开发系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112905450A true CN112905450A (zh) | 2021-06-04 |
CN112905450B CN112905450B (zh) | 2023-11-03 |
Family
ID=76122008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110132137.2A Active CN112905450B (zh) | 2021-01-31 | 2021-01-31 | 基于模板变量替换的芯片寄存器自动开发系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905450B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721900A (zh) * | 2021-09-06 | 2021-11-30 | 安徽工程大学 | 一种基于Python的钻孔灌注桩检验批快速生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060277533A1 (en) * | 2003-03-24 | 2006-12-07 | Fiske Software Llc | Register and active element machines: commands, programs, simulators and translators |
CN105607897A (zh) * | 2015-09-30 | 2016-05-25 | 烽火通信科技股份有限公司 | 芯片寄存器代码自动生成方法及其系统 |
US20170115969A1 (en) * | 2015-10-21 | 2017-04-27 | Vayavya Labs Pvt. Ltd | System and method for automatically generating device drivers for run time environments |
CN111056183A (zh) * | 2019-11-29 | 2020-04-24 | 华东师范大学 | 一种基于zynq的实时智能垃圾自分类系统 |
-
2021
- 2021-01-31 CN CN202110132137.2A patent/CN112905450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060277533A1 (en) * | 2003-03-24 | 2006-12-07 | Fiske Software Llc | Register and active element machines: commands, programs, simulators and translators |
CN105607897A (zh) * | 2015-09-30 | 2016-05-25 | 烽火通信科技股份有限公司 | 芯片寄存器代码自动生成方法及其系统 |
US20170115969A1 (en) * | 2015-10-21 | 2017-04-27 | Vayavya Labs Pvt. Ltd | System and method for automatically generating device drivers for run time environments |
CN111056183A (zh) * | 2019-11-29 | 2020-04-24 | 华东师范大学 | 一种基于zynq的实时智能垃圾自分类系统 |
Non-Patent Citations (2)
Title |
---|
刘焰强;戚正伟;管海兵;: "FPGA加速系统开发工具设计:综述与实践", 软件学报, no. 10 * |
林钰杰;庞伟林;: "基于FreeMarker的企业Web应用代码生成器研究", 信息技术, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721900A (zh) * | 2021-09-06 | 2021-11-30 | 安徽工程大学 | 一种基于Python的钻孔灌注桩检验批快速生成方法 |
CN113721900B (zh) * | 2021-09-06 | 2023-08-08 | 安徽工程大学 | 一种基于Python的钻孔灌注桩检验批快速生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112905450B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101339500B (zh) | 基于xml模式的数据绑定应用程序接口生成方法 | |
CN104360859B (zh) | 一种可视化的服务开发方法和系统 | |
CN109783079A (zh) | 一种基于程序分析和循环神经网络的代码注释生成方法 | |
CN107273117A (zh) | 一种编程友好型的敏捷代码自动生成系统 | |
CN105138613A (zh) | 一种业务对象和xml报文相互转换的方法及系统 | |
CN106469140A (zh) | 一种报表生成系统及其方法 | |
CN102982010A (zh) | 提取文档结构的方法和装置 | |
CN110162297A (zh) | 一种源代码段自然语言描述自动生成方法及系统 | |
CN108153522B (zh) | 基于模型转换由midcore生成Spark和Hadoop程序代码的方法 | |
CN111143038B (zh) | Risc-v架构微处理器内核信息模型建模及生成方法 | |
CN112905450B (zh) | 基于模板变量替换的芯片寄存器自动开发系统 | |
CN114692532A (zh) | 芯片系统的集成方法、装置及计算机可读存储介质 | |
CN112506488A (zh) | 一种基于sql创建语句生成编程语言类的方法 | |
US20070169054A1 (en) | Process of automatically translating a high level programming language into an extended activity diagram | |
CN102937910B (zh) | 控制算法跨平台转换系统及方法 | |
CN103020162B (zh) | Cc2000模型转换导入d5000系统的方法 | |
Armentano-Oller et al. | An open-source shallow-transfer machine translation toolbox: consequences of its release and availability | |
Dutt et al. | A user interface for VHDL behavioral modeling | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
CN103218246A (zh) | 一种基于图描述语言的将二进制工具生成方法 | |
CN105912380A (zh) | 一种EDIF网表文件转Protel网表文件的方法 | |
CN112115615A (zh) | 面向scr的安全关键系统模型转换方法、装置和系统 | |
Han et al. | Design and Implementation of B/S Architecture Code Automatic Generation System | |
Zhang et al. | A dynamic form rendering method for web multi-front framework | |
CN108628606A (zh) | 一种嵌入式设备的web网管应用程序生成方法及系统 |
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 |