分享

802.11b SoC设计的无缝协同验证

 弓道自然_改名 2007-03-12

802.11b SoC设计的无缝协同验证

上网时间 : 2005年08月15日    

 

SoC内部的CPU对工程师是不透明的,要在硬件上验证SoC和进行软件调试就面临巨大的挑战,本文以802.11b SoC芯片设计为例,说明一种无缝协同验证的新方法。

高度集成系统级芯片的硬件验证和在该硬件上调试软件是当前验证工程学领域面临的严峻挑战。嵌入到SoC内的处理器内核不再是可见的,因为未提供在线硬件加速仿真器或逻辑分析仪的引脚以进行调试和分析。除对硬件的功能验证外,方法学上必须考虑到在嵌入式系统内使用的软件数量的增加。

在SoC系统设计周期中将产生和模拟一个抽象的设计模型。该抽象功能随后被映射到系统的详细架构,且执行架构性能建模。架构映射将设计分割为硬件和软件以实现其功能。硬件小组用Verilog或VHDL实现设计的硬件部分,并使用硬件模拟器进行验证。软件小组用汇编语言、C或C++语言对软件模块进行编码,并使用处理器模型或ICE测试软件。传统上,软件小组需等待硬件原型完成才能够进行软件调试,以实现最终系统集成。

在系统集成过程中通常会出现很多问题。这些问题可能是由对规格的误解、不适当的接口定义以及最后设计上的变化等诸如此类的原因引起的。可通过修改软件或更改硬件来消除错误,前者有可能影响系统性能,后者可能非常昂贵和费时,特别是当涉及集成电路需要重新设计时。在设计周期中提前进行系统集成将有助于及早检测这些集成问题。这可通过在设计周期中及早创建硬件/软件协同验证环境而实现。

图1:802.11b芯片设计方案中
集成了三个部件:MAC软件、
MAC硬件和基带处理器。

无缝软硬件协同验证工具

良好的硬件/软件设计和验证环境可发现功能性和固件(嵌入软件)问题,并在进行硅加工以前加速设计的收敛。这样的硬件/软件设计环境必须能够解决典型的硬件/软件的协同设计工具和工具套件所固有的缺点和局限性。

由Mentor提供的无缝(Seamless)软硬件协同验证工具能够验证芯片的硬件和软件之间正确的相互作用,并能够确定性能有待改进的区域。Seamless工具加速了基于内核的SoC的初步设计实现和验证进程,增加了首试流片成功的机会。SeamlessCVE环境使开发者能够在得到物理原型之前,创建多种基于内核虚拟原型验证平台。基于ARM的平台即是这类平台之一,且已被用于802.11b芯片设计方案。开发者通过在模拟的硬件上执行嵌入软件,可在设计周期中很早发现并纠正硬件/软件的接口错误。由此可降低使问题隐藏至系统集成时的可能性,那时软件已完成,将会因纠错而推迟完成设计。Seamless工具也使开发者能完全观测和控制硬件和软件的运行,从而加速软件的调试运行,而这在完成系统设计过程中经常是一个限制因素。

图2:80211b芯片协同验证环境。.

Seamless工具相对于虚拟硬件能运行诊断代码。在软件执行期间,ARM嵌入式处理器产生数以百万计的存储交易,包括指令取回和内存读写。通过运行速度为10~20时钟/秒的逻辑模拟器进行数以百万计的交易将花费数天时间。Seamless工具为ARM处理器经常访问的存储空间维持独特的存储数组,这使开发者选择要么通过逻辑模拟器,要么通过Seamless工具的拦截而实现对特定存储器范围的访问。

Seamless工具对ARM7、ARM9、ARM9E、ARM10和ARM11处理器系列提供处理器支持套件。每个处理器模型包括三个组成部分:指令集模拟器(ISS)、图形软件调试器(XRAY)以及连结Seamless工具和HDL或C硬件模拟环境的总线接口模型(BIM)。Seamless C-bridge技术支持C硬件模型,从而充分利用C硬件模型较HDL模型更快的模拟速度。

Seamless工具使开发者能看到性能瓶颈问题,并理解开发者修改设计以消除这些瓶颈问题的效果。它能显示嵌入式CPU资源概况表、存储交易(包括高速缓存分析)图表、总线负载图表以及总线仲裁延迟图表。Seamless概要软件既可用Gantt图表显示软件功能函数调用顺序和持续时间,也能用直方图的形式显示每个软件功能函数调用消耗的嵌入式CPU的时间。显示存储交易与时间关系的图表有助于高亮显示峰值内存使用周期以及显示如何更好地平衡内存使用。总线分析显示使开发者能观察总线负载和总线仲裁机制是否最优化。

802.11b芯片的验证

802.11b芯片设计方案中集成了三个部件:MAC软件、MAC硬件和基带处理器(图1)。

主要的MAC硬件结构块包括ARM7TDMI内核、指令码SRAM和数据存储空间。MAC软件实现两项基本功能: 数据服务和管理服务。同时MAC硬件实现传输MPDU(媒体访问控制协议数据单元)和接收MPDU。

运行Seamless工具的第一步是将ARM处理器内存映射到硬件描述中的模拟存储实例中。此时硬件模拟器要求的任何激励已被确定。Seamless的ARM处理器模型可执行C/C++和汇编语言实现的程序,应用软件不需做任何修改。激励包括时钟、外部中断以及串行数据流等。

如图2所示,硬件设计者能运行不需做任何修改的应用软件,而软件工程师能在虚拟原型上测试他们的软件。协同验证环境为设计者在虚拟原型上执行软件和跟踪软件的执行提供了高水平的设计洞察力。可在Xray调试器中执行代码,同时通过硬件模拟器中的跟踪和列表窗口监视总线的活动情况。通过设置断点可控制模拟的执行。

图3:芯片验证单元。

图3表示完整的Specman Elite/Seamless集成环境。Specman Elite除能访问硬件外还能访问软件。利用此特点,验证工程师能控制整个试验环境,并能把系统作为一个整体进行验证。被测试(DUT)的器件由与运行MAC软件的ARM7TDMI及相应的MAC硬件设备组成。硬件器件有输入/输出端口(各四位)、输入/输出32/16-位寄存器以及状态/控制寄存器。硬件和软件一同进行数据包处理。Mentor为Seamless内核提供几个取得专利权的性能优化工具套件,利用这些优化选项,可动态使用以显著改进仿真速度性能。

本文小结

我们对Seamless协同验证工作的效果印象深刻。首先,在得到硬件原型之前,利用Seamless可以验证软件和硬件是否可以协同工作,由此节省了宝贵的时间和工程工作。其次,使用Seamless协同验证环境,可使软件工程师能够确定他们在传统的实际硬件集成期间发现的所有主要问题。Seamless工具作为一种创新的协同验证工具,成为帮助SoC设计团队生产优质的嵌入式芯片的真正现实且强有力的方法。

作者:Qiao Feng

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多