APP下载

基于VMT的USB 2.0功能验证平台的设计与实现*

2015-07-05金君潇王亚军虞致国顾晓峰于宗光江南大学电子工程系轻工过程先进控制教育部重点实验室江苏无锡中国电子科技集团公司第58研究所江苏无锡4035

电子与封装 2015年6期
关键词:发送器枚举收发器

金君潇,王亚军,黄 朴,虞致国,顾晓峰,于宗光(. 江南大学电子工程系轻工过程先进控制教育部重点实验室,江苏 无锡 4;.中国电子科技集团公司第58研究所,江苏 无锡 4035)

基于VMT的USB 2.0功能验证平台的设计与实现*

金君潇1,王亚军1,黄 朴1,虞致国1,顾晓峰1,于宗光2
(1. 江南大学电子工程系轻工过程先进控制教育部重点实验室,江苏 无锡 214122;2.中国电子科技集团公司第58研究所,江苏 无锡 214035)

摘 要:针对大规模混合SoC功能验证速度慢的问题,在基于USB 2.0数据传输的SoC设计基础上,提出了一种能快速验证USB 2.0协议的功能验证平台。使用验证模型技术,通过硬件描述语言搭建了完整的协议验证平台,包括Vera语言编写的主机VIP、用Verilog语言编写的数字化USB收发器、串行接口引擎、端点缓存器、增强型8051核和外部程序存储器。完成了对USB 2.0底层协议的功能验证,包括高速握手协议、高速/全速设备枚举及高速/全速设备数据传输,实验仿真结果与USB 2.0协议规范完全符合。该平台能降低对USB 2.0接口进行功能协议一致性验证的难度,并有助于缩短大规模数模混合SoC的开发周期。

关键词:USB 2.0;系统芯片;功能验证平台;验证模型技术

1 引言

验证是系统芯片(System-on-a-Chip,SoC)设计流程中不可或缺的重要组成部分,其目的在于排查芯片错误,找出功能模块中存在的逻辑缺陷,保证设计目标与实现的一致性。验证工作对现代芯片设计具有决定性的作用,一种高效的验证方法不仅可保证设计的正确性,还可提高设计效率。

自1996年初USB 1.0版本发布后,通用串行接口(Universal Serial Interface,USB)技术逐渐走向成熟,并已成为主流接口。通常,USB接口芯片验证采用无时序模型,该模型只保留简单的数据传输及校验功能,而忽略了USB底层物理协议的验证。比如,像高速设备枚举和全速设备枚举便无法验证,这存在验证的不完善问题[1~3]。同时,USB接口芯片涉及混合信号的设计,在设计和验证上都是接口芯片的难点。混合信号的验证涉及到性能、精度、库模型、接口模型、状态映射、仿真器支持的语言、成本,在前端仿真验证时仿真时间也是一个至关重要的考虑因素[4]。本文针对USB 2.0功能验证速度慢和协议层遍历验证困难的问题,通过对模拟模块数字建模,采用Vera验证模型技术(Verification Modeling Technology,VMT),通过硬件描述语言(Hardware Description Language,HDL)搭建了一种能快速完整验证USB 2.0协议的功能验证平台,基于USB 2.0数据传输的SoC完成了USB 2.0的协议功能验证。

2 仿真平台搭建

2.1 基于USB 2.0数据传输的SoC结构

以USB协议为基础[5],设计的基于USB 2.0接口的数据传输芯片的逻辑框图如图1的虚线框所示。本文所设计的芯片为USB 2.0设备接口芯片,在整个USB数据传输系统中,属于USB数据传输系统中的上行机制,负责实现外设和USB主机的通信。芯片包括增强型8051内核、PLL、分频器、USB 2.0收发器、USB 2.0串行接口引擎(Serial Interface Engine,SIE)、4 kB的端点缓存(Endpoint,EP)以及16 kB随机存储器(Random Access Memory,RAM)。

分频器可将图中PLL设计输入的480 MHz的时钟,分频为48 MHz、24 MHz、12 MHz输入到8051的时钟选择器中,作为8051的可选择工作时钟。USB 2.0收发器设计为模拟模块,兼容480 Mbps的高速和12 Mbps的全速。SIE介于收发器和数字模块EP缓存之间,需要完成数据的处理,将PHY中串行的模拟信号转化为并行的数字信号输入到EP中,或者是将EP中的数据转化为串行信号输入到PHY中成为模拟信号输出到USB差分信号线上。

图1 基于USB 2.0数据传输的SoC逻辑框图

2.2收发器数字建模

此SoC芯片设计规模大且模拟模块多,包括PLL、RAM、USB 2.0收发器,涉及节点电压值多。因此,用Hsim进行系统级仿真时,会导致SoC进入功能验证的过程耗时非常长。首先,芯片开始工作时PLL锁相时间达到5 μs;其次,测试向量从外部程序存储器加载到SoC内部,即使是使用并行程序存储器加载,也需要20 ms以上的时间,效率非常低;然后,USB收发器涉及到主机和设备的数据交互,自有一套USB协议要遵守,光是令USB收发器复位就需要10 ms,这也是令仿真效率难以提高的难点。虽然毫秒级的时间对于数字仿真器来说不算长,但是在数模混合信号的仿真中是以模拟仿真器决定步长的,而毫秒级的仿真时间对于纳秒级甚至皮秒级为仿真步长的模拟仿真器来说非常漫长。为提高效率、加快仿真,在传统的系统级后仿真验证平台基础上,设计了一种系统级仿真验证平台,将芯片内部耗时长的模块(如PLL、RAM、USB 2.0收发器等)选择替换为Verilog模块,实现数字信号和模拟信号的分离仿真,并且在逻辑层面上,快速验证SoC的系统级功能。如图2为USB 2.0收发器的接口信号和电路要求。

可以看出,一个完整的USB 2.0收发器应该包含的功能单元有高速发送器、全速发送器、高速接收器、全速接收器、传输包络检测器、单端接收器、高速驱动匹配电阻Rs、上拉电阻Rpu。USB 2.0收发器接口信号如表1所示。由于篇幅限制,本文以双模发送器的数字建模来说明信号强度的对应。所谓双模发送器,就是全速发送器包含在高速发送器内,作为高速发送器的驱动匹配电阻的一部分。如图3所示为双模发送器的模拟结构图。

表1 USB 2.0收发器接口信号列表

图2 USB 2.0收发器接口信号和电路要求

图3 双模发送器模拟结构图

图3中,M0、M1、M2、M3、Rs构成了全速发送器的驱动器,标称电流源17.78 mA、M4、M5构成了高速发送器的驱动器。FS_DPP1、FS_DMP1、FS_DPN1、FS_DMN1是由FS_Drive_Enable和全速数据信号FS_Transmitter_Data演变而来的控制信号。HS_DP、HS_DM为HS_Drive_Enable和HS_Transmitter_Data控制。17.78 mA的电流源由HS_Current_Enable控制。当处在全速模式下时,关闭电流源,M4、M5管子截止,M0、M2、M3、M4信号在全速发送信号的变化下交替导通,在DM、DP线上产生电压,即为信号,此高电平信号为3.3 V。当处于高速模式下,打开电流源,M0、M1截止,M2、M3导通,Rs连同M2、M3的导通电阻变为差分线上的下拉电阻,作为高速匹配电阻,约为45 Ω,M4、M5也由高速信号的变化而交替导通,使17.78 mA的电流通过高速匹配电阻而在差分线上形成电压值,高电平位800 mV。由于不同速度模式下的信号值不同,而且信号都通过DM、DP传输,在Verilog中高速和全速信号是线与的,所以就需要在数字建模时完成信号强度对应。在以下双模发送器建模中,需要发送的信号是全速发送信号、高速发送信号、SE0信号、上拉电阻信号的数字建模,以D+线上的信号为例说明。

(1)全速信号:Dp_fs_tmp为全速发送信号未在DP线上线与的中间值,如图中的控制信号控制。

assign Dp_tmp1 = Dp_fs_tmp;

assign Dp_fs_tmp = (FS_Drive_Enable = = 1'b1 &&Assert_SE0 = = 1'b0) ? (FS_Transmitter_Data): ((!reset_a) ? 1'bz:1'bz);

(2)高速信号:Dp_hs_tmp为高速发送信号未在DP线上线与的中间值。ctrl1、ctrl2、ctrl3为模拟电路上的一些控制信号。Dp_tmp4是在DP线上产生ChirpK的中间信号值。

assign Dp_tmp1 = Dp_hs_tmp;

assign Dp_hs_tmp = (FS_Drive_Enable = = 1'b1 &&Assert_SE0 = = 1'b1 && ctrl1 = = 1'b1 && ctl2 = = 1'b1 && ctrl3 ==1'b1 && HS_Drive_Enable = = 1'b1) ? HS_Transmitter_Data: ((!reset_a)?1'bz:1'bz);

assign Dp_tmp4 =( FH_select == 1'b0 && FS_Drive_Enable == 1'b0 &&Assert_SE0 == 1'b0 && reset == 1'b1)?HS_Transmitter_Dp:1'bz;

(3)SE0信号:Dp_se0_tmp为DP线上的SE0信号中间值。

assign (highz1, pull0) Dp_tmp3 = Dp_se0_tmp;

assign(highz1,weak0)Dp_se0_tmp= (FS_Drive_Enable= =1'b1&&Assert_SE0== 1'b1)?1'b0:1'bz;

(4)上拉1.5 kΩ电阻。

assign (pull1, highz0) Dp_tmp2= (~Rpu_Enable)?(~ Rpu_Enable):1'bz;

(5)DP信号线上所有信号的总集成。

assign Dp = Dp_tmp1;

assign (pull1, highz0) Dp = Dp _tmp2;

assign (highz1, pull0) Dp = Dp_tmp3;

assign (highz1, supply0) Dp =Dp_tmp4;

Verilog语言中,线网的驱动强度有supply1、strong1、pull1、weak1、highz1和supply0、strong0、pull0、weak0、highz0。缺省的信号驱动强度为strong1和strong0。此双模发送器使用pull1、supply1、strong1、strong0、highz1、highz0、pull0、weak0来模拟了D+和D-信号线上的不同信号强度[6]。表2为差分线上的信号强度映射。

表2 差分线上的信号强度映射

2.3验证平台框架

VMT可集成总线功能模型和时序校验模型到以HDL编写的验证平台中[7~10]。验证IP核(Verification Intellectual Property,VIP)是基于VMT开发的专门用于仿真的验证模型库,其中包括USB Host和USB Device功能模型。本文待验证部件(Device Under Testing,DUT)为USB设备芯片,故选择USB Host功能模型。基于VMT技术的验证平台,最大特点是能使用单一的命令流来配置VIP、发送传输命令及观测返回信息。VIP能嵌入不同HDL的TESTBENCH中,如Verilog、VHDL、Vera等,具有很强的兼容性。VMT使用自己的一套命令流,令TESTBENCH能与仿真软件交互。VMT命令流如图4。

基于VMT的USB功能验证平台框架如图5所示,主要包括引用的VIP模型usb_host_vmt、串行接口媒介Serial Gaskets、DUT及外部程序存储器[11]。usb_host_vmt以Vera语言编写,兼容多种USB模块接口模式,如UTMI、ULPI、串行差分模式等,而串行差分模式又可分为模拟接口和数字接口。DUT为串行差分模式,在与usb_host_vmt连接上需要媒介(即串行连接模块);同时,模拟模块PHY即为USB2.0收发器的数字建模模块,连接为串行差分数字接口。usb_host_vmt自带时钟恢复模块,能测试时钟恢复;若工作在时钟恢复模式下,则需要设置Gaskets时钟周期4倍于数据周期。C语言编写的USB固件程序编译成hex文件,读入外部程序存储模块,来处理CPU的请求。

图4 VMT命令流

图5 基于VMT的USB功能验证平台

3 USB 2.0的验证及结果分析

DUT为全/高速USB 2.0设备,上电默认为全速设备,也可通过高速握手枚举成为一个高速设备。USB 2.0设备工作过程如下。

(1)整个USB设备底层工作过程,包括连接上电复位、默认设备、分配地址、配置设备、挂起状态。设备上电后,外部电路瞬间产生一个低电平,通过低电平有效输入reset引脚,使设备复位;脱离复位后,设备识别为地址为0x00的默认设备,并且主机发起控制传输,对默认设备分配地址、配置设备。

(2)在主机与设备握手后,设备处于传输状态。USB传输包括控制传输、批量传输、同步传输、中断传输。控制传输用于主机和设备的识别,而其他三种传输则用于主机与设备之间的数据传输。

USB 2.0数据传输功能验证有高速握手仿真、高速设备枚举仿真、高速IN事务传输和OUT事务传输,以及全速设备枚举仿真、全速IN事务传输和OUT事务传输。全速设备与高速设备的区别在于数据传输速度和数据传输包大小的不同,其验证功能点类似,且验证方法和过程也类似,故本文仅详述高速仿真情况。

3.1高速握手协议仿真

协议规定设备芯片一上电,是以全速设备识别的,D+线上的1.5 kΩ上拉电阻(pullup_resistor)开启,经过主机驱动10 ms的SE0后,进入全速缺省设备状态,此后,D+线上的上拉电阻也是一直开启的。

若要进入高速缺省状态,则需上电进行高速握手,协议规定高速握手过程由主机驱动SE0(D+和D-都为低电平)信号开始。设备在检测到2.5 μs到3.0 ms的SE0后开始高速握手协议,此时设备发送一个最少1.0 ms最大7.0 ms的ChirpK脉冲;主机须在2.5 μs检测到此脉冲,ChirpK结束后的100 μs内主机要发送KJ序列;此KJ序列最小100 μs,最长500 μs。完成以上步骤后,主机仍发送SE0信号,直到复位结束。

高速握手协议的仿真波形如图6所示,时间单位为1 ms。主机在0.3 ms处开始发送SE0信号,经过约1 ms的时间,设备发送了持续约为2 ms的ChirpK信号。之后,主机开始发送500 μs长的共5 对KJ序列,并在约243 μs后DUT识别了由host返回的高速握手信号KJ序列,设备pullup_resistor信号强度变为标准0(st0),表示断开D+的1.5 kΩ上拉电阻(pullup_resistor),打开了高速终端匹配电阻(hs_terminal_control),芯片进入了高速缺省状态,实现高速握手协议。

3.2高速设备枚举仿真

在主机和设备进行握手之后,设备开始枚举,此阶段由EP0的控制传输完成。枚举过程如下:(1)对默认地址为0x00的缺省设置的DUT读取设备描述符,发送的SETUP信息包为80_06_00_01_00_00_12_00,返回18 B长度的设备描述符。(2)设置地址阶段,主机继续发送SETUP信息包为64'h00_00_00_0 0_00_01_05_00。此命令表示将USB设备地址设置为0x01,该地址在状态阶段设置完成并且起作用。(3)对已分配地址0x01的DUT返回设备描述符,仍旧发送SETUP信息包,发送的SETUP信息包仍为80_06_00_01_00_00_12_00。如图7所示,返回的也是18 B长度的设备描述符,至此表示枚举成功。

图7 返回设备描述符

3.3高速数据批量传输

高速数据批量传输DUT的配置,即固件的编写:(1)设置EP2和EP6为512 B的两重缓存区;(2)设置EP2为OUT端点,EP6为IN端点;(3)实现将EP2从主机端接收到的数据依次写入到EP6中;将此固件编译为hex文件,并在验证平台上写入外部程序存储器,模拟外部并行存储器启动,以此完成DUT配置。完成DUT配置后,主机发送一个OUT事务,向EP2发送512 B的数据{256{8’hab, 8’hcd}},DUT自动将EP2数据读入到EP6。从EP2向EP6传输数据的仿真结果如图8所示。

图8 EP2向EP6传输数据的过程

对于端点缓存EP2、EP6,它们的数据宽度为16 bit(也即2 B),write_read_high8bit为高8位读写控制信号,write_read_low8bit为低8位读写控制信号。在EP2的控制信号中,低位、高位读信号高有效,数据在读信号控制下,以先高后低的工作模式,将数据从EP2中读出;同时,EP2和EP6之间的传输模式为边读边写,EP2读出一个字节,EP6就写进一个字节。EP6完成接收512 B数据后,主机发送一个IN事务,从EP6中返回数据,并且打印VIP的观察节点,比对返回的512 B的数据是否与发送的数据一致,以此验证了IN 和OUT传输事务的正确性。通过仿真验证,证明了此平台能够大大加快SoC的功能验证时间。首先通过VMT的使用能够快速施加USB 2.0的底层协议激励,来缩短功能测试向量的开发时间;其次通过将混合信号仿真变为纯数字信号的仿真,极大地缩短了仿真时间,一个仿真需要的时间从几天缩短到十几分钟,这降低了SoC的验证成本。

4 结束语

本文基于SoC功能验证速度慢的问题和USB 2.0接口芯片协议一致性验证遍历的重要性,提出一种能快速搭建的USB协议软硬件协同仿真平台的方案。通过对SoC模拟模块的数字建模,并使用VMT技术,在以Verilog语言所设计的验证平台上快速准确地对USB 2.0协议进行了验证。结果表明,该平台能充分验证USB 2.0协议的一致性,并能缩短验证周期、改善工作效率,对USB协议的快速验证仿真有较好的应用价值。

参考文献:

[1] 吴从中,彭乐,王亚君,等. USB3.0设备控制器IP核

OUT端点测试平台的研究与实现[J]. 电子测量与仪器学报,2012,26(7): 646-651.

[2] 吴从中,王杰,Wang J Y,等. USB3.0控制端点的功能验证方法[J]. 电子测量与仪器学报,2012,26(6): 508-513. [3] 南心蒙,张盛兵,田洪涛. 通用串行接口IP核的功能验证[J]. 测控技术,2008,27(6): 83-85.

[4] Keith Barr. 孙伟锋,等译. ASIC设计-混合信号集成电路设计指南[M]. 北京:科学出版社,2008.182-183.

[5] Compaq. Universal serial bus specification revision 2.0[S]. USA: Compag Computer Corp: 2000.

[6] J Bhasker. 徐振林译. Verilog HDL硬件描述语言[M].北京:机械工业出版社,2000.114-116.

[7] Cypress. EZ-USB technical reference manual[EB/OL]. [2013-06-07]. http://www.cypress.com/?docID=48811

[8] Synopsys. USB on-the-go verification IP VMT user manual[EB/OL]. [2013-07-10]. http://solvnet.synopsys. com/portal/dt.

[9] 刘蕊. 基于VMM验证方法学的USB控制器IP验证方案[J]. 信息通信,2012,3: 286-288.

[10] 高夫,杜学亮,金西. 基于VMT的DDR-SDRAM控制器功能验证[J]. 计算机工程,2008,34(4): 263-265,274.

[11] Synopsys. DesignWare IP Family Reference Guide[EB/OL]. [2005-06-14]. http://bbs.eetop.cn/thread-202677-1-1.html

中图分类号:TP302.1

文献标识码:A

文章编号:1681-1070(2015)06-0023-05

收稿日期:2015-2-4

*基金项目:江苏省自然科学基金(BK20130156);中央高校基本科研业务费专项资金(JUSRP1026);江苏省科技厅产学研联合创新资金(BY2013015-19);江苏省六大人才高峰资助项目(DZXX-027);江苏省普通高校研究生实践创新计划项目(SJZZ_0148)

作者简介:

金君潇(1990—),女,浙江永康人,江南大学集成电路工程硕士研究生,研究方向为微电子系统设计与应用。

Design and Implementation of USB 2.0 Device Function Verification Platform Based on VMT

JIN Junxiao1, WANG Yajun1, HUANG Pu1, YU Zhiguo1, GU Xiaofeng1, YU Zongguang2
(1. Key Laboratory of Advanced Process Control for Light Industry (Ministry of Education), Department of Electronic Engineering, Jiangnan University, Wuxi 214122, China; 2. China Electronics Technology Group Corporation No.58 Research Institute, Wuxi 214035, China)

Abstract:In order to solve the slow function verification problem of the large-scale system-on-a-chip (SoC), a rapid verification platform for USB 2.0 protocol is proposed based on the design of USB 2.0 data transmission SoC. By adopting the verification modeling technology, the whole platform is built by hardware description language, including the host verification intellectual property written by Vera language, the digitalized USB transceiver, the serial interface engine, the endpoint buffer, the enhanced 8051 core and the external ROM written by Verilog language. The platform can complete the function verification of the USB 2.0 low layer protocols, including the high speed handshake protocol, the high/full speed device enumeration and the high/full speed data transmission. The experimental simulation results are in good agreement with the USB 2.0 protocol specification, indicating that the platform can reduce the difficulties in verifying the USB 2.0 interface functional protocol conformance and decrease the developing period of large-scale mixed SoC. Key words: USB 2.0; system-on-a-chip; function verification platform; verification modeling technology

猜你喜欢

发送器枚举收发器
基于理解性教学的信息技术教学案例研究
移频发送器冗余切换设计研究
光纤收发器故障排除经验谈
数组在处理枚举无规律数据中的应用
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
多特征脉冲轨道电路探究
基于太阳影子定位枚举法模型的研究
基于枚举的并行排序与选择算法设计
从两起故障谈ZPW-2000发送盒报警检测的改进
ZPW-2000A发码报警采集电路分析