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

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

3天内不再提示

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

虹科智能自动化 2022-06-10 11:50 次阅读

IP核的开发过程中,面临着许多关键技术,比如IP核的规格定义、基于接口的设计、IP核测试存取结构标准、IP核的验证与打包等。对于IP核的验证,主要是建立参照模型和测试平台,然后进行回归测试和形式验证。这里参照的模型主要用于对系统功能进行验证以及和RTL模型的对照验证,该模型主要用Verilog HDL等语言来构造。测试平台的建立与子模块设计并行,搭建验证环境和开发测试用例,并针对IP核的行为级模型对测试环境和测试用例进行调试,从而同步准备好用来仿真测试RTL级IP核的验证环境和测试用例。

仿真和验证是开发任何高质量的基于 FPGA 的 RTL 编码过程的基础。在本系列文章中,我们将分享我们设计过程中的关键步骤,并将基于虹科以太网IP核产品组合进行介绍。

整个过程的关键步骤如下:

面向实体/块的仿真:通过在每个输入信号上生成激励并验证 RTL 代码行为是否符合预期,对构成每个 IP 核的不同模块进行实体/块的仿真。

面向全局的仿真:一旦不同的模块被单独验证,则意味着下一步将整个IP仿真为单个 UUT(被测试单元)。

(On)硬件测试:尽管扩展的仿真计划提供了良好的可信度,但仍有许多corner的情况无法在虚拟环境中验证。对于这些情况,需要基于硬件的测试计划,这也是获得高质量结果的最后一步。

在本篇文章中,我们将描述第一步:IP 仿真的实体或块级别是如何完成的。

面向实体或块的仿真

“面向实体或块的仿真”这一步骤意味着验证在 IP 核内具有特定操作的特定实体或模块的正确操作。每个 IP 核都由许多实体或块组成,为了测试它们,每个实体会有不同的测试平台,通过在输入受到刺激时观察设计的输出来执行设计。这将有助于检查预期的行为。

举个例子就可以很好地理解这个步骤。下面我们先介绍虹科以太网交换机 IP 核的过滤数据库。过滤数据库存储 MAC 地址及其相关信息以做出帧转发决策。它是一个基于哈希的存储器,每个地址条目都有一些存储过滤数据的 bin。该哈希算法还生成过滤数据库内存的索引

57f911fc-e810-11ec-a2f4-dac502259ad0.png

过滤数据库执行有三个主要过程:学习、查找和老化

学习过程负责在满足不同条件时保存帧。

查找过程是在过滤数据库中搜索并获得帧的转发端口掩码的过程。

老化过程根据给定的时间段删除旧的 MAC 条目。

582dcc12-e810-11ec-a2f4-dac502259ad0.png

在这个仿真MAC表的具体案例中,请始终尝试测试构成过滤数据库功能的所有机制。从这个意义上说,就像学习不同的MAC,不同的查询、老化是并行完成的,最后需要清除MAC表并验证所有条目都已删除。此外,研究并始终能够测试可能的corner案例也十分重要。

测试和验证复杂 FPGA 设计的第二个关键步骤将在下一篇文章中展开介绍。一旦形成 IP 核的所有实体都按预期工作,全局仿真就会发挥作用。


5864c8ac-e810-11ec-a2f4-dac502259ad0.png

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

    关注

    50

    文章

    3872

    浏览量

    132166
收藏 人收藏

    评论

    相关推荐

    【分享】基于Easygo仿真平台的三电机实时仿真测试应用

    算法效果的前期仿真评估及算法控制器参数设计及仿真验证,可以很大程度上减少系统开发周期及成本。对多电机同步控制系统进行实时仿真可有效解决此问
    发表于 04-09 16:49

    fpga仿真和后仿真的区别

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

    fpga时序仿真和功能仿真的区别

    FPGA时序仿真和功能仿真在芯片设计和验证过程中各自扮演着不可或缺的角色,它们之间存在明显的区别。
    的头像 发表于 03-15 15:28 422次阅读

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

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

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

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

    fpga验证测试的区别

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

    fpga仿真文件怎么写

    首先,你需要选择一个FPGA仿真软件,如ModelSim、Vivado、Quartus II等。这些软件都提供了强大的仿真功能,可以帮助你验证FPG
    的头像 发表于 03-15 14:00 213次阅读

    FPGA与AISC的差异

    扩展性较好,可以通过增加芯片数量使用更大容量的芯片来满足更高的性能需求。而ASIC的可扩展性相对较差,需要重新设计和制造。 验证和调试 :FPGA验证和调试过程相对简单,可以在系统
    发表于 02-22 09:54

    如何使用Verilog语言进行仿真验证

    仿真验证主要作用是搭建一个测试平台,测试验证程序设计的正确性,验证设计是否实现了我们所预期的功
    的头像 发表于 10-02 16:29 858次阅读
    如何使用Verilog语言进行<b class='flag-5'>仿真</b><b class='flag-5'>验证</b>

    ic验证是封装与测试么?

    ,每个环节都有其独特的测试方法和工具。 芯片设计验证主要涉及到系统级验证和芯片级验证两方面,系统级验证主要是通过模拟
    的头像 发表于 08-24 10:42 520次阅读

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

    步长对应的时间内;而电力电子系统仿真的常用步长都在1us量级,这么短时间内要完成复杂模型的更新运算,就对硬件的计算能力提出了非常高的要求。所以电力电子系统的实时仿真是随着多核CPU和
    发表于 08-16 17:29

    EasyGo 实时仿真丨大功率电机控制器硬件在环系统仿真测试

    、有效值等)。测试再次验证了 Easygo 仿真平台的准确性与可靠性,可为企业提供高效、安全的测试平台。 NetBox 是一款基于FPGA
    发表于 07-28 11:39

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

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

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

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

    从SoC仿真验证FPGA原型验证的时机

    我们当然希望在项目中尽快准备好基于FPGA原型验证的代码,以便最大限度地为软件团队和RTL验证人员带来更客观的收益。
    发表于 05-30 11:10 804次阅读
    从SoC<b class='flag-5'>仿真</b><b class='flag-5'>验证</b>到<b class='flag-5'>FPGA</b>原型<b class='flag-5'>验证</b>的时机