CN105975664B - 一种芯片功耗评估平台的评估方法 - Google Patents

一种芯片功耗评估平台的评估方法 Download PDF

Info

Publication number
CN105975664B
CN105975664B CN201610274550.1A CN201610274550A CN105975664B CN 105975664 B CN105975664 B CN 105975664B CN 201610274550 A CN201610274550 A CN 201610274550A CN 105975664 B CN105975664 B CN 105975664B
Authority
CN
China
Prior art keywords
address
module
netlist
rtl
instruction
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
CN201610274550.1A
Other languages
English (en)
Other versions
CN105975664A (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 CN201610274550.1A priority Critical patent/CN105975664B/zh
Publication of CN105975664A publication Critical patent/CN105975664A/zh
Application granted granted Critical
Publication of CN105975664B publication Critical patent/CN105975664B/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/20Design optimisation, verification or simulation
    • 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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种芯片功耗评估平台的评估方法,对CPU在测试中准备运行的c程序代码进行编译,产生汇编程序,然后在每个涉及地址操作的指令后加一条log打印指令,对rtl设计进行rtl仿真,产生地址操作log文件,读取地址操作log文件和所有的可访问模块地址区间信息,把有进行地址操作的地址进行汇总,网表映射分析单元读取读取模块的网表设计和模块对应的svf文件,分析每个逻辑节点的映射关系,再将rtl的波形节点映射为网表的节点,推算出网表中新增的standard_cell单元的逻辑值,将rtl仿真波形映射为网表波形;最后进行功耗分析得到指定模块的功耗数据。从而极大的提高了芯片的仿真速度。

Description

一种芯片功耗评估平台的评估方法
技术领域
本发明涉及一种SOC芯片仿真技术,特别涉及一种芯片功耗评估平台的评估方法。
背景技术
随着SOC芯片规模的快速增加,对SOC进行验证的仿真工作量也是迅速的增加。特别是芯片整体的网表验证阶段,由于所有的仿真行为都加入了时序信息,服务器的运算量非常巨大,一条验证激励的仿真时间经常都需要一个星期左右的运行时间,而一个芯片的验证通常需要成百上千的验证激励.由于验证仿真的时间过长,给整个芯片的研发时间提出了极大的挑战。所以如何降低大型SOC的仿真时间是非常有意义的工作,而目前没有较好的办法解决这一难题。
发明内容
本发明要解决的技术问题,在于提供一种芯片功耗评估平台的评估方法,通过仿真程序配置和电路设计修改配合的方式,极大的提高了芯片的仿真速度。
本发明是这样实现的:一种芯片功耗评估平台的评估方法,仿真前先对rtl设计按照模块分别进行rtl综合,产生所有的可访问模块的网表和所有的可访问模块的svf文件,则所述芯片网表仿真方法包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块地址区间信息,收集所有汇编程序中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
步骤4、在rtl仿真平台上使用修改后的汇编程序对rtl设计进行rtl仿真,产生地址操作log文件;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表映射分析单元;
步骤6、网表映射分析单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计和模块对应的svf文件,分析每个逻辑节点的映射关系,然后再读取rtl仿真的波形文件;
再将rtl的波形节点映射为网表的节点,然后通过两个对应映射点的仿真波形值,推算出网表中新增的standard_cell单元的逻辑值,由此将rtl仿真波形映射为网表波形,然后将网表波形送往power分析工具;
步骤7、power分析工具在prime_time上进行功耗分析得到指定模块的功耗数据。此处的prime_time是Synopsys公司的静态时序分析软件,常被用来分析大规模数字ASIC,作为专门的静态时序分析工具,prime_time可以为一个设计提供的时序分析和设计检查,以及电路功耗分析。
进一步的,所述步骤3的具体过程是:使用vi程序打开汇编程序,然后使用perl的正则表达式找出汇编程序中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该log打印指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。此处的Perl是一种功能丰富的计算机程序语言。
进一步的,所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表映射分析单元的具体过程是:
使用vi程序打开汇编程序,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表映射分析单元。
进一步的,所述步骤4中所述rtl仿真平台在进行仿真前的工作流程包括:
S1、cpu在BOOT复位后进入复位跳转处理,会将获取指令地址跳转到指定的boot程序存放地址,也就是测试激励c代码文件的程序对应的存放地址;
S2、从boot地址完成指令读取后,开始执行指令,第一条指令内容为读取当前运行CPU的ID号,如果ID不为零则运行WFI指令;
S3、完成ID判断后,将系统从boot起来时使用的晶振电路产生的低速时钟切换为PLL输出的高速时钟,使仿真时间大幅缩短;
S4、完成上面的操作后,指令跳往主仿真程序的存放地址开始执行仿真激励。
本发明具有如下优点:本发明通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度,可以有效减少芯片的验证仿真时间,从而减少整个芯片的研发时间,并且一开始就让系统进入高速模式,把多核中的其他核很快进入休眠,减少无效访问;能自动判断使用的电路部分,自动使用空壳代码,设置复位寄存器路径,减少系统复位时间长度;还能使用rtl综合时产生的svf文件,直接做rtl到网表的映射分析,推算出网表波形做功耗分析,省掉了网表仿真这个环节,大幅节省了时间,从而极大地提高了芯片功耗评估的效率。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
图2为本发明rtl仿真平台的在进入仿真程序前的工作流程图。
具体实施方式
如图1所示,本发明的芯片功耗评估平台的评估方法,该芯片功耗评估平台由图1中的各模块组成,所述评估方法需在仿真前先对rtl设计按照模块分别进行rtl综合,综合工具为Design compiler,综合后产生所有的可访问模块的网表和所有的可访问模块的svf文件,其中,svf文件是用于描述rtl综合转化为网表过程中的映射关系的文件,记录了综合工具对rtl到网表的转化和优化过程,可以用这个文件进行rtl设计和网表设计中对应点的映射分析。
则所述评估方法包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块(指所有SOC中的所有的可访问模块,比如显示控制模块、I2S模块、UART模块等,但不包括芯片功耗评估平台本身的模块)地址区间信息,收集所有汇编程序中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
具体过程是:使用vi程序打开汇编程序,然后使用perl的正则表达式找出汇编程序中的LRD、STR、MOV等所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个地址操作log文件,其作用是在仿真过程中可以将地址指令中操作的地址变量或者常量的值打印到地址操作log文件中。
步骤4、在rtl仿真平台上使用修改后(此处的修改是指在地址操作指令后增加打印指令的汇编程序)的汇编程序对rtl设计进行rtl仿真,产生地址操作log文件;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表映射分析单元;具体过程是:使用vi程序打开汇编程序,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
步骤6、网表映射分析单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计和模块对应的svf文件,分析每个逻辑节点的映射关系,然后再读取rtl仿真的波形文件;
再将rtl的波形节点映射为网表的节点,然后通过两个对应映射点的仿真波形值,推算出网表中新增的standard_cell单元的逻辑值,由此将rtl仿真波形映射为网表波形,然后将网表波形送往power分析工具;关于推算,需要说明的是:
本发明的rtl就是RegisterTransferLevel,为寄存器转换级电路,所以经过综合后所有的网表寄存器和rtl代码中的寄存器的位置和名称都是可以直接一一对应的,两者不同的是寄存器中间的电路,在rtl中是抽象的逻辑描述,在网表中是具体的基本单元电路;svf中记录了工具对抽象逻辑转化为具体基本单元的对应信息,所以在波形中获取到所有寄存器的仿真值和抽象逻辑信号仿真值后,可以通过svf找到rtl抽象逻辑信号对应的基本单元电路,再加上本身就一一对应的寄存器电路,可以直接推算出所有基本单元电路的仿真值,从而得到网表的仿真波形。
步骤7、power分析工具在prime_time上进行功耗分析得到指定模块的功耗数据。
再如图2所示,为本发明rtl仿真平台的在进入仿真程序前的工作流程图,即执行所述测试激励c代码文件中的程序的流程,该流程包括下述过程:
S1、cpu在BOOT复位后进入复位跳转处理,会将取指令地址跳转到指定的boot程序存放地址,也就是测试激励c代码文件的程序(由于测试激励c代码文件是用来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码,因此实质上是可执行程序)对应的存放地址;
S2、从boot地址完成指令读取后,开始执行指令,第一条指令内容为读取当前运行CPU的ID号,如果ID不为零则运行WFI指令(即让当前CPU进行WFI睡眠状态,不再运行后续程序,从而节省了大量的仿真行为);
在多核CPU系统中,每个CPU都有一个ID,比如4核cpu系统中,主cpu的ID为0,另外3个CPU的ID分别为1、2、3,每个CPU运行读取ID的指令都会读取出自己的ID号;
S3、完成ID判断后,将系统从boot起来时使用的晶振电路产生的低速时钟切换为PLL输出的高速时钟,使仿真时间大幅缩短;
S4、完成上面的操作后,指令跳往仿真程序的存放地址开始执行仿真激励。
以上的步骤在仿真启动后以最快速度关闭了不相关的CPU,并将仿真的速率提高,从而节省了大量的仿真任务量和仿真速度。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (4)

1.一种芯片功耗评估平台的评估方法,其特征在于:先对rtl设计按照模块分别进行rtl综合,产生所有的可访问模块的网表和所有的可访问模块的svf文件,则所述评估方法包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块地址区间信息,收集所有汇编程序中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
步骤4、在rtl仿真平台上使用修改后的汇编程序对rtl设计进行rtl仿真,产生地址操作log文件;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表映射分析单元;
步骤6、网表映射分析单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计和模块对应的svf文件,分析每个逻辑节点的映射关系,然后再读取rtl仿真的波形文件;
再将rtl的波形节点映射为网表的节点,然后通过两个对应映射点的仿真波形值,推算出网表中新增的standard_cell单元的逻辑值,由此将rtl仿真波形映射为网表波形,然后将网表波形送往power分析工具;
步骤7、power分析工具在prime_time上进行功耗分析得到指定模块的功耗数据。
2.根据权利要求1所述的一种芯片功耗评估平台的评估方法,其特征在于:所述步骤3的具体过程是:使用vi程序打开汇编程序,然后使用perl的正则表达式找出汇编程序中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该log打印指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。
3.根据权利要求1所述的一种芯片功耗评估平台的评估方法,其特征在于:所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表映射分析单元的具体过程是:
使用vi程序打开汇编程序,然后使用perl的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表映射分析单元。
4.根据权利要求1所述的一种芯片功耗评估平台的评估方法,其特征在于:所述步骤4中所述rtl仿真平台在进行仿真前的工作流程包括:
S1、cpu在BOOT复位后进入复位跳转处理,会将获取指令地址跳转到指定的boot程序存放地址,也就是测试激励c代码文件的程序对应的存放地址;
S2、从boot地址完成指令读取后,开始执行指令,第一条指令内容为读取当前运行CPU的ID号,如果ID不为零则运行WFI指令;
S3、完成ID判断后,将系统从boot起来时使用的晶振电路产生的低速时钟切换为PLL输出的高速时钟,使仿真时间大幅缩短;
S4、完成上面的操作后,指令跳往仿真程序的存放地址开始执行仿真激励。
CN201610274550.1A 2016-04-28 2016-04-28 一种芯片功耗评估平台的评估方法 Active CN105975664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610274550.1A CN105975664B (zh) 2016-04-28 2016-04-28 一种芯片功耗评估平台的评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610274550.1A CN105975664B (zh) 2016-04-28 2016-04-28 一种芯片功耗评估平台的评估方法

Publications (2)

Publication Number Publication Date
CN105975664A CN105975664A (zh) 2016-09-28
CN105975664B true CN105975664B (zh) 2019-01-18

Family

ID=56993314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610274550.1A Active CN105975664B (zh) 2016-04-28 2016-04-28 一种芯片功耗评估平台的评估方法

Country Status (1)

Country Link
CN (1) CN105975664B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101355B (zh) * 2018-06-26 2021-12-10 飞腾信息技术有限公司 一种提取错误现场特征测试激励的处理器调试方法
TWI670617B (zh) * 2018-10-31 2019-09-01 財團法人工業技術研究院 模擬系統與方法
CN112100950B (zh) * 2020-09-17 2021-07-02 海光信息技术股份有限公司 用于芯片设计的方法、系统、设备以及存储介质
CN112287626B (zh) * 2020-10-26 2022-05-06 浙江大学 基于静态时序信息的开关电流模型拟合功耗变化波形方法
CN116755993B (zh) * 2023-08-18 2023-12-19 杭州行芯科技有限公司 芯片功耗评估方法、装置、电子装置和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615209A (zh) * 2009-07-17 2009-12-30 中国人民解放军国防科学技术大学 基于内存监视的处理器验证方法
CN102508753A (zh) * 2011-11-29 2012-06-20 青岛海信信芯科技有限公司 Ip核验证系统
CN102902834A (zh) * 2011-07-29 2013-01-30 炬力集成电路设计有限公司 一种soc芯片的验证方法及系统
US8694931B1 (en) * 2006-06-02 2014-04-08 Cadence Design Systems, Inc. Systems and methods for super-threading of integrated circuit design programs
CN104573228A (zh) * 2015-01-06 2015-04-29 中国人民解放军国防科学技术大学 面向兼容设计的微处理器硅后验证装置与验证方法
CN104899076A (zh) * 2015-06-18 2015-09-09 中国科学院自动化研究所 一种超大规模集成电路门级网表仿真的加速方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054755A (ja) * 2002-07-23 2004-02-19 Nec Electronics Corp システムレベル設計方法及びシステムレベル設計装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694931B1 (en) * 2006-06-02 2014-04-08 Cadence Design Systems, Inc. Systems and methods for super-threading of integrated circuit design programs
CN101615209A (zh) * 2009-07-17 2009-12-30 中国人民解放军国防科学技术大学 基于内存监视的处理器验证方法
CN102902834A (zh) * 2011-07-29 2013-01-30 炬力集成电路设计有限公司 一种soc芯片的验证方法及系统
CN102508753A (zh) * 2011-11-29 2012-06-20 青岛海信信芯科技有限公司 Ip核验证系统
CN104573228A (zh) * 2015-01-06 2015-04-29 中国人民解放军国防科学技术大学 面向兼容设计的微处理器硅后验证装置与验证方法
CN104899076A (zh) * 2015-06-18 2015-09-09 中国科学院自动化研究所 一种超大规模集成电路门级网表仿真的加速方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于PowerPC的SoC验证平台开发;许珂;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090215;第I135-153页
基于VMM的SoC芯片软硬件协同验证平台的研究与实现;官枫林;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130715;第I135-386页

Also Published As

Publication number Publication date
CN105975664A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
CN105975664B (zh) 一种芯片功耗评估平台的评估方法
US11200149B2 (en) Waveform based reconstruction for emulation
CN100356341C (zh) 基于模拟器的嵌入式软件运行时能耗估算方法
CN105893707B (zh) 一种soc芯片模块验证和功耗分析方法
CN102411535A (zh) 导航SoC芯片仿真、验证和调试平台
CN105760638B (zh) 一种加快soc芯片仿真的方法
CN102902906A (zh) 微处理器指令集验证方法
JP5200675B2 (ja) シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
Kersey et al. A universal parallel front-end for execution driven microarchitecture simulation
CN113515348B (zh) 一种基于时机动作流的模拟器建模方法及装置
CN102231132B (zh) 一种基于SystemC的AADL软构件模型仿真测试实例生成方法
Diaz et al. VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
CN109871237A (zh) 一种基于机器学习的CPU与GPU异构SoC性能刻画方法
Ducroux et al. Fast and accurate power annotated simulation: Application to a many-core architecture
JP5056493B2 (ja) 仮想ソフトウェア生成装置
Cano-Cano et al. Speeding up exascale interconnection network simulations with the VEF3 trace framework
CN115629928B (zh) 一种面向类脑处理器的软硬协同验证方法及系统
US20110238400A1 (en) Device for a method of modelling a physical structure
US20220300690A1 (en) Incremental compilation for fpga-based systems
Grüttner et al. A timed-value stream based ESL timing and power estimation and simulation framework for heterogeneous MPSoCs
Kogel Virtual Prototyping of Processor-Based Platforms
Perillo et al. Using MDA to automate the integration of virtual platforms for system-level simulation
Stecklina et al. Hybrid Simulation Environment for rapid MSP430 system design test and validation using MSPsim and SystemC
Kreku Early-phase performance evaluation of computer systems using workload models and SystemC

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
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.