基于VMM验证方法学的USB控制器IP验证方案_第1页
基于VMM验证方法学的USB控制器IP验证方案_第2页
基于VMM验证方法学的USB控制器IP验证方案_第3页
基于VMM验证方法学的USB控制器IP验证方案_第4页
基于VMM验证方法学的USB控制器IP验证方案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 年第期(总第期)信息通信INFORMATION &COMMUNICATIONS()基于VMM 验证方法学的USB 控制器IP 验证方案刘蕊(上海华虹集成电路有限责任公司北京技术分公司,北京100191)摘要:针对USB 控制器IP 的功能及结构特点,并且尽可能更快地完成验证以适应上市的需求,提出了一种基于VMM验证方法学的高效验证方案。建立了一个层次化的、可重用的验证平台。利用VMM 测试激励约束性随机产生的特点,提出了分层解析、分层约束的激励产生方法;利用Synopsys 公司开发的验证IP (VIP ):AHB 总线功能模型和USB 主机模型,快速构建仿真环境,模拟实际数据流的通

2、信过程;充分发挥VIP 的内部“后门”的作用,增强验证平台测试流的可控性。验证结果表明该验证平台能全面验证USB 控制器IP, 且性能稳定、兼容性强;通过模拟实际的工作流程,达到了优化设计、缩短验证周期的目的。此方案的一些设计思想,对系统级平台及其他模块级验证平台设计具有参考意义。关键词:VMM 验证方法学;验证平台;USB ;VIP 中图分类号:TP368文献标识码:A 文章编号:1673-1131(2012)03-0286-030引言VMM 验证方法学是当今验证方法的趋势之一。它提供一种抽象的具有分层结构的验证平台,平台中测试数据约束性随机产生,自动化运行,功能覆盖率可收集。VIP 是Sy

3、nopsys 公司基于VMT 技术开发的验证IP ,用来模拟AMBA 总线、USB 主机等的通信行为,它包含总线的BFM 模型及monitor 模型,可帮助验证工程师快速构建验证环境。本文基于VMM 验证方法学,利用AHB 、USB VIP 构建了USB IP 的验证环境。验证平台功能覆盖全面、复用性强、测试用例编写简单,全面验证USB 传输的各种特性,验证效率高。UTMI 接口与USB 主机互连,接收和发送USB 数据;(2)在逻辑设备层对总线接口与各端点之间的数据路由,并将数据及相关端点信息存入寄存器中,供上一层即功能设备层使用。USB 的功能层则由软件来实现,CPU 通过AHB 总线读写

4、操作端点寄存器及设备寄存器控制USB 设备枚举及功能数据流的通信。2基于VMM 的验证环境2.1VMM 验证环境简介VMM 验证平台是一个层次化验证平台。一般说来,从底至上被分为信号层、命令层、功能层、场景层以及测试层。如图2所示。1USB 设备控制器的结构被测模块(简称DUT 是一款通用的USB2.0设备控制器,具有AHB 总线接口和UTMI 接口。它支持全速、高速传输;除控制端点外,其它的端点数量可配置,且每个端点支持批量、中断、同步三种传输方式;支持DMA 读写控制;支持测试模式;支持挂起和远程唤醒功能。其结构如下图:图2VMM 验证平台结构驱动器(driver )将从命令层收到的事务转

5、化为信号激励输入到DUT ,同时收集DUT 的输出信号。监视器(monitor )用来侦测信号变化,并转化成事务传给检查器。事务处理器(transactor )将场景层定义的抽象的事务转成驱动器能解析的命令。如将一次中断处理分解成读、写寄存器等总线操作。记分板(scoreboard )从事务处理器中接收事务,实现某种算法或做一些处理,然后将结果存入到检查器中。检查器(checker )将从监视器中得到的结果和记分板中的结果做比较,以检验DUT 的功能是否正确。场景层的产生器(generator )用来生成图1被测模块功能结构该USB 控制器模块实现了两层的功能:(1)在信号层通过具有一定关系的

6、随机列序。最上层是测试层,用来定义不同的约束条件,配置各种测试用例。信息通信刘蕊:基于VMM 验证方法学的USB 控制器IP 验证方案速下,控制传输、批量传输、中断传输和同步传输以及DUT 支持的各种内部操作方式。因此,我们创建两个产生器:一个用来产生USB 配置信息,配置DUT 的工作速度、传输类型、内部操作模式等;另一个用来产生USB HOST 发出的传输包:IN 、OUT 、SETUP 、SOF 等。两个产生器又相互约束。Tb_cfg是对配置文件,用来配置VIP 的参数。2.2AHB 、USB VIP 介绍AHB 验证模型(AHB VIP )是一个能够配置AHB 总线系统、数据传输完全符

7、合AMBA2.0AHB 总线协议的模型。在该模型中,存在主机、从机、总线模型三个角色。主机负责发起传输,从机负责响应主机。总线模型则是由仲裁器、多路选择器、解码器等互联组成。用于在系统中连接主机和从机。AHB VIP 具有兼容VMM 平台的接口,它在VMM 平台中起驱动器和监视器的作用。即向下与DUT 通过信号接口相联,驱动总线或响应主机;向上通过通道(channel )与事务处理器相连,接收上层传递的抽象命令,并转换成总线读写命令。AHB VIP 的使用,节省了验证工程师编写AHB BFM 的时间,且VIP 是经过完全验证的可靠的模型,正确性有了保证。USB VIP 是Synopsys 公司

8、的另一个商用模型。它也是可配置的符合USB 协议的验证模型。该模型支持主机、设备两种工作角色,发起或回应USB 总线请求;支持三种工作速度(低速、全速、高速);支持serial/UTMI/ULPI等接口方式;及支持两种时序模式:正常工作模型、仿真工作模式。该VIP 可发送协议层(transaction )、信号层(packet )等不同抽象级别的数据流,还可在数据流中随机注入错误包以模拟错误通信。此外,该VIP 自带多个回调函数(callbacks ),用户可应用这些cal-lback 控制数据流向、收集数据等。USB 是分层协议,它的通信机制较AHB 更复杂,VIP 的使用可以让验证工程师可

9、以放心地构建测试用例,调试验证流程,而不必在通信模型上放更多的精力。另外,VIP 是从VMM 基类中扩展的,它能快速地“融入”到VMM 验证平台中。而且,VIP 有自己的monitor ,可用来监测总线行为;一旦总线出现违反协议的行为,VIP 会报错,这对我们仿真、调试的帮助很大。因此AHB 、USB VIP 的使用缩短了验证周期,提高了验证效率。图3基于VMM 的USB 控制器验证平台3.2双产生器的设计思想在此验证平台,我们设计了两个产生器:usb_cfg_generator用来产生DUT 的配置信息,包括当前DUT 工作的速度、工作模式、传输次数、寄存器设置等,相当于主机和设备在通信之前

10、的约定;usb_tran_generator用来产生USB 传输包,如IN/OUT/SETUP/SOF等,即在当前约定好的配置下,总线上传输的包。工作流程如下:ahb_manager和usb_manager在usb_cfg_generator中取得当前的配置信息后:ahb_manager初始化寄存器,确定DUT 当前工作的速度、DUT 端点的类型,端点的存储空间大小等;usb_manager在此配置的约束下,设置VIP 参数,约束USB 主机工作的速度、发包的类型、传输延迟等。然后两者在usb_tran_generator中分别获取USB 传输包序列,并依次处理各包。usb_tran_gene

11、rator是场景产生器(scenario generator ),生成的传输包序列可以是完全随机的序列也可以是有相互关系的序列。例如,可约束生成一个具有前后顺序的序列:SET_ADDRESS,SET_CONFIGURATION,EP1_OUT, EP2_IN;序列中每个成员的传输类型、速度、包长度要受到配置信息包的约束。在完成一定次数的传输后,两个man-ager 结束当前的传输,系统复位;之后两个manager 再从usb_cfg_generator中获取下一次配置信息,并重新初始寄存器、约束参数,开始下一次的通信。双产生器的设计使验证平台实现了测试激励分层解析、分层约束,充分发挥VMM 约

12、束性随机的特点。验证平台同时支持批量、同步、中断、控制四种传3验证平台的实现3.1基于VMM 的USB 验证平台结构基于VMM 的USB 控制器验证平台如图3所示。从下往上看,被测试模块既是AHB 总线上的从机,也是USB 总线上的设备端。一方面,我们使用AHB VIP master ,通过总线互联与DUT 的AHB 接口相联,另一方面,利用USB VIP 作为USB 主机,与DUT 通过UTMI 接口互联。AHB master 与USB host 都处于命令层,直接驱动信号进出DUT 。为了模拟CPU 操作AHB 总线读写寄存器,我们需要创建ahb_manager。它起到承上启下的作用:接收

13、产生器下传的随机包,解析此包,产生并组织一系列的读写操作,然后将这些操作顺序下传到AHB master VIP 中。为了指挥USB HOST VIP 复位DUT 、总线枚举及发起传输,我们还需要创建usb_manager :它解析上层传递的随机包,将这些抽象的包“翻译”成一系列的传输事务,顺序下发到USB HOST VIP 中。由于被测模块没有算法操作,在验证环境中不需要复杂的记分板,只需比较双方传输的数据是否正确。在本环境,我们在ahb_manager、usb_manger提取传输的数据,并通过call-back 方式传入到记分板中,做自动比较。在场景层,我们需要创建多个场景来测试DUT 在

14、全速/高 信息通信输模式,最大限度的实现了重用,且测试用例编写简单、代码量少。刘蕊:基于VMM 验证方法学的USB 控制器IP 验证方案USB 总线信号,驱动到DUT 接口上。这三者协同合作,充分“扮演”主机的角色。当被测模块被集成到系统中,模块与模块之间的连通、系统与外部的通信仍需要USB 主机这个角色,且测试激励无需变动。因此,我们把这三者封装到次一级的验证环境中,我们称之为subenv 。Subenv 解决了代码重用性的问题,系统级环境和模块级环境可以同时开发,从而减少了验证周期,提高了验证效率。3.3激励的封装与实现协调并操作好VIP ,才能更“逼真”地模拟DUT 通信。当双方mana

15、ger 在usb_cfg_generator获取系统配置信息后,紧接着在usb_tran_generator中获取随机序列,准备通信。如何实现两端的同步,成为两个manager 首要考虑的问题。一般来说,为了使双方manager 同步,我们将产生器中的随机包通过broadcast 方式同时传递到ahb_manager和usb_manager 中,双方都完成各自的处理后,再从产生器中获取下一个随机包,从而实现同步。这个随机包可以是单独的packet ,也可以是某一transaction ,还可以是更高层次的抽象。如果以packet 为单位,manager 的工作效率低下:usb_manger向命

16、令层发送一个包后,需等待产生器产生下一个包;而产生器只有在双方都完成工作后,才产生下一包,这就造成双方发一包,等一段时间,工作效率极低且不符合USB 实际通信。如果以transaction 为单位,虽然解决了包间延时过长的问题,但会存在边界测试未覆盖的情况。例如,一个transaction 最大可以传输1024个字节,双方会在传完此transaction 后等待,以实现同步。传输的字节越多,AHB 总线操作时间越长,这就造成trans-action 与transaction 之间的延时过长,无法覆盖大量数据连续冲击DUT 的功能点。为了解决上述方案存在的缺陷,我们定义更抽象的随机数据包:它是一

17、系列传输的组合,完成某一具体任务。例如,定义某一包为SET_ADDR,它包含SETUP 传输,IN 传输;定义某一包为OUT ,它包含若干对PING 传输和OUT 传输。如图4所示。这种层次化的激励的设计,“逼真”的模拟了实际USB 与AHB 端的通信,解决了数据流连续发送与broadcast 接收方同步等待的矛盾,全面覆盖了传输过程中可能出现的各种情况。3.5VIP callback 应用USB VIP 提供回调函数(callback function )供用户扩展使用。图5所示,在VIP 的IN 、OUT 、Response 通道与VIP 主体连接处分别设有三个回调点:post_trans

18、action_input_chan-nel_get,pre_transaction_output_channel_put和post_transac-tion_response_channel_get。用户可在此处自行添加代码,从而实现某些特定功能的测试。例如,用户在主机发出包后,修改当前传输的参数(如包间延时、总线超时时间等),再发至DUT ,可以测试DUT 延时检查功能是否符合协议;或者主机在发出握手包后,用户在回调点丢掉此包,可导致DUT 接收超时,从而验证DUT 超时处理是否正确。另外,USB VIP 本身支持异常测试,即VIP HOST 会随机产生错误包或错误参数,然后不定时注入到发出的包或传输中。用户可以通过这些回调点,获取错误信息,并针对这些错误包做出处理:如不放入记分板比较,提前中止数据流处理等。这样,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论