论文部分内容阅读
随着集成电路产业飞速发展,电路设计的复杂度和功能的复杂度在不断地提高,从而导致了验证工作难度大幅提高。处理器作为复杂设计的代表,其功能验证工作是目前整个处理器芯片开发环节中的最大制约因素,如何缩短验证周期、提高验证效率已经成为现阶段研究的热点问题。新的验证方法学(如UVM)因其强大的自动性与重用性特点正发挥着关键作用。 本文主要研究了基于UVM针对8051F内核的功能验证。由于该内核属于微处理器类设计,其工作的正确性体现在指令集的正确执行上。为此,本文首先制定了8051F内核的验证目标,即确保内核指令集执行正确。为实现这一目标,通过对内核具体设计的分析,针对性地提出了三种指令验证场景,包括普通工作场景、流水相关工作场景、中断处理场景。同时将验证目标指标化,分别提出在不同验证场景下的验证内容。综合分析每一种场景下指令验证条件,提出了内核验证的总体方案,即利用UVM搭建功能验证平台进行随机验证过程。 基于验证方案,本文分别针对受约束的随机验证方法和覆盖率驱动的验证方法开展了具体实现工作。约束随机的验证平台是利用两层UVM环境组件搭建完成的。而本文提出的激励产生方式为按指令操作数分类并层次化产生,根据不同验证场景的要求,对相应指令设置不同的约束。覆盖率驱动的验证平台则是基于约束随机的平台结构,添加覆盖率反馈分析组件实现的。利用UVM聚合参数,实现对约束的可操作性,并设计覆盖率反馈算法,修改指令产生策略,实现覆盖率驱动验证的过程。 依据验证内容,本文针对三种不同场景下的功能特性设计了功能覆盖率模型。基于此模型,经过仿真分别得到了两种不同验证过程中的功能覆盖率结果。通过普通指令功能覆盖率结果对比表明,本文实现的两种方法均符合验证技术的理论要求,得到的功能覆盖率变化趋势大体一致。并且,约束随机验证的功能覆盖率最终趋近于80%,而覆盖率驱动验证的功能覆盖率最终趋近于100%。同时,覆盖率驱动验证中功能覆盖率收敛时间只占约束随机验证收敛时间的十分之一左右。