当前位置:首页 > 工作计划 > 一种IP核AMBA总线兼容性验证的通用方法研究:汽车can总线工作原理
 

一种IP核AMBA总线兼容性验证的通用方法研究:汽车can总线工作原理

发布时间:2019-02-16 04:44:31 影响了:

  摘要:目前市场上使用AMBA总线接口的IP核已经占到70%,IP核AMBA总线接口的验证在SoC集成和IP复用过程中尤为关键。本文介绍了一种IP核AMBA总线兼容性验证的通用方法,该方法运用SystemVerilog语言、AVM验证方法学以及验证IP搭建基于覆盖率驱动的通用验证平台,并运用该平台对一种oc8051 IP核的AHB master接口进行了全面验证。结果证明该方法灵活、高效、具有普适性。
  关键词:AMBA;IP复用;SystemVerilog语言;AVM验证方法学;覆盖率驱动
  
  1引言
  
   随着超大规模集成电路工艺技术向90 nm、65 nm、45 nm的进步,SoC设计复杂度的大幅提升,IP核复用也已成为实现SoC设计的主要途径。目前,85%的IC设计公司在进行SoC设计的过程中,都会采用IP复用为主的预定模块。
   在基于IP核复用的SoC设计中,保证IP接口与片上通讯协议的兼容性是SoC设计重用方法学解决SoC集成难题的有效手段,因此,片上总线的设计和验证变得尤为关键。目前业内存在多种片上总线标准,主要有:OCP、AMBA、CoreConnect、Wishbone等。其中AMBA片上总线已经成为SoC构建和IP库开发的主要标准,目前市场上大约70%的可复用数字IP核使用AMBA片上总线。研究IP核AMBA总线接口验证的通用方法,对于SoC设计具有相当重要的意义。
   本文将主要介绍运用SystemVerilog语言、Mentor公司Questa前端仿真工具以及AVM验证方法学搭建通用的AMBA总线接口通用验证平台,并以一种oc8051 IP核为例展示具体验证过程。
  
  2 AMBA协议特点及通用验证平台搭建
  
   2.1 AMBA总线协议特点
   AMBA片上总线构架包括高性能的系统总线――AHB与低功耗的外设总线――APB。系统总线是负责连接诸如ARM之类嵌入式CPU、DMA、片上高速存储器、高速接口,以及重要的协处理器、视音频编解码等高速IP核,而外设总线则是用来连接系统周边元件和低速IP核,APB协议相对AHB来讲较为简单,通过桥连接AHB。下图是AMBA总线系统结构的SoC框架:
   其中AHB总线具有以下特点:
   单时钟沿同步触发,支持8~1024 bit传输;
  
   非三态总线,同一时刻只有一个主设备占用总线并发起数据传输;
   支持多个主/从设备,单周期内完成主设备总线控制权的交接;
   流水线操作,支持数据突发传输(Burst transfer)和数据分割传输(Split transaction);
   支持总线仲裁、总线请求、总线授予和总线锁定等握手机制;
   支持非定长传输、分段传输和背靠背传输。
   可以说AMBA 2.0协议既有简单可行的外设总线(APB),又有功能复杂、吞吐率高的系统总线(AHB)。AMBA总线的复杂多样给IP核AMBA总线接口的全面验证带来了巨大的挑战。
  
   2.2 IP核AMBA总线兼容性通用验证平台的建立
   AMBA总线接口协议虽然功能复杂,但是比较容易形式化,适合定义覆盖率模型,进行功能覆盖率分析。功能覆盖率分析就是首先找出覆盖率模型中还未被覆盖的区域,然后找出下一步需要针对的功能验证需求的过程。本文主要采用的方法是:通过功能覆盖率分析,找出未覆盖的功能项,并添加定向的测试激励,不断迭代验证,最终使有效功能项全部覆盖。
   AMBA总线的协议特点非常适合使用第三方工具和验证IP建立完备的协议检查机制,同时在约束的条件范围内进行随机测试,验证各种边界条件、顺序关系,最终使功能覆盖率达到预定目标。
   本文所述通用验证平台使用Questa仿真工具和SystemVerilog语言搭载AVM验证方法学构建。SystemVerilog语言是一种硬件描述和验证的高级语言,可以作为RTL设计语言,也可以作为验证语言。它不但与Verilog有很好的同源性,能够做到与RTL设计无缝连接,而且具有抽象级别高的特点,在事务级建立抽象层完全解决了Verilog在验证中时序复杂、高耗时、代码效率低等缺点。
   同时我们还运用Mentor公司QVL库(QuestaVerification Library)作为第三方验证IP,提供必要的AMBA总线协议参考集合的功能覆盖率模型并监控验证过程中出现的AMBA总线接口协议违反情况。
   验证平台的框架结构如图2,主要功能模块介绍如下:
   AMBA Infrastructure和AHB2APB模块是前期开发的RTL代码,用于完全模拟AMBA总线的底层基础构架。它采用3级流水设计,并完全支持AMBA 2.0协议的总线握手机制和各种传输模式。在平台搭建前期必须对该部分进行了周密的设计与全面的验证,以保证总线功能的可靠性。
   在AMBA Infrastructure的周边可以挂载带有AHB master、AHB slave和APB slave接口的各种IP核,以便对待测IP(DUT)进行各种必需的AMBA总线接口兼容性验证。
   待测IP(DUT)允许带有AMBA总线各种类型(AHB master/AHB slave/APB slave)的接口,针对不同接口类型,绑定不同的QVL验证IP,以便在验证过程中对其时序进行检查。
   Controller模块收集各QVL验证IP的时序检查和覆盖率信息并在高抽象层智能化的激发未覆盖功能项的敏感因子,再通过Stimulus发送带约束的随机测试程序。
   Driver负责将高抽象层的测试程序翻译为符合协议要求的具体RTL接口激励向量并发送给DUT。
   Checker模块使用SystemVerilog语言编写,提供DUT进行总线传输的数据一致性检查机制,并在数据未正常传输时准确报告错误数据的各种信息以方便定位错误。
   本平台运用SystemVerilog语言,以及AVM验证方法学所提供的验证组件和层次化打包、互联方式将各模块互联为一体化的协调验证环境。
  
  3 一种oc8051的AHB master
  接口兼容性验证实例
  
   3.1 oc8051 AHB master接口验证平台
   通用验证平台构架形成之后,我们选择一种oc8051的IP核作为待测IP(DUT)。它具有AMBA AHB master接口,是总线操作的发起者。可以根据相关指令操作和相关寄存器的控制位完成总线的控制以及选择数据传输的种类。通用平台中AMBA Infrastructure除挂载oc8051外,还挂载了Default master、DMA控制器两个AHB master。同时在AHB slave端还挂载了片上存储器以便oc8051存取各种数据,具体定制化如图3。
  
   该oc8051通过AHB master接口完成对Memory(AHB slave)内各种数据的搬移和存取的操作。在QVL覆盖率模型里AHB master共有25个功能覆盖项,其中15项是oc8051所支持的。不支持的覆盖项预先筛选出来,这样有效地减少了验证的复杂度,使验证更具针对性。具体验证检查项如表1。
  
   3.2 Checker的工作原理
   平台中,我们用SystemVerilog语言设计了一个数据检查器(Checker),它的原理为:Stimulus产生一个write事务型序列(write(address, data)),该序列同时进行自我拷贝(拷贝序列),原序列将Driver解释为适合总线协议的激励信号,通过AHB master写出,经过总线的地址译码后存储到片上存储器的相应地址,而拷贝序列则在Checker中自动存储;当Stimulus在同一地址发出相同批次的一个read事务型序列(read(address))后,Checker自动将原先拷贝序列与从总线读入的read序列中的数据进行比对,比对结果将以报告的形式表达出来。如图4所示。
  
   Checker的高级语言抽象特性解放了原本基于时序特征的数据读写操作。使得数据的一致性检查无需依赖于时序,而是在更高抽象层次的事务层完成。
   3.3验证过程概述
  在进行具体验证之前,需要制作验证计划,其中有必要重点考虑AMBAAHB master验证中容易忽视的边界条件,例如:
  master授予总线后,必须进行数据传输;
  在slave插入等待状态时,master应该保持地址和控制信号(htrans、hwrite、hsize、hburst和hprot)不变;
  
  master的传输类型为busy时,地址和控制信号应该反应为与其burst传输相关的下一个传输;
  一个SEQUENTIAL类型的传输的当前地址与前一地址必须相关;
  master在收到一个ERROR/RETRY/SPLIT响应后,应立即进入IDLE状态;
  Hreset后,AHB所有信号不能为X或Z;
  Early brust temination的重建检查。
  上述Cornercases都已经反映在QVL覆盖率模型的断言检查里,可以根据添加的边界测试进行具体时序检查。通过QVL得到的各种覆盖率分析和断言检查来调整Stimulus发出各种操作组合,以此最大程度地提高功能覆盖率。
  在验证初期首先完成oc8051 AHB master总线抢断的功能。为此,验证平台中特意加入了Default mater和DMA控制器两个AHB master,它们占用总线的优先级顺序由高到低依次为DMA控制器、oc8051、Default master。这样可以依次测试oc8051抢断Default mater的总线控制权,DMA控制器抢断oc8051的总线控制权,并且检查在抢断过程中时序和功能的正确性。
  在进行oc8051 AMBA总线兼容性基本功能验证的基础上,还进行了随机化激励产生及测试。在具体验证目标的覆盖率模型和验证策略的指导下,需要根据QVL产生的覆盖率报告,调整激励产生代码,运用SystemVerilog语言带约束条件的随机化数据产生机制,添加定向约束化的随机数据。通过不断调整验证方向,迭代使用带约束的随机测试,有效地增强了未覆盖空间的测试,迅速向预定目标的覆盖率目标逼近。
  时序检验的同时,Stimulus迭代进行不同传输类型的各种数据检查,通过Checker,检查在传输过程中数据的一致性。
   3.4 验证结果
  通过oc8051在AMBA总线兼容性通用验证平台,运用覆盖率驱动带约束的随机化验证方法,短期内完成了oc8051AHB master的接口验证工作。整个验证使用了5000多个带约束的随机测试,共发现oc8051 AHB master隐藏的错误11处。形成了完整的覆盖率报告,除去oc8051 AHB master对协议不支持的部分,最终总的有效覆盖率达到100%,而且通过数据检查器有效地保障了验证中数据传输的正确性。
  
  4结束语
  
  随着SoC规模的不断增大,IP复用成为SoC设计中必不可少的部分。AMBA总线已经成为IP核接口互连的事实标准。在SoC集成过程中对IP核AMBA总线接口的兼容性验证尤为重要。本文介绍的一种IP核AMBA总线接口兼容性验证的通用方法普适性好,较好地解决了这一难题。笔者运用此平台对一种oc8051的AHB master接口进行验证后,又分别对UART(APB slave)和MPEG2(AHB slave & AHB master)进行了AMBA总线接口的兼容性验证。可以说,运用此通用验证平台都可以在较短时间内,较全面地完成总线接口的验证任务。
  
  参考文献
  [1] EATING M, BRICAUD P. Reuse methodology manual for system-on-a-chip design [M] . 3rd ed. New York: Kluwer Academic Publisher,2002: 247- 249 , 219- 220.
  [2] NURMI J, TENHUNEN H, ISOAHO J, et al. Interconnect-centric design for advanced SOC and NOC [M] . Boston: Kluwer Academic Publishers, 2004: 212 -216 .
  [3] OCP-IP Group. Open core protocol specification( r2. 1) [EB/OL] .(2007- 06 -03) . http: / /www. ocpip. org /home /.
  [4]ARM ltd. AMBAspecification: rev 2.0[R].1999.
  [5]Janick Bergeron, Eduard Cerny, Alan Hunter, Andrew Nightingale. Verification MethodologyManual for SystemVerilog [M]. Springers2006 Synopsys, Inc and ARM Limited,2006: 265-266.

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3