首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA调试技术加快硅前验证

FPGA调试技术加快硅前验证

随着基于FPGA进行原型设计的复杂性不断增加,市场对更好调试技术的需求也日益增加。FPGA原型设计可用于验证、早期软件开发、概念证明等,因此变得非常重要。它的主要职责仍然是执行这些任务,而不是试图找出因原型构建错误而造成的问题。
根据可用的设计或现有任务类型,可能需要不同的调试技术。采用合适的调试技术还可以缩短FPGA设计的验证周期。
本文描述了有关FPGA的一些调试技术,采用这些技术可以加快验证过程,文章同时也指出了它们的局限性。这些调试技术可以用于硅前验证过程中所面临的各种挑战或问题,后面我们将会讨论。
RTL仿真
在RTL还没有完全稳定时,原型设计的一个主要需求是访问和监控内部信号的活动,这有助于找到造成问题的根源,无论问题是由于原型错误还是RTL本身的一些异常造成的。
测试时,RTL仿真需要在模块周围建立一个完整的原型验证仿真环境,能够给予激励,满足内存要求(如果有的话),监控设计错误等。
图1显示了此类RTL仿真设计模型。
图1:RTL仿真模型
图字:要求 验证计划 原型RTL仿真 原型RTL模型 执行板上工作 找到Bug 去除bug执行所有工作
假设/优势
● 此调试方法非常适用,而且在处理设计规模问题时,可以进行调整,目前验证工具可以轻松地处理设计规模问题,但要求仿真时间不能很长,否则会使这种工作几乎没有ROI(投资回报率),而要配备复杂的测试台。
● 如果是一个已经获得验证的设计,它能重新使用现有的验证测试平台,这样就不需要从头开始构建,可以节省时间和精力。
● 工作重点应该侧重于调整现有测试平台,以便使其不需要任何大的更改,就能够运行验证测试套件。
● 可以缩小问题,选择只运行失败仿真,减少对仿真的依赖,检查可能引起问题的信号的仿真波形。
局限性
● 如果是大规模设计,几乎不可能查看设计中的每个信号、监控其行为。
● 采用这种方法的一个前提条件是,验证工程师或软件工程师应该对设计和内部信号具有良好的洞察。
● 此方法比较费时,而且需要软件开发人员付出额外的努力。
● 在设计被分区的情况下,RTL仿真可能没有帮助。假设我们主要试图“再利用”顶层验证环境,并使其轻松为“受测设备原型”工作,要创建更多的层次和设计分区,则会需要进行额外的工作,以修改安装在独立验证环境中的内部信号探针。
● 调试涉及复杂处理的大规模快速流输出数据设计可能具有挑战性,因为这个问题可能在设计层次的各个层级存在。
在复杂的设计中,必须考虑一些更好、更快的调试方式,我们将在后面的章节中讨论。
使用逻辑分析仪的硬件调试
当调试总线位于FPGA的外部引脚上,并通过逻辑分析仪观察它们时,硬件调试涉及内部信号的呈现。这种调试技术对小型逻辑设计真的非常有帮助,因为验证工程师也可以使用逻辑分析仪观察到内部设计信号,从而使调试更加方便快捷。
图2显示了此调试模型。
图2:使用逻辑分析仪的硬件调试
图字:逻辑分析仪 逻辑设计
在这里,可编程的逻辑设计在目标系统中高速运行,可以在真实环境下查看逻辑行为。
假设/优势
● 如无法利用验证测试平台仿真环境,可以采用这种方法进行调试,因为从头开始建立验证测试平台的仿真环境可能既繁琐又费时。
● 此方法可以加快调试过程,因为它使验证工程师能查看内部设计信号的活动。
● 此方法提供了一个进入运行设备的窗口,不需要执行任何额外的软件任务。
● 由于所有验证情况都在FPGA板上执行,因此这种方法可以用于设计,否则一般需要相当长的仿真时间。
局限性
● 设计人员需要手工调试设计,每次都需要手工编辑进行重复调试。调试需要内部节点,没有在设计顶层就必须将它们路由到顶层。
● 电路板上的可用引脚数量制约着探针数量。
● 此方法需要在逻辑分析仪查看器中输入信号名称,以便跟踪所显示的设计信号,因而变得很繁琐。
● 设计中的路由探针可能会导致设备运行或定时问题。
因此,用逻辑分析仪进行调试会非常耗时,丧失活力,不能用于调试复杂的设计。
返回列表