论文部分内容阅读
随着应用环境越来越复杂,对成本和性能的要求越来越高,包括一个或多个处理器系统(处理器及其外设)、多级互连总线、存储器和高速接口等模块的SoC设计已经成为IC设计的趋势。随着设计复杂度的迅速提高和集成电路制造工艺的快速发展,SoC验证工作量的增长速度远远超过了设计复杂度的增长,功能验证成为SoC设计流程的主要瓶颈。因此,如何提高验证效率,更快的达到更高的验证质量是SoC验证工作面临的一项巨大挑战。
本文对功能验证各阶段遇到的一系列关键问题进行了深入研究,建立起一套针对“聚芯”SoC的层次化验证方法。并在验证方案制定、系统级模拟仿真、多抽象等级协同仿真、模块级验证平台构建、激励自动生成、覆盖模型建模和分析等方向提出一系列方法和创新,主要工作和创新点如下:
1.深入研究了代码行覆盖情况和功能覆盖率的内在联系,首次提出了通过分析代码行覆盖情况,指导功能覆盖率提高的激励生成方法。使用该方法可以使全随机激励生成的功能覆盖率的收敛速度提高10倍以上,约束随机激励生成的功能覆盖率的收敛速度提高20倍以上。
2.在对输入序列的控制流覆盖路径与输入序列验证能力之间关系的深入分析基础上,建立了一种新的控制流覆盖强度(CFCS)模型。通过此模型得到输入序列的各控制流覆盖点的覆盖强度,CFCS可以量化评估独立输入序列的验证能力,对指导激励生成和创建回归测试集有重要意义。
3.针对“聚芯”SoC多总线、多IP,设计复杂的特点,提出了一整套从模块级到系统级的验证方案。可以有效地利用现有资源,确保验证质量,提高验证效率,使芯片验证周期保持在可接受时间范围内。
4.针对“聚芯”SoC多总线互连架构的特点,实现了基于事务的“聚芯”SoC模块级验证平台。该平台的大部分验证代码可以复用在同一总线的各个模块上。
5.为解决SoC验证过程中遇到的多抽象等级模块的协同仿真问题,提出了一种基于总线接口信号同步的可行方法,实现了事务级模块和RTL模块的协同仿真验证。
6.在对“聚芯”SoC由于资源共享引起的并发冲突研究基础上,提出了基于时间片轮转的并行冲突场景模拟生成机制,通过对SoC片内各模块并行工作的模拟,提高了系统级边角情况的验证效率。
以上各种验证方法和技术均在“聚芯”系列SoC芯片验证中得到应用,有效地缩短了验证周期,提高了验证质量和验证进程的可控性。本文的创新和结论基于“聚芯”SoC的设计验证,但研究方法和成果同样适用于其他SoC片上系统的设计验证。