0 引言
我们在上篇中和大家探讨了用户在进行大规模 复杂 SoC 设计原型验证时在全局时钟及复位同步, 大规模设计分割以及高速接口与先进 Memory 控制 器 IP 验证等方面遇到的关键困难,并提出了相应的 解决方案帮助用户来克服这些困难。接下来我们会 和用户探讨在大规模复杂 SoC 设计原型验证时用户 常常会面临的大规模设计调试,系统部署与组网检 测以及多用户多平台管理的挑战, 并提出相应解决 方案,来帮助用户应对这些挑战,缩短 SoC 的原型验 证周期。
1 大规模复杂 SoC 设计原型验证中遇到的挑战
1.1 大规模设计调试挑战
大规模复杂 SoC 设计原型验证过程中,需要确 保设计中的故障是可调试的,最大程度减少开发过 程中的调试时间。当用户把设计下载到 FPGA 以后, 第一次运行总会遇到各种失败情况。原因有可能是 FPGA 原型组网不正确,设计本身有问题或者是设 计编译过程中引入的错误(如设计分割和管脚时分复用导致的时序错误)。用户需要一个好的测试方法 来确定硬件是否运行正确,所有设计中的功能模块是否功能正常。那么,就需要外部逻辑分析仪或内在 逻辑分析仪来侦测故障所在。目前,大多数用户都习 惯于使用 FPGA 厂商提供的 FPGA 内嵌逻辑分析仪 来进行 FPGA 原型验证系统上板测试阶段的调试。 然而用 FPGA 厂商内嵌逻辑分析仪进行大规模 SoC 原型验证系统的调试也存在着不少限制。比如:
1)内嵌逻辑分析仪的逻辑实现需要占用用户 的 FPGA 逻辑资源,当用户的 FPGA 逻辑资源比较 紧张时,内嵌逻辑分析仪的资源占用会影响用户设 计的布线及时序,导致用户设计无法完成布线或者 时序异常。
2)内嵌逻辑分析仪的调试数据存储需要占用 FPGA 的内部存储器资源。然后 FPGA 的内部存储 器资源十分有限,当用户需要进行深度调试数据存 储时,FPGA 的内部存储器资源就会不够用。
3)虽然某些 FPGA 厂商提供的内嵌逻辑分析 仪支持多 FPGA 级联调试,但是当待测试设计的触 发条件需要靠来自多颗 FPGA 的触发信号进行复杂 逻辑运算来实现时,FPGA 厂商内嵌逻辑分析仪无 法实现该功能。
4)当用户想要调试的信号不在内嵌逻辑分析 仪调试探针的信号列表的时候,用户往往需要重新 运行一次设计编译流程来修改内嵌逻辑分析仪的调 试探针信号。这类操作非常耗时,而且有可能因为设 计重新编译而造成设计的时序发生变化,导致原来出现的设计 bug 无法复现的情况。
5)内嵌逻辑分析仪的调试探针信号数量有限, 当用户想要看更多的调试探针信号,甚至是需要设 计寄存器及内部存储器全可视调试功能时,FPGA 厂商提供的内嵌逻辑分析仪无法支持。 由于 FPGA 厂商内嵌逻辑分析仪的以上限制, 用户需要有更强大灵活的系统级调试方案来满足大 规模复杂 SoC 设计在进行原型验证时的调试需求。
1.2 系统部署与组网检测挑战
由于大规模复杂 SoC 设计规模庞大,即便使用 业界最大规模的 FPGA,搭建一个大规模 SoC 设计原 型往往需要数十颗甚至是上百颗 FPGA,为了满足 如此复杂的原型验证系统搭建要求,用户需要解决 下面一些问题:
1)首先大规模原型验证系统组网的部署方案 就是一个问题。实验室的桌面一般只适合部署设计 规模为几台 FPGA 原型验证平台组成的原型验证系 统。当用户的设计规模上升到几十颗 FPGA 或更大 规模时,实验室桌面将无法满足用户的部署需求。需 要有专门的空间及易于扩展的环境来进行大规模及 大批量的原型验证系统的部署。此外,部署环境的供 电,散热,温度,湿度,防尘甚至安全性也需要有相应 解决方案。
2)用于大规模原型验证系统组网的互连线缆 长度也是一个难题。普通的基于铜线传输的线缆长 度有限,最长只有 1 米左右,仅能用于同一台或者物 理距离靠近的两台原型验证平台组网,无法适用于 物理距离较远的原型验证平台组网的需求场景。而 大规模 SoC 设计往往有多台甚至数十台原型验证平 台组成,如何实现距离较远的原型验证平台组网?
3)在大规模 SoC 原型系统组网完成之后,用户 怎么样对复杂庞大的组网进行检测也是一个难题。 有时候一套复杂的原型验证系统仅仅因为一根线缆 没有插紧就可能导致整套原型验证系统工作不稳定,而这种问题,往往要耗费用户大量的时间排查出来。
1.3 多用户多平台管理挑战
大规模复杂 SoC 设计原型验证项目团队往往包 含有硬件,逻辑,软件,测试等多组成员,这些项目组 的多组成员有时会分散在不同的地区甚至是国家, 各组成员需要能够方便的通过远程访问大量原型验 证平台的方式来协同工作,并合理分配原型验证平 台访问时间窗口以充分利用原型验证平台资源。对 多个用户多个平台进行原型验证平台资源管理和调 度是一个复杂的工程。需要有一个完善的多用户多 平台的远程管理机制把这些资源有效的管理并且将 资源合理分配给团队的各个成员,避免资源冲突,提 高整个团队的工作效率,降低项目风险。
2 面向大规模复杂 SoC 设计的高密原型验证解决方案
为了应对大规模复杂 SoC 设计在原型验证系统 在设计调试,系统部署与组网检测以及多用户多平 台管理等方面的挑战,用户需要有成熟通用的高密 原型验证解决方案来帮助用户节省项目成本,提高 生产力,并缩短整个 SoC 原型验证的周期。
2.1 大规模设计调试方案
大规模设计调试是原型验证领域的一个难题, 当高密原型验证用户的待验证 SoC 设计下载到 FPGA 原型验证系统无法正常运行的时候,用户需要 有效的调试方案来排查故障的原因。
2.1.1 使用FPGA厂商提供的 ILA 进行多FPGA级联调试
目前,大多数用户都习惯于使用 FPGA 厂商提 供的 FPGA 内嵌逻辑分析仪(ILA)来进行 FPGA 原 型验证系统上的单颗 FPGA 调试。使用 FPGA 厂商 内嵌逻辑分析仪的好处是成本低,仅需配置一个 FPGA JTAG 线缆。调试环境的设置也相对传统逻辑 分析仪相对简单很多。但对于高密原型验证用户来 说,常常会面临的问题是跨 FPGA 的调试需求。由于高密原型验证系统的规模庞大,需要调试的多个模 块往往会分散在几颗不同的 FPGA 中。需要有 cross-trigger 的功能,在 1 颗 FPGA 里的调试模块的 trigger 被触发之后,能同时抓取多颗 FPGA 里调试 模块的 trace 数据。一些 FPGA 厂商提供的 ILA 可以 实现同一个 FPGA 内不同时钟域,不同 FPGA 之间 的 ILA 内核之间的交叉触发。
2.1.2 多 FPGA 并发深度调试方案
虽然高密原型验证用户可以用 FPGA 厂商提供 的 ILA 进行多 FPGA 的级联调试,但是也存在着前 述的用户逻辑资源占用,存储深度,Probe 数量及多 FPGA 的 trigger 信号触发的使用场景限制。为了满 足用户以上的高密原型验证系统调试场景需求,用 户需要有更强大的调试方案支持对大型 SoC 设计进 行全系统的调试,利用最少的 FPGA 资源,完成多颗 FPGA 的并行深度调试。理想的多 FPGA 并发深度 调试方案具有如下特点:
● 利用最少的用户 FPGA 资源,以避免对其设 计的影响。
● 支持用户设置大量的静态探针信号,以便设 计调试。
● 允许用户对于其整个 SoC 全系统的调试。支 持同时对多颗 FPGA 进行并行调试,也可以进行级联,通过 cross-trigger 功能实现更多 FPGA 的级联调试。
● 支持高速的调试数据采样率以及高容量的 波形存储空间。
● 支持以太网接口传输调试数据至 Host PC 进 行分析。
● 支持复杂的内嵌逻辑分析仪触发条件设置。
● 支持动态探针及状态保存恢复功能。
a)为了减少用户 FPGA 资源利用,多 FPGA 并 行调试方案把调试所需的逻辑资源及存储资源和 用户的 FPGA 资源隔离开来,使用一个单独的多 FPGA 深度调试模块来实现调试方案所需的逻辑资 源和存储资源。为了传输用户 FPGA 侧的大量静态 探针调试数据,又不过多占用用户 FPGA 的宝贵普通 I/O 资源,Debug FPGA 和用户 FPGA 之间可以用 Transceiver 来进行通信,以满足高带宽调试数据的 传输需求。同时 Debug FPGA 的 Transceiver 数量需 要尽可能的多,以支持多颗用户 FPGA 并发调试需 求。更多系统并发调试则可以通过 trigger in, trigger out 级联来支持。为了支持海量用户 Debug 数据的存储,需要有外部的大容量,高带宽 DRAM 存储器。
……
本文简介:随着 SoC 设计规模的快速膨胀,越来越多的用户在做大规模 SoC 原型验证时会遇到全局时钟复位同步,大规模设计分割,高速接口及先进 Memory 控制器 IP 验证等关键困难。针对这些困难,一些领先的原型验证系统方案提供商,如国微思尔芯,提供了一系列成熟可重用的通用高密原型验证系统产品和解决方案来解决这些困难,以帮助客户完成大规模复杂 SoC 的原型验证,降低项目风险。
站内下载链接:数字芯片设计与验证需要哪些参考资料白皮书?-思尔芯 | S2C
欲了解思尔芯更多信息,请点击:https://www.s2ceda.com