【导读】乙太网路系统单晶片(SoC)的设计日益复杂,电路与功能的模拟验证更是旷日费时。而利用硬体模拟技术,即可处理大量验证作业,又可支援多用户同时进行,能较传统软体模拟方法,达到更快速、准确的效果,有助SoC设计人员提高工作效率。
乙太网路VirtuaLAB软体可提供由软体控制的整合环境,用于生成、传输和分析乙太网路封包,从而对硬体模拟平台内映射的乙太网系统单晶片(SoC)进行测试。随着对连通性需求的大幅增长,网际网路已成为数10亿用户的主要通讯手段。根据“Internet Live Stats”指出,2014年网际网路覆盖人数已达到30亿,占全球人口约40%。
网际网路实现了广泛的资料通讯服务,如电子邮件、视讯下载、Google搜索、推特(Twitter)消息发送、Skype电话等等。表1列出了每天和每一秒钟的主要网际网路活动数量。

网际网路的起源可以追溯到不同时间不同地点的多项发明的汇合,集众人之力完成。垂直发展包括封包交换技术、通讯协议以及源自20世纪60年代的电信行业活动。Xerox Palo Alto实验室在传输控制协定(网际网路协定或TCP/IP)基础上创建了专为“区域网路”(LAN)开发的乙太网标准。
个人电脑的发明,推动了网际网路发展,使其成为现如今这样拥有30亿使用者的网路。没有个人电脑及其关联设备(如印表机和扫描器),网际网路可能就只能局限于军事和学术机构中。
在网路术语中,所有连接到网路的设备都被分类为网路节点。在最基本的网路结构中,各节点通过集线器连接在一起。即多埠设备将任何到达的资讯包复制到与之连接的所有其他埠(节点)(图1)。

图1.典型基于集线器的网路配置
这种最简单的方法存在一个问题,即网路的发展会被限制在数台设备或节点当中。
基于集线器的网路中,有四个问题阻碍了网路扩展:
.频宽:通过一段时间内传输的资料量进行测量。在集线器网路中,使用者共用总频宽。
.延迟:通过封包到达目的地的时间进行测量。在集线器网路中,传输规则使得延迟增加到不能接受的程度。
.网路故障:在集线器网路中,一个节点可能会引发其他节点出现问题,如过度广播或不恰当的速度设置。
.冲突:多个节点同时传输封包时会发生冲突,因此可能有必要进行重新传输。
要解决并纠正这些问题,业界开发了可替代集线器的新设备。其中,交换机和路由器可保留频宽、降低延迟、避免网路故障以及防止冲突。
乙太网SoC案例研究
早在1989年,Kalpana就发明了七埠乙太网交换机,可处理10Mbit/s流量。时至今日,乙太网交换机和路由器已达到256个埠,到年底可能还将达到1024个埠,它们可处理1/10/40/100/120Gbit/s的流量。尽管业界预测未来埠数量还将增加,但受到传输介质的限制,频宽不太可能会提升到1000Gbit/s,可看到采用平行处理方法增加频宽的措施。网路交换的延迟持续下降,到如今,最低延迟已降至1μs以下。
大量埠、流量增加、延迟降低、安全性整体提升以及易用性,使得如今的网路交换机和路由器成为巨大的电路设计,达到了五亿逻辑闸数量级,仅屈居于最大的处理器和图形晶片之后。网路SoC的设计,包含128埠乙太网介面,且可支援1/10/40/100/120Gbit/s等不同的连结速度,在实体晶片可用之前,验证此类复杂积体电路(IC)设计是一项难以完成的任务。
当可以在电路区块层级使用硬体描述语言(HDL)模拟时,用模拟流量来验证数亿门级的整个设计显得不合实际,而且必然会被淘汰。这是在电路内类比(ICE)模式中采用硬体模拟的主要案例。
这种验证方式的独特之处在于能通过真实流量对设计进行测试。设定上针对每个埠需要一台乙太网测试仪。由于测试仪和模拟的待测设计(DUT)之间速度范围差异较大,因此不能直接连接,需要在两者之间插入速率适配器。这样就可以将测试仪的高速调整到类比至DUT的相对较低速度。
分析中的设计含128个埠,需要设置128个乙太网测试仪和128个乙太网速度适配器,以及大量接线(图2)。除了错综复杂的布线、潜在的硬体不可靠性、整体开支外,最令人沮丧的是整个设置只能支援模拟实验室附近的单一用户。

图2.128埠且支援1/10/40/100/120Gbit/s传输率的乙太网交换机通过电路内类比(ICE)进行验证。
VirtuaLAB用于网路设计验证
将这种设置与采用虚拟方法的设置进行比较,如明导国际(Mentor Graphics)的虚拟乙太网设备(VirtuaLAB)。在此场景中,装有Linux环境的工作站连接硬体加速器,在工作站上用软体对乙太网测试仪实现一样的行为模式。基于成熟的实现智慧财产权(IP),模型准确再现了实际的物理测试仪。
这种虚拟测试仪包括乙太网资料包生成器和监视器(EPGM),可生成、传输并监控DUT的乙太网资料包。可以为1G、10G、40G/100G和120G分别配置GMII、XGMII、XLGMII/CGMII和CXGMII介面。VirtuaLAB软体也可对流量进行离线分析,提供统计资料,并支援下列功能。
VirtuaLAB虚拟测试仪和DUT之间的介面包括一个VirtuaLAB-DPI实例,它负责与虚拟乙太网扩展的寄存器传输级(xRTL)交易处理器通讯,该处理器与连接到DUT的Null-PHY相连。任意xMII支援类型的每个埠需要一个xRTL交易处理器(图3)。

图3.VirtuaLAB和DUT之间的介面采用负责与虚拟乙太网xRTL通讯的一个EPGM-DPI实例。
VirtuaLAB可为每个工作站提供32GMII、XGMII、XLGMII/CGMII和CXGMII埠。多个工作站的多个VirtuaLAB应用可以结合在一起,即实现多个传输通道,可支援多埠数所需配置。采用高速链路(HSL)卡将各个工作站的协同模型(Co-model)连接到模拟器中。紧密集成的传输机制已准备就绪,设计时钟性能已调节至最佳化,并且它对测试平台来说是透明的。由于采用并行运行时和调试架构,资料流(Data-plane)硬体模拟流量会随埠数呈线性增长。图4为多个协同模型拓扑的架构图。

图4.多个协同模型拓扑的高层视图
除了实现高速资料流传输外,采用这种方法还有诸多其他益处。首先,通过远端存取可快速重新配置虚拟测试仪,以便执行各项功能。其次,工作站是稳定可靠的设备,只占同等功能的复杂乙太网测试仪的一小部分成本。
更重要的是,其能支持多重平行用户,在大型软体发展团队备份时特别有用。同样重要的是,VirtuaLAB设置可利用企业伺服器的资讯科技(IT)管理功能,是将硬体模拟资料中心设置为企业级模拟资源的理想解决方案。
VirtuaLAB支持通过定向(Directed)的测试方法来定义并控制进入硬体模拟DUT的特定封包串流,然后跟踪从DUT返回的封包内容。它可以配置用于多个协同模型主机,主机由一个软体实例,以及虚拟乙太网xRTL交易处理器支援,交易处理器连接到Null-PHY和硬体模拟器上的DUT。此软体可在最多八个协同模型主机上运行。可在一个工作站上控制集中“控制器”软体,对VirtuaLAB实例进行管理。
VirtuaLAB动态埠组重新配置支援复杂测试
乙太网VirtuaLAB非常适合于复杂测试场景的生成和监控。采用互动介面和批次处理模式TCL命令介面来控制媒体存取控制(MAC)并生成由协议和资料流所组成的金字塔。乙太网封包结构的示例包括非同质资料包类型、所有乙太网封包类型、封包资料酬载(Payload)、Jumbo封包、虚拟区域网路(VLAN)、TCP/IP、使用者资料封包协定(UDP)、PAUSE包、网际网路群组管理协议(IGMP)、位址解析通讯协定(ARP)等。每种协议类型的流量百分比可以和不同的资料包大小或资料流程随机大小相混合。封包传输仲裁包括多种演算法:如WRR、DWRR、SO和加密随机乱数(Random)等。
乙太网VirtuaLAB为1/10/40/100Gbit/s全双工速度采用动态埠组重新配置功能,支援复杂交换拓扑的压力测试和错误注入。例如,xMII/PCS宽度、链路速度、链路建立/断线,以及故障状态都可在硬体模拟运行时进行动态配置,并且不需重新编译即可支援对大量埠组配置的测试。回圈冗余校验(CRC)、前置讯号(Preamble)、IFG和网路速率等协定和性能违规均可报告出来。资料包可以在交互或批次处理介面进行查验,以检查资料包统计、发射器(TX)/接收器(Rx)跟踪、中继资料(如签名)、时间戳记以及线路中的所有内容。
硬体模拟提供复杂性能分析
硬体模拟的特点之一是,它能对大型复杂系统进行复杂性能分析。硬体模拟用于验证封包分类、筛选、速率、小频宽(BW)、封包导向规则、流量调整、CoS、删除序列以及利用签名分析对流量进行IFG分析。
某些情况下,可能需要数百万个资料包才能切中当前设计中稳态分析的重点。以测量兆百万位元组乙太网交换机的流量位元速率为例。采用虚拟乙太网签名生成和封包时间戳记(TS)来计算这些数据。
在此测量示例中(图5),流速X=(Window FlowX中的位元组数)×8/(1-ms时间 WindowFlowX)。在大量埠数的设备软体模拟中,像这样每个埠每个流量的测量都可以轻松耗掉一周的时间。但通过硬体模拟,同样的测量在1小时内就能完成。

图5.采用硬体模拟,各埠的测量可以在1小时内完成。
总而言之,乙太网VirtuaLAB可提供由软体控制的环境,用于生成、传输和分析乙太网资料包,从而对硬体模拟平台内映射的乙太网SoC进行测试。通过软体模拟方法,一般每天可验证1000个资料包,而硬体模拟和VirtuaLAB乙太网的处理量却达到每天1100万以上。全球位于多个地点的平行多用户可以同时受益。
VirtuaLAB作为一项快速、准确、易用的解决方案,将复杂乙太网SoC设计如期推向市场,极大提升了效率。