作者:Lauro Rizzatti博士,验证顾问
以太网 VirtuaLAB 可提供由软件控制的环境,用于生成、传输和分析以太网数据包,从而对硬件仿真平台内映射的以太网 SoC 进行测试。
随着对连通性需求的大幅增长,互联网已成为数十亿用户的主要通信手段。根据“Internet Live Stats”,2014年互联网覆盖人数已达到三十亿,占全球人口约40%。
作为“全球互联网络和计算机系统”,互联网实现了广泛的数据通信服务,如电子邮件、视频下载、Google 搜索、推特消息发送、Skype 电话等等。表 1 列出了每天和每一秒钟的主要互联网活动数量。
表 1:2015 年 3 月 23 日这一天每一秒钟中主要互联网事件发生的次数。(来源:www.internetlivestats.com)
互联网的起源可以追溯到不同时间不同地点的多项发明的汇合,参与人数众多。垂直发展包括分组交换技术、通信协议以及源自 20 世纪 60 年代的电信行业活动。Xerox Palo Alto 实验室在传输控制协议(互联网协议或 TCP/IP)基础上创建了专为“局域网”(LAN) 开发的以太网标准。
个人计算机的发明,推动了互联网发展,使其成为现如今这样拥有三十亿用户的网络。没有个人计算机及其关联设备(如打印机和扫描仪),互联网可能就只能局限于军事和学术机构中。
在网络术语中,所有连接到网络的设备都被分类为网络节点。在基本的网络结构中,各节点通过集线器连接在一起。即,多端口设备将任何到达的信息包复制到与之连接的所有其他端口(节点)(图 1)。
这种简单的方法存在一个问题,即网络的发展会被限制在数台设备或节点中。基于集线器的网络中,有四个问题阻碍了网络扩展:
• 带宽:通过一段时间内传输的数据量进行测量。在集线器网络中,用户共享总带宽。
• 延迟:通过数据包到达目的地的时间进行测量。在集线器网络中,传输规则使得延迟增加到不能接受的程度。
• 网络故障:在集线器网络中,一个节点可能会引发其他节点出现问题,如过度广播或不恰当的速度设置。
• 冲突:多个节点同时传输数据包时会发生冲突,因此可能有必要进行重新传输。
要解决并纠正这些问题,业界开发了可替代集线器的新设备。其中,交换机和路由器可保留带宽、降低延迟、避免网络故障以及防止冲突。
以太网 SoC 案例研究
早在 1989 年,Kalpana 就发明了七端口以太网交换机,可处理 10-Mb/s 流量。今天,以太网交换机和路由器已达到 256
个端口,到年底可能还将达到 1024 个端口。它们可处理 1/10/40/100/120 Gb/s
的流量。尽管业界预测未来端口数量还将增加,但受到传输介质的限制,带宽不太可能会提升到 1000
Gb/s。我们可以看到采用并行方法增加带宽的措施。网络交换的延迟持续下降,到如今,低延迟已降至1 µs以下。
大量端口、流量增加、延迟降低、安全性整体提升以及易用性使得如今的网络交换机和路由器作为的 IC 设计得以迅猛发展,达到了五亿门级。仅屈居于的处理器和图形芯片之后。
在硅可用之前,验证此类复杂 IC 设计是一项难以完成的任务。我们来考虑下现代片上系统 (SoC) 的设计,其包含 128 端口以太网接口,可用带宽较多,有1/10/40/100/120Gb/s。
当可以在块级别使用硬件描述语言 (HDL) 仿真时,用仿真流量来验证数亿门级的整个设计显得不合实际,而且必然会被淘汰。这是在电路内模拟 (ICE) 模式中采用硬件仿真的主要案例。
这种验证方式的独特之处在于能通过真实流量对设计进行测试。设置需要对每个端口使用一个以太网测试仪。由于测试仪和模拟的被测设计 (DUT) 之间速度范围差异较大,因此不能直接连接,需要在两者之间插入速率适配器。这样就可以将测试仪的高速调整到模拟DUT 的相对较低速度。
分析中的设计含 128 个端口,需要设置 128 个以太网测试仪和 128 个以太网速度适配器,以及大量接线(图 2)。除了错综复杂的布线、潜在的硬件不可靠性、整体开支外,令人沮丧的是整个设置只能支持模拟实验室附近的单用户。
图 2:128 端口,1/10/40/100/120-Gb/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 可为每个工作站提供 32 GMII、XGMII、XLGMII/CGMII 和 CXGMII 端口。多个工作站的多个 VirtuaLAB 应用可以捆绑在一起,制成即多个协同模型,从而支持大端口计数配置。采用高速链路 (HSL) 卡将各个工作站的协同模型连接到模拟器中。紧密集成的传输机制已准备就绪,设计时钟性能已调节至化,并且它对测试平台来说是透明的。由于采用并行运行 时和调试架构,数据平面硬件仿真流量会随端口数呈线性增长。图 4 为多个协同模型拓扑的高层视图。
除了实现高速数据平面传输外,采用这种方法还有诸多其他益处。首先,通过远程访问可快速重新配置虚拟测试仪,以便执行各项功能。其次,工作站是稳定可靠的设备,只占同等功能的复杂以太网测试仪的一小部分成本。
更重要的是,其能支持多个并发用户,在大型软件开发团队备份时特别有用。后同样重要的是,VirtuaLAB 设置可利用企业服务器的 IT 管理功能,是将硬件仿真数据中心设置为企业级模拟资源的理想解决方案。
虚拟以太网设备 (VirtuaLAB) 支持通过定向测试方法来定义并控制进入硬件仿真 DUT 的特定数据包流,然后跟踪从 DUT 返回的数据包。它可以配置用于多个协同模型主机,主机由一个软件实例,以及虚拟以太网 xRTL 事务处理器支持,事务处理器连接到 Null-PHY 和硬件仿真器上的 DUT。该软件可在多八个协同模型主机上运行。
可在一个工作站上调用集中“控制器”软件,对VirtuaLAB 实例进行管理。
复杂测试
以太网 VirtuaLAB 非常适合于复杂测试场景的生成和监控。采用交互和批处理模式 TCL 命令界面来控制 MAC
并生成协议和数据流金字塔。以太网数据包结构的示例包括非同类数据包类型、所有以太网帧类型、原始载荷、巨型数据包、VLAN、TCP/IP、UDP、
PAUSE 帧、IGMP、ARP 等。每种协议类型的流量百分比可以和不同的数据包大小或数据流随机大小相混合。数据包传输仲裁包括多种算法:如
WRR、DWRR、SO 和 Random 等。
以太网 VirtuaLAB 为 1/10/40/100 Gb/s 全双工速度采用动态端口组重新配置功能,支持复杂交换拓扑的压力测试和错误注入。例如,xMII/PCS 宽度、链路速度、链路上行/下行,以及故障状态都可在硬件仿真运行时进行动态配置,并且需要重新编译步骤来支持对大量端口组配置的测试。CRC、报头、 IFG 和线路速率等协议和性能违规均可报告出来。数据包可以在交互或批处理会话中进行评审,以检查数据包统计、Tx/Rx 跟踪、元数据(如签名)、时间戳以及线路中的所有内容。
复杂分析
硬件仿真的标志之一是,它能对大型复杂系统进行复杂性能分析。硬件仿真用于验证数据包分类、筛选、速率、BW、流量监管、流量整形、CoS、删除序列以及使用签名分析对流量进行 IFG 分析。
某些情况下,可能需要数百万个数据包才能切中当前设计中稳态分析的要点。以测量兆兆字节以太网交换机的流量比特率为例。采用虚拟以太网签名生成和数据包时间戳 (TS) 来计算这些测量。
在此测量示例中(图 5),流速 X = (WindowFlowX 中的字节数) * 8 / (1-ms 时间 WindowFlowX)。在大量端口数的设备软件仿真中,像这样每个端口每个流量的测量都可以轻松耗掉一周的时间。但通过硬件仿真,同样的测量在一小时 内就能完成。
总结
总而言之,以太网 VirtuaLAB 可提供由软件控制的环境,用于生成、传输和分析以太网数据包,从而对硬件仿真平台内映射的以太网 SoC
进行测试。通过软件仿真方法,一般每天可验证 1000 个数据包,而硬件仿真和 VirtuaLAB 以太网的处理量却达到每天 1100
万以上。全球位于多个地点的并发用户可以同时受益。VirtuaLAB 作为一项快速、准确、易用的解决方案,将复杂以太网 SoC
设计如期推向市场,极大提升了效率。