一种基于分布式计算的芯片仿真加速设计

2024-02-17 12:52张栗榕
电子技术应用 2024年1期
关键词:数据流子系统分布式

王 锋,张栗榕,王 磊

(新华三半导体技术有限公司 西安研究所,陕西 西安 710075)

0 引言

芯片复杂度在多维度提升,一方面体现在晶体管数量剧增,另一方面,芯片中复杂子系统数量增加。芯片复杂度也在改变芯片设计生态,西门子EDA 和Wilson Research 公布了2022 年一起合作的研究报告白皮书,定量分析了芯片复杂度提升所带来的一系列设计和验证方法学变化及新需求,它们正在驱动未来几年芯片开发领域变革。子系统的验证随着复杂度和数量提升会越来越具有挑战性;同时,多个复杂子系统并行工作时的验证成为另一个验证难点;还有子系统的异质性,例如高性能模拟/混合信号模块的验证方法不一致,也给芯片系统验证带来挑战。验证逐渐占据了整个产品开发周期很大一部分,仅功能验证一项就需要设计团队约70%的精力和时间。芯片验证将成为重中之重[1]。该白皮书表示,芯片首次流片成功的比例在下降,约有32%的项目在第一次“spin”取得成功,这意味着68%的项目没有能够按照计划交付。子系统和芯片系统层面验证由于DUT(Device Under Test)规模比较大,传统的EDA验证方法一直受制于仿真速度等限制,导致验证周期长,无法快速发现、迭代和收敛设计问题。如何高效保证芯片设计质量、一次流片成功,成为芯片研发领域急需解决的瓶颈。

为了提高仿真效率,一般采取的措施包括部署高性能的服务器和存储资源,优化系统级验证场景和用例,采用EMU 或FPGA 等硬件加速及原型验证资源并行验证等。这些措施在提升测试执行效率时,也大幅提高了投入成本,或者对验证覆盖以及测试调试的效率有影响。

本文介绍一种自研的、利用分布式验证平台并行计算特点来加速芯片整体仿真速度的EDA 仿真加速系统(DVA)。该系统基于UVM 组件进行扩展,底层基于原生的Linux socket 组件进行通信,设计了一套包括控制面、数据流和会话的三平面通信同步机制,充分利用分布式验证平台,并行部署、管理仿真任务来加速芯片整体的仿真速度。

1 DVA 系统设计和实现

1.1 系统组成

以两个通用以太网接口DUT 通信为例说明DVA 系统结构。DVA 验证系统的验证平台(TB)划分为两类:Manager TB(例如图1 上面的TB_ID:100,负责DVA 系统配置和管理)和Simulation TB(基于待测芯片逻辑分割后的各DUT 而搭建,例如图1 下方左侧和右侧两个ETH_TB,TB_ID:200 和TB_ID:300)。

图1 DVA 验证系统架构示意图

上述DVA 验证系统的两类TB 由三类通信联结(如图1 中虚线箭头所示),即控制面(图1 中Control Plane箭头)、数据流(图1 中 DataStream 箭头)和会话(图1 中Transaction 箭头)。控制面通信是每个Simulation TB 和Manager TB 都要维护的一个通信通道,其主要功能是消息和事件的处理(Manager TB 处理Simulation TB 发送的消息和事件)和转发(Manager TB 将一个Simulation TB 发送的消息和事件转发到其他目的Simulation TB);数据流通信是芯片分割后各DUT 之间的信号交互,对应各Simulation TB 之间的业务数据流传输;会话是将DVA 验证系 统Driver 和Monitor 组件 的Transaction 发送到Manager TB Checker 组件的通信通道。

Manager TB 中包含的主要组件是 master_data_socket_checker_agent 和 socket_control_process。其 中master_data_socket_checker_agent 实现基于会话通信接收Simulation TB 发送的激励和输出会话数据并进行比对(将Driver 和Monitor 组件的Transaction 发给Manager TB 进行checker 比对),作为整个DVA 验证系统平台的 checker。socket_control_process 组件基于socket通 过TLV(Tag Length Value)消息和各个 Simulation TB 进行控制面通信,管理分布式Simulation TB 的仿真流程(包括消息处理和分发,事件处理和分发等)和拓扑描述文件处理等。

Simulation TB 是基于芯片DUT 逻辑分割出的多个小DUT 块而搭建的多个验证平台,执行实际的业务仿真任务,同时还包括和Manager TB 间的控制平面通信(处理消息和事件等)、数据流通信(Simulation TB 间的业务数据交互)以及会话通信(将Driver 和Monitor 组件的Transaction 发给Manager TB 进行checker 比对检查)。

以图1 中左下方ETH_TB(TB_ID:200)为例,其中的ETH_DUT 是逻辑分割后的一个小以太网模块DUT,左边的TB 组件分别是socket_data_process、TXIF_DRV_AGT 和RXIF_MON_AGT。其中socket_data_process 组件实现将DVA TX 方向(本例定义从左到右的数据流方向为DVA 发送,即TX 方向)的激励和RX 方向(本例定义从右到左的数据流方向为DVA 接收,即RX 方向)采集的Transaction 分别发送给 Manager TB。

TXIF_DRV_AGT 实现将Transaction 转换成接口时序发给ETH_DUT 作为DVA TX 方向的激励。RXIF_MON_AGT 采集DVA RX 方向的接口时序并将其转换为Transaction。ETH DUT上方的socket_control_process组件实现和Manager TB 的控制面通信:一方面接收Manager TB 对 DVA 系统整体的流程控制,另一方面将当前Simulation TB 的消息和事件发送给Manager TB 进行处理。右边的virtual_data_transfer_agent 组件实现和其他Simulation TB 间的业务通信。

1.2 拓扑组网描述

DVA 验证系统含有一个Manager TB,可分布式部署多个Simulation TB。Simulation TB 之间灵活组网,通过拓扑组网描述文件确定各Simulation TB 间的拓扑组网关系。DVA 验证系统初始化时解析该拓扑组网描述文件,建立分布式通信组网架构TB。拓扑组网描述文件如下。

SLV_TB_NUM=2

TB_NAME_ID_MAP=MASTER_TB: 100;ETH_TB_LEFT:200;ETH_TB_RIGHT:300

COM_TB_DES=200_300_DRV,1,200,300,10900

COM_TB_DES=300_200_DRV,1,300,200,10901

COM_TB_DES=200_100_DRV,2,200,100,10902

COM_TB_DES=200_100_MON,3,200,100,10903

COM_TB_DES=300_100_DRV,2,300,100,10904

COM_TB_DES=300_100_MON,3,300,100,10905

SLV_TB_NUM 表示该DVA 验证系统中包含两个Simulation TB;

TB_NAME_ID_MAP=MASTER_TB: 100;ETH_TB_LEFT:200;ETH_TB_RIGHT:300 表示DVA 验证系统中有包含一个Manager TB,ID 是100,两个Simulation TB,ID分别是200 和300。COM_TB_DES=200_300_DRV,1,200,300,10900,表示建立的1 个socket 连接关系,连接类型是1(数据流类型),TB ID 200 Client 到TB ID 300 Server 的连接,连接的socket 端口号是10900。

以此类推,总共建立了两个数据流类型(连接类型是1)的通信连接,两个Transaction Driver 类型(连接类型是2)的通信连接,两个Transaction Monitor 类型(连接类型是3)的通信连接。

控制平面的连接是默认建立的,Manager TB 是Server 端,多个Simulation TB 是Client 端。

为方便配置和管理,为该系统开发了图形用户界面GUI,如图2 所示。通过该GUI 可更直观配置DVA TB信息和TB 之间的socket 连接关系并生成对应的拓扑组网描述文件。

图2 拓扑组网描述配置GUI

1.3 通信传输格式

(1)控制平面传输格式。控制平面采用TLV 格式传输消息和事件:Type-Length-Value,Type 以8 位二进制表示命令类型ID,Length 以8 位二进制表示Value 的实际字节长度,支持最大256 B 的Value 字节长度,Value 表示Payload,支持变长消息。

(2)会话平面传输格式。Transaction 平面传输的是变长的报文,以8 bit 的动态数组格式承载,根据实际的Transaction 长度运行时申请动态数组的大小,在socket底层通过去粘包技术获取单个变长的Transaction 数据。

数据流平面传输格式支持两种业务数据流传输类型:(1)SB(Signal Based)模式,以时钟周期粒度传输DUT port 的信号值;(2)TB(Transaction Based)模式,以Transaction 格式传输接口数据,在对端连接的DUT 进行Transaction 解析生成接口时序信号。SB 模式构建DVA系统比较简单,但是对数据流通信能力要求高,需要做好 Cycle 级的数据流同步;TB 模式需要基于端口信号对Transaction 进行构建和解析,构建DVA 系统比较复杂,但不需要做Cycle 级的数据流同步,对数据流通信能力压力较小。

1.4 DVA 系统工作流程

如图1 所示,DVA 验证系统流程主要体现了Manager TB 和Simulation TB 之间三个通信平面建立和关闭的过程,Manager TB 和Simulation TB 之间消息和重点事件同步的流程等。通过这套三个平面的通信机制,将分布式TB 间的仿真流程和业务数据流统一控制起来,形成相互协调的分布式计算结构。

2 使用本系统的收益

2.1 提高验证效率

通过使用本系统,有效地解决了大芯片以及多芯片组网时EDA 仿真周期长的痛点。经实际测试,相比于传统EDA 分立验证平台,整体仿真速度可以达到5~10倍以上的加速比(与芯片DUT 的逻辑划分形态相关)。

2.2 通用性

本系统不仅可应用在单个芯片的子系统和全芯片EDA 仿真,也适用于多个芯片套片组网、多die 互联的Chiplet 系统,以及EMU 和EDA 联合仿真等多种验证场景中。

2.3 节省EDA 子系统和系统级验证平台搭建时间

EDA 验证一般先做模块级验证,当模块功能稳定后,启动子系统和系统级验证。子系统和系统级验证环境需要尽可能复用BT 的组件来搭建。当采用DVA 验证方案,只要在模块级集成DVA 组件(如图1 所示),就可以快速集成到DVA 验证系统,不需要重新搭建子系统和系统级的TB,高效启动芯片DVA 验证。

3 结论

综上所述,DVA 验证系统的本质是通过高效利用已有EDA 资源,部署分布式计算管理系统,以减少芯片整体仿真时间;同时保持仿真调试的便利性和完整覆盖特点。本系统可以在原有TB 的基础上快速构建DVA 验证系统,有效加快仿真速度,提高验证效率。

DVA 系统可应用于更多大规模SoC 芯片、多个芯片套片组网、多die 互联Chiplet 等对仿真效率和验证覆盖要求较高的项目中。未来参照更多实际应用继续升级迭代,例如考虑多Manager TB 场景等,为不断提升大规模SoC、SiP 系统开发质量和效率做出更多贡献。

猜你喜欢
数据流子系统分布式
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
汽车维修数据流基础(下)
驼峰测长设备在线监测子系统的设计与应用
一种提高TCP与UDP数据流公平性的拥塞控制机制
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
基于数据流聚类的多目标跟踪算法
基于DDS的分布式三维协同仿真研究
北医三院 数据流疏通就诊量