CN110442929B - 一种基于perl实现芯片系统顶层自动例化的方法 - Google Patents
一种基于perl实现芯片系统顶层自动例化的方法 Download PDFInfo
- Publication number
- CN110442929B CN110442929B CN201910652114.7A CN201910652114A CN110442929B CN 110442929 B CN110442929 B CN 110442929B CN 201910652114 A CN201910652114 A CN 201910652114A CN 110442929 B CN110442929 B CN 110442929B
- Authority
- CN
- China
- Prior art keywords
- instantiation
- level
- module
- sub
- perl
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于perl实现芯片系统顶层自动例化的方法,涉及集成电路设计验证领域,包括以下步骤:步骤1、按照RTL代码的命名规则对子模块和顶层文件进行命名,确定多个所述子模块的名称和多个所述顶层文件的名称;步骤2、用perl将所述子模块进行例化,输出中间例化子模块;步骤3、用所述perl筛选所述中间例化子模块,确定顶层输入端、输出端或输入输出端的端口方向,生成例化顶层文件;步骤4、用cshell删除所述中间例化子模块,将所述例化顶层文件按照所述多个所述顶层文件的名称进行命名,并将所述例化顶层文件拷贝到预先设定的位置。本发明实现了芯片系统顶层例化过程的全自动化,解决了因手动连接而工作繁琐、耗时较多、容易出错的问题。
Description
技术领域
本发明涉及集成电路设计验证技术领域,尤其涉及一种基于perl实现芯片系统顶层自动例化的方法。
背景技术
目前集成电路顶层的连接方式基本采用人工方式,即手动连接的方式。随着当今世界在集成电路方面的电路复杂度越来越高,规模越来越大,层次越来复杂,设计验证的复杂度剧增,项目的顶层例化的模块也越来越多。在实际设计验证中,对于规模大的芯片,设计人员在做顶层例化时候,有时可能高达几百个模块,成千上万根的线需要进行连接。采用人工手动连接的方式浪费开发验证人员大量的时间,同时也使项目周期不得不在顶层例化的时候留出一定的时间。此为现有技术的不足之处。
因此,本领域的技术人员致力于开发一种实现芯片系统顶层自动例化的方法,以解决手动连接在顶层例化时候工作繁琐、耗时较多、容易出错的缺陷。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种实现芯片系统顶层自动例化方法,以解决因手动连接而工作繁琐、耗时较多、容易出错的问题。
为实现上述目的,本发明提供了一种基于perl实现芯片系统顶层自动例化的方法,所述方法包括以下步骤:
步骤1、按照RTL代码的命名规则对子模块和顶层文件进行命名,确定多个所述子模块的名称和多个所述顶层文件的名称;所述子模块为需要例化的子模块,所述顶层文件为需要定义的顶层文件;
步骤2、用perl脚本将所述子模块进行例化,输出中间例化子模块;
步骤3、用所述perl脚本筛选所述中间例化子模块,确定顶层输入端、输出端或输入输出端的端口方向,生成例化顶层文件;
步骤4、用cshell删除所述中间例化子模块,将所述例化顶层文件按照所述多个所述顶层文件的名称进行命名,并将所述例化顶层文件拷贝到预先设定的位置。
进一步地,所述步骤1包括:
步骤1.1、统一所述RTL代码的风格,构建关键字库;
步骤1.2、用所述关键字库与所述子模块和所述顶层文件进行匹配,确定多个所述子模块和所述顶层文件的名称。
进一步地,所述关键字库中的模块名关键字包含下述一种或多种:module,parameter,input,output,inout,port,comment。
进一步地,所述步骤2中的所述中间例化子模块放在预先设定的位置,便于第二次处理。
进一步地,所述步骤3根据所述模块名关键字与所述中间例化子模块之间的匹配进行所述筛选。
进一步地,所述步骤3中的信号列表的最后一个信号所述端口没有符号,对所述信号列表的所述最后一个信号所述端口进行单独处理,实现模块的定义规则。
进一步地,在所述步骤3中根据所述中间例化子模块的wire重复的命名进行筛选并保留一个,使符合verilog的规则。
进一步地,所述步骤3还包括以下操作:对信号进行方向性选择,使所述信号的方向保持正确。
进一步地,所述perl脚本用所述cshell进行封装,运行所述cshell,实现整个例化的自动运行。
进一步地,所述中间例化子模块的所述筛选和所述删除同步执行。
本发明操作简单,执行可靠,可以实现完全的自动化例化,节省了开发验证人员宝贵的时间,减少了手动例化出错的概率。与现有技术相比,本发明具有很强的实用性,并且有质的进步,其实际的应用效果也是显而易见的。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的过程示意图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
如图1所示,该基于perl实现芯片系统顶层自动例化的方法包括以下步骤:
步骤1:按照RTL代码的命名规则对需要例化的子模块和需要定义的顶层文件进行命名;
步骤2:用perl将各个所述需要例化的子模块进行自动例化,输出各个所述需要例化的子模块的中间例化子模块;
步骤3:用所述perl筛选所述中间例化子模块,确定顶层输入端(input)、输出端(output)或输入输出端(inout)的端口(port)方向,生成芯片自动例化的顶层文件;
步骤4:使用cshell删除中间例化子模块,将所述自动例化的顶层文件以指定的名称命名并拷贝到指定位置。
作为一个较佳的实施例,在进行上述步骤1之前,将RTL代码的风格保持一致,以统一确定的方式命名关键字,比如模块名里面包含:module,parameter,input,output,inout,port,comment等关键字的一种或者多种,这些关键字组成关键字库。根据该关键字库,再确定所有需要例化的模块名称和想要定义的顶层的名称。
作为一个较佳的实施例,步骤2中,需要使用perl脚本将各个子系统模块自动例化,输出的子模块放在特定位置,便于第二次处理。
作为一个较佳的实施例,步骤3中筛选的过程就是对中间例化子模块与关键字库中的module,parameter,input,output,inout,port,comment等关键字进行匹配的过程。最后一个端口(port)没有符号,进行了单独处理,实现模块的定义规则。将生成各个中间例化子模块的连线(wire)重复的命名进行了选择,保留一个进行处理,保证符合verilog的规则。对于信号进行方向性选择,保证信号方向的正确性。
作为一个较佳的实施例,用perl筛选中间例化子模块和删除中间例化子模块同步执行,实现了完全的自动化。
最终在步骤4中,实现了将生成的顶层文档拷贝到指定位置,实现完全的自动化。
其中,perl是Practical Extraction and Report Language的缩写,是一种高级、通用、直译式、动态的程序语言,可翻译为“实用报表提取语言”。
RTL是Register Transfer Level的缩写,在集成电路中指的是用寄存器这一级别的描述方式,用来描述电路的数据流方式。module,parameter,input,output,inout,port,comment等关键字都是RTL语句中的字段。
在计算机科学中,Shell指计算机壳层,俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS操作系统下的command.com和后来在windows窗口模式下的cmd.exe。它接收用户命令,然后调用相应的应用程序。cshell就是C语言风格的计算机壳层。
verilog是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (6)
1.一种基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述方法包括以下步骤:
步骤1、按照RTL代码的命名规则对子模块和顶层文件进行命名,确定多个所述子模块的名称和多个所述顶层文件的名称;所述子模块为需要例化的子模块,所述顶层文件为需要定义的顶层文件;
步骤2、用perl脚本将所述子模块进行例化,输出中间例化子模块;所述步骤2中的所述中间例化子模块放在预先设定的位置,便于第二次处理;
步骤3、用所述perl脚本筛选所述中间例化子模块,确定顶层输入端、输出端或输入输出端的端口方向,生成例化顶层文件;所述步骤3还包括以下操作:对信号进行方向性选择,使所述信号的方向保持正确;
在所述步骤3中根据所述中间例化子模块的wire重复的命名进行筛选并保留一个,使符合verilog的规则;
步骤4、用cshell删除所述中间例化子模块,将所述例化顶层文件按照所述多个所述顶层文件的名称进行命名,并将所述例化顶层文件拷贝到预先设定的位置,所述中间例化子模块的所述筛选和所述删除同步执行。
2.如权利要求1所述的基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述步骤1包括:
步骤1.1、统一所述RTL代码的风格,构建关键字库;
步骤1.2、用所述关键字库与所述子模块和所述顶层文件进行匹配,确定多个所述子模块和所述顶层文件的名称。
3.如权利要求2所述的基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述关键字库中的模块名关键字包含下述一种或多种:module,parameter,input,output,inout,port,comment。
4.如权利要求3所述的基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述步骤3根据所述模块名关键字与所述中间例化子模块之间的匹配进行所述筛选。
5.如权利要求3所述的基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述步骤3中的信号列表的最后一个信号端口没有符号,对所述信号列表的所述最后一个信号端口进行单独处理,实现模块的定义规则。
6.如权利要求1所述的基于perl实现芯片系统顶层自动例化的方法,其特征在于,所述perl脚本用所述cshell进行封装,运行所述cshell,实现整个例化的自动运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910652114.7A CN110442929B (zh) | 2019-07-18 | 2019-07-18 | 一种基于perl实现芯片系统顶层自动例化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910652114.7A CN110442929B (zh) | 2019-07-18 | 2019-07-18 | 一种基于perl实现芯片系统顶层自动例化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442929A CN110442929A (zh) | 2019-11-12 |
CN110442929B true CN110442929B (zh) | 2023-08-01 |
Family
ID=68430779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910652114.7A Active CN110442929B (zh) | 2019-07-18 | 2019-07-18 | 一种基于perl实现芯片系统顶层自动例化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442929B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553290A (zh) * | 2020-04-26 | 2021-10-26 | 江苏华创微系统有限公司 | 一种数字芯片模块链接的自动化设计方法 |
CN111859827B (zh) * | 2020-06-29 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片ip集成方法、装置及电子设备和存储介质 |
CN112861454B (zh) * | 2021-01-30 | 2024-02-06 | 芯河半导体科技(无锡)有限公司 | 一种基于python实现芯片系统顶层自动例化的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010774B1 (en) * | 1999-12-29 | 2006-03-07 | Advanced Micro Devices, Inc. | Bottom-up approach for synthesis of register transfer level (RTL) based design |
CN102012954A (zh) * | 2010-11-29 | 2011-04-13 | 杭州中天微系统有限公司 | 用于系统芯片集成设计的子系统集成方法及其子系统集成系统 |
CN105278938A (zh) * | 2014-06-30 | 2016-01-27 | 深圳市中兴微电子技术有限公司 | 一种芯片集成方法及装置 |
CN105468797A (zh) * | 2014-08-22 | 2016-04-06 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法及装置 |
CN107016189A (zh) * | 2017-04-05 | 2017-08-04 | 广东浪潮大数据研究有限公司 | 一种基于perl实现断言自动插入RTL的方法 |
-
2019
- 2019-07-18 CN CN201910652114.7A patent/CN110442929B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010774B1 (en) * | 1999-12-29 | 2006-03-07 | Advanced Micro Devices, Inc. | Bottom-up approach for synthesis of register transfer level (RTL) based design |
CN102012954A (zh) * | 2010-11-29 | 2011-04-13 | 杭州中天微系统有限公司 | 用于系统芯片集成设计的子系统集成方法及其子系统集成系统 |
CN105278938A (zh) * | 2014-06-30 | 2016-01-27 | 深圳市中兴微电子技术有限公司 | 一种芯片集成方法及装置 |
CN105468797A (zh) * | 2014-08-22 | 2016-04-06 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法及装置 |
CN107016189A (zh) * | 2017-04-05 | 2017-08-04 | 广东浪潮大数据研究有限公司 | 一种基于perl实现断言自动插入RTL的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110442929A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7100133B1 (en) | Computer system and method to dynamically generate system on a chip description files and verification information | |
CN110442929B (zh) | 一种基于perl实现芯片系统顶层自动例化的方法 | |
Boulton et al. | Experience with embedding hardware description languages in HOL. | |
US7062427B2 (en) | Batch editor for netlists described in a hardware description language | |
US7769569B2 (en) | Method and system for designing a structural level description of an electronic circuit | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
US20230289502A1 (en) | Recovery of a hierarchical functional representation of an integrated circuit | |
US6609230B1 (en) | Method for design verification using modular templates of test benches | |
US10846449B1 (en) | Conversion of block model-based circuit designs into circuit implementations | |
JP3909073B2 (ja) | コンパイラ及び論理回路の設計方法 | |
CN115204076B (zh) | 集成电路的逻辑优化方法、装置、电子设备及可读介质 | |
US5854926A (en) | Method and apparatus for identifying flip-flops in HDL descriptions of circuits without specific templates | |
CN115758789A (zh) | 一种复杂实时嵌入式系统的软件架构设计与架构传递方法 | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
CN116738900B (zh) | 知识产权块的代码转换装置和方法 | |
US20230259683A1 (en) | Selective extraction of design layout | |
CN115204077B (zh) | 集成电路的节点优化方法、装置、电子设备及可读介质 | |
US20240126960A1 (en) | Intelligent Suggestions for CAD-Based Design Entry | |
CN118114604A (zh) | 集成文件生成方法及装置、电子设备、存储介质 | |
Lovic et al. | HDLRuby: A Ruby Extension for Hardware Description and its Translation to Synthesizable Verilog HDL | |
Akpan | An FPGA realization of integrated embedded multi-processors system: A hardware-software co-design approach | |
CN117131814A (zh) | 自动生成芯片空壳的方法、电子设备和介质 | |
Dettmer | Formal chip design-a functional approach | |
Adolph | Design of digital circuits using prototypical descriptions | |
da Silva Almeida et al. | SF 2 HDL: A Computational Tool of State Transition Diagram Translation |
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 |