基于UVM验证方法学的SWP接口模块验证方法

2020-01-16 05:56郝燚冯文楠冯曦胡毅唐晓柯
电子技术与软件工程 2019年21期
关键词:全双工方法学组件

文/郝燚 冯文楠 冯曦 胡毅 唐晓柯

1 引言

集成电路是现代信息社会的基石,发明自20世纪50年代,经过几十年的快速发展,目前最先进的集成电路工艺达到了7nm制程。电路的复杂度和集成度已经进入到巨大规模集成电路阶段,这对相关的设计和验证工作都是巨大的挑战。为了应对挑战,业界提出了SystemVerilog语言,并以SystemVerilog语言为基础构建了新的验证方法学UVM。开发者可以基于UVM快速和高效地验证复杂的设计。

SWP接口是应用于eNFC移动支付方案中SIM卡芯片的新接口。欧洲电信联盟(ETSI)已经制定了SWP接口的相关标准,其支持全双工通信模式,通过电压、电流的调制分别表示两个方向的信息,接口传输速率最快可达到1.69Mhz。

本文将以SWP接口模块为仿真验证对象,基于UVM验证方法学搭建模块验证环境,利用随机激励等先进方法对SWP接口模块进行验证。本方法不仅适应于SWP接口模块,更可以重用到其他接口类模块的验证工作中。

2 通用验证方法学

通用验证方法学(Universal Verification Methodology,UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。UVM继承自OVM(Open Verification Methodology) 和VMM(Verification Methodology Manual),吸 收了两者的优点,其正式版本在2011年2月由Accellera推出,得到了Synopsys、Mentor、Cadence三大EDA公司的支持,目前已经广泛应用于各个设计公司的芯片验证中。目前,UVM标准已经制定到UVM1.2,并在2017年被IEEE宣布为正式标准,即IEEE1800.2。

UVM 中所有的类有一个共同的基类uvm_void。它没有数据成员,也没有成员函数。由uvm_void类扩展得到了两个子类,分别为uvm_object类和uvm_port_base类。其中uvm_object类是 UVM中所有的实体的基类。uvm_port_base是 UVM 中各种通信端口的基类。基于核心基类扩展出整个UVM库类,提供了phase机制、工厂机制、config机制、消息机制。验证环境组件由核心分支uvm_component类扩展实现。

在UVM库类的基础上我们很容易快速实现组件的创建和访问,创建环境,连接和运行组件,生成激励并传递、控制,生成报告,打印有效信息。

3 SWP接口

传统SIM卡芯片只有7816接口,为实现移动支付,eNFC方案在SIM卡和手机间定义了SWP接口,使电信运营商通过SIM卡即可以控制手机端移动支付交易。目前,ETSI欧洲电信联盟已经制定了TS 102 613协议标准,定义了SWP和外部非接触式射频前端CLF通信的多层协议体系。

使用13.56Mhz频段的eNFC方案基于两颗芯片:非接触式前端芯片(CLF)和智能卡芯片(UICC)。CLF芯片集成在手机主板上,UICC芯片上通过增加新的接口与CLF芯片进行通信,这个接口就是SWP接口。

3.1 SWP接口协议

SWP(Single Wire Protocol)是基于SIM卡C6 引脚的单线连接方案。SWP接口界面包括三根线:VCC(C1)、GND(C5)、SWP(C6)。VCC和GND与7816接口共用,所以仅在一根信号线SWP上基于电压和负载调制原理实现全双工通讯。这样可以实现智能卡在ISO 7816 界面定义下同时支持7816 和SWP 两个接口,并预留了扩展第三个高速(USB)接口的引脚(C4和C8)。eNFC方案的SWP接口的连接结构见图1。

SWP接口在CLF和UICC间的一根单线上定义了S1 和S2 两个方向的信号,实现全双工通讯。S1 是电压调制信号(RZ-return zero),S2 是电流调制信号,实际上采用的是负载调制方式。S1 信号是标准的数字电压信号,SIM 卡通过检测S1 信号的高低变化,同时可以在S1 信号的编码基础上恢复出时钟信号;S2 信号必须在S1 信号为高的阶段才有效,CLF芯片通过检测S2信号的变化区分“1”、“0”信号。S1和S2信号的编码规则如图2和3所示。

图1:SWP接口和NFC芯片连接示意图

图2:SWP接口信号S1编码示意图

图3:SWP接口信号S2编码示意图

S2 电流信号和S1电压信号叠加在一起,CLF端需要特定的接收和解调电路,信号的噪声容限稍低。SWP 传输的波特率可以从106KBPS 最高上升至1.69MBPS。

SWP接口协议ETSI TS 102 613中接口分为两层,第一层是物理层,定义了接口物理连接的激活、保持、停活过程,定义了电气特性(包括电压、电流、时序以及电压电流的编码规则)、机械特性(物理连接)和性能指标(数据速率)、也定义了通信链接的初始化建立和结束流程。第二层是数据链路层,又分两个子层,分别是MAC层(Medium Access Control layer)和LLC层(Logical Link Control layer),其中MAC层负责SWP接口协议帧的建立和解析,LLC层负责数据通讯和纠错。LLC层又分为必需支持的ACT层、SHDLC层和可选支持的CLT层协议。

表1:验证组件说明

图5:仿真验证环境框图

3.2 SWP接口设计简述

SWP接口设计分为数字和模拟两部分。数字部分实现了SWP协议MAC层以下的逻辑功能,也是本文的模块验证的对象,本文中将统一称呼数字部分为SWP模块。模拟部分实现了SWP接口电流调制和IO功能,在本文中统一称呼模拟部分为SWIO。

SWP模块的输入Din和输出Dout均为电压信号,经过SWIO的调制,整合为一个双向的S1、S2电压电流调制信号,作为UICC端SWP接口的最终信号表达形式与CLF端连接。SWP模块和SWIO关系如图4所示。

SWP接口IP集成在32位CPU芯片中,与原7816接口是互不影响,地位相等的两个接口。芯片系统支持多接口检测,芯片进入低功耗状态后可以由SWP接口的外部激活动作唤醒,芯片电气性能满足ETSI TS 102 613协议要求,功耗设计指标满足SWP协议ETSI TS 102 221协议要求。

4 SWP接口验证

4.1 基于UVM的仿真验证环境

针对SWP模块的特点,基于UVM验证方法学,搭建SWP模块仿真验证环境。各验证环境组件均继承自UVM基类,层次划分清晰,便于继承和扩展使用。

SWP模块挂接在APB总线,仿真验证环境中使用DesignWare的AMBA APB VIP,减少搭建验证平台的时间,使用VIP不仅可以可靠信任,同时能构造丰富的总线操作。使用dw_vip_setup安装VIP。SWP接口的通信段模型基于UVM基本类自行开发实现,按照ETSI 102 613协议开发,实现时考虑复用性和模块级到系统级验证的可移植性。

对待测SWP接口模块,从APB总线端使用VIP给予SWP模块寄存器访问和数据读写操作,从SWP接口使用SWP接口通信模型给予SWP模块接口通信操作,构造各种时序,遍历各种通信速率和数据,进行充分验证。因为SWP接口支持全双工通信,所以在验证环境上采用Virtual Sequencer来调度控制APB和通信段的sequencer。同时构造两个Scoreboard来分别判断两个数据端的数据传输正确。验证环境框图如图5,验证组件说明如表1所示。

在phase阶段调用topology函数可以得到UVM验证环境的hierarchy,如图6所示。

4.2 验证激励transaction和sequence控制

验证激励实现时,transaction根据SWP协议定义了两种帧类型,分别为数据帧和控制帧。其中数据帧有完整的帧头、帧尾、crc校验字节,负责数据通信;控制帧控制接口电平的切换,完成状态控制。在计分板中,只收集数据帧的信息进行比对。Sequence中分别使用do with产生有约束的transaction。

Vritual sequencer调度APB Agent和SWP Agent各自的sequencer实现全双工通信。激励分为随机激励和定向激励,其中随机激励通过改变种子多次run达到满意的覆盖率;定向激励主要完成接口状态切换验证。

4.3 验证结果

激励共计25个,其中随机激励12个,直接激励13个。覆盖率统计如图7所示。

4.4 验证中的问题和解决

(1)时钟控制:SWP接口通信速率缺省在200k~1Mhz,可以接口激活后根据交互结果进行协商。SWP接口时钟周期swp_clk_period缺省为固定值在forever块中产生时钟,同时使用config_db的wait_modified任务获得支持sequence中协商到后的周期值,重新get此周期值产生新的时钟。

(2)Overrid方式改变SWP接口S1信号占空比:S1信号占空比根据协议存在可变范围,故根据协议和设计指标要进行拉偏验证,通过在sequence中overridswp_driver中的发送task实现。

(3)crc校验错误:在SWP的数据transaction中定义crc_err位,缺省约束为0不出错。sequence里面通过调用constraint_mode(0)关闭约束为0,重新约束crc_err为1,post_randomize中根据crc_err来决定是否构造错误情况。

图6:仿真验证环境组件层次

图7:SWP接口的验证结果

5 结论

本文介绍了基于UVM验证方法学的SWP接口验证方法,使用DesignWare的AMBA VIP实现了SWP接口的充分验证,其中一些实现方法的思路可以应用到类似的接口验证中。该接口验证环境不仅可以在模块验证中使用,其中的SWP Agent和激励还可以快速的移植到SOC的验证环境中使用。SWP接口的全双工通信,非常适合UVM的随机激励,大大提高了验证效率,对比使用传统Verilog语言描述的定向激励来验证的方式,随机激励覆盖的验证场景更丰富和全面。

猜你喜欢
全双工方法学组件
全球首个氢燃料电池汽车碳减排方法学获批
无人机智能巡检在光伏电站组件诊断中的应用
大型学术著作《药理研究方法学》出版发行
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
RLS算法在同时同频全双工系统中的自干扰抑制性能分析
基于GRT平台的全双工WiFi设计与实现
同频同时全双工数字自干扰抵消算法
追踪方法学在院前急救护理安全管理中的应用
风起新一代光伏组件膜层:SSG纳米自清洁膜层