CN105893707B - 一种soc芯片模块验证和功耗分析方法 - Google Patents

一种soc芯片模块验证和功耗分析方法 Download PDF

Info

Publication number
CN105893707B
CN105893707B CN201610273783.XA CN201610273783A CN105893707B CN 105893707 B CN105893707 B CN 105893707B CN 201610273783 A CN201610273783 A CN 201610273783A CN 105893707 B CN105893707 B CN 105893707B
Authority
CN
China
Prior art keywords
address
module
power consumption
address function
netlist
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
Application number
CN201610273783.XA
Other languages
English (en)
Other versions
CN105893707A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics 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 Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN201610273783.XA priority Critical patent/CN105893707B/zh
Publication of CN105893707A publication Critical patent/CN105893707A/zh
Application granted granted Critical
Publication of CN105893707B publication Critical patent/CN105893707B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power 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芯片模块验证和功耗分析方法。
背景技术
随着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(RegisterTransport Level)为寄存器转换级电路;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;
步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,作为验证对象准备进行验证;
步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具的prime_time上进行功耗分析得到指定模块的功耗数据。此处的prime_time是Synopsys公司的静态时序分析软件,常被用来分析大规模数字ASIC,作为专门的静态时序分析工具,prime_time可以为一个设计提供的时序分析和设计检查,以及电路功耗分析。
进一步的,所述步骤3的具体过程是:使用vi程序打开汇编程序,然后使用perl的正则表达式找出汇编程序中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该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文件,其作用是在仿真过程中可以将地址指令中操作的地址变量或者常量的值打印到地址操作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打印指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。
3.根据权利要求1所述的一种SOC芯片模块验证和功耗分析方法,其特征在于:所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元的具体过程是:
使用vi程序打开汇编程序,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然后将对应模块的ID编号记录下来送往网表组合单元。
CN201610273783.XA 2016-04-28 2016-04-28 一种soc芯片模块验证和功耗分析方法 Active CN105893707B (zh)

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 CN105893707A (zh) 2016-08-24
CN105893707B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870841B (zh) * 2016-09-26 2020-09-01 展讯通信(上海)有限公司 移动终端功耗分析方法及系统
CN108897652B (zh) * 2018-07-03 2021-10-01 中国人民解放军国防科技大学 一种基于rtl级功耗分析的错误定位方法及系统
CN109726507B (zh) * 2019-01-17 2023-04-18 湖南进芯电子科技有限公司 一种高效的多功能验证方法
CN112100950B (zh) * 2020-09-17 2021-07-02 海光信息技术股份有限公司 用于芯片设计的方法、系统、设备以及存储介质
CN112464593B (zh) * 2020-11-25 2022-09-02 海光信息技术股份有限公司 Rom位映射关系生成方法、装置、处理器芯片及服务器

Citations (3)

* Cited by examiner, † Cited by third party
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 中国科学院自动化研究所 一种超大规模集成电路门级网表仿真的加速方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 中国科学院自动化研究所 一种超大规模集成电路门级网表仿真的加速方法

Also Published As

Publication number Publication date
CN105893707A (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
CN105893707B (zh) 一种soc芯片模块验证和功耗分析方法
CN105589993B (zh) 微处理器功能验证设备及微处理器功能验证方法
US20230342283A1 (en) Waveform based reconstruction for emulation
CN102930210B (zh) 恶意程序行为自动化分析、检测与分类系统及方法
CN104899076B (zh) 一种超大规模集成电路门级网表仿真的加速方法
CN105975664B (zh) 一种芯片功耗评估平台的评估方法
CN104063321B (zh) 一种针对MicroBlaze软核程序的测试验证系统及测试验证方法
CN105302950A (zh) 一种软、硬件协同的可编程逻辑器件交联仿真测试方法
CN105760638B (zh) 一种加快soc芯片仿真的方法
Vetter Performance analysis of distributed applications using automatic classification of communication inefficiencies
CN103942099A (zh) 基于Hive的并行执行任务方法及装置
JP5200675B2 (ja) シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
Kersey et al. A universal parallel front-end for execution driven microarchitecture simulation
Kim et al. KGEN: A Python tool for automated Fortran kernel generation and verification
CN104050069B (zh) 一种基于Mars评判Verilog实现MIPS处理器正确性的自动化测试方法
CN103176894B (zh) 一种面向数据库的测试数据自动衍生方法和装置
Verma et al. Profiling and evaluating hardware choices for MapReduce environments: An application-aware approach
CN107533473A (zh) 用于仿真的高效波形生成
CN106021109A (zh) 一种面向程序结构分析自动化框架模型
US9063735B2 (en) Reconfigurable processor and method for processing loop having memory dependency
CN109726063A (zh) 一种基于指令行为对Verilog实现的MIPS处理器的自动化评判方法
Mallya et al. Flexible timing simulation of RISC-V processors with sniper
CN100527138C (zh) 集成电路元件的模拟实例产生方法与装置
CN104198786B (zh) 利用单片机模型仿真逻辑分析仪测得波形方法
CN110135572A (zh) 一种基于soc的可训练柔性cnn系统设计方法

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