Usb设备控制器模块功能验证方法及验证环境平台的制作方法

文档序号:6502461阅读:203来源:国知局
Usb设备控制器模块功能验证方法及验证环境平台的制作方法
【专利摘要】本发明公开了一种USB设备控制器模块功能验证方法,基于UVM,使用AHB总线验证IP和USB主机验证IP构建验证环境平台中的参考模型,对USB设备控制器模块实施功能验证。本发明还公开了一种所述验证方法中采用的验证环境平台,采用system?verilog语言,基于UVM完成;包括:AHB通用验证组件、USB通用验证组件、虚拟序列器、记分板和USB配置文件。本发明能够快速实现USB设备控制器模块级功能验证,提高验证效率。
【专利说明】USB设备控制器模块功能验证方法及验证环境平台

【技术领域】
[0001] 本发明涉及集成电路设计S0C (系统级芯片)功能验证领域,特别是涉及一种USB (通用串行总线)设备控制器模块的模块级功能验证方法。本发明还涉及一种所述验证方法 中采用的验证环境平台。

【背景技术】
[0002]通用的验证方法学(UVM Universal Verification Methodology)是由美国 Mentor (明导)、Cadence (煙腾电子科技)和Synopsys (新思科技)公司共同推出的基于 system verilog (系统级硬件描述语言)语言的新一代验证方法学。该方法学为验证工程 师提供了丰富的类库资源和可重用的方法;支持多个厂商的仿真器;高度自动化。
[0003] 验证IP (Intellectual Property知识产权)是EDA (电子设计自动化)厂商为一 些标准接口如 AHB (Advanced High-performance Bus 系统总线)、APB (外围总线)、USB 等 开发的总线行为模型。在集成电路模块级功能验证中,通过使用各种验证IP可以达到迅速 搭建验证环境平台的目的,加快项目进度。Cadence公司开发的系统总线AHB通用验证组件 (UVC)是基于UVM的AHB总线验证IP。Denali公司开发的通用串行总线USB主机验证IP 是一个基于USB2. 0协议的验证模型,涵盖USB的协议层和物理层的相关通信。该通用串行 总线USB主机验证IP可适用于各种验证语言,并适用于VMM (验证方法学手册)、UVM的验 证环境平台。


【发明内容】

[0004] 本发明要解决的技术问题是提供一种USB设备控制器模块功能验证方法,能够快 速实现模块级功能验证,提高验证效率;为此,本发明还要提供一种所述验证方法中采用的 验证环境平台。
[0005] 为解决上述技术问题,本发明的USB设备控制器模块功能验证方法,是采用如下 技术方案实现的:采用UVM,使用系统总线AHB总线验证IP和通用串行总线USB主机验证 IP构建验证环境平台中的参考模型,对USB设备控制器模块实施功能验证。
[0006] 所述验证方法中采用的验证环境平台,采用system verilog语言,基于UVM完成; 包括:
[0007] AHB通用验证组件,是AHB总线协议端(以下简称"AHB端")验证环境子模块,用于 完成AHB总线操作;
[0008] USB通用验证组件,是USB主机端验证环境子模块,用于模拟USB主机的工作;
[0009] 虚拟序列器,是虚拟的产生器,不连接所述AHB通用验证组件和USB通用验证组件 中的接任何驱动器,在两者的上层控制AHB端和USB主机端的激励序列单元的产生顺序;
[0010] 记分板,负责采集所述AHB通用验证组件和USB通用验证组件产生的数据,进行自 动比较,以判断传输是否正确;
[0011] USB配置文件,负责管理整个验证环境平台,同步AHB端与USB主机端的配置信息。
[0012] 本发明采用新一代的验证方法学UVM,使用Cadence公司的AHB总线验证IP和 Denali公司的USB主机验证IP构建验证环境平台中的参考模型,利用验证IP高效可靠、便 于集成的特点,充分复用验证IP功能模块,充分发挥UVM灵活的激励序列单元产生机制,快 速搭建验证环境平台,对USB设备控制器模块进行模块级全面、快速的功能验证,高效、便 捷的完成功能验证工作,且验证充分、完备;能显著提高验证效率,是一种先进的功能验证 方法。

【专利附图】

【附图说明】
[0013] 下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
[0014] 图1是USB设备控制器模块验证环境平台结构示意图;
[0015] 图2是AHB通用验证组件中的激励序列单元扩展示意图;
[0016] 图3是USB通用验证组件中的激励序列单元扩展示意图。

【具体实施方式】
[0017] 根据本发明提供的技术解决方案,结合附图选取实施例对
【发明内容】
的实施作如下 具体描述:
[0018] 所述USB设备控制器模块功能验证方法,采用UVM,使用Cadence公司的AHB总线 验证IP和Denali公司的通用串行总线USB主机验证IP搭建验证平台中的参考模型,对 USB设备控制器模块实施功能验证。
[0019] 所述AHB总线验证IP作为USB设备控制器模块的AHB总线上的主设备参考模型, 用来配置USB设备控制器模块的内部寄存器。
[0020] 所述通用串行总线USB主机验证IP作为USB主机模型,对USB设备控制器模块进 行复位、总线枚举和发起传输。
[0021] 所述实施功能验证是指,一方面,通过AHB总线验证IP产生寄存器读写激励序列 单元;另一方面,通过USB主机验证IP产生可约束的随机的USB事务处理级的激励序列单 元,这两种激励序列单元在虚拟序列器产生的虚拟序列中通过约定的流程控制达到同步, 共同触发验证环境平台工作。所述验证环境平台自动化判断响应结果,自动化统计功能覆 盖率。
[0022] AHB端产生的所述寄存器读写激励序列单元是在AHB总线验证IP基础序列单元的 基础上扩展而来,扩充了读任务和写任务。AHB端的序列器也是在系统总线AHB总线验证知 识产权IP的原序列器的基础上扩展而来,添加了用于流程控制的虚拟中断接口。AHB端通 过中断等待及读或写任务,实施USB设备控制器模块的内部寄存器配置和通信流程控制。
[0023] USB主机端产生的所述USB事务处理级的激励序列单元是在USB主机验证IP的事 务处理级序列单元基础上扩展而来,在所述事务处理级序列单元的基础上,添加了多个任 务,用来发送IN (输入)事务处理任务、OUT (输出)事务处理任务、PING (高速输出询问)事 务处理任务、SETUP (建立)事务处理任务(包括设置设备地址、设置设备配置)等。USB事务 处理级的激励序列单元可随机生成,也可调用单个任务实现;复杂激励序列单元如USB总 线枚举过程、数据的传输等可通过上述的任务组合得到实现,即基于UVM提供强大的激励 序列单元组合机制,USB主机端的所述USB事务处理级的激励序列单元可以完全覆盖USB协 议传输。
[0024] 参见图1所示,所述验证方法中采用的验证环境平台1,采用systemverilog语言, 基于UVM完成。其包括:AHB通用验证组件2、USB通用验证组件3、虚拟序列器6、记分板5 和USB配置文件8。
[0025] 所述AHB通用验证组件2是AHB总线协议端验证环境子模块,用于完成AHB总线 操作。它包含AHB总线协议中的各组件,如主设备9 (即所述主设备参考模型),从设备10, 仲裁器11,译码器12。这些组件连通后,共同模拟AHB总线系统的运转。虚拟序列器6通 过向主设备9组件发送寄存器读写激励序列单元,实现AHB端寄存器读写激励序列单元的 传达。
[0026] 所述USB通用验证组件3,是USB主机端验证环境子模块,其中的USB主机模型17 (包括USB主机和监视器)即是USB主机验证IP,用来模拟USB主机的工作,如发起传输、应 答设备、复位、挂起和唤醒等。
[0027] 每一个所述AHB通用验证组件2和USB通用验证组件3都是封装成型、可配置的和 可重用的。每个所述AHB通用验证组件2和USB通用验证组件3内部,包含一个或多个代 理(Agent)模块。在图1所示的实施例中在AHB通用验证组件2的主设备9、从设备10、仲 裁器11和译码器12中分别设有一个代理模块;USB通用验证组件3中设有一个代理模块。 每个代理模块由序列器13、驱动器14和监控器15构成。所述序列器13是一个高级的激励 产生器,根据下方驱动器14的需求,控制激励序列单元产生。所述驱动器14是一个主动的 实体,将抽象的数据序列单元转化成逻辑信号,驱动到AHB总线接口上。所述监控器15是 一个被动的实体,负责收集接口信号、提炼事件,以便做覆盖率分析、协议检查和数据比较。
[0028] 所述虚拟序列器6是虚拟的产生器,不连接所述AHB通用验证组件2和USB通用 验证组件3中的任何驱动器,在两者的上层控制AHB端和USB端的激励序列单元的产生顺 序。
[0029] 所述记分板5,负责采集所述AHB通用验证组件2和USB通用验证组件3产生的数 据并进行自动比较,以判断传输是否正确。对于USB主机端的OUT方向的传输,AHB端收到 的数据(即图1中的AHB接收包19)与USB主机端发出的数据(即图1中的USB发出包21) 将被采集到记分板5中比较;对于USB主机端的IN方向的传输,USB主机端收到的数据(即 图1中的USB接收包20)会与AHB端发出的数据(即图1中的AHB发出包18)将被采集到 记分板5中比较。所述数据通过UVM的传输级模型(TLM)机制定义的端口传递。
[0030] 所述USB配置文件负责管理整个验证环境平台,同步AHB端与USB端的配置信息。 这些配置信息包括USB设备控制器模块内部寄存器的初始配置及USB主机的相关配置信 息。如最大包长度、传输类型和传输速度等。
[0031] 本发明中需要验证的对象是USB设备控制器模块4 (DUT),USB设备控制器模块4 一端通过AHB总线接口与AHB通用验证组件2相连,另一端通过USB总线与USB通用验证 组件3中的USB主机模型17相连。AHB总线验证IP通过AHB总线配置USB设备控制器模 块4的相关内部寄存器,使USB设备控制器模块4连接USB主机,USB主机验证IP确认USB 总线连接后,发起复位信号;USB设备控制器模块4作复位应答并进行相关寄存器的复位操 作;USB主机验证IP在确认双方复位流程结束后开始进行总线枚举,待总线枚举成功后进 行数据通信;USB设备控制器模块4做出应答,并在AHB总线验证IP的操作下传输其内部 寄存器中的数据。USB主机与USB设备控制器模块4之间的通信数据在传输过程中被收集 到记分板5中进行自动比较。各验证环境子模块的监视器负责监控AHB总线和USB主机行 为,接口信号若与协议不符,则报错。
[0032] 结合图1所示,所述验证环境平台1是一个分层的验证平台:在顶层定义AHB端与 USB主机端施加的激励序列单元。该激励序列单元以复杂的嵌套的激励序列单元形式存在, 描述当前测试的全过程。例如,包括AHB端初始化寄存器序列单元、USB主机发送复位信号 序列单元、USB主机设置地址序列单元、USB主机设置配置序列单元、AHB端应答地址设置序 列单元、AHB端应答配置设置序列单元、USB主机发送数据序列单元和AHB端接收数据序列 单元等。这些激励序列单元通过虚拟序列器6分发到AHB通用验证组件2和USB通用验证 组件3中的实际序列器13中。即一方面,AHB通用验证组件2中的主设备9组件的序列器 13得到从所述虚拟序列器6传来的序列名后,产生对应的AHB读写寄存器的激励序列单元; 主设备9组件的驱动器14从序列器13中获取这些激励序列单元并驱动到AHB总线上,完 成读写操作;主设备9组件的监视器15实时监控AHB总线的信号动作。另一方面,USB通 用验证组件3中的序列器13得到从所述虚拟序列器6传来的序列名后产生对应的USB事 务处理序列单元;USB通用验证组件3中的驱动器14从其序列器13中获取USB事务处理 序列单元,并转发给USB主机验证IP ;USB主机验证IP解析该USB事务处理序列单元,并转 化成USB接口信号,驱动到USB总线上;USB主机验证IP自带的监控器负责侦测USB总线 活动并做协议检查。
[0033] 图1中所述代理模块中的配置模块16负责配置各组件(包括所述AHB通用验证组 件2、USB通用验证组件3、主设备9、从设备10、仲裁器11和译码器12)的工作模式,如果 为主动模式,则序列器13、驱动器14和监视器15工作,如果是被动模式,当前组件只有监视 器15工作。在本验证环境平台中,所有的组件都是主动模式。
[0034] 所述AHB通用验证组件2的各序列器中的激励序列单元是通过层层扩展而来的。 参见图2所示,它表示出了 AHB通用验证组件2的主设备9组件的序列器13中激励序列单 元的扩展过程。
[0035] 首先,AHB总线验证IP提供的默认主设备序列单元是基础序列单元,该默认主设 备序列单元中定义了一个可随机的AHB总线传输序列单元。本验证环境平台在默认主设备 序列的基础上,创建了用户定义的基础序列单元,并对用户定义的基础序列单元做如下扩 展,添加两个任务:写寄存器[write_reg_single (addr, data),其中,addr表示写入的寄 存器地址,data表示要写入的数据]任务(简称"写任务")和读寄存器[reacLregjingle (addr, data),其中,addr表示要读出的寄存器地址,data表示读出的数据]任务(简称"读 任务"),通过这两个任务约束AHB总线传输序列单元的操作方向、地址、类型、数据宽度和数 据值等。然后,再以用户定义的基础序列单元为基础,扩展出更复杂的激励序列单元,即增 加一系列有意义有目的的读写操作,从而实现某种场景。例如建立包处理序列单元。在建立 的包处理序列单元中,调用了序列器的中断等待语句、多个读寄存器任务(读寄存器地址为 ' SETUP, 1的寄存器、读寄存器地址为'SETUP_2…读寄存器地址为' SETUP_n的寄存器等), 从而完成了 USB设备控制器模块4在收到USB建立包后,所做的一系列流程处理。
[0036] 所述USB通用验证组件中序列器的激励序列单元扩展过程,参见图3所示。同样, 从简单到复杂。USB基础序列单元包含USB事务处理的全部信息,如USB传输的级别、事务 处理的类型、设备地址、设备端点号、数据长度和数据值等,这些信息可随机生成。用户定 义的基础序列单元扩展了 USB基础序列单元,在它的基础上定义了 IN事务处理任务[addr (USB设备地址),ep (USB设备通信的端点号)]、OUT事务处理任务(addr,印)、PING (高速 输出询问)事务处理任务(addr,ep)、地址设置事务处理任务(addr )和配置设置事务处理任 务[addr, config (USB设备的配置信息)]等。这些任务内部更近一步地约束了事务处理 的地址、端点号、类型和数据等,使任务的发送有明确的目的和具体意义。图3所示的设置 地址组合序列则进一步扩展了用户定义的基础序列,它调用了地址设置事务处理任务(设 备地址为01)和IN事务处理任务(设备地址为01,设备端点号为0),两者的组合共同完成 了 USB主机发送建立包,设置设备地址,并得到设备回应的全部过程。
[0037] 以上通过【具体实施方式】对本发明进行了详细的说明,但这些并非构成对本发明的 限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也 视为本发明的保护范围。
【权利要求】
1. 一种通用串行总线USB设备控制器模块功能验证方法,其特征在于:基于验证方法 学UVM,使用系统总线AHB总线验证知识产权IP和通用串行总线USB主机验证知识产权IP 构建验证环境平台中的参考模型,对通用串行总线USB设备控制器模块实施功能验证。
2.根据权利要求1所述的方法,其特征在于:所述系统总线AHB总线验证知识产权IP 作为通用串行总线USB设备控制器模块的系统总线AHB上的主设备参考模型,用来配置通 用串行总线USB设备控制器模块的内部寄存器;所述通用串行总线USB主机验证知识产权 IP作为通用串行总线USB主机模型,对通用串行总线USB设备控制器模块进行复位、总线枚 举和发起传输。
3.根据权利要求1或2所述的方法,其特征在于:所述实施功能验证是指,一方面,通 过系统总线AHB总线验证知识产权IP产生寄存器读写激励序列单元;另一方面,通过通用 串行总线USB主机验证知识产权IP产生可约束的随机的通用串行总线USB事务处理级的 激励序列单元,这两种激励序列单元在虚拟序列中通过约定的流程控制达到同步,共同触 发验证环境平台工作;所述验证环境平台自动化判断响应结果,自动化统计功能覆盖率。
4.根据权利要求3所述的方法,其特征在于:系统总线AHB端产生的所述寄存器读写 激励序列单元是在系统总线AHB总线验证知识产权IP基础序列单元的基础上扩展而来,扩 充了读任务和写任务;系统总线AHB端的序列器也是在系统总线AHB总线验证知识产权IP 的原序列器的基础上扩展而来,添加了用于流程控制的虚拟中断接口 ;系统总线AHB端通 过中断等待及读任务或写任务,实施通用串行总线USB设备控制器模块的内部寄存器配置 和通信流程控制。
5.根据权利要求3所述的方法,其特征在于:通用串行总线USB主机端产生的所述通 用串行总线USB事务处理级的激励序列单元是在通用串行总线USB主机验证知识产权IP 的事务处理级序列单元基础上扩展而来,在所述事务处理级序列单元的基础上,添加了多 个任务,用来发送输入IN事务处理任务、输出OUT事务处理任务、高速输出询问PING事务 处理任务和建立SETUP事务处理任务。
6.根据权利要求5所述的方法,其特征在于:通用串行总线USB事务处理级的激励序 列单元可随机生成,也可调用单个任务实现;USB总线枚举过程和数据传输通过所述的任 务组合实现。
7. -种权利要求1-6任一所述方法采用的验证环境平台,其特征在于:采用system verilog语言,基于验证方法学UVM完成;包括: 系统总线AHB通用验证组件,是系统总线AHB端验证环境子模块,用于完成系统总线 AHB总线操作; 通用串行总线USB通用验证组件,是通用串行总线USB主机端验证环境子模块,用来模 拟通用串行总线USB主机的工作; 虚拟序列器,是虚拟的产生器,不连接所述系统总线AHB通用验证组件和通用串行总 线USB通用验证组件中的任何驱动器,在所述系统总线AHB通用验证组件和通用串行总线 USB通用验证组件的上层控制系统总线AHB端和通用串行总线USB主机端的激励序列单元 产生顺序; 记分板,负责采集所述系统总线AHB通用验证组件和通用串行总线USB通用验证组件 产生的数据,并进行自动比较,以判断传输是否正确; 通用串行总线USB配置文件,负责管理整个验证环境平台,同步系统总线AHB端与通用 串行总线USB主机端的配置信息。
8.根据权利要求7所述的验证环境平台,其特征在于:系统总线AHB总线验证知识产 权IP通过系统总线AHB总线配置通用串行总线USB设备控制器模块的相关内部寄存器,使 通用串行总线USB设备控制器模块连接通用串行总线USB主机;通用串行总线USB主机验 证知识产权IP确认通用串行总线USB连接后,发起复位信号;通用串行总线USB设备控制 器模块作复位应答,并进行相关寄存器的复位操作;通用串行总线USB主机验证知识产权 IP在确认双方复位流程结束后开始进行总线枚举,待总线枚举成功后进行数据通信;通用 串行总线USB设备控制器模块做出应答并在系统总线AHB总线验证知识产权IP的操作下 传输其内部寄存器中的数据。
9.根据权利要求7所述的验证环境平台,其特征在于:系统总线AHB通用验证组件包 含系统总线AHB总线协议中的各组件,包括主设备,从设备,仲裁器,译码器;这些组件连通 后,共同模拟系统总线AHB总线系统的运转;虚拟序列器通过向主设备组件发送寄存器读 写激励序列单元,实现系统总线AHB端寄存器读写激励序列单元的传达。
10.根据权利要求7所述的验证环境平台,其特征在于:所述通用串行总线USB通用验 证组件模拟通用串行总线USB主机的工作,包括发起传输、应答设备、复位、挂起和唤醒。
11.根据权利要求7所述的验证环境平台,其特征在于:每个所述系统总线AHB通用验 证组件和通用串行总线USB通用验证组件都是封装成型、可配置的和可重用的;每个所述 系统总线AHB通用验证组件和通用串行总线USB通用验证组件内部,包含一个或多个代理 模块;每个代理模块由序列器、驱动器和监控器构成; 所述序列器是一个激励产生器,根据下方驱动器的需求,控制激励序列单元产生; 所述驱动器是一个主动的实体,将抽象的数据序列转化成逻辑信号,驱动到系统总线 AHB总线接口上; 所述监控器是一个被动的实体,负责收集接口信号和提炼事件,以便做覆盖率分析、协 议检查和数据比较;负责监控系统总线AHB总线或通用串行总线USB主机行为,接口信号若 与协议不符,则报错。
12.根据权利要求11所述的验证环境平台,其特征在于:所述验证环境平台是一个分 层的验证环境平台:在顶层定义系统总线AHB端与通用串行总线USB主机端施加的激励序 列单元;该激励序列单元以嵌套的激励序列单元形式存在,描述当前测试的全过程;包括 系统总线AHB端初始化寄存器序列单元、通用串行总线USB主机发送复位信号序列单元、通 用串行总线USB主机设置地址序列单元、通用串行总线USB主机设置配置序列单元、系统总 线AHB端应答地址设置序列单元、系统总线AHB端应答配置设置序列单元、通用串行总线 USB主机发送数据序列单元和系统总线AHB端接收数据序列单元;这些激励序列单元通过 所述虚拟序列器分发到系统总线AHB通用验证组件和通用串行总线USB通用验证组件中的 实际序列器中;即一方面,系统总线AHB通用验证组件中的主设备组件的序列器得到从所 述虚拟序列器传来的序列名后,产生对应的系统总线AHB端寄存器读写激励序列单元;主 设备组件的驱动器从其序列器中获取这些寄存器读写激励序列单元并驱动到系统总线AHB 总线上,完成读写操作;所述主设备组件的监视器实时监控系统总线AHB总线的信号动作; 另一方面,通用串行总线USB通用验证组件中的序列器得到从所述虚拟序列器传来的序列 名后产生对应的通用串行总线USB事务处理级的激励序列单元;通用串行总线USB通用验 证组件中的驱动器从其序列器中获取通用串行总线USB事务处理级的激励序列单元,并转 发给通用串行总线USB主机验证知识产权IP ;通用串行总线USB主机验证知识产权IP解 析该通用串行总线USB事务处理级的激励序列单元,并转化成通用串行总线USB接口信号, 驱动到通用串行总线USB总线上;通用串行总线USB主机验证知识产权IP自带的监控器负 责侦测通用串行总线USB总线活动并做协议检查。
13.根据权利要求7所述的验证环境平台,其特征在于:对于通用串行总线USB主机端 的输出OUT方向的传输,系统总线AHB端收到的数据与通用串行总线USB主机端发出的数 据将被采集到记分板中比较;对于通用串行总线USB主机端的输入IN方向的传输,通用串 行总线USB主机端收到的数据与系统总线AHB端发出的数据将被采集到记分板中比较;所 述数据通过验证方法学UVM的传输级模型机制定义的端口传递。
14.根据权利要求7所述的验证环境平台,其特征在于:所述配置信息包含通用串行总 线USB设备控制器模块内部寄存器的初始配置及通用串行总线USB主机的相关配置信息; 包括最大包长度、传输类型和传输速度。
【文档编号】G06F11/267GK104142876SQ201310163722
【公开日】2014年11月12日 申请日期:2013年5月6日 优先权日:2013年5月6日
【发明者】刘蕊 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1