[发明专利]一种加快SOC芯片仿真的方法有效
申请号: | 201610274412.3 | 申请日: | 2016-04-28 |
公开(公告)号: | CN105760638B | 公开(公告)日: | 2018-11-06 |
发明(设计)人: | 廖裕民 | 申请(专利权)人: | 福州瑞芯微电子股份有限公司 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 王美花 |
地址: | 350000 福建省*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加快 soc 芯片 仿真 方法 | ||
本发明提供一种加快SOC芯片仿真的方法,对CPU在测试中准备运行的c程序代码进行编译,产生汇编程序,然后在每个涉及地址操作的指令后加一条log打印指令,对rtl设计进行rtl仿真,产生地址操作log文件,读取地址操作log文件和所有的可访问模块地址区间信息,把有进行地址操作的地址进行汇总,网表组合单元读取模块的网表设计和剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,在网表验证平台上使用原始测试激励程序对完整的SOC设计进行仿真,得到电路波形文件。从而极大的提高了芯片的仿真速度。
技术领域
本发明涉及一种SOC芯片仿真技术,特别涉及一种加快SOC芯片仿真的方法。
背景技术
随着SOC(System-on-a-chip)芯片规模的快速增加,对SOC进行验证的仿真工作量也是迅速的增加。特别是芯片整体的网表验证阶段,由于所有的仿真行为都加入了时序信息,服务器的运算量非常巨大,一条验证激励的仿真时间经常都需要一个星期左右的运行时间,而一个芯片的验证通常需要成百上千的验证激励.由于验证仿真的时间过长,给整个芯片的研发时间提出了极大的挑战。所以如何降低SOC芯片的仿真时间是非常有意义的工作,而目前没有较好的办法解决这一难题。
发明内容
本发明要解决的技术问题,在于提供一种加快SOC芯片仿真的方法,通过仿真程序配置和电路设计修改配合的方法,极大的提高了芯片的仿真速度。
本发明是这样实现的:一种加快SOC芯片仿真的方法,包括:
步骤1、通过一测试激励c代码文件来存储SOC芯片中的CPU在测试中准备运行的所有c程序代码;
步骤2、通过程序编译器读取所述测试激励c代码文件中的c程序代码进行编译,产生汇编代码;
步骤3、通过程序分析修改单元读取所述汇编代码和所有的可访问模块地址区间信息,收集所有汇编代码中的地址操作相关代码,把有进行地址操作的地址进行汇总,然后在每个涉及地址操作的指令后加一条log打印指令,以将每个涉及地址操作的指令涉及的地址变量或者常量打印出来;
步骤4、在rtl仿真平台上使用修改后的汇编代码对rtl设计进行rtl仿真,产生地址操作log文件;所述rtl仿真平台在进行仿真前的工作流程包括:
S1、cpu在BOOT复位后进入复位跳转处理,会将获取指令地址跳转到指定的boot程序存放地址,也就是测试激励c代码文件的程序对应的存放地址;
S2、从boot地址完成指令读取后,开始执行指令,第一条指令内容为读取当前运行CPU的ID号,如果ID不为零则运行WFI指令;
S3、完成ID判断后,将系统从boot起来时使用的晶振电路产生的低速时钟切换为PLL输出的高速时钟,使仿真时间大幅缩短;
S4、完成上面的操作后,指令跳往主仿真程序的存放地址开始执行仿真激励;其中,rtl(RegisterTransport Level)为寄存器转换级电路;
步骤5、涉及IP分析修改单元读取地址操作log文件和所有的可访问模块地址区间信息,收集所有地址操作log文件中的地址值,把有进行地址操作的地址进行汇总;
再根据所有的可访问模块地址区间进行比较,看有哪一些模块没有任何的地址操作,然后把涉及地址操作的模块编号发送到网表组合单元;
步骤6、网表组合单元收到涉及地址操作的模块编号后,到模块网表库中读取模块的网表设计,然后到模块rtl空壳库中读取剩余模块对应的模块rtl空壳,最后合并成一个完整的SOC设计,作为验证对象准备进行验证;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州瑞芯微电子股份有限公司,未经福州瑞芯微电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610274412.3/2.html,转载请声明来源钻瓜专利网。