论文部分内容阅读
随着半导体工艺水平的不断进步,数字电路规模不断扩大,片上系统的功能日益多样化,为了设计出符合用户需求的芯片,节约成本,要求芯片开发者需要在短时间内成功流片并使芯片成功上市。流片成功的关键之一,是对数字电路设计的完备的功能验证。而芯片日益缩短的迭代周期和系统日益复杂的功能,使芯片验证面临着更大的挑战。为了保证验证的高效性、完备性和复用性,验证所用的语言和EDA工具不断发展。目前,SystemVerilog已成为主流验证语言,而基于SystemVerilog语言的UVM方法学,为验证提供了一套成熟的框架结构,极大地增加了复用性,代表了验证方法学的发展方向。PCIe是一种高性能高带宽的通用的I/O互连总线,是当前SOC中常用的局部总线之一,其继承于PCI总线,并扩展了一系列新功能,如端到端的连接方式,基于报文的数据传送方式,虚通路和流量控制等。本文的研究对象是本人在实习单位参与开发的一款可定制化PCIe总线接口IP。该IP负责CPU与多种系统设备之间的数据传输,并管理众多的系统设备,如USB、SATA和外部显卡等,设计难度较大,需要复用于公司的众多项目。序,即数据传送的顺序(ordering),是保证系统数据完整性的关键,也是防止系统死锁的有效方法。在计算机系统中,许多软件程序都要求计算机按照特定的顺序完成特定的事件。如果软件程序的指令在硬件电路中无法按照预期的顺序执行,则程序会发生很多未知的错误。PCIe规范中定义数据传送顺序规则就是为了在不影响设备操作程序的前提下重新排列某些事件,达到优化系统性能的目的,同时严格执行影响操作的事件顺序。合理的安排数据访问的序,对于总线设计尤其是总线接口设计至关重要,也是验证人员在验证过程中需要重点考虑的问题。本课题使用基于UVM的验证方法,对总线接口的数据传送顺序进行完备的验证。本课题中本人的工作主要有:熟悉IP的设计规范和系统结构,详细了解DMA和HOST两条数据通路上各子模块的功能,重点关注它们之间的数据传送顺序关系;基于UVM方法学,参与搭建针对该IP所有功能的验证平台,其中主要负责Interface UVC的创建和连接和在Module UVC中添加用于预测和比对ordering功能正确性的组件;负责数据传送顺序功能的验证,根据PCIe数据传送顺序规则制定完整的验证计划,验证计划中提出所有功能验证点和具体的验证方法;根据验证计划编写测试用例,不同的测试用例分别用于验证该功能的不同方面;使用VCS工具进行多次仿真,仿真成功后,收集覆盖率结果;多次重复仿真后,统计结果,成功达到100%的功能覆盖率和代码覆盖率的验证目标,完成验证。本课题充分利用了SystemVerilog语言与UVM方法学的特点,保证验证平台与测试用例的可配置性和可重用性,使其经过较小的改动或配置不同的参数便可复用于不同的项目之中,便于后期人员维护,缩短验证周期,保证验证完备性的同时提高在今后项目中的验证效率。本文也为针对PCIe等总线协议中“序”功能的验证提供了一种可行的完善的验证方法,可供业界参考。