如何加快网络设计验证的速度?
扫描二维码
随时随地手机看文章
随着物联网 (IoT) 的迅猛发展,网络供应商也受到了巨大的影响。毕竟,如果没有网络基础设施的支持,IoT 也将不复存在。造成的其中一个后果便是网络设备中以太网端口数量的显著增加。
今天,以太网交换机和路由器已达到 256 个端口(到年底将会增加到 1024 个端口),而且它们可处理高达 120 Gb/s 的流量。同时,网络交换的延迟也在持续下降中,最低延迟已降至 1 µs。所有这些因素促使如今的网络交换机和路由器芯片成为有史以来最大规模的芯片,达到了五亿门级。在流片完成之前验证此类复杂 IC 设计是一项难以完成的任务。我们来考虑下具有 128 端口以太网接口的 SoC 设计。
尽管可以在块级别使用 HDL 软件仿真时,用仿真流量来验证数亿门级的整个设计显得不合实际,而且必然会被淘汰。这是一个在电路内模拟 (In-Circuit-EmulaTIon ICE) 模式中采用硬件模拟的主要案例。然而,ICE 配置需要对每个端口使用一个以太网测试仪。由于速度上的不匹配,测试仪和硬件仿真器不能直接连接,需要在两者之间插入速率适配器。
例如,我们的128 端口设计的测试设置需要 128 个以太网测试仪和 128 个以太网速度适配器,以及将其连接起来的所有接线(图 1)。除了错综复杂的布线、潜在的硬件不可靠性、整体开支外,整个设置只能支持一位用户在现场调试。远程访问根本无法实现,因为远程需要进行人为操作,为不同的用户配置不同的誓言环境。
这种协议激励建模环境的局限性早在几年前就已显现出,因而才有必要创建一个由软件控制的环境,用于生成、传输和分析以太网数据包,从而对硬件仿真平台内映射的以太网 SoC 进行测试。通过软件仿真方法,一般每天可验证 1,000 个数据包,而硬件仿真的处理量可达到 1,100 万以上。
在此场景中,以太网测试仪模型运行于连接到硬件仿真器的Linux工作站上。基于成熟的实现 IP,模型准确再现了实际的物理测试仪。这种虚拟测试仪包括以太网数据包生成器和监视器 (EPGM),可以为 1G、10G、40G/100G 和 120G 网络分别配置 GMII、XGMII、XLGMII/CGMII 和 CXGMII 接口。每个支持的MII端口都需要一个 xRTL 事务处理器(图 2)。
图 1. 一个使用 ICE 验证的 128 端口以太网交换机
多个工作站的多个测试仪应用可以组合在一起,制成多个协同模型,从而支持大端口计数配置。采用高速链路 (HSL) 卡将各个工作站的协同模型连接到硬件仿真器中。高度集成的传输机制为时钟性能的最大化作了优化,并且它对测试平台来说是透明的。由于运行和调试是并行的,数据平面硬件仿真流量会随端口数呈线性增长。
此方法还有其他几个优点。首先,通过远程访问可快速重新配置虚拟测试仪,以便执行各项功能。其次,工作站是稳定可靠的设备,只占同等功能的复杂以太网测试仪的一小部分成本。更重要的是,其能支持多个并发用户,在大型软件开发团队备份时特别有用。最后同样重要的是,可以将硬件仿真数据中心当作企业级硬件仿真资源使用。
此方法同样非常适合于复杂测试场景的生成和监控。采用交互和批处理模式 TCL 命令界面来控制所有MAC并生成各种各样的协议和数据。每种协议可以以不同的数据长度或者随机的数据长度按百分比混合。数据包传输仲裁策略包括多种算法:如 WRR、DWRR、SO 和 Random 等。
图 2. VirtuaLAB 以太网环境
其还支持复杂交换拓扑的压力测试和错误注入。协议和性能违规均可报告出来。数据包可以在交互或批处理模式中进行分析,以检查数据包统计、Tx/Rx 跟踪、元数据、时间戳以及线路中的所有内容。
硬件仿真的标志之一是,它能对大型复杂系统进行复杂性能分析。某些情况下,可能需要数百万个数据包才能切中当前设计中稳态分析的要点。以测量百万兆以太网交换机的流量比特率为例。可以采用虚拟以太网签名生成和数据包时间戳 (TS) 来计算这些测量。
图 3. 采用硬件仿真,各端口的测量可以在一小时内完成
在大量端口数的设备软件仿真中,像这样每个端口每个流量的测量都可以轻易耗费一周的时间。但通过硬件仿真方法,同样的测量在一小时内就能完成。