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

    文章

    4031

    浏览量

    133370
  • IP核
    +关注

    关注

    4

    文章

    326

    浏览量

    49402
收藏 人收藏

    评论

    相关推荐

    VivadoFFT IP的使用教程

    本文介绍了VidadoFFT IP的使用,具体内容为:调用IP>>配置界面介绍>>IP
    的头像 发表于 11-06 09:51 252次阅读
    Vivado<b class='flag-5'>中</b>FFT <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程

    如何申请xilinx IP的license

    在使用FPGA的时候,有些IP是需要申请后才能使用的,本文介绍如何申请xilinx IP的license。
    的头像 发表于 10-25 16:48 171次阅读
    如何申请xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    科技术前沿 TSN网络时间感知整形器的性能验证实测

    本文旨在验证时间敏感网络(TSN)时间感知整形器(TAS)的性能,通过实施IEEE 802.1Qbv和IEEE 802.1AS-2020标准测试用例,确保其在网络的准确性。我们选用
    的头像 发表于 07-30 11:04 329次阅读
    <b class='flag-5'>虹</b>科技术前沿  TSN网络<b class='flag-5'>中</b>时间感知整形器的性能<b class='flag-5'>验证</b>实测

    何在ModelSim添加Xilinx仿真

    今天给大侠带来在FPGA设计应用何在ModelSim添加Xilinx仿真库,话不多说,上货。 注意:ModelSim一定要安装
    发表于 07-03 18:16

    FPGAIP使用技巧

    和性能测试。确保IP软核能够正常工作,并满足项目的性能要求。 在验证过程,可以使用仿真工具进行模拟测试
    发表于 05-27 16:13

    关于FPGA IP

    对于深入学习使用FPGA的小伙伴们,特别是一些复杂的、大规模的设计应用,适宜的IP核对开发能起到事半功倍的作用。IP的概念与我们sdk里库
    发表于 04-29 21:01

    FPGA开发过程配置全局时钟需要注意哪些问题

    的正确性和稳定性。通过仿真可以检查时序是否满足要求,及时发现和解决问题。 综上所述,配置全局时钟是FPGA开发过程的一个重要环节,需要仔细考虑和规划。通过选择合适的时钟源、优化时钟分
    发表于 04-28 09:43

    FPGA开发如何降低成本,比如利用免费的IP内核

    FPGA设计工具(如Xilinx的Vivado、Intel的Quartus等),通过IP管理器或类似的功能,将所选的IP内核添加到设计
    发表于 04-28 09:41

    新品 | E-Val Pro Plus有线验证解决方案

    有线验证解决方案E-ValProPlus我们很高兴地宣布,我们将推出全新的
    的头像 发表于 04-19 08:04 325次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>新品 | E-Val Pro Plus有线<b class='flag-5'>验证</b>解决方案

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

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

    fpga验证测试的区别

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

    fpga仿真是什么

    FPGA仿真是一种验证FPGA设计正确性的过程,主要用来分析设计电路逻辑关系的正确性。在FPGA设计
    的头像 发表于 03-15 13:59 1372次阅读

    FPGA设计的IP和算法应用综述

    IP(Intelligent Property) 是具有知识产权的集成电路芯总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造
    的头像 发表于 03-07 09:35 1138次阅读
    <b class='flag-5'>FPGA</b>设计的<b class='flag-5'>IP</b>和算法应用综述

    FPGA优质开源模块-SRIO IP的使用

    本文介绍一个FPGA常用模块:SRIO(Serial RapidIO)。SRIO协议是一种高速串行通信协议,在我参与的项目中主要是用于FPGA和DSP之间的高速通信。有关SRIO协议的详细介绍网上有很多,本文主要简单介绍一下SRIO I
    的头像 发表于 12-12 09:19 2064次阅读
    <b class='flag-5'>FPGA</b>优质开源模块-SRIO <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用

    FPGA实现基于Vivado的BRAM IP的使用

    Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP,比如数学类的IP,数字信号处理使用的
    的头像 发表于 12-05 15:05 1514次阅读