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

文档序号:10535152阅读:517来源:国知局
一种soc芯片模块验证和功耗分析方法
【专利摘要】本发明提供一种SOC芯片模块验证和功耗分析方法,对CPU在测试中准备运行的c程序代码进行编译,产生汇编程序,然后在每个涉及地址操作的指令后加一条log打印指令,对rtl设计进行rtl仿真,产生地址操作log文件,读取地址操作log文件和所有的可访问模块地址区间信息,把有进行地址操作的地址进行汇总,网表组合单元读取模块的网表设计和剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,在网表验证平台上使用原始测试激励程序对完整的SOC设计进行仿真,得到电路波形文件后,拿到power分析工具prime_time上进行功耗分析得到指定模块的功耗数据。从而极大的提高了芯片的仿真速度。
【专利说明】
一种SOC芯片模块验证和功耗分析方法
技术领域
[0001]本发明涉及一种SOC芯片仿真技术,特别涉及一种SOC芯片模块验证和功耗分析方法。
【背景技术】
[0002]随着SOC(System-on-a-chip)芯片规模的快速增加,对SOC进行模块验证和功耗分析的工作量也是迅速的增加。特别是芯片整体的网表验证阶段,由于模块验证和功耗分析工作中的所有的仿真行为都加入了时序信息,服务器的运算量非常巨大,一条验证激励的仿真时间经常都需要一个星期左右的运行时间,而一个芯片的验证通常需要成百上千的验证激励,由于验证仿真的时间过长,给整个芯片的研发时间提出了极大的挑战,会极大地降低SOC芯片模块验证和功耗分析效率。所以有必要对现有的SOC芯片模块验证和功耗分析方法进行改进,而目前没有较好的办法解决这一难题。

【发明内容】

[0003]本发明要解决的技术问题,在于提供一种SOC芯片模块验证和功耗分析方法,通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度。
[0004]本发明是这样实现的:一种SOC芯片模块验证和功耗分析方法,包括:
[0005]步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
[0006]步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
[0007]步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
[0008]步骤4、在rtI仿真平台上使用修改后的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;其中,rtl(Register Transport Level)为寄存器转换级电路;
[0009]步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
[0010]再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;
[0011]步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,作为验证对象准备进行验证;
[0012]步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具的prime_time上进行功耗分析得到指定模块的功耗数据。此处的prime_time是Synopsys公司的静态时序分析软件,常被用来分析大规模数字ASIC,作为专门的静态时序分析工具,pr ime_time可以为一个设计提供的时序分析和设计检查,以及电路功耗分析。
[0013]进一步的,所述步骤3的具体过程是:使用Vi程序打开汇编代码,然后使用peri的正则表达式找出汇编代码中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。此处的Perl是一种功能丰富的计算机程序语言。
[0014]进一步的,所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元的具体过程是:
[0015]使用vi程序打开汇编代码,然后使用peri的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
[0016]本发明具有如下优点:本发明通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度,从而有效地降低SOC芯片模块验证和功耗分析效率以减少整个芯片的研发时间,并且能自动判断使用的电路部分,自动使用空壳代码;还能自动分析修改代码,加入地址收集动作。
【附图说明】
[0017]下面参照附图结合实施例对本发明作进一步的说明。
[0018]图1为本发明方法执行流程图。
【具体实施方式】
[0019]如图1所示,本发明的提高大型SOC芯片仿真速度的方法,包括:
[0020]步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
[0021]步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编程序;
[0022]步骤3、通过程序分析修改单元读取所述汇编程序和所有的可访问模块(指所有SOC中的所有的可访问模块,比如显示控制模块、I2S模块、UART模块等,但不包括芯片功耗评估平台本身的模块)地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来,此处打印出来目的是能通过查找有地址操作的命令来确定哪些电路模块在仿真中会有动作,然后在仿真中把有动作的模块替换为网表,其他没有动作的模块还是RTL设计,从而提高仿真速度;
[0023]具体过程是:使用vi程序打开汇编代码,然后使用peri的正则表达式找出汇编代码中的LRD,STR,M0V等所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个地址操作log文件,其作用是在仿真过程中可以将地址指令中操作的地址变量或者常量的值打印到地址操作log文件中。
[0024]步骤4、在rtl仿真平台上使用修改后(此处的修改是指在地址操作指令后增加打印指令的汇编代码)的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;
[0025]步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;其中,所有的可访问模块地址区间信息存储在所有的可访问模块地址区间存储单元中;
[0026]再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;具体过程是:使用Vi程序打开汇编代码,然后使用peri的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
[0027]步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个RTL和网表混合的设计,即形成完整的SOC设计,以作为验证对象准备进行验证;
[0028]步骤7、在网表验证平台上使用原始测试激励程序对所述验证对象进行仿真,得到电路波形文件后,拿到power分析工具prime_time上进行功耗分析得到指定模块的功耗数据。
[0029]虽然以上描述了本发明的【具体实施方式】,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【主权项】
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程序打开汇编代码,然后使用peri的正则表达式找出汇编代码中所有涉及地址操作的汇编指令的位置,然后在每个地址操作指令后面增加一个log打印指令,该指令不影响仿真电路行为,只是将地址指令中操作的地址变量或者常量打印到一个log文件。3.根据权利要求1所述的一种SOC芯片模块验证和功耗分析方法,其特征在于:所述步骤5中根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元的具体过程是: 使用vi程序打开汇编代码,然后使用peri的正则表达式找出操作地址从属于哪个模块的地址区间,然将对应模块的ID编号记录下来送往网表组合单元。
【文档编号】G06F17/50GK105893707SQ201610273783
【公开日】2016年8月24日
【申请日】2016年4月28日
【发明人】廖裕民, 陈勇全
【申请人】福州瑞芯微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1