CN113515485A - 一种SoC芯片控制寄存器模块RTL代码自动生成方法 - Google Patents

一种SoC芯片控制寄存器模块RTL代码自动生成方法 Download PDF

Info

Publication number
CN113515485A
CN113515485A CN202110785446.XA CN202110785446A CN113515485A CN 113515485 A CN113515485 A CN 113515485A CN 202110785446 A CN202110785446 A CN 202110785446A CN 113515485 A CN113515485 A CN 113515485A
Authority
CN
China
Prior art keywords
register
lookup table
bit domain
bit
register unit
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
Application number
CN202110785446.XA
Other languages
English (en)
Other versions
CN113515485B (zh
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.)
Chipmotion Microelectronics Co ltd
Original Assignee
Chipmotion Microelectronics 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 Chipmotion Microelectronics Co ltd filed Critical Chipmotion Microelectronics Co ltd
Priority to CN202110785446.XA priority Critical patent/CN113515485B/zh
Publication of CN113515485A publication Critical patent/CN113515485A/zh
Application granted granted Critical
Publication of CN113515485B publication Critical patent/CN113515485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

本发明公开了一种SoC芯片控制寄存器模块RTL代码自动生成方法,通过构建一种属性可配置的通用寄存器单元,根据控制寄存器模块中的寄存器单元的参数信息构建多级查找表,利用多层循环结构,确定通用寄存器的配置值,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。本发明所提出的方法避免了繁琐且容易出错的手动代码编写,极大的提高了设计效率,降低了芯片设计风险和验证工作的复杂性。

Description

一种SoC芯片控制寄存器模块RTL代码自动生成方法
技术领域
本发明涉及大规模数字集成电路设计领域,尤其涉及一种SoC芯片控制寄存器模块RTL代码自动生成方法。
背景技术
SoC芯片是一种集成电路的芯片,可以有效地降低电子/信息系统产品的开发成本,缩短开发周期,提高产品的竞争力,是未来集成电路业界将采用的最主要的产品开发方式。现代SoC芯片随着规模的不断发展,会集成越来越多的功能模块。绝大多数情况下,这些功能模块与处理器之间的数据通信、配置反馈是通过模块中的控制寄存器所完成的。在特定的功能模块中,会有用于数据读写、模式控制、状态反馈等多种类型的寄存器,这些不同寄存器的不同比特位域,分别连接到功能模块的数据发送逻辑,数据接收逻辑,模式控制逻辑以及状态反馈逻辑上,以支持处理器与功能模块之间的交互。数据读写寄存器用于处理器与功能模块间的数据传递,可以被处理器读或者写;模式控制寄存器用于处理器配置功能模块的某个参数,或者触发某个特殊行为,行为比较多样;状态反馈寄存器用于功能模块的状态记录,便于处理器进行查询,一般只需要可读。
这些寄存器由SoC设计之初确定的地址映射方式进行组织,并可以通过特定协议(如AHB总线协议、APB总线协议或者其他类似自定义协议)的信号接口,被处理器所访问。取决于特定功能模块的复杂度,该模块所需的寄存器数量少则几个,多则上百个。大规模数字集成电路设计使用RTL(Register Transfer Level,寄存器转换级电路)描述语言完成芯片的建模设计,利用设计自动化工具,将模型转换为标准库单元构成的网表文件,完成物理设计后流片生产。RTL建模是SoC芯片设计的第一步。在SoC设计开始后,不同功能模块的芯片设计工程师需要根据上述描述的过程,提前规划好功能模块所需寄存器的寄存器地址映射,各种类型的寄存器数量以及寄存器不同比特位域所对应的逻辑功能和类型,然后逐个进行寄存器的RTL建模实现,以及接口逻辑的建模实现。
综上所述,由于大规模SoC芯片所包含的功能模块数量众多,而不同功能模块又包含不同数量、不同功能、不同类型的控制寄存器模块,寄存器的总数量少则几十,多则成百上千。这造成SoC芯片设计中控制寄存器模块建模工作量巨大、繁琐且容易出错,设计人员难以保证规划好的寄存器设计方案,与最终实现的RTL建模一致性和正确性,给大规模SoC的设计和验证工作带来极大困难。
发明内容
为解决背景技术中存在的技术问题,本发明提出一种SoC芯片设计中控制寄存器模块RTL代码自动生成方法,有效避免了繁琐且易出错的控制寄存器模块RTL手动建模工作。
本发明提出一种SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,包括:
构建通用寄存器单元;
确定控制寄存器模块中寄存器单元的参数信息并按照预定格式存放在可读文件中;
将可读文件作为输入文件,遍历其中的寄存器参数信息,构建参数信息的多级查找表;
根据多级查找表构建多层循环结构,从而确定通用寄存器单元的配置,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。
优选地,所述寄存器单元的参数信息包括寄存器名称、寄存器地址以及每个比特位域中所需的多个位域特征;所述位域特征包括位域名称、位域范围、位域复位值、位域功能、位域属性。
优选地,所述构建参数信息的多级查找表具体包括:
将寄存器名称作为查找表索引,寄存器地址和位域名称作为查找表内容,构建一级查找表;
基于一级查找表,将位域名称作为查找表索引,位域范围、位域复位值、位域功能以及位域属性作为查找表内容,构建二级查找表。
优选地,根据多级查找表构建多层循环结构,从而确定通用寄存器单元的配置,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码,具体包括:
基于多级查找表,将寄存器名称作为外层循环的索引值,通过一级查找表查找对应的寄存器地址与位域名称;
根据寄存器地址生成寄存器单元的接口逻辑;
记录位域名称作为内层循环的索引值;通过多级查找表查找对应的位域范围、位域复位值、位域功能以及位域属性;
根据位域范围确定通用寄存器单元的位宽配置值,根据位域复位值确定通用寄存器单元的复位配置值,根据位域功能确定通用寄存器单元与所需控制逻辑之间的信号名,根据位域属性确定通用寄存器单元的属性配置值;
完成上述循环过程,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。
优选地,所述接口逻辑包括接口译码写逻辑和接口译码读逻辑。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现上述的SoC芯片控制寄存器模块RTL代码自动生成方法。
本发明中,通过构建一种属性可配置的通用寄存器单元,根据控制寄存器模块中的寄存器单元的参数信息构建多级查找表,利用多层循环结构,确定通用寄存器的配置值,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。本发明所提出的方法避免了繁琐且容易出错的手动代码编写,极大的提高了设计效率,降低了芯片设计风险和验证工作的复杂性。
附图说明
图1为本发明第一实施例提出的一种SoC芯片控制寄存器模块RTL代码自动生成方法的流程图;
图2为本发明第一实施例提出的寄存器单元的结构示意图。
具体实施方式
如图1所示,图1为本发明实施例提出的一种SoC芯片控制寄存器模块RTL代码自动生成方法的流程示意图。
参照图1,本发明实施例提出的一种SoC芯片控制寄存器模块RTL代码自动生成方法,包括:
S1:构建通用寄存器单元;
本发明实施例中,通用寄存器单元属性可配置,具体的,通用寄存器单元的位宽、复位值、功能属性可通过该寄存器单元接口上的属性配置值决定。根据功能需求完成通用寄存器的配置即可获取所需的寄存器单元。
如图2所示,图2为本发明实施例中寄存器单元的结构示意图,通用寄存器单元的位宽、复位值、功能属性均可以通过该寄存器单元接口上的属性配置值决定。通过属性配置值可以决定寄存器单元内部触发器的采样逻辑,从而将寄存器单元的功能确定为不同寄存器属性,而在后续模型转换为网表文件的过程中,由于配置值确定,转换过程中会对不使用的逻辑进行优化,所以最终网表文件中只会保留当前配置所需的逻辑,不会造成资源的浪费。
S2:确定控制寄存器模块中寄存器单元的参数信息并按照预定格式存放在可读文件中;
本发明实施例中,寄存器单元属性的参数信息包括寄存器名称、寄存器地址以及每个比特位域中所需的多个位域特征,这些位域特征又包括位域名称、位域范围、位域复位值、位域功能、位域属性;需要说明的是,可读文件中存放了控制寄存器模块中所有寄存器单元的参数信息。
S3:将可读文件作为输入文件,遍历其中的寄存器参数信息,构建参数信息的多级查找表;
本发明实施例中,通过遍历输入文件,将所有的寄存器名称和寄存器地址组织起来,构成一级二维查找表,不同寄存器的寄存器名称作为查找表的索引,对不同寄存器的寄存器地址和位域名称进行索引,每个寄存器名称对应一个寄存器地址和多个寄存器位域名称;
将所有的位域名称组织起来,构建成一级二维查找表的二级二维查找表,在使用寄存器名称索引一级查找表得到对应的位域名称后,将其作为二级二维查找表的索引,对不同寄存器的其他位域特征如位域范围、位域复位值、位域功能、位域属性作为索引内容进行索引。
S4:根据多级查找表构建多层循环结构,从而确定通用寄存器单元的配置,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码;
本发明实施例中,接口逻辑包括接口译码写逻辑以及译码读逻辑。
本发明实施例中,步骤S4具体包括:
S401:基于多级查找表,将寄存器名称作为外层循环的索引值,通过一级查找表查找对应的寄存器地址与位域名称;
S402:根据寄存器地址生成寄存器单元的接口逻辑;
S403:记录位域名称作为内层循环的索引值;通过多级查找表查找对应的位域范围、位域复位值、位域功能以及位域属性;
S404:根据位域范围确定通用寄存器单元的位宽配置值,根据位域复位值确定通用寄存器单元的复位配置值,根据位域功能确定通用寄存器单元与所需控制逻辑之间的信号名,根据位域属性确定通用寄存器单元的属性配置值;
S405:完成上述循环过程,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。
需要说明的是,在以上一轮循环之后,就可以生成一个寄存器单元和接口逻辑的相关RTL代码,经过对所有寄存器单元进行该循环过程,就可以生成出所有寄存器和接口逻辑的RTL代码,从而完成整个控制寄存器模块的RTL自动生成。
本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现上述实施例中SoC芯片控制寄存器模块RTL代码自动生成方法。
本发明中,通过构建一种属性可配置的通用寄存器单元,根据控制寄存器模块中的寄存器单元的参数信息构建多级查找表,利用多层循环结构,确定通用寄存器的配置值,生成控制寄存器模块寄存器单元和接口逻辑的相关RTL代码,进而生成控制寄存器模块中所有寄存器的RTL代码,避免了繁琐且容易出错的手动代码编写,极大的提高了设计效率,降低了芯片设计风险和验证工作的复杂性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (6)

1.一种SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,包括:
构建通用寄存器单元;
确定控制寄存器模块中寄存器单元的参数信息并按照预定格式存放在可读文件中;
将可读文件作为输入文件,遍历其中的寄存器参数信息,构建参数信息的多级查找表;
根据多级查找表构建多层循环结构,从而确定通用寄存器单元的配置,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。
2.根据权利要求1所述的SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,所述寄存器单元的参数信息包括寄存器名称、寄存器地址以及每个比特位域中所需的多个位域特征;所述位域特征包括位域名称、位域范围、位域复位值、位域功能、位域属性。
3.根据权利要求2所述的SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,所述构建参数信息的多级查找表具体包括:
将寄存器名称作为查找表索引,寄存器地址和位域名称作为查找表内容,构建一级查找表;
基于一级查找表,将位域名称作为查找表索引,位域范围、位域复位值、位域功能以及位域属性作为查找表内容,构建二级查找表。
4.根据权利要求3所述的SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,根据多级查找表构建多层循环结构,从而确定通用寄存器单元的配置,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码,具体包括:
基于多级查找表,将寄存器名称作为外层循环的索引值,通过查找表查找对应的寄存器地址与位域名称;
根据寄存器地址生成寄存器单元的接口逻辑;
记录位域名称作为内层循环的索引值;通过多级查找表查找对应的位域范围、位域复位值、位域功能以及位域属性;
根据位域范围确定通用寄存器单元的位宽配置值,根据位域复位值确定通用寄存器单元的复位配置值,根据位域功能确定通用寄存器单元与所需控制逻辑之间的信号名,根据位域属性确定通用寄存器单元的属性配置值;
完成上述循环过程,生成控制寄存器模块中寄存器单元和接口逻辑的RTL代码。
5.根据权利要求4所述的SoC芯片控制寄存器模块RTL代码自动生成方法,其特征在于,所述接口逻辑包括接口译码写逻辑和接口译码读逻辑。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现权利要求1-5任一项所述的SoC芯片控制寄存器模块RTL代码自动生成方法。
CN202110785446.XA 2021-07-12 2021-07-12 一种SoC芯片控制寄存器模块RTL代码自动生成方法 Active CN113515485B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110785446.XA CN113515485B (zh) 2021-07-12 2021-07-12 一种SoC芯片控制寄存器模块RTL代码自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110785446.XA CN113515485B (zh) 2021-07-12 2021-07-12 一种SoC芯片控制寄存器模块RTL代码自动生成方法

Publications (2)

Publication Number Publication Date
CN113515485A true CN113515485A (zh) 2021-10-19
CN113515485B CN113515485B (zh) 2024-04-02

Family

ID=78067221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110785446.XA Active CN113515485B (zh) 2021-07-12 2021-07-12 一种SoC芯片控制寄存器模块RTL代码自动生成方法

Country Status (1)

Country Link
CN (1) CN113515485B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040261050A1 (en) * 2003-06-19 2004-12-23 Lsi Logic Corporation Designing and testing the interconnection of addressable devices of integrated circuits
KR20050051207A (ko) * 2003-11-27 2005-06-01 삼성전자주식회사 Amba시스템 집적 회로의 레지스터 전송 단계 코드의자동 통합 방법
KR100788500B1 (ko) * 2006-07-14 2007-12-24 엠텍비젼 주식회사 다단 파이프라인 구조의 정점 처리 장치 및 그 방법
CN101770388A (zh) * 2009-01-06 2010-07-07 华为技术有限公司 获取芯片代码信息的方法和装置
CN102841950A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种逻辑存储单元自动验证的方法及装置
CN103354522A (zh) * 2013-06-28 2013-10-16 华为技术有限公司 一种多级流表查找方法和装置
US9171111B1 (en) * 2014-09-29 2015-10-27 Cadence Design Systems, Inc. Hardware emulation method and system using a port time shift register
CN105607897A (zh) * 2015-09-30 2016-05-25 烽火通信科技股份有限公司 芯片寄存器代码自动生成方法及其系统
CN109117518A (zh) * 2018-07-21 2019-01-01 中国人民解放军战略支援部队信息工程大学 一种寄存器读写访问验证系统及方法
CN109977558A (zh) * 2019-03-28 2019-07-05 苏州中晟宏芯信息科技有限公司 一种芯片寄存器代码结构的生成方法、装置及存储介质
CN112100949A (zh) * 2020-09-15 2020-12-18 北京士昌鼎科技有限公司 集成电路芯片的自动开发方法及装置、电子设备
US10943042B1 (en) * 2020-01-03 2021-03-09 Xilinx, Inc. Data flow graph optimization techniques for RTL loops with conditional-exit statements

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040261050A1 (en) * 2003-06-19 2004-12-23 Lsi Logic Corporation Designing and testing the interconnection of addressable devices of integrated circuits
KR20050051207A (ko) * 2003-11-27 2005-06-01 삼성전자주식회사 Amba시스템 집적 회로의 레지스터 전송 단계 코드의자동 통합 방법
KR100788500B1 (ko) * 2006-07-14 2007-12-24 엠텍비젼 주식회사 다단 파이프라인 구조의 정점 처리 장치 및 그 방법
CN101770388A (zh) * 2009-01-06 2010-07-07 华为技术有限公司 获取芯片代码信息的方法和装置
CN102841950A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种逻辑存储单元自动验证的方法及装置
CN103354522A (zh) * 2013-06-28 2013-10-16 华为技术有限公司 一种多级流表查找方法和装置
US9171111B1 (en) * 2014-09-29 2015-10-27 Cadence Design Systems, Inc. Hardware emulation method and system using a port time shift register
CN105607897A (zh) * 2015-09-30 2016-05-25 烽火通信科技股份有限公司 芯片寄存器代码自动生成方法及其系统
CN109117518A (zh) * 2018-07-21 2019-01-01 中国人民解放军战略支援部队信息工程大学 一种寄存器读写访问验证系统及方法
CN109977558A (zh) * 2019-03-28 2019-07-05 苏州中晟宏芯信息科技有限公司 一种芯片寄存器代码结构的生成方法、装置及存储介质
US10943042B1 (en) * 2020-01-03 2021-03-09 Xilinx, Inc. Data flow graph optimization techniques for RTL loops with conditional-exit statements
CN112100949A (zh) * 2020-09-15 2020-12-18 北京士昌鼎科技有限公司 集成电路芯片的自动开发方法及装置、电子设备

Also Published As

Publication number Publication date
CN113515485B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
CN101271475B (zh) 一种商业智能系统
US20080109780A1 (en) Method of and apparatus for optimal placement and validation of i/o blocks within an asic
US10289793B1 (en) System and method to generate schematics from layout-fabrics with a common cross-fabric model
CN115392176B (zh) SoC芯片顶层模块集成设计方法及系统
JPH0765040A (ja) 機能データインターフェース方法および機能データインターフェース装置
CN115935872A (zh) 一种可扩展的fpga仿真验证自动化方法
CN110222407A (zh) 一种bim数据的融合方法及装置
CN114091383A (zh) 测试序列生成方法、装置、系统及相关设备
CN117195818B (zh) 电源设计命令生成方法、装置、电子设备及存储介质
CN103150281B (zh) 总线互联模块的集成方法、装置以及验证方法和装置
CN111400169A (zh) 一种自动化生成用于测试软硬件的网表文件的方法及系统
CN117610491A (zh) 一种芯片设计方法、装置、设备及计算机可读存储介质
CN117785723A (zh) 动态接口参数关联方法、装置及电子设备
CN113515485B (zh) 一种SoC芯片控制寄存器模块RTL代码自动生成方法
CN102156789B (zh) Fpga约束文件自动生成系统及方法
CN110502735B (zh) 一种电子设备通用工艺文件快速制作方法及系统
CN116595934A (zh) 一种涂胶系统配置自动生成方法、电子装置及存储介质
CN111176926A (zh) 一种基于双口sram的ip核仿真系统及仿真方法
CN112307694B (zh) 一种电路原理图差异对比的方法和装置
CN116976252A (zh) 一种回归仿真方法、装置、设备、介质及程序产品
US6598207B1 (en) Software for converting power delivery interconnect modeling connectivity maps to simulation ready input
CN113822002B (zh) 数据处理方法、装置、计算机设备及存储介质
US11829696B2 (en) Connection analysis method for multi-port nesting model and storage medium
CN117371386B (zh) 电路布局更新方法、装置、设备及存储介质
CN116151162A (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
CB03 Change of inventor or designer information

Inventor after: Hou Ning

Inventor after: Hu Yonghua

Inventor after: Zhou Shuai

Inventor before: Hou Ning

Inventor before: Hu Yonghua

Inventor before: Yang Yu

Inventor before: Zhou Shuai

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant