UVM的JTAG控制器模块验证

2021-11-05 07:47湘潭大学廖少华黄嵩人
电子世界 2021年17期
关键词:方法学旁路时序

湘潭大学 廖少华 黄嵩人

本文提出了一种基于IEEE1149.1标准的JTAG控制器模块的验证平台,该平台使用UVM(Universal Verification Methodology)验证方法学。设计了受约束的随机激励和定向激励使得验证更加完备。验证结果表明,已覆盖所有测试点,达到验证目的。

随着技术的发展,小小的芯片容纳了大量的门电路,同时验证的要求也越来越高,UVM验证方法学便是在这样的背景下,成为了现今主流的验证方法学。为了提高内部电路测试的效率,1990年电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)制定了IEEE1149.1标准,得到了广泛的应用。本文将采用UVM验证方法学对JTAG控制器模块进行完备的验证。

1 UVM验证平台介绍

UVM即通用验证方法学。它包含了随机测试激励的生成、受约束的随机测试的构建、拥有面向对象的语言特性、提供了与其他语言编写程序的接口。验证工程师可以灵活地利用它提供的各种机制,来提高自己验证工作的效率。

典型的UVM验证平台框架图如图1所示。

图1 典型的UVM验证平台框架图

验证平台的组件介绍如下:

driver:driver作为一个驱动器,用于从sequencer中获取transaction,进而通过接口将transaction转化为对DUT的时序激励。

monitor:monitor作为一个收集器,与driver的作用相反,通过接口将DUT的响应收集起来,送给下一模块,完成数据的采集。

sequencer:sequencer与sequence协同工作,sequence需要挂载在sequencer上才能正常工作。sequencer产生transaction,而driver从sequence中获取产生的transaction。

agent:将driver、monitor、sequencer打包,作为一个标准的验证环境单位。每一个agent代表的都是一种数据协议,包含了时序关系。

reference model:reference model用于完成与DUT一样的功能,是待测设计的理想化输出,它将接受与DUT一样的激励,其结果将被传输到scoreboard进行比较。

scoreboard:scoreboard是验证平台的记分板,其中进行待测设计的响应与reference model响应的比较,目的是为了对比标准输出与实际输出是否一致。

env:env是一个结构化的模块,为了考虑环境复用而存在的。其中可能包含多个agent与component,可以被更高层的env所容纳,是结构化与可复用性的一大体现。

test:test是验证环境建立的唯一入口,通过他可以运行UVM的phase机制,除此之外,uvm_report的参数设置也在此模块内。

2 JTAG控制器模块介绍

JTAG控制器可以分为三个部分,分别是:测试存取通道TAP(test access port)、TAP控制器、一组边界扫描寄存器、指令寄存器和数据寄存器。如图2所示。

图2 JTAG控制器结构框图

测试存取通道TAP是由4个或5个(1个可选的复位信号)端口来进行信号的输入输出。他们分别为:TCLK、TMS、TDI、TDO、TRST。其中TRST(测试复位)是一个可选引脚,使用他的话可以将测试硬件复位至非侵入模式。

JTAG控制器模块中,TAP控制器实现了不同状态的控制与数据、指令的读取输出。TAP控制器是一个具有16个状态的同步状态机,使用TCLK为时钟输入,TMS为控制输入,通过发出控制信号来操作指令寄存器和各种数据寄存器。

在IEEE1149.1标准中,指令可以分为公共指令与专用指令两种。其中包含了5个强制指令与2个可选指令。它们分别是旁路指令、采样指令、预加载指令、外测试指令、内测试指令、高阻指令、器件标识指令。

以旁路指令为例,为了实现旁路功能,首先tap控制器在TMS的控制下进入CAPTURE_IR状态,将旁路指令装载,然后进入SHIFT_DR状态,此时旁路指令代码通过TDI端口依次进入并被移位更新在指令寄存器中。随着状态机进入SHIFT_DR环节,在此状态下,TDO的输出与TDI的输入一致,内核逻辑被旁路。

3 搭建基于UVM的JTAG控制器模块验证平台

设计包含top层、base_test层与agent层三大层次。

Top是整个验证平台的顶层,其中例化了DUT、interface与base_test,并且将DUT通过端口与interface进行连接。在top层中通过config_db语句来在不同组件之间传递参数。

Base_test内包含了sequence_lib与env,其中,sequence_lib中例化了不同的测试用例,各测试用例是基于base_test进行扩展,从而实现不同功能点的覆盖。而env中则包含了覆盖率收集模块coverage group、参考模型reference model、对比模块scoreboard以及输入agent、输出agent。

Agent模块中,一般封装了sequencer、driver和monitor。但输出agent中不需要driver与sequencer,仅仅例化了一个monitor用于监控输出。

运行流程:

进行仿真时,sequencer将sequence产生的transaction级数据包发送给driver,driver则根据时序的控制,将数据包通过interface传输给dut,同时monitor会将激励数据复制一份传输给reference model,out_agent的minitor则会监控dut的响应,将响应结果传输给scoreboard,scoreboard内会将reference model的输出与minitor监测到的响应进行比较,最后通过UVM_INFO机制打印出对比信息,得出仿真结果。同时coverage group模块会对覆盖率进行收集,得出覆盖率报告。以上就是整个UVM验证中的数据流动过程。

4 验证结果分析

本次测试使用Mentor的questasim软件进行仿真验证。通过受约束的随机激励,结合时序波形信息可以看出,TAP控制器遍历了所有的状态,并且TDO的输出也与相应指令对应,输出结果符合预期。时序仿真波形图如图3所示。

图3 时序仿真波形图

UVM作为时下最流行的验证方法学,虽然前期时间搭建平台,但是能为后期的验证提高极大的效率,缩短了验证时间。本文利用了UVM验证方法学,对JTAG控制器模块进行了充分的验证,为项目研发进度节约了大量的时间,并且该验证平台架构还可以移植到其他项目之中,在实际项目开发中具有很高的应用价值。

猜你喜欢
方法学旁路时序
大型学术著作《药理研究方法学》出版发行
基于Sentinel-2时序NDVI的麦冬识别研究
旁路放风效果理论计算
基于FPGA 的时序信号光纤传输系统
药品微生物限度检查方法学验证的研究进展
急诊不停跳冠状动脉旁路移植术在冠心病介入失败后的应用
一种毫米波放大器时序直流电源的设计
追踪方法学在院前急救护理安全管理中的应用
体外膜肺氧合在老年患者冠状动脉旁路移植术后的应用研究
人降钙素原定量检测方法学评价