CN117785593B - 一种基于UVM的xHCI驱动的实现系统及方法 - Google Patents
一种基于UVM的xHCI驱动的实现系统及方法 Download PDFInfo
- Publication number
- CN117785593B CN117785593B CN202410218846.6A CN202410218846A CN117785593B CN 117785593 B CN117785593 B CN 117785593B CN 202410218846 A CN202410218846 A CN 202410218846A CN 117785593 B CN117785593 B CN 117785593B
- Authority
- CN
- China
- Prior art keywords
- xhci
- module
- usb
- usb host
- ring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012795 verification Methods 0.000 claims abstract description 84
- 238000012360 testing method Methods 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000006854 communication Effects 0.000 claims abstract description 8
- 230000005284 excitation Effects 0.000 claims abstract description 7
- 230000006399 behavior Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 17
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 3
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明提供了一种基于UVM的xHCI驱动的实现系统及方法,该系统包括顶层测试平台,顶层测试平台包括:测试用例层,用于例化和初始化验证环境,作为测试用例的基类;其中,所述验证环境包括xHCI验证组件和参数配置模块,xHCI验证组件通过AXI总线与DUT模块连接;测试用例调用验证环境中的组件完成激励的产生与发送;DUT模块,由待测的USB主机实现,提供AXI总线接口和物理层接口;USB设备,提供物理层接口与DUT模块实现通信。本发明适用于UVM验证平台,重用性高,简化了设备配置过程和软件应用层的处理,降低了代码复杂度,能够高效的驱动USB主机完成和设备的通信,加快USB主机芯片的验证收敛。
Description
技术领域
本发明涉及芯片验证领域,特别涉及一种基于UVM的xHCI驱动的实现系统及方法。
背景技术
USB(Universal Serial Bus,通用串行总线)广泛用于连接计算机和其他外部设备,随着USB技术的不断发展,为了满足不断增长的数据传输需求,Intel公司开发了xHCI(eXtensible Host Controller Interface,可扩展主机控制器接口)作为USB主机控制器的硬件抽象层的标准接口。
xHCI主要面向USB 3.0版本,同时向下兼容USB 2.0及以下设备。相对于之前的主机控制器规范,xHCI通过一个规范来支持所有的USB协议,来保证USB现有的软件模型和设备级的编程模型完全一致,并具有更高的性能和能效。xHCI驱动是对xHCI规范的软件代码实现,是实现USB主机和设备之间数据传输的关键环节。目前USB 3.0已经成为一种主流的外部接口标准,所以与之对应的xHCI驱动也广泛应用于计算机领域。目前主流的xHCI软件驱动是由Inter公司提供,称其为xHCI标准驱动。
现有的xHCI标准驱动包含软件应用层和硬件驱动层,其设备初始化和配置过程十分复杂,软件代码量过大,将近几十万行,但对于USB芯片验证来说,驱动代码过大,会严重影响仿真速度,降低验证效率,而芯片验证并不关注USB上层软件应用层的过程,设备初始化和配置过程太过复杂,比较冗余。另外,xHCI驱动是基于c语言实现的,且其不能很好的兼容基于SystemVerilog语言实现的UVM验证平台,所以不适用于USB主机的数字芯片验证。
现有技术的解决方案通常有两种:一种是直接在现有的xHCI标准驱动代码进行简化或者重构,然后将c语言程序编译成hex或者bin文件,然后由cpu核执行该代码。因此验证平台必须带cpu核,导致验证平台组件更庞大,编译以及仿真时间很长,验证效率很低。并且c代码需提前写好编译,不够灵活,很难构造随机或者错误异常场景用例。
另一种是直接使用现有的xHCI标准驱动,在物理硬件上进行测试,例如FPGA(Field Programmable Gate Array)现场可编程门阵列的原型验证、芯片物理硬件测试等,这种方法虽然直接有效,但存在操作复杂、定位问题效率低,暴露缺陷较晚等问题。
UVM(Universal Verification Methodology,通用验证方法学)是一种用于芯片验证的标准方法学。UVM建立在SystemVerilog语言的基础上,利用了SystemVerilog中的类、对象和其他特性,以及其他一些高级的验证功能。它提供了一种面向对象的方法来组织测试环境、生成测试数据、控制仿真以及收集和分析仿真结果。UVM为芯片设计的验证提供了一个完整的框架和一组规范,旨在提高验证工程师的生产力,降低验证任务的复杂性,并促进团队间的协作。目前UVM已成为芯片验证的业界标准方法学,广泛应用于数字芯片的前仿验证领域,来尽可能保障芯片在流片之前已经发现并更正了所有的缺陷。
发明内容
针对现有技术中存在的问题,提供了一种基于UVM的xHCI驱动的实现系统及方法,实现了对USB主机和设备的通信配置过程的简化,缩短仿真时间,加快验证收敛。
本发明第一方面提出了一种基于UVM的xHCI驱动的实现系统,包括用于控制仿真测试开始以及模块例化和连接的顶层测试平台,所述顶层测试平台包括:
测试用例层,用于例化和初始化验证环境,作为测试用例的基类;其中,所述验证环境包括xHCI验证组件和参数配置模块,xHCI验证组件通过AXI总线与DUT模块连接;测试用例调用验证环境中xHCI验证组件和参数配置模块完成USB主机的驱动激励的产生,并通过AXI总线驱动至DUT模块;
DUT模块,由待测的USB主机实现,提供AXI总线接口和物理层接口;
USB设备,提供物理层接口与DUT模块实现通信。
作为一种优选方案,所述xHCI验证组件包括xHCI驱动,所述xHCI驱动用于实现xHCI驱动软件层面的传输环、命令环以及事件环,具体包括:
驱动模块,用于获取测试用例的激励配置,启动对应xHCI驱动的命令环、事件环和传输环以及初始化;
命令环模块,用于定义命令环,并根据配置构造不同的数据结构,控制USB主机选择执行不同的命令;
事件环模块,用于定义事件环,DUT模块通过事件环上报事件,事件环模块监测并解析USB主机上报的事件,根据不同的事件执行不同的处理;
传输环模块,用于定义传输环,控制DUT模块不同的端点完成不同的传输行为。
作为一种优选方案,所述参数配置模块用于配置DUT模块和USB设备的不同功能参数。
作为一种优选方案,所述验证环境还包括AXI验证组件,用于模拟真实的AXI总线行为,将xHCI驱动的软件抽象行为转换为具体的硬件总线操作,完成xHCI驱动与USB主机的交互。
作为一种优选方案,所述验证环境还包括监测模块,所述监测模块通过监测xHCI验证组件、AXI验证组件与DUT模块的行为,实现xHCI驱动与USB主机的协议行为监测,并将其与标准协议规范比较,完成对USB主机协议的自动检查。
作为一种优选方案,所述DUT模块包括控制器模块和物理接口模块,所述控制器模块提供AXI总线接口,用于和xHCI驱动进行软硬件交互;所述物理接口模块提供物理层接口,用于连接外部USB设备,建立USB设备和USB主机的数据通路。
作为一种优选方案,所述物理接口模块包括多个物理层接口,同时与多个USB设备通信。
作为一种优选方案,所述USB设备为由代码实现的仿真模型,模拟真实的USB协议行为,通过物理层接口和USB主机进行连接,形成数据通路。
本发明第二方面提出了一种基于UVM的xHCI驱动的实现方法,基于第一方面所述的基于UVM的xHCI驱动的实现系统实现,包括:
步骤1、xHCI验证组件初始化,并读取参数配置模块提供的配置参数;通过AXI总线读取USB主机的xHCI标准寄存器,获取各xHCI功能寄存器的地址以及USB主机的硬件拓扑结构以及硬件功能配置;
步骤2、xHCI验证组件中的xHCI驱动初始化命令环模块、事件环模块,并配置软复位使USB主机复位到初始状态;
步骤3、配置USB主机中的xHCI标准寄存器,并使能所要使用的USB设备接口;
步骤4、xHCI驱动分配USB设备基地址阵列的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间的起始偏移地址;
步骤5、xHCI驱动分配命令环的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间存放的第一个传输请求块数据的位置;
步骤6、xHCI驱动定义中断和事件环,分配事件环的内存地址空间,并配置xHCI标准寄存器告知USB主机该地址空间的起始地址;
步骤7、xHCI验证组件初始化配置完成后,配置USB主机的控制器模块启动运行,等待USB设备的接入;
步骤8、USB设备接入后,上报中断和事件,xHCI驱动通过命令环和传输环驱动USB主机,完成枚举和不同传输方式的通信过程。
作为一种优选方案,在步骤2的软复位过程中,若在所规定的等待时间内软复位完成,且USB主机硬件状态稳定,跳转到准备状态,进入步骤3,若超过所规定的等待时间,则上报系统错误。
与现有技术相比,采用上述技术方案的有益效果为:本发明适用于UVM验证平台,且重用性高。同时,在xHCI符合协议规范的基础上,简化了设备配置过程和软件应用层的处理,降低了代码复杂度,能够高效的驱动USB主机完成和设备的通信,加快USB主机芯片的验证收敛。并且相较于标准xHCI驱动,本发明实现的xHCI驱动中能够构造错误和异常,覆盖场景更加全面。
附图说明
图1为本发明提出的基于UVM的xHCI驱动的实现系统示意图。
图2为本发明提出的基于UVM的xHCI驱动的实现方法流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
为了克服现有方案在USB主机芯片验证中存在的缺陷问题,本发明实施例提出了一种基于UVM的xHCI驱动的实现系统,简化了USB主机芯片验证过程,缩短仿真时间,从而有效提高验证效率,加快验证收敛。
请参考图1,该基于UVM的xHCI驱动的实现系统包括顶层测试平台Test_top,该顶层测试平台Test_top用于例化和连接测试平台、待测的USB主机芯片以及USB设备,同时控制整个平台仿真测试开始。顶层测试平台Test_top主要包括测试用例层Base_test、DUT模块以及USB设备三部分,具体的:
DUT模块由待测的USB主机芯片(后称“USB主机”)实现,其内部包括控制器模块USBController和物理接口模块USB PHY两部分。其中,控制器模块USB Controller提供AXI总线接口,用于和上游的测试用例层进行软硬件交互,物理接口模块USB PHY则用于提供USB主机端的物理层接口,用于连接外部USB设备,从而建立USB设备和主机的数据通路。在一个实施例中,物理接口模块包括多个物理层接口,能够同时实现多个USB设备的连接,完成验证。
USB设备作为下游设备,提供设备端的物理层接口,用于完成和主机的通信。本实施例中,USB设备是由Verilog或者SystermVerilog代码实现的仿真模型,模拟真实的USB协议行为,通过USB设备端的物理层接口和USB主机进行连接,完成数据传输。相应的,在USB主机支持多端口/接口时,可以例化多个USB设备与USB主机同时进行通信。
测试用例层Base_test用于例化和初始化验证环境usb_env,作为测试用例的基类,请继续参考图1,验证环境usb_env包括xHCI验证组件xhci_agent和参数配置模块usb_config,xHCI验证组件xhci_agent和参数配置模块usb_config在验证环境usb_env中完成实例化和连接,参数配置模块usb_config用于提供USB主机和设备的不同功能参数;同时,xHCI验证组件xhci_agent通过AXI总线与DUT模块连接。在测试时,测试用例通过验证环境usb_env调用xHCI验证组件xhci_agent和参数配置模块usb_config完成USB主机的驱动激励的产生,并通过AXI总线驱动至DUT模块。在一个实施例中,参数配置模块用于配置系统中USB设备模型的行为(例如配置USB设备模型是USB 3.0还是USB 2.0的设备,USB设备接入数量,接入时间等)、修改USB主机硬件拓扑结构(例如USB主机支持多端口还是单端口,USB主机最大可接入设备数量等)、验证环境功能数(例如是否插入错误或异常、是否开启自动监测和比对功能等)等。
具体的,xHCI验证组件xhci_agent包括xHCI驱动xhci_driver,该xHCI驱动xhci_driver主要用于完成xHCI驱动行为,并将其作为激励通过AXI总线驱动到DUT模块。请继续参考图1,xHCI驱动xhci_driver包括驱动模块drive_proc、命令环模块cmd_ring_proc、事件环模块event_ring_proc以及传输环模块transfer_ring_proc。
驱动模块drive_proc主要用于获取测试用例的激励配置,以启动对应xHCI驱动的命令环、事件环和传输环以及初始化。
命令环模块cmd_ring_proc用于定义命令环,并根据配置构造不同的数据结构,控制USB主机选择执行不同的命令,该命令环主要用于枚举配置过程。
事件环模块event_ring_proc用于定义事件环,系统模拟分配一块内存空间地址给事件环,DUT模块通过事件环上报事件,事件环模块event_ring_proc监测并解析USB主机上报的事件,根据不同的事件执行不同的处理。
传输环模块transfer_ring_proc,用于控制USB主机不同的端点完成不同的传输行为,如异步传输、周期传输等。USB的传输都是通过端点进行的,每个USB主机和USB设备均有多个端点用于传输。
本实施例中,可以根据需求加入错误或者异常,使得对USB主机的验证覆盖场景更加全面。具体的,通过参数配置模块配置在xHCI驱动的事件环、命令环或者传输环中加入随机错误数据或者特定的异常数据,以此构造错误和异常场景。
为了实现对USB和xHCI协议行为的自动检查,本实施例中,在验证环境usb_env中添加了AXI验证组件axi_agent和监测模块scoreboard,其中:
AXI验证组件axi_agent用于模拟真实的AXI总线行为,将xHCI驱动的软件抽象行为转换为具体的硬件总线操作,完成xHCI驱动与USB主机的交互。
监测模块scoreboard通过监测xHCI验证组件xhci_agent、AXI验证组件axi_agent与DUT模块的行为,实现xHCI驱动与USB主机的协议行为监测,并将其与标准协议规范比较,从而完成xHCI和USB协议的自动检查,如果有不符合协议的行为,打印相应的报错信息。
请参考图2,本实施例中还提供了一种基于UVM的xHCI驱动的实现方法,基于图1所示的基于UVM的xHCI驱动的实现系统实现,包括:
步骤1、xHCI验证组件初始化,并读取参数配置模块提供的配置参数;通过AXI总线读取USB主机的xHCI标准寄存器,获取各xHCI功能寄存器的地址并读取值以及USB主机的硬件拓扑结构以及硬件功能配置。其中,xHCI功能寄存器属于xHCI标准寄存器,主要包括4个部分:功能寄存器、操作寄存器、运行时间寄存器以及门铃矩阵。
步骤2、xHCI验证组件中的xHCI驱动初始化命令环模块、事件环模块,并配置软复位使USB主机复位到初始状态。
步骤3、配置USB主机中的xHCI标准寄存器,使能所需使用的USB设备接口数量。在一个实施例中,通过系统软件控制驱动USB设备接口,其数据依赖于配置情况。
步骤4、xHCI驱动分配USB设备基地址阵列的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间的起始偏移地址。
步骤5、xHCI驱动分配命令环的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间存放的第一个TRB(Transfer Request Block,传输请求块)数据的位置。
步骤6、xHCI驱动定义中断和事件环,分配事件环的内存地址空间,并配置xHCI标准寄存器告知USB主机该地址空间的起始地址。
步骤7、xHCI验证组件xhci_agent初始化配置完成后,配置USB主机的控制器模块启动运行,等待USB设备的接入。
步骤8、USB设备接入后,上报中断和事件,xHCI驱动通过命令环和传输环驱动USB主机,完成枚举和不同传输方式的通信过程。
需要说明的是,在步骤2的软复位过程中,若在所规定的等待时间内软复位完成,且USB主机硬件状态稳定,跳转到准备状态,进入步骤3,若超过所规定的等待时间,则上报系统错误。
在实际应用中,步骤4~步骤6中所涉及的内存地址空间分配可以参考USB主机的默认值,也可以通过参数配置模块进行调整。
本发明提出的基于UVM的xHCI驱动的实现系统及方法具有以下优点:
1、基于UVM实现xHCI驱动,适用于UVM验证平台,且重用性高,对于验证USB主机数字芯片,能够有效提高验证效率,加快验证收敛。
2、在符合xHCI协议规范的基础上,简化了设备配置过程和软件应用层的处理,降低了代码复杂度,能够更加高效的驱动USB主机完成和设备的通信。
3、xHCI标准驱动都是符合协议规范的,不能满足一些不属于协议规定的特殊场景,而本发明的代码更加灵活,可以根据需求加入错误或者异常,对于USB主机的芯片验证来说,覆盖场景更加全面。
4、本发明的基于UVM的xHCI驱动实现的系统中,还加入了协议监测,可以完成对USB和xHCI协议行为的自动检查。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。
需要说明的是,本发明实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本发明还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的基于UVM的xHCI驱动的实现方法。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的基于UVM的xHCI驱动的实现方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义;实施例中的附图用以对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (7)
1.一种基于UVM的xHCI驱动的实现系统,其特征在于,包括用于控制仿真测试开始以及模块例化和连接的顶层测试平台,所述顶层测试平台包括:
测试用例层,用于例化和初始化验证环境,作为测试用例的基类;其中,所述验证环境包括xHCI验证组件和参数配置模块,xHCI验证组件通过AXI总线与DUT模块连接;测试用例调用验证环境中xHCI验证组件和参数配置模块完成USB主机的驱动激励的产生,并通过AXI总线驱动至DUT模块;
DUT模块,由待测的USB主机实现,提供AXI总线接口和物理层接口;
USB设备,提供物理层接口与DUT模块实现通信;
所述xHCI验证组件包括xHCI驱动,所述xHCI驱动用于实现xHCI驱动软件层面的传输环、命令环以及事件环,具体包括:
驱动模块,用于获取测试用例的激励配置,启动对应xHCI驱动的命令环、事件环和传输环以及初始化;命令环模块,用于定义命令环,并根据配置构造不同的数据结构,控制USB主机选择执行不同的命令;事件环模块,用于定义事件环,DUT模块通过事件环上报事件,事件环模块监测并解析USB主机上报的事件,根据不同的事件执行不同的处理;传输环模块,用于定义传输环,控制DUT模块不同的端点完成不同的传输行为;
所述验证环境还包括AXI验证组件,用于模拟真实的AXI总线行为,将xHCI驱动的软件抽象行为转换为具体的硬件总线操作,完成xHCI驱动与USB主机的交互;
所述验证环境还包括监测模块,所述监测模块通过监测xHCI验证组件、AXI验证组件与DUT模块的行为,实现xHCI驱动与USB主机的协议行为监测,并将其与标准协议规范比较,完成对USB主机协议的自动检查。
2.根据权利要求1所述的基于UVM的xHCI驱动的实现系统,其特征在于,所述参数配置模块用于提供DUT模块和USB设备的不同功能参数配置。
3.根据权利要求1所述的基于UVM的xHCI驱动的实现系统,其特征在于,所述DUT模块包括控制器模块和物理接口模块,所述控制器模块提供AXI总线接口,用于和xHCI驱动进行软硬件交互;所述物理接口模块提供物理层接口,用于连接外部USB设备,建立USB设备和USB主机的数据通路。
4.根据权利要求3所述的基于UVM的xHCI驱动的实现系统,其特征在于,所述物理接口模块包括多个物理层接口,用于同时与多个USB设备通信。
5.根据权利要求1或3所述的基于UVM的xHCI驱动的实现系统,其特征在于,所述USB设备为由代码实现的仿真模型,模拟真实的USB协议行为,通过物理层接口和USB主机进行连接,形成数据通路。
6.一种基于UVM的xHCI驱动的实现方法,基于权利要求1~5任一项所述的基于UVM的xHCI驱动的实现系统实现,其特征在于,包括:
步骤1、xHCI验证组件初始化,并读取参数配置模块提供的配置参数;通过AXI总线读取USB主机的xHCI标准寄存器,获取各xHCI功能寄存器的地址以及USB主机的硬件拓扑结构以及硬件功能配置;
步骤2、xHCI验证组件中的xHCI驱动初始化命令环模块、事件环模块,并配置软复位使USB主机复位到初始状态;
步骤3、配置USB主机中的xHCI标准寄存器,并使能所要使用的USB设备接口;
步骤4、xHCI驱动分配USB设备基地址阵列的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间的起始偏移地址;
步骤5、xHCI驱动分配命令环的内存地址空间,并通过配置xHCI标准寄存器告知USB主机该地址空间存放的第一个传输请求块数据的位置;
步骤6、xHCI驱动定义中断和事件环,分配事件环的内存地址空间,并配置xHCI标准寄存器告知USB主机该地址空间的起始地址;
步骤7、xHCI验证组件初始化配置完成后,USB主机启动运行,等待USB设备的接入;
步骤8、USB设备接入后,上报中断和事件,xHCI驱动通过命令环和传输环驱动USB主机,完成枚举和不同传输方式的通信过程。
7.根据权利要求6所述的基于UVM的xHCI驱动的实现方法,其特征在于,在步骤2的软复位过程中,若在所规定的等待时间内软复位完成,且USB主机硬件状态稳定,跳转到准备状态,进入步骤3,若超过所规定的等待时间,则上报系统错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218846.6A CN117785593B (zh) | 2024-02-28 | 2024-02-28 | 一种基于UVM的xHCI驱动的实现系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218846.6A CN117785593B (zh) | 2024-02-28 | 2024-02-28 | 一种基于UVM的xHCI驱动的实现系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785593A CN117785593A (zh) | 2024-03-29 |
CN117785593B true CN117785593B (zh) | 2024-06-04 |
Family
ID=90401976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410218846.6A Active CN117785593B (zh) | 2024-02-28 | 2024-02-28 | 一种基于UVM的xHCI驱动的实现系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785593B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN115841089A (zh) * | 2023-02-27 | 2023-03-24 | 合肥六角形半导体有限公司 | 一种基于uvm的系统级芯片验证平台及验证方法 |
CN116911220A (zh) * | 2023-07-19 | 2023-10-20 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的PCIe分叉验证系统 |
CN117591413A (zh) * | 2023-11-27 | 2024-02-23 | 叩持(西安)电子信息技术有限公司 | 一种基于uvm的总线接口模块的验证系统及验证方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053246B2 (en) * | 2011-11-17 | 2015-06-09 | Mcci Corporation | USB class protocol modules |
US10019400B2 (en) * | 2015-03-27 | 2018-07-10 | Intel Corporation | Additional secured execution environment with SR-IOV and xHCI-IOV |
-
2024
- 2024-02-28 CN CN202410218846.6A patent/CN117785593B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN115841089A (zh) * | 2023-02-27 | 2023-03-24 | 合肥六角形半导体有限公司 | 一种基于uvm的系统级芯片验证平台及验证方法 |
CN116911220A (zh) * | 2023-07-19 | 2023-10-20 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的PCIe分叉验证系统 |
CN117591413A (zh) * | 2023-11-27 | 2024-02-23 | 叩持(西安)电子信息技术有限公司 | 一种基于uvm的总线接口模块的验证系统及验证方法 |
Non-Patent Citations (3)
Title |
---|
IC验证三种不同方法的分析比较;王立平;姚程宽;陈向阳;光峰;卢灿举;王伟;赵彦;;太原师范学院学报(自然科学版);20190325(01);第67-69+75页 * |
基于UVM的xHCI验证环境设计与实现;刘文博;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180615(第06期);第I135-244页 * |
王立平 ; 姚程宽 ; 陈向阳 ; 光峰 ; 卢灿举 ; 王伟 ; 赵彦 ; .IC验证三种不同方法的分析比较.太原师范学院学报(自然科学版).2019,(01),第67-69+75页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117785593A (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508753B (zh) | Ip核验证系统 | |
CN104750603B (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
CN111859832B (zh) | 一种芯片仿真验证方法、装置及相关设备 | |
CN111008508B (zh) | 一种接口类ip系统应用验证平台和验证方法 | |
US8504344B2 (en) | Interface between a verification environment and a hardware acceleration engine | |
CN116681013B (zh) | 网络芯片的仿真验证方法、平台、装置、设备及介质 | |
CN115146568A (zh) | 一种基于uvm的芯片验证系统及验证方法 | |
CN113657069B (zh) | 片上系统soc仿真验证方法、装置、验证服务器及存储介质 | |
CN116089281A (zh) | 一种芯片测试方法、测试平台和设备 | |
CN111176926B (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
TW202411872A (zh) | 驗證系統、驗證方法、電子設備以及儲存媒體 | |
CN115496018A (zh) | 一种SoC芯片多版本验证方法、装置及设备 | |
CN112764981B (zh) | 一种协同测试系统及方法 | |
CN117057286B (zh) | 一种基于UVM和VIP的SMBus模块级验证系统 | |
CN108228965B (zh) | 一种存储单元的仿真验证方法、装置和设备 | |
CN117370093A (zh) | 一种芯片调试方法、装置、设备及存储介质 | |
CN117785593B (zh) | 一种基于UVM的xHCI驱动的实现系统及方法 | |
CN116894411A (zh) | 带dma接口的spi模块验证平台和方法 | |
CN116611375A (zh) | 软硬件协同仿真平台及软硬件测试方法 | |
CN111338761B (zh) | 一种51单片机虚拟中断控制器及实现方法 | |
US7110928B1 (en) | Apparatuses and methods for modeling shared bus systems | |
CN113177388A (zh) | 用于ip核测试与验证的装置、系统及方法 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN115983192B (zh) | 验证系统及配置验证系统的外设子卡资源的方法 | |
CN116627496B (zh) | 基于uvm的寄存器模型构建、验证方法、系统与电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |