● 摘要
片上系统的复杂性使得用传统的验证方法来构建验证平台变得非常困难。传统的RTL级仿真手段在验证复杂SOC系统将会慢得令人无法忍受。为了加快仿真速度,必须用更高抽象层次的模型;完整的SOC验证系统不光要保证硬件的正确性,还要保证嵌入其中的软件的正确;而且验证环境必须能够很好地自动发现仿真过程中所出现的错误,并且能够提供有意义的诊断信息。本论文结合我的硕士课题工作(基于Xtensa 6处理器的百万门级手机基带SOC芯片的验证),讨论了如何去验证百万门级的集成电路。根据SOC系统特点,将验证流程分为三个大部分:单个模块的验证、系统连接及子模块通信的验证、全系统级的验证,并针对每个验证步骤的特点,采取最合适的方法。首先通过模块划分,将各个模块验证完全后再进行下一步的验证。重点探讨了系统连接及子模块通信层次的验证。在此级别上,采用了SystemVerilog和基于SystemVerilog的验证方法学去构建高抽象层的验证平台,开发用于代替Xtensa6的处理器行为级模型以及相应的指令集。在全系统验证时,片上系统软件的验证是很重要的一部分。由于将RTL级的Xtensa6加入到待测模块中,此时的仿真速度将会非常的慢,因而此时应该利用FPGA平台进行协同仿真。在整个验证的过程中,为了提高验证效率,采用了随机激励、断言等手段。结合代码覆盖率和功能覆盖率来衡量验证的完备性,保证了最终芯片的成功。