当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:为了能够充分、快速验证USB 2.0主控器的功能,设计了一个软硬件协同仿真平台。其中,CPU模型部分采用一种高效的SystemC模型,而不使用基于指令集的复杂CPU模型。测试用例采用抽象层次更高的C语言编写,通过调

摘要:为了能够充分、快速验证USB 2.0主控器的功能,设计了一个软硬件协同仿真平台。其中,CPU模型部分采用一种高效的SystemC模型,而不使用基于指令集的复杂CPU模型。测试用例采用抽象层次更高的C语言编写,通过调用仿真平台对外提供的API完成激励生成与响应检查。结果表明,该方式能够有效降低对仿真资源的占用,减少仿真时间;同时使软件人员能在IP的硬件验证阶段就能完成软件的设计测试工作,缩短软硬件接口整合时间,加快开发进度。
关键词:软硬协同;联合仿真引擎;CPU模型;通用串行总线;主控器;片上系统

    USB由于具有传输速度快、支持即插即用和热插拔、供电方式灵活、总线结构简单、使用和扩展灵活等优点,已经成为业界主流的工业接口标准,并在SoC设计中得到了广泛的应用。在典型的应用案例中,USB主控器作为SoC中的一个子模块,和其他子模块有复杂的互联、通信关系,同时也受系统主CPU的控制。在这样一个复杂的系统中,如何验证USB主控器设计的正确性以及其和SoC系统其他模块协同工作的完整性对项目成功与否是非常关键的。本文设计了一种软硬件协同仿真平台来验证应用在数字电视SoC中的USB2.0主控器,本平台为SoC的验证提供了一个高效、系统的解决方案。结果表明效果良好。

1 待验证USB 2.0主控器系统结构
    本文验证的USB 2.0主控器完全兼容USB 1.1规范,EHCI主机控制器接口规范和OCHI主机控制器接口规范。该USB 2.0主控制器包含一个高速主控器和一个全速主控制器,其中高速主控器基于EHCI接口规范实现,用来和连接到根端口的高速(传输速率为480 Mb/s)模式外设进行通信。全速模式主控制器基于OHCI接口规范实现,使USB 2.0主控器可以与全速和低速(传输速率为12 Mb/s和1.5Mb/s)外设进行通信。系统CPU可以通过该主控器的AHB Slave接口对其进行控制。该主控器中还包含AHB Master接口单元,能够扮演AHB Master的角色直接控制主控器与系统存储器之间的数据交换,不需要通过外部DMA控制器的控制,方便系统集成,加快该主控器与系统内存之间的数据交换。该主控器的物理接口端提供满足UTMI+接口规范的接口,通过与PHY相连,可以直接与外设进行通信。图1为该主控器的系统结构框图,图中主控器的列表处理器模块是系统中主要的控制器,其包含多个状态机用来处理规范中描述符定义的内容。



2 验证仿真系统介绍
2.1 使用传统平台验证USB主控器的不足
    USB主控器真实的工作环境需要有硬件和软件协同配合,在传统验证平台下,从整个验证过程来看,硬件人员需要描述一套基于Verilog HDL的测试激励模拟软件环境验证其功能,之后软件人员还要再写一遍基于C程序的软件环境验证其功能,这样造成工作的重叠。同时传统验证平台使用Verilog HDL编写,抽象层次较低,在描述高抽象结构(如USB的描述符的数据结构)时比较复杂,而使用抽象层次更高的C语言会相对简单。
2.2 本文设计的软硬协同仿真系统介绍
    相对使用传统验证方法,本文设计的软硬件协同仿真系统使用抽象度较高的C语言编写测试激励,通过调用系统中CPU模型对外提供的API完成激励生成与响应检查。基于本引擎编写的测试激励可以方便的移植,所以在硬件仿真阶段就能调试SoC系统软件,不必等到FPGA平台设计完成或芯片设计完成后,从而大大节省了项目开发时间。图2是本文验证USB主控器功能的软硬件协同仿真的系统架构图。本验证环境由3大部分组成:联合仿真引擎,即CPU模型;总线架构及系统内存模块,包括一个DDR模型和DDR控制器;USB协议实现、检查模块,包括待验证的USB主控器、支持UTMI+接口的PHY、外设模型。在该平台下,联合仿真引擎(CPU模型)替换掉SoC中原有的CPU,是整个验证系统的核心也是整个系统设计的核心。通过使能信号触发联合仿真引擎工作来执行C程序,将软件对USB主控器的控制转化成总线时序,将软件和硬件交互的行为模拟到RTL侧。下文将对仿真平台中各个模块,重点对联合仿真引擎进行详细介绍。


2.2.1 基于TLM建模的联合仿真引擎及设计
    使用软硬件协同仿真的方法验证USB主控器,只需要用C语言编写USB主控器驱动并将其集到成系统中进行仿真测试,因此要求CPU模型能够简单、高效地执行驱动程序,CPU在SoC中都是直接通过AHBMaster接口连接到总线(BUS)上,对SoC中要验证的IP来讲,CPU就是一个总线Mas ter,IP并不关心CPU是什么指令集,采用何种方式实现。基于此,本联合仿真引擎设计的CPU模型并没有采用基于特定指令集设计的复杂方法,而是采用基于SystemC事物级建模(TLM)技术构造了一个基于AHB协议的总线功能模型(BFM),实现了对CPU对SoC中其他模块所呈现的AHB Master接口的时序封装。这个BFM能和要验证的RTL模块进行连接和通信,它能够编译并解释基于C语言编写的驱动程序,并把这个驱动程序要执行的操作翻译成对应的AHB总线信号。通过层次化的封装,本联合仿真引擎把基于时钟时序精度的RTL的抽象层提升到没有任何时钟和时间概念的软件抽象层。同时,本引擎能取代任何CPU。不管SoC中真正使用的CPU是MIPS指令集、ARM指令集还是其他CPU,都能被本联合仿真引擎替代。
    本引擎的CPU模型使用系统仿真用的工作站或者服务器的宿主CPU来运行验证工程师编写的基于C语言的测试激励程序,将需要的具体硬件行为通过Channel向下传送到RTL端。相对于直接使用SoC中CPU IP核的RTL的仿真,该引擎省去了CPU IP核取指令和运行指令的复杂的仿真、运算过程,大大节省了仿真运行的时间。本联合仿真引擎为软件人员和硬件验证人员分别提供了一些总线访问和中断处理的API,为了满足硬件验证的需要,另外设计了一些API可以实现让系统等待一定时钟周期或者时间、停止或重新开始仿真、不通过总线而可以快速访问系统存储器等功能。在系统中CPU模型对USB主控器和DDR控制器的配置均通过这2个模块对外提供的AHB Slave接口。
2.2.2 仿真系统的其他模块介绍
    DDR2/3为系统内存,存储USB主控器正常工作需要的描述符和收发的数据。由于本系统中DDR2/3控制器只提供AXI Slave的数据接口,系统中CPU和USB主控器需要通过AHB桥将AHB从机的接口时序转换成AXI Master的接口时序,保证2个模块之间正常的数据通信。系统工作过程中AxI,AHB总线监控器监控2个总线活动,打印出报告信息,方便仿真结果检查。
    USB主控器是待验证的主控器(DUT)。PHY模型提供UTMI+接口,有USB 2.0和USB 1.1两种接口分别支持EHCI接口和OHCI接口实现。外设模型包括一个PHY验证IP(VIP)和一个USB外设验证IP,模拟USB外设的行为。USB外设VIP中包含一个USB监控器模型,负责协议检查,记录事物传输进程,监控高速、全速和低速的USB传输,提供数据包级和事物级传输的监控,同时可以监控挂起、恢复和复位信号。

3 基于本验证系统的USB主控器验证过程
    由于使用了联合仿真引擎,测试激励既可以使用Verilog HDL编写也可以使用C语言编写。运行C语言编写的测试激励时,需要在测试平台中预先置位使能信号打开联合仿真引擎,触发仿真工具(如NCVerilog)调用C测试激励程序的主函数。在C测试激励顺序执行时,整个RTL的仿真时间会停在当前时刻。只有当C测试激励调用了基本的读/写函数、中断响应之类的底层函数,硬件仿真时间才会向前推进,RTL仿真器继续往前运行。直到RTL反馈后,C测试激励程序才会继续往下一行执行。USB主控器验证系统仿真引擎交互过程如图3所示。


    具体过程包括:HDL仿真工具执行Verilog HDL描述的USB的外设模型初始化过程;HDL仿真工具使能联合仿真引擎,测试用例进入联合仿真引擎继续执行;联合仿真引擎初始化待验证USB主控器;联合仿真引擎执行特定API函数.测试用例进入HDL仿真过程;通过调用外设的atta tch命令,使外设模型连接到待验证的USB主控器;联合仿真引擎等待外设模型连接中断,停止在当前时刻,直到中断有效;联合仿真引擎执行外设模型连接中断处理;测试用例继续执行HDL仿真过程。主控器与外设模型按照配置速度,传输类型,传输方向,传送的数据包的工作速度;C驱动循环等待中断信号有效,进行中断处理。AHB监控器、AXI监控器和USB监控器监测主控器AHB端和USB端的工作,进行协议检查,给出报告信息,仿真过程可以通过日志文件方便监测。基于上述思路编写的验证USB主控器各个不同功能的测试用例,在不需要使用任何PLI(编程语言接口)函数的情况下,能够快速、方便地实现USB 2.0主控器各个不同层级的Driver的功能,从而保证能够全面的验证此主控器的特性。表1是在不同的仿真环境下,测试USB主控器与外设进行进行高速传输2 Mb数据所需要的时间。从表中可以看出,系统中使用RTL级CPU IP核的系统,仿真速度最慢;基于ISS指令集模拟器的仿真系统,速度次之;本环境的仿真速度最快。



4 结语
    本文设计的用于USB控器IP验证的软硬件协同仿真系统具有仿真速度快、仿真系统资源占用小、减少软硬件集成验证测试的时间的特点,经实践证明,效果良好。通过使用本系统,软件人员能在硬件设计验证的早期就能进入IP的软件硬件联调,缩短了研发时间。同时,本系统具有良好的可重用性,对其他IP的验证同样有效,可为其他IP的验证提供参考。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

在这篇文章中,小编将对usb的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: USB USB隔离诊断

今天,小编将在这篇文章中为大家带来Type-C接口的有关报道,通过阅读这篇文章,大家可以对Type-C接口具备清晰的认识,主要内容如下。

关键字: Type-C USB

一直以来,Type-C接口都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来Type-C接口的相关介绍,详细内容请看下文。

关键字: Type-C USB

随着科技的飞速发展和智能手机的普及,USB调试模式已成为许多科技爱好者和开发者不可或缺的工具。通过USB调试模式,用户可以连接手机与电脑,实现数据传输、应用安装、系统调试等多种功能。本文将深入探讨USB调试模式的打开方法...

关键字: USB 智能手机

USB 2.0与USB 3.0到底有什么不同,今天来深入探索两者之间的区别。随着科技的不断进步和设备的不断升级,USB接口作为连接设备的重要桥梁,也在不断发展。USB 2.0和USB 3.0是两种广泛使用的USB接口标准...

关键字: USB 智能手机 USB 3.0

随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。作为手机与电脑或其他设备之间的桥梁,USB(通用串行总线)连接在我们的日常生活中扮演着重要的角色。本文将深入探讨USB如何连接手机,并详细介绍USB连接手...

关键字: USB 智能手机

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

USB(Universal Serial Bus)是一种通用的串行总线标准,它被广泛应用于连接计算机及其外部设备。USB通信系统具有以下特点:

关键字: USB 串行总线 计算机

USB Type-C接口将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: USB Type-C
关闭
关闭