一种SOC片上地址覆盖率的统计方法与流程
本发明属于集成电路设计验证,涉及一种soc片上地址覆盖率的统计方法。
背景技术:
1、随着半导体工艺进步和异构集成技术发展,系统级芯片(soc)设计规模已跃升至数百亿晶体管量级,且逻辑结构日趋复杂。为缩短上市时间,设计普遍采用多ip复用的集成模式,一个soc往往内嵌数十个来自不同供应商或内部开发的大型ip子系统。此种范式在提升效率的同时,也使得功能验证面临前所未有的挑战。当前确保芯片功能正确性的主流验证手段主要依赖两类覆盖率指标:代码覆盖率(含语句、分支、条件、状态机覆盖)和功能点覆盖率。两者在实际工程中被广泛结合,用以衡量验证完备性。然而面对超大规模ip集成现状,二者均存在固有的、难以克服的技术缺陷。
2、(一)代码覆盖率的局限
3、其一,外部黑盒ip不可控。大量高性能ip(如处理器核、高速接口phy、控制器等)以外购方式引入,供应商仅交付加密或网表级模型,底层rtl对集成方不可见。集成团队无法定向编写测试用例去覆盖ip内部深层次逻辑,也难以区分不可达分支是设计冗余还是潜在缺陷,导致覆盖率数据的表征意义大打折扣。其二,覆盖率收敛时间成本过高。逼近100%代码覆盖率需指数级增长的仿真用例和海量随机测试。在刚性流片时间窗口下,工程节点前通常仅能达到80%~90%覆盖,剩余未覆盖部分多为异常边界状态机分支,而该部分在流片前无法被充分验证,构成了芯片一次流片成功率的重大风险——任何未执行的代码区域均可能在硅片后表现为功能失效,现有体系无法有效排除。
4、(二)功能点覆盖率的局限
5、功能点验证由工程师依据规格书人工提取并逐一确认。其首要缺陷在于完备性依赖个体经验:验证人员易偏向覆盖规格书中显性标准模式,对跨时钟域交互、电源瞬态响应、多ip并发仲裁等复合场景容易疏漏。即使报告声称功能点覆盖率达100%,实际仅证明“提取的功能点已通过”,并非“所有实际行为均被验证”。其次,用户应用场景动态演化与静态规格文档失配。芯片部署环境常超出设计预定假设,不同电压、温度、接口时序及软件负载组合可能触发规格未明示但物理可达的操作状态。当应用条件变化或新互操作需求出现,原本“完整”的功能验证集即出现漏洞,导致现场失效(如异常复位、数据损毁),此类问题往往在量产交付后才暴露,修改成本极高。
6、综上,现有以代码覆盖率与功能点覆盖率为核心的验证体系,在外部ip不可测性与时间压力下已显现技术天花板。当两者皆无法保证完备闭合时,本领域迫切需要一种不依赖传统覆盖率路径、能够在覆盖“盲区”内提供正交验证保障的新方案,用以识别两类方法共同遗漏的设计隐患,在流片前为芯片功能正确性提供更鲁棒的安全屏障。
技术实现思路
1、本发明的目的在于解决现有技术中因代码覆盖率受外部ip不可控和时间成本限制无法达到100%,同时功能点覆盖率因人工提取局限和应用场景迁移而固有遗漏的技术问题,提供一种soc片上地址覆盖率的统计方法。
2、为了达到上述目的,本发明采用以下技术方案予以实现:
3、第一方面,本发明公开一种soc片上地址覆盖率的统计方法,包括:
4、s1、基于soc使用手册自动化构建树形project模型,所述project模型自上而下层级包含project、module、way、reg和field对象;
5、s2、解析全部测试用例中的地址读写操作,将各地址、寄存器和寄存器位域的访问记录写入所述project模型;
6、s3、基于填充完成的project模型对外提供查询接口,输出soc片上地址覆盖率统计结果,定位未被访问和未完整覆盖的地址区域、寄存器或寄存器位域。
7、进一步的改进在于:
8、所述步骤s1具体包括:
9、s11、搭建第一解析程序,所述第一解析程序支持解析doc格式、docx格式或pdf格式的soc使用手册;
10、s12、第一解析程序通过表头、表格关键字匹配定位手册内地址空间分配表,提取各模块名称、多路实例地址区间和索引信息,实例化module对象与way对象,生成基础project对象;
11、s13、第一解析程序匹配各模块寄存器列表关键字,提取寄存器偏移地址、复位值和访问权限,实例化reg对象并挂载至对应way对象下;
12、s14、第一解析程序匹配寄存器位域列表关键字,提取各寄存器位域起始位、结束位、复位值和访问权限,实例化field对象并挂载至对应reg对象下,得到完整树形project模型;
13、其中,所述way对象配置存储内存区域写入数据的values数组和存储内存读地址的readaddress数组;所述reg对象配置记录读取次数的readcnt属性、记录写入次数的writecnt属性;所述field对象配置存储所有写入数值的writevalues数组。
14、所述project模型的层级包含关系为:project包含若干module对象,每个module包含若干way对象,每个way包含若干reg对象,每个reg包含若干field对象,层级结构与soc使用手册地址定义结构一一对应。
15、步骤s12中,当模块存在多路硬件实例时,提取模块名称中的数字编号赋值至way对象的索引号index属性;对寄存器未占用的地址区间,在对应reg对象中配置保留区属性。
16、所述步骤s2具体包括:
17、s21、搭建第二解析程序,所述第二解析程序将测试用例源码转换为语法树并遍历语法树节点;
18、s22、利用第二解析程序解析单份测试用例,识别语法树内所有读写操作语句,提取目标地址、读写数值并映射写入project模型;
19、s23、循环调用第二解析程序遍历全部测试用例集合,累加所有地址访问记录至同一project模型。
20、步骤s22中识别写操作的方式为:定位语法树中赋值语句左侧为soc片上地址的语句,分为两种地址形式处理:
21、第一种为带寄存器名称的直接寄存器访问语句,通过project树形层级检索匹配对应reg对象,reg对象writecnt自增,并将写入数值拆分填充至对应field对象的writevalues数组;
22、第二种为指针直接地址访问语句,提取物理地址后逐层匹配module、way、reg对象,命中寄存器则执行前述读写计数与数值记录逻辑;未命中寄存器则判定为内存区域,将写入数值存入对应way对象的values数组。
23、步骤s22中识别读操作的锚点包含两类语句:赋值语句右侧出现片上地址、条件判断语句内出现片上地址;针对读操作分两种地址形式处理:
24、第一种为带寄存器名称访问,检索匹配对应reg对象并令readcnt自增;
25、第二种为指针直接地址访问,提取物理地址逐层匹配树形模型,命中寄存器则更新readcnt;未命中则将地址存入对应way对象的readaddress数组。
26、步骤s3查询时,针对任意field对象的writevalues数组,结合该field预设位宽自动遍历数组内全部写入数值,判断是否覆盖该位域数值上限、下限边界值;若数组存在数值但未覆盖边界值,则标记该位域为验证缺项并输出至覆盖率报告,提示补充对应测试用例。
27、所述步骤s3的查询输出内容至少包含以下一项或多项:
28、按模块维度统计寄存器读写覆盖率,校验可读写属性位域是否存在读写记录;
29、内存区域统计:输出全部写入地址、判断是否覆盖存储边界,扩展解析后可统计内存访问位宽;
30、特殊寄存器校验:针对读清零、写清零类寄存器,校验是否存在符合硬件逻辑的完整读写操作序列;
31、异常覆盖项输出:输出readcnt为0的寄存器、writevalues数组为空的位域、无读写记录的内存地址区间,作为验证遗漏项。
32、所述project模型支持导出为json格式持久化存储,作为数据库持续接收新增测试用例的访问记录填充。
33、与现有技术相比,本发明具有以下有益效果:
34、本发明公开了一种soc片上地址覆盖率的统计方法,通过分阶段实现手册自动化建模、测试用例访问行为自动采集、覆盖率数据统一查询输出整套完整流程,能够弥补传统代码覆盖率、功能点验证方案存在的固有缺陷,具备多重显著有益效果。首先,本方案依托soc使用手册标准化信息自动生成层级匹配的project树形模型,无需人工逐行梳理模块、多路实例、寄存器及位域信息,大幅降低大型复杂soc、外购第三方ip场景下的人工建模工作量,规避人工整理地址表带来的错漏风险,建模效率显著提升,同时树形结构与手册地址定义一一对应,便于验证人员直观梳理整个芯片完整地址空间分布,解决大型ip难以人工全量梳理的痛点。其次,本方法通过专用解析程序对测试用例语法树进行遍历,精准识别赋值语句、条件语句中各类寄存器命名访问、裸指针直接地址访问行为,自动统计寄存器读写次数、记录位域写入数值与内存访问地址,全过程自动化采集访问数据,无需人工逐条统计测试用例操作,可快速完成大批量测试用例集的地址访问信息归集,不受ip代码开放程度限制,即便无法获取第三方ip完整源码、难以实现100%代码覆盖率,依然能够完整统计片上所有硬件地址、寄存器、位域的实际访问情况,有效缓解市场项目周期紧张、海量用例编写运行耗时的压力。再者,本方案依托填充完成的project模型提供统一查询接口,可分层级输出模块寄存器读写覆盖率、内存地址覆盖范围、特殊功能寄存器操作合规性、未访问硬件资源及位域边界覆盖缺失项,既能快速定位完全无读写记录的关键地址与寄存器,还能自动校验寄存器位域是否覆盖数值上下边界,精准识别仅部分数值写入、覆盖不完整的验证短板,为验证团队补充针对性测试用例提供明确指引,弥补传统功能点验证依赖工程师经验、易遗漏未知应用场景硬件访问路径的不足,全面提升soc验证完备性,减少流片前地址相关设计缺陷遗留风险,提升一次流片成功率。与此同时,project模型支持json格式持久化存储,可作为通用数据库持续迭代承接新增测试用例的访问记录,工具链可快速复用至不同soc项目,降低多项目重复开发验证统计工具的成本,整体兼顾验证完备性、自动化程度与跨项目复用价值,为soc设计验证提供代码覆盖率、功能点验证之外的独立、可靠补充验证维度。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com