CN105893707A - 一种soc芯片模块验证和功耗分析方法 - Google Patents
一种soc芯片模块验证和功耗分析方法 Download PDFInfo
- Publication number
- CN105893707A CN105893707A CN201610273783.XA CN201610273783A CN105893707A CN 105893707 A CN105893707 A CN 105893707A CN 201610273783 A CN201610273783 A CN 201610273783A CN 105893707 A CN105893707 A CN 105893707A
- Authority
- CN
- China
- Prior art keywords
- address
- module
- netlist
- power consumption
- program
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
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)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供一种SOC芯片模块验证和功耗分析方法,对CPU在测试中准备运行的c程序代码进行编译,产生汇编程序,然后在每个涉及地址操作的指令后加一条log打印指令,对rtl设计进行rtl仿真,产生地址操作log文件,读取地址操作log文件和所有的可访问模块地址区间信息,把有进行地址操作的地址进行汇总,网表组合单元读取模块的网表设计和剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,在网表验证平台上使用原始测试激励程序对完整的SOC设计进行仿真,得到电路波形文件后,拿到power分析工具prime_time上进行功耗分析得到指定模块的功耗数据。从而极大的提高了芯片的仿真速度。
Description
技术领域
本发明涉及一种SOC芯片仿真技术,特别涉及一种SOC芯片模块验证和功耗分析方法。
背景技术
随着SOC(System-on-a-chip)芯片规模的快速增加,对SOC进行模块验证和功耗分析的工作量也是迅速的增加。特别是芯片整体的网表验证阶段,由于模块验证和功耗分析工作中的所有的仿真行为都加入了时序信息,服务器的运算量非常巨大,一条验证激励的仿真时间经常都需要一个星期左右的运行时间,而一个芯片的验证通常需要成百上千的验证激励,由于验证仿真的时间过长,给整个芯片的研发时间提出了极大的挑战,会极大地降低SOC芯片模块验证和功耗分析效率。所以有必要对现有的SOC芯片模块验证和功耗分析方法进行改进,而目前没有较好的办法解决这一难题。
发明内容
本发明要解决的技术问题,在于提供一种SOC芯片模块验证和功耗分析方法,通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度。
本发明是这样实现的:一种SOC芯片模块验证和功耗分析方法,包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
步骤4、在rtl仿真平台上使用修改后的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;其中,rtl(Register Transport Level)为寄存器转换级电路;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;
步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,作为验证对象准备进行验证;
步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具的prime_time上进行功耗分析得到指定模块的功耗数据。此处的prime_time是Synopsys公司的静态时序分析软件,常被用来分析大规模数字ASIC,作为专门的静态时序分析工具,prime_time可以为一个设计提供的时序分析和设计检查,以及电路功耗分析。
进一步的,所述步骤3的具体过程是:使用vi程序打开汇编代码,然后使用perl的正则表达式找出汇编代码中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。此处的Perl是一种功能丰富的计算机程序语言。
进一步的,所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元的具体过程是:
使用vi程序打开汇编代码,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
本发明具有如下优点:本发明通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度,从而有效地降低SOC芯片模块验证和功耗分析效率以减少整个芯片的研发时间,并且能自动判断使用的电路部分,自动使用空壳代码;还能自动分析修改代码,加入地址收集动作。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
如图1所示,本发明的提高大型SOC芯片仿真速度的方法,包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块(指所有SOC中的所有的可访问模块,比如显示控制模块、I2S模块、UART模块等,但不包括芯片功耗评估平台本身的模块)地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来,此处打印出来目的是能通过查找有地址操作的命令来确定哪些电路模块在仿真中会有动作,然后在仿真中把有动作的模块替换为网表,其他没有动作的模块还是RTL设计,从而提高仿真速度;
具体过程是:使用vi程序打开汇编代码,然后使用perl的正则表达式找出汇编代码中的LRD,STR,MOV等所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个地址操作log文件,其作用是在仿真过程中可以将地址指令中操作的地址变量或者常量的值打印到地址操作log文件中。
步骤4、在rtl仿真平台上使用修改后(此处的修改是指在地址操作指令后增加打印指令的汇编代码)的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;其中,所有的可访问模块地址区间信息存储在所有的可访问模块地址区间存储单元中;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;具体过程是:使用vi程序打开汇编代码,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个RTL和网表混合的设计,即形成完整的SOC设计,以作为验证对象准备进行验证;
步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具prime_time上进行功耗分析得到指定模块的功耗数据。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (3)
1.一种SOC芯片模块验证和功耗分析方法,其特征在于:包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
步骤4、在rtl仿真平台上使用修改后的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;
步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,作为验证对象准备进行验证;
步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具的prime_time上进行功耗分析得到指定模块的功耗数据。
2.根据权利要求1所述的一种SOC芯片模块验证和功耗分析方法,其特征在于:所述步骤3的具体过程是:使用vi程序打开汇编代码,然后使用perl的正则表达式找出汇编代码中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。
3.根据权利要求1所述的一种SOC芯片模块验证和功耗分析方法,其特征在于:所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元的具体过程是:
使用vi程序打开汇编代码,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610273783.XA CN105893707B (zh) | 2016-04-28 | 2016-04-28 | 一种soc芯片模块验证和功耗分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610273783.XA CN105893707B (zh) | 2016-04-28 | 2016-04-28 | 一种soc芯片模块验证和功耗分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105893707A true CN105893707A (zh) | 2016-08-24 |
CN105893707B CN105893707B (zh) | 2019-06-07 |
Family
ID=56701933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610273783.XA Active CN105893707B (zh) | 2016-04-28 | 2016-04-28 | 一种soc芯片模块验证和功耗分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893707B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870841A (zh) * | 2016-09-26 | 2018-04-03 | 展讯通信(上海)有限公司 | 移动终端功耗分析方法及系统 |
CN108897652A (zh) * | 2018-07-03 | 2018-11-27 | 中国人民解放军国防科技大学 | 一种基于rtl级功耗分析的错误定位方法及系统 |
CN109726507A (zh) * | 2019-01-17 | 2019-05-07 | 湖南进芯电子科技有限公司 | 一种高效的多功能验证平台及方法 |
CN112100950A (zh) * | 2020-09-17 | 2020-12-18 | 海光信息技术股份有限公司 | 用于芯片设计的方法、系统、设备以及存储介质 |
CN112464593A (zh) * | 2020-11-25 | 2021-03-09 | 海光信息技术股份有限公司 | Rom位映射关系生成方法、装置、处理器芯片及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508753A (zh) * | 2011-11-29 | 2012-06-20 | 青岛海信信芯科技有限公司 | Ip核验证系统 |
CN102592023A (zh) * | 2012-01-06 | 2012-07-18 | 广东新岸线计算机系统芯片有限公司 | 集成电路设计过程中的寄存器设计方法及装置 |
CN104899076A (zh) * | 2015-06-18 | 2015-09-09 | 中国科学院自动化研究所 | 一种超大规模集成电路门级网表仿真的加速方法 |
-
2016
- 2016-04-28 CN CN201610273783.XA patent/CN105893707B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508753A (zh) * | 2011-11-29 | 2012-06-20 | 青岛海信信芯科技有限公司 | Ip核验证系统 |
CN102592023A (zh) * | 2012-01-06 | 2012-07-18 | 广东新岸线计算机系统芯片有限公司 | 集成电路设计过程中的寄存器设计方法及装置 |
CN104899076A (zh) * | 2015-06-18 | 2015-09-09 | 中国科学院自动化研究所 | 一种超大规模集成电路门级网表仿真的加速方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870841A (zh) * | 2016-09-26 | 2018-04-03 | 展讯通信(上海)有限公司 | 移动终端功耗分析方法及系统 |
CN108897652A (zh) * | 2018-07-03 | 2018-11-27 | 中国人民解放军国防科技大学 | 一种基于rtl级功耗分析的错误定位方法及系统 |
CN109726507A (zh) * | 2019-01-17 | 2019-05-07 | 湖南进芯电子科技有限公司 | 一种高效的多功能验证平台及方法 |
CN109726507B (zh) * | 2019-01-17 | 2023-04-18 | 湖南进芯电子科技有限公司 | 一种高效的多功能验证方法 |
CN112100950A (zh) * | 2020-09-17 | 2020-12-18 | 海光信息技术股份有限公司 | 用于芯片设计的方法、系统、设备以及存储介质 |
CN112464593A (zh) * | 2020-11-25 | 2021-03-09 | 海光信息技术股份有限公司 | Rom位映射关系生成方法、装置、处理器芯片及服务器 |
CN112464593B (zh) * | 2020-11-25 | 2022-09-02 | 海光信息技术股份有限公司 | Rom位映射关系生成方法、装置、处理器芯片及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN105893707B (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100952B (zh) | 一种集成电路后仿真方法、装置、电子设备及存储介质 | |
CN105589993B (zh) | 微处理器功能验证设备及微处理器功能验证方法 | |
Civera et al. | An FPGA-based approach for speeding-up fault injection campaigns on safety-critical circuits | |
CN104899076B (zh) | 一种超大规模集成电路门级网表仿真的加速方法 | |
CN105893707A (zh) | 一种soc芯片模块验证和功耗分析方法 | |
US11726899B2 (en) | Waveform based reconstruction for emulation | |
Leupers et al. | Virtual platforms: Breaking new grounds | |
CN105975664A (zh) | 一种芯片功耗评估平台的评估方法 | |
CN105760638B (zh) | 一种加快soc芯片仿真的方法 | |
CN109189479A (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
CN103678115B (zh) | 在混合模式程序中检测源代码差错的位置的设备和方法 | |
US20180349533A1 (en) | Capturing Time-Slice of Emulation Data for Offline Embedded Software Debug | |
CN104050069B (zh) | 一种基于Mars评判Verilog实现MIPS处理器正确性的自动化测试方法 | |
Lingappan et al. | Satisfiability-based automatic test program generation and design for testability for microprocessors | |
CN106021109A (zh) | 一种面向程序结构分析自动化框架模型 | |
CN113806234A (zh) | 一种芯片寄存器提取及测试方法 | |
CN117785641A (zh) | Rtl仿真性能评估方法、装置、终端及介质 | |
Engblom et al. | Testing Embedded Software using Simulated Hardware | |
CN100527138C (zh) | 集成电路元件的模拟实例产生方法与装置 | |
CN115629928A (zh) | 一种面向类脑处理器的软硬协同验证方法及系统 | |
Sinha et al. | Abstract state machines as an intermediate representation for high-level synthesis | |
US20110238400A1 (en) | Device for a method of modelling a physical structure | |
CN207302033U (zh) | 带有随机uid的处理器芯片仿真器 | |
CN113360397A (zh) | 系统功能的回归测试方法、装置、设备及存储介质 | |
CN101615209B (zh) | 基于内存监视的处理器验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee after: Ruixin Microelectronics Co., Ltd Address before: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee before: Fuzhou Rockchips Electronics Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |