0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试与验证复杂的FPGA设计(2)——如何在虹科的IP核中执行面向全局的仿真

虹科智能自动化 2022-06-15 17:31 次阅读

仿真和验证是开发任何高质量的基于 FPGA 的 RTL 编码过程的基础。在上一篇文章中,我们介绍了面向实体/块的仿真,即通过在每个输入信号上生成激励并验证 RTL 代码行为是否符合预期,对构成每个 IP 核的不同模块进行实体/块的仿真。

前文回顾

如何测试与验证复杂的FPGA设计(1)——面向实体或块的仿真

在本篇文章中,我们将介绍如何在虹科IP核中执行面向全局的仿真,而这也是测试与验证复杂FPGA设计的第二个关键步骤。

面向全局的仿真

全局仿真意味着验证整个IP实体的正确行为,包括构成产品的每个子模块。为了适应不同客户的用例,虹科SoC-e IP核解决方案在设计时充分考虑了灵活性,这意味着虹科所有的IP核都是高度可配置的,无论是在集成时(以优化 FPGA 中的封装)还是在运行时。借助于有着不同接口选项的寄存器映射(在下面的示例中,使用 AXI4),运行时配置成为可能。

这种灵活性也对仿真过程提出了挑战,因为需要根据仿真环境中的不同测试用例来配置IP。对此,虹科的合作伙伴SoC-e团队开发了一个令人惊叹的智能测试平台环境,在该环境中可以进行实时配置并实现自动化,开发人员可以通过“点击即用”的方式来执行复杂的仿真。例如,测试台可以通过交换机发送以太网帧,并可以通过访问IP 核的统计寄存器来读取结果(并检查输出是否符合预期)。

这极大地加快了调试过程,并允许开发团队执行快速迭代,而这在基于硬件的测试环境中会慢得多。在下图为具有此类全局测试平台架构的框图(基于虹科网管以太网交换机IP核):


2aeca3a8-ebfe-11ec-a2f4-dac502259ad0.png

网管型以太网交换机 (MES) 表示为UUT。其余的测试台组件是符合整个环境的不可综合的 VHDL 模块:

Frame Generator::该模块连接到以太网交换机 IP 的入口端口,负责生成激励(以太网帧)。

Frame Checker:该模块连接到以太网交换机IP的出端口,负责分析交换机转发的流量。

AXI Configurator:它控制 AXI4 配置总线以修改配置寄存器的内容(读/写操作)。

测试平台执行流程

正常的测试平台执行流程如下:首先,AXIConfigurator模块根据测试用例配置IP核。之后,每个FrameGenerator都会生成测试帧,并将其发送到启用的入口端口。帧是通过循环重复某些特定测试文件中定义的内容来生成的。最后,Frame Checker接收帧(接收与否,取决于测试用例)。该块将检查每个端口对应的统计信息,并根据执行的测试用例确定输出是否符合预期的。

虹科SoC-e测试平台架构的一大亮点是Frame Checker可以自动检测多种错误,例如完整性错误、转发错误或帧丢失。这是可实现的,因为Frame Generator可以生成具有特定格式的流量(例如有效载荷中的特殊模式、序列号等),Frame Checker可以解释这些流量。


测试平台测试计划

该测试平台套件的惊人灵活性还与SoC-e定义的严格测试计划相结合。对于每个IP核,都有一个测试计划,旨在在仿真环境中测试尽可能多的特性。

例如,网管以太网交换机IP的测试计划可以被划分为五个主要部分:

通用交换

自定义转发

过滤数据库

优先队列

VLAN

这些部分旨在涵盖与网络相关的不同功能的行为,以及不同的流量模式和情况。


2aff13b2-ebfe-11ec-a2f4-dac502259ad0.png

测试平台的结果可以由开发人员或用户以不同的方式进行分析。TCL控制台用于快速反馈测试结果。然而,在某些情况下,在仿真的特定时刻深入了解特定信号值可能会很有趣。对于这种情况,还开发了预先格式化的波形,以便于查找特定信号。


用于测试执行的命令行界面(CLI)

此测试平台环境中包含的最新功能之一是可以直接从命令行界面(CLI)执行所有测试,而无需打开RTL仿真工具(Vivado或其他工具)。这是一个很大的改进,因为它可以实现更高的测试自动化。它基于使用Vivado编译器命令的脚本(Python)的使用,以便用户生成易于解释的结果。

下图显示了向用户显示的仿真菜单。用户只需选择相应的选项即可执行任何列出的测试:


2b179e50-ebfe-11ec-a2f4-dac502259ad0.png


众所周知,仿真是一个需要大量时间的过程。即使在功能强大的计算机中执行,毫秒或以上范围内的复杂仿真也需要持续数十分钟,甚至更长。为了简化执行所有测试的过程(这需要几个小时),我们实现了一个“-all”选项,它允许在管道中执行所有测试,且无需用户交互。完成所有测试后,它将提供有关每个测试的报告消息(如下图所示),并在测试失败的情况下生成输出文件,以便开发人员稍后进行分析。

2b39b2a6-ebfe-11ec-a2f4-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132158
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49041
收藏 人收藏

    评论

    相关推荐

    fpga仿真和后仿真的区别

    FPGA的前仿真和后仿真在芯片设计和验证过程中扮演着不同的角色,各自具有独特的特点和重要性。
    的头像 发表于 03-15 15:29 348次阅读

    fpga仿真器是什么?它有哪些优势?

    FPGA仿真器是一种用于模拟FPGA(现场可编程门阵列)硬件行为的软件工具。它通过模拟FPGA内部的逻辑电路、时序和接口等,帮助工程师在FPGA
    的头像 发表于 03-15 15:15 274次阅读

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 290次阅读

    fpga验证测试的区别

    FPGA验证测试在芯片设计和开发过程中都扮演着重要的角色,但它们各自有着不同的侧重点和应用场景。
    的头像 发表于 03-15 15:03 285次阅读

    FPGAIP学习的正确打开方式

    本帖最后由 jf_25420317 于 2023-11-17 11:10 编辑 FPGA开发过程,利用各种IP,可以快速完成功能开发,不需要花费大量时间重复造轮子。 当我们面
    发表于 11-17 11:09

    何在非Autosar应用执行I2C?

    驱动程序。 是否正确? 为什么CDD 仅用于 MCAL 标签? LLD 也在 CDD 执行 ? 为什么 I2C LLD 驱动器在标签“ 驱动器” 上图中没有使用“ IP
    发表于 11-13 07:04

    FPGA工程师需要具备哪些技能?

    ,需要具备一系列的技能,才能胜任日益复杂的设计工作。因此,本文将从设计思路、硬件语言、EDA工具、数字信号处理、通信协议、测试验证等多个方面,探讨FPGA工程师需要具备哪些技能。 一
    发表于 11-09 11:03

    全爱科技Atlas200I A2 AI加速模块-FPGA PCIE接口验证平台

    Atlas200I A2+PCIE X4接口测试FPGA 实物图片 全爱科技QA200A2 Altas200I A2开发套件做了
    发表于 09-05 14:39

    Easygo实时仿真FPGA实时仿真器、硬件在环((HIL)测试设备及快速控制原型(RCP)系统开发

    。■ 强大的级联并行拓展能力 支持单机箱拓展,可实现基于CPU+FPGA的联合仿真与控制,满足大系统测试、多设备级联测试的更高要求。自Easygo事业部成立至今,
    发表于 08-16 17:29

    什么是形式验证(Formal验证)?Formal是怎么实现的呢?

    相信很多人已经接触过验证。如我以前有篇文章所写验证分为IP验证FPGA验证,SOC
    的头像 发表于 07-21 09:53 5344次阅读
    什么是形式<b class='flag-5'>验证</b>(Formal<b class='flag-5'>验证</b>)?Formal是怎么实现的呢?

    MES50HP——IP安装与查看用户指南

    1.安装 IP (1)打开工程,点击菜单栏【tools】 下的【IP Compiler】。 IP Compiler (
    发表于 06-26 10:41

    软件仿真、硬件仿真、原型验证是如何工作的?

    面对复杂的设计代码,我们如何确保其准确性?功能验证就是这场战斗的关键过程。工程师们通常使用的验证方法包括软件仿真、硬件仿真和原型
    的头像 发表于 06-11 14:24 533次阅读
    软件<b class='flag-5'>仿真</b>、硬件<b class='flag-5'>仿真</b>、原型<b class='flag-5'>验证</b>是如何工作的?

    FPGA初学者:分析FPGA仿真验证知识

    FPGA开发方面的能力,每一个章节中都有针对性的代码书写以及代码的讲解,可作为读者参考。 第三章:仿真验证 模块功能是否正确,可以通过验证求得。每一个模块都有一些输入及输出端口,输入端
    发表于 06-02 09:56

    S32G2ip还是外设?

    S32G2 聚四氟乙烯 S32G2ip还是外设? 如果是ip,是否可以集成到其他SoC
    发表于 06-02 08:04

    FPGA工作原理与简介

    的集成电路芯总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺。到了SOC阶段,IP设计已
    发表于 05-30 20:53