文档库 最新最全的文档下载
当前位置:文档库 › VIP(Verification IP)芯片代码检测与功能验证软件V7-唯实兴邦

VIP(Verification IP)芯片代码检测与功能验证软件V7-唯实兴邦

VIP芯片代码检测与功能验证软件

北京唯实兴邦科技有限公司

孟双德: 134********

目录

1. VIP技术的重要性和必要性 (3)

2. VIP验证技术设计方法 (4)

2.1 验证技术 (4)

2.2 VIP多层次抽象建模 (5)

2.2.1. 时间抽象 (5)

2.2.2. 数据抽象 (5)

2.2.3. 功能抽象 (6)

2.3基于VIP的验证过程 (6)

3. AVERY解决方案可以解决的问题 (7)

3.1. 快速搭建高效测试平台 (7)

3.2. 基于模块化的验证环境 (7)

3.3. 基于SOC集成的验证环境 (8)

3.4. PROTOCOL协议的检查 (9)

3.5. 基于规格覆盖率的随机验证 (9)

3.6. 系统架构设计验证,优化设计,缩短周期 (9)

3.7. 解决的具体工程问题 (10)

3.7.1. 高效找出时序仿真中X传播(电路中的亚稳态)的来源 (10)

3.7.2. 对开机\断电\加电时的芯片瞬态响应进行仿真 (10)

4. AVERY解决方案的优势 (10)

4.1. 专业VIP特色解决方案及技术实力强 (10)

4.2. 提供功能覆盖率统计报告和丰富的协议检查,提供协议检查覆盖率 (10)

4.3. 技术更新全球最好 (10)

4.4. 兼容性支持SV、UVM、OVM、VMM所有类型的库 (10)

4.5. 支持几乎所有通用标准,超过25种(见附件) (11)

4.6. 提供验证平台架构和check包和测试套件 (11)

4.7. 提供部分源代码 (11)

5. 产品研发持续更新路线图 (12)

1.VIP技术的重要性和必要性

随着IC技术发展,设计者能在单个芯片上集成整个系统,且越来越多的产品研发采用单晶片片上系统SoC(System on a Chip)的设计方法,随着工艺进步,器件越来越小,功能越来越大,大大降低了昂贵的设计和制造成本,测试却变得更复杂,成本随之增加,测试问题已不容忽视。然而,市场竞争一方面要求不断提高产品可靠性,另一方面要求不断缩短研发、面市周期,传统SoC验证方法已经无法满足现有需求。严重情况下验证人员和设计人员配置比例竟高达3:1,严重滞缓了科研进度。复杂SoC的测试验证已构成对测试经济学的挑战。

SoC采用多引脚封装技术,往往有多个总线接口,以便并行地共享内部资源,从而增加可能并发的操作。同时,这些总线接口的可靠因素也成为系统功能实现、性能稳定、持续可靠的关键。因此,我们急切需要投入精力研究能够检测芯片物理缺陷、代码Bug和功能验证的有效手段。

VIP(Verification IP)代码确认与验证技术是预先验证过的内建验证结构,提供了完整的、灵活的应用机制,可以方便地插入到基于仿真的确认测试中,可以大大提高验证可重用性和验证效率。VIP是一种验证模型和全面的测试环境,帮助设计者和验证者确认其设计功能的正确性。可用于各个层次的仿真验证。通常,VIP 是基于标准协议的,如:AMBA、PCIE、USB、以太网等。VIP中包括很多验证部件IP,这些IP都严格遵循这些标准协议、已经被验证过,通常包括:产生测试平台所必须的基础部件、检查机制以及产生单独协议的程序,这些程序通常是一个BFM(Bus Functional Models)。

VIP可以显著提高SoC设计和验证人员的工作效率,减少创建验证结构和测试平台环境的时间。基于SystemVerilog的VIP使得验证人员可以快捷地创建随机验证场景,也可以用VIP轻松地为所需验证的设计创建直接测试场景和测试序列。这些测试用例可以极大地帮助设计者在设计周期的初期就找出功能性的缺陷,因此能够降低研发风险、缩短验证时间。

VIP融合了多种协议并能够进行SoC验证所需的激励发生、响应创建和总线接口协议检查等功能。通过使用分层的、带约束的随机验证环境,可以节省75%以上的测试平台开发时间。在设计早期即可方便的实现个体测试、多元优先判断方案和多元件相互作用等测试。

2.VIP验证技术设计方法

2.1 验证技术

电路验证技术主要分以下几种: 形式验证、静态时序分析、FPGA原型验证及基于仿真的验证技术。而仿真验证技术又有基于事务的验证技术、覆盖率驱动的验证技术、基于断言的验证技术等。VIP验证技术采用的是基于事务的验证技术。

VIP事务级模型以事务为基本对象来建模和仿真。从硬件角度来看,事务可看成作用在特定接口上的一组包括数据或控制的集合。一个事务具有三个要素:起始时间、终止时间以及所有与这个事务相关的信息。因此,事务能够对信号的时序图进行标识,来表示相关的信号属性和标志错误。

对于基于总线的设计来说,总线上的读写都是事务,对于基于数据包的通信来说,发送数据包和接收数据包都是事务。如下图所示,Mailbox模块提供了CPU 和FPGA的通信机制,和两层AMBA AHB总线相连接。CPU和FPGA通过Mailbox 的中断机制互相通信,并进行数据和命令交互。事实上,Mailbox模块充当了CPU 和FPGA之间的信使。

在使用RTL(Register-transfer level)抽象层次对Mailbox进行建模时,需描述出Mailbox各个接口涉及的信号、Mailbox内部及接口具体信号之间的时序关系。

用事务级对Mailbox建模,可以将Mailbox的具体行为抽象为以下事务:

1)CPU将要发送的数据和命令存到Mailbox中;

2)Mailbox产生中断信号给FPGA;

3)FPGA收到中断信号后,从Mailbox中获取数据和命令;

4)FPGA返回进行相应的任务操作;

5)完毕后FPGA将任务状态(完成、出错、等待、请求等)存到Mailbox中;

6)Mailbox产生中断信号给CPU;

7)CPU收到中断信号后,从Mailbox中读取FPGA任务完成的状态;

8)CPU对FPGA任务完成情况进行判断分析,并产生相应控制信息以及FPGA 后续任务。

采用事务的思想,在进行模块或系统功能验证时,不需要在一开始就去追踪并研究信号的变化来判断设计是否正确,而是研究事务发生的顺序,以及事务与事务之间的前后关系来决定是否和预期的行为相符合。事务级模型提升了验证的层次,把验证人员的注意力从管脚级提升到事务级,有利于提高验证工作效率。

2.2 VIP多层次抽象建模

通常验证模块级设计方法是在RTL级用Verilog或SystemVerilog编写测试用例来验证模块的各种功能属性和性能指标,然后观察或检测相应输出和期望值匹配状况。此方式对规模较小的模块比较方便,且便于找出可预期的设计缺陷,但是对于一些规模较大和通信算法较复杂的模块而言,验证效率和精度就会降低。

VIP技术可以针对系统级、算法级(行为级)、RTL级、门级、晶体管级多个层级从时间、数据以及功能三个方面进行抽象建模和仿真。

2.2.1.时间抽象

时间抽象对应着整个设计状态在仿真器中保持稳定的频率。运行在事件驱动的仿真器(如逻辑仿真器)上的模型使用离散的时间概念,即事件总发生在特定的时间。事件通常引发特定进程的调用,仿真中发生的事件越多,需要被调用的进程就越多,仿真进程就越慢。时间抽象意味着减少设计必须保持稳定的点,从而减少当前必须发生的事件和进程总数。如:一个RTL模型中,每根线网(Net)必须在发生未知更改后保持稳定。在抽象到时钟周期的设计中,信号必须在时钟边沿保持稳定,所有发生在时钟边沿之间的事件都被略去不计。在事务级模型中,设计的状态必须在每个事务末端保持稳定,每个事务则可能消耗数个时钟周期。

2.2.2.数据抽象

数据是部件之间通信的对象。在RTL模型中,数据就是部件之间通过线网传输的单独的比特(Bit)。在事务级模型里,数据通常表现为事务或各种的结构体。以通信设备中的数据包为例,在低层数据包中有起始位、结束位、包头、校错信息、负载大小、负载和冗余负载。在抽象模型中,只有负载和负载大小是必须的信息,数据包中其他部分对于估计性能不是必须的。

2.2.

3.功能抽象

模型的功能指其必须完成的所有事件集。功能抽象意味着简化该事件集或用较简单的事件集进行替换。例如,在运算单元中我们可以用乘法操作替换完整的移位相加的乘法器编码。虽然后者的编码可用于实现,但是对于较高的抽象层次,具体的移位相加算法不是重点。

2.3基于VIP的验证过程

用户根据所需选择VIP测试方案,如下图所示。在选择的测试套件下,测试平台由VIP、记分板、被测试模块构成。具体过程如下:

1)用户调用VIP提供的测试API(Application Program Interface)产生被测模块的输入;

2)输入被DRIVER转换成的时序电路传送给被测模块;

3)这些输入在发送给与被测模块对接的时序驱动DRIVER(由VIP提供)外,同时

也发送给覆盖率监测模块,用来统计当前被测试模块的测试源的覆盖率,覆盖率达到要求时,被测试模块才能通过测试;

4)VIP提供的回调函数可以用来对被测试模块的输出进行分析,包括提供数据给

协议分析器进行协议检查;

5)VIP提供的覆盖率统计功能指出了所做的测试是否足够,但不能告诉我们测试

结果是否正确,于是VIP产生的源映射的理论输出结果将被发送给记分板,同时被测模块的输出结果也将记录到记分板;

6)记分板用来检查DUT的某些属性,可能是规模很小的检查(如一个顺序比较器,

检查进出顺序是否一致),也可能是复杂的检测(如一个大规模复杂SoC检测)。

VIP验证过程当中,涉及到一些辅助报告,如:断言及覆盖率报告、事务跟踪过程记录、符号跟踪过程记录、运行log等。

断言及覆盖率报告,用户在调用VIP提供的测试API或者协议分析器中会定义一些断言,这些断言的结果直观的反应了当前仿真状态,同时,测试源的覆盖率也将直接通过该报告进行显示;

事务跟踪过程记录,该记录来源于事务跟踪器,VIP的验证过程是基于事务模型的,每个源的仿真过程就是一个事务完成过程,事务跟踪记录可以很直观的展现当前仿真事务的状态和阶段;

符号跟踪记录,该记录来源于符号跟踪器,记录了协议中被抽象出来的数据结构节点的变化状态,如8b/10b符号;

运行记录,该记录包含了每一条指令的运行情况。

3.AVERY解决方案可以解决的问题

3.1.快速搭建高效测试平台

编写BFM需花费大量时间,即使设计者编写RTL代码同时验证人员就开始编写Testbench,也很难确保BFM同时顺利完成,而且,数以千行的BFM代码,尚未经过调试,存在潜在缺陷。

相比以往,采用VIP技术,验证环境在代码完成之前就已经搭好,并完成了初步的调试,能够帮助验证人员快速搭建Testbench,大大简化BFM以及BFM Debug的编写流程,缩短研发验证周期。VIP除了提供久经考验的、开放的货架式的BFM,还提供了丰富的、易用的激励函数模型,为定制、构造各种专业类型激励提供了很大方便。

3.2.基于模块化的验证环境

VIP可以针对标准模块进行验证,如下例中Testbench是用来验证自行设计的DFI-PHY模块,在DFI总线侧和JEDEC总线侧都使用了VIP模型。DDR VIP功能完备,支持DDR3、DDR4、LPDDR2、LPDDR3等模型,用以充分验证DFI-PHY设计的正确性;DFI总线则用到了VIP提供的存储控制器模型,主要涉及链路层的协议仿真,链路的驱动利用了AXI总线,在该总线下挂载了IO驱动或者AXI 主端。

DFI-PHY测试套件主要提供了Testcase的测试要点及测试方案,包括测试源、测试监控等环节。可以看出,整个Testbench中的大部分组件都可以直接从VIP中

获取,甚至整个Testbench的集成,都可以从VIP的Example中得到参考,这为验证设计质量和提高测试效率都提供了良好的保障。

3.3.基于SOC集成的验证环境

集成验证首先关注模块互连验证,包括总线互联、中断、DMA连接等,验证过程中需要保证平台相关的代码在整个验证流程中稳定不变,因此集成验证使用VIP都是嵌入在总线的Master和Slave接口上,如下图中的存储控制器和处理器。在集成验证时,业务模块和处理器都使用一个保留顶层接口的空壳(Wrapper),然后将VIP的Master和Slave在这个空壳中例化。

这样使用对验证工作有两个好处:

1、在项目进度上,虽然通常业务模块的代码不会在SoC集成验证之前就完成,但根据规格,一个包括接口信息的顶层是能够得到的,有了这个顶层模块,那么集成验证就可以超前完成;

2、集成验证还关注的一些数据流相关的场景可以在验证中进行模拟,模拟的结果对业务模块的设计优化具有很好的参考价值。

3.4.PROTOCOL协议的检查

VIP Monitor可以检测验证传输是否满足总线规范,当仿真中的时序不满足总线规范时,Monitor会输出错误信息,从使用者的角度来看,此时的Monitor相当于一个基于总线协议的AIP(Assertion IP),使用者只需将Monitor设置好,然后再构造具有足够覆盖率的测试向量来进行测试即可。此外,对Monitor检查的每一个协议特性,都经过大量实践,为业界公认。因此,通过Monitor检查,可以使自主设计IP模块的总线协议的兼容性得到验证。

3.5.基于规格覆盖率的随机验证

随机验证需要大量、繁复的激励对DUT进行反复测试,来确保所有边界条件被覆盖,并补充固定TC中可能漏掉的细节上的功能特性。但是在SoC随机验证中很难保证其测试向量确实地覆盖了所有希望覆盖的范围。

AVERY采用规格覆盖率的方法,是指基于激励的、在总线上的传输类型及其Cross的统计结果,加入了基于约束的激励,同时也引入了反馈技术来确保测试的充分性。相对于业界的功能覆盖率,主要是Coverage Group部分的内容,即使用Monitor的传输统计功能,以VIP中已封装好的函数为主,以VMT中的函数为辅,来完成完整的总线协议规格覆盖。

3.6.系统架构设计验证,优化设计,缩短周期

系统架构设计时,通常会基于经验或者SystemC的TLM模型仿真结果对系统的各个部分权衡考虑,如:CPU、内存、总线层次的选型和计算,以提供足够的带宽等。此方法有其可行性及确定和优化系统结构的指导意义。

但是,这种计算或者仿真都是在比较高的系统层次进行的,没有涉及到总线上的具体时序,对比总线上的实际情况,如Arbiter的仲裁、DDR争夺时的效率等还存在一定的差异。

VIP具有高效仿真速度,使用Master的可约束随机激励,能很方便地模拟业务模块,以及CPU数据流。在集成验证期间,业务流的传输特性已经明确,软件基本完成,其大致需要的MIPS通过仿真器也可以获得,此时在系统上进行基于时钟周期精度仿真很接近实际情况。通过仿真,不仅能够确定系统性能是否满足应用需求,还能根据仿真结果微调优化系统架构,使系统达到最佳效果。

在业务仿真中,需要收集的数据包括:Master因为Arbiter仲裁造成的Delay;Master因为Crossbar冲突造成的Delay;Slave响应慢造成的Delay等(VIP Monitor

通过设置可以监测Slave响应快慢造成的Delay)。业务仿真主要关心这些数据的峰值以及在某些时间段的较大值,判定业务的QoS是否能够满足要求,以及处理器的实际MIPS是否能够达到软件的需求。根据分析的结果,会尽量将冲突比较多的接口,例如DDR的数据流尽量按时隙调整为乒乓球结构;对某些QoS要求比较高的数据流,尽量使用Lock传输模式;对某些仲裁延迟较大的业务可以适当调整Arbiter的优先级或延迟水线。

VIP的这种业务流模拟仿真,确实能够保证架构设计的正确性,减小后续验证工作的难度,达到了优化设计、缩短验证周期的目的。

3.7.解决的具体工程问题

3.7.1.高效找出时序仿真中X传播(电路中的亚稳态)的来源

3.7.2.对开机\断电\加电时的芯片瞬态响应进行仿真

4.AVERY解决方案的优势

4.1.专业VIP特色解决方案及技术实力强

AVERY公司于1998年创立,技术创始人黄奇莱博士是Verilog语言发明人之一,作为国际各种协议标准管理组织的主要成员,AVERY的VIP产品已有15年的持续改进和工程应用,是全球该领域唯一的自主研发技术公司,拥有客户量达75家之多,也是Intel片上PCIE验证最重要的提供商。AVERY源于Synopsis技术并在其基础上发展了自己的特色,是全球第一家基于SYSTEMVERILOG兼容UVM 的验证技术,Synopsis在2012年才开始完善此技术。

4.2.提供功能覆盖率统计报告和丰富的协议检查,提供协议检查覆盖率

4.3.技术更新全球最好

AVERY不断跟进标准的演进,除了市场已有的协议测试IP外,对于尚未广泛应用的新标准也已完成VIP模型开发工作,如:10Gbps USB3.0 v0.7、PCIE4.0等。

4.4.兼容性支持SV、UVM、OVM、VMM所有类型的库

采取兼容基于VMM架构(ARM和Synopsys)和OVM架构(Mentor和Candence)的UVM 架构,全部采用SYSTEMVERILOG或者VERILOG完成。

4.5.支持几乎所有通用标准,超过25种(见附件)

4.6.提供验证平台架构和check包和测试套件

与其他付费VIP或者开源VIP不同,AVERY为每一个VIP提供了全面的检测要点和检测方案,为用户更快、更全的覆盖检测、产品迅速可靠上市提供帮助。

4.7.提供部分源代码

AVERY还开源了testsuite全部产品源码、System Verilog BFM部分源码、PCIe 全部开放源码(Verilog),用户可在其基础上灵活添加或修改等个性化设置。提供完整的compliance testsuite。

4.8.软件界面展示

5.产品研发持续更新路线图

相关文档
相关文档 最新文档