仿真和验证是开发任何高质量的基于 FPGA 的 RTL 编码过程的基础。在之前的文章中,我们介绍了面向实体/块的仿真以及如何在IP核中执行面向全局的仿真,即通过在每个输入信号上生成激励并验证 RTL 代码行为是否符合预期,对构成每个 IP 核的不同模块进行实体/块的仿真。而一旦不同的模块被单独验证,则意味着下一步将整个IP仿真为单个 UUT(被测试单元)。

前文回顾:
虹科分享 | 如何测试与验证复杂的FPGA设计(1)——面向实体或块的仿真
虹科分享 | 测试与验证复杂的FPGA设计(2)——如何在IP核中执行面向全局的仿真

尽管扩展的仿真计划提供了良好的可信度,但仍有许多corner的情况无法在虚拟环境中验证。对于这些情况,需要基于硬件的测试计划,这也是获得高质量结果的最后一步。因此,在本篇文章中,我们将重点介绍如何在硬件平台上验证IP核。

硬件测试是为IP核产品执行高质量测试和验证计划的最后一步,主要可以分为以下几个阶段:

1. 测试准备:定义在产品开始测试之前必须完成的步骤
在这个阶段,定义了测试计划文档。在这个文档中,详细描述了必须在 DUT(被测设备)上执行的每一项测试。

2. 测试执行:执行上一个阶段中定义的测试用例
3. 问题报告:检查和报告在测试执行期间检测到的所有问题

可以使用问题电子表格来记录在测试阶段检测到的每个问题。每当注册新问题时,都会向开发团队报告,并且能够追踪哪些问题已解决,哪些问题仍有待审查。


4. 测试结束:确定测试阶段何时完成,并创建测试结果文档,其中将包含成功执行的测试的摘要以及有关测试的更多相关信息。

为了优化测试执行过程,我们使用了虹科测试工具,以进行自动化测试。该工具考虑了以下内容:

  • DUT配置过程
  • 流量注入和嗅探
  • 记录从 DUT 返回的流量
  • 验证保存的日志
  • 将 DUT 设置为原始状态


该工具的第一步与DUT 配置的执行有关。这是通过名为 Platform.vars 的输入配置文件完成的。通过该文件,用户可以配置不同的参数,如 DUT SSH 参数、主机 PC 的 IP 地址或网络接口。

第二步,完成TS(测试站)和 DUT之间的流量注入和嗅探。我们有不同的第三方设备用作测试站,但最常用的设备之一是IXIA Novus One Plus。流量可以通过 IXIA 的 Python API 轻松发送。数据包操作是通过 Scapy Python 模块完成的。尽管 Scapy 允许传输该工具生成的所有流量,但它是使用不同的工具tcpreplay执行的。这使我们能够克服由 Scapy 引起的带宽和准确性方面的某些限制。在此步骤中,测试提供了自定义流量的灵活性,以验证不同的 DUT 功能。可扩展性不是问题,因为该工具支持添加额外的流量和测试端口。


第三步,该工具使用测试站或通过 Linux tcpdump 软件登记来自 DUT 的流量。
第四步,SoC-e 测试工具验证上一步中存储的信息(统计、寄存器转储(dump)等),以检查一切是否正常。通过这两个步骤,SoC-e 测试工具为测试用例的验证提供了一个很好的解决方案。

最后,第五步,也是最后一步。最后一步的主要目的是将 DUT 配置恢复到其原始状态,因为它可能在测试期间被修改。

若对上述测试过程有疑问,欢迎评论或私信与我们进行交流

虹科分享 | 如何测试与验证复杂的FPGA设计(3)——硬件测试相关推荐

  1. 虹科分享 | 虹科智能自动化2022文章精选

    虹科智能自动化事业部一直围绕着工业自动化.能源管理与楼宇自动化三大方向,为客户提供最满意的技术服务和最适合的解决方案,并结合客户需求.行业发展动向和产品资讯,虹科智能自动化团队为大家带来了丰富的技术文 ...

  2. 虹科分享 | TSN技术如何提高下一代汽车以太网的服务质量?

    时间敏感网络(TSN)是负责数据链路层标准的IEEE 802.1任务组的名称,该技术旨在提升以太网的性能,使其更具备确定性.鲁棒性.可靠性.随着TSN技术在航空航天.汽车.轨道交通等领域的应用越来越多 ...

  3. 虹科分享 | 简单实用的CANopen介绍,看完你就明白了(2)——CANopen框架与七种服务类型

    目前,CANopen通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路,CANopen协议已成为欧洲等国家的自动化公司标配的通讯接口之一.在本系列文章中,我们将介绍CANopen协议的基 ...

  4. 虹科分享 | 《面向金融行业的商业智能解决方案》白皮书

    在以数据为中心的商业环境中,金融业面临着众多挑战,包括瞬息万变的市场动态.监管要求以及客户期望.金融行业从各种来源生成大量数据,包括交易.客户互动.市场数据和内部运营等.然而,如果缺乏有效的数据管理和 ...

  5. 虹科分享|USB设备安全管理平台|USB软件加密不可接受的五个原因

    对便携式驱动器使用软件加密是一种有缺陷且危险的做法,这可能会带来灾难性的后果.它类似于一场字谜游戏,提供了一种虚假的安全感和保护感. 1 普通USB驱动器不会为存储的软件加密数据提供保护 常规USB驱 ...

  6. 虹科分享 | 压力蒸汽灭菌器确认之BD测试

    BD测试简介 BD测试全称为Bowie-Dick test,也称B-D试验,鲍伊-迪克试验.BD测试适用于预真空(脉动真空)压力蒸汽灭菌器,目的用于评价灭菌器的冷空气排出.饱和蒸汽穿透效果,以及是否存 ...

  7. 虹科分享 | 盘点世界杯有趣小知识!带你感受体育赛事可视化的快乐!

    卡塔尔世界杯 2022年卡塔尔世界杯是第二十二届世界杯足球赛,是历史上首次在卡塔尔和中东国家境内举行.也是第二次在亚洲举行的世界杯足球赛. 今年卡塔尔世界杯可谓精彩纷呈,花2000个亿在沙漠里打造出的 ...

  8. 虹科分享 | 集中管理的安全USB驱动器的好处

    为了确保你的组织的数据安全,为使用者提供安全的USB驱动器是一个很好的开始.一个中央管理解决方案将确保消除所有丢失数据的风险,同时为你提供强大的生产力工具. 执行摘要 一个安全的U盘使用密码和硬件加密 ...

  9. 虹科分享|硬件加密硬盘|与5个最新的勒索软件的近距离接触

    勒索软件成功地创造了大规模的破坏.随之而来的是无数的受害者,一团糟的受损IT环境,以及数十亿美元的损失.让坏消息雪上加霜的是,这一全球现象并未显示出放缓的迹象.那么,是什么让勒索软件如此难以阻止呢? ...

最新文章

  1. Python学习笔记(基础知识点二)开更了~
  2. app启动页数秒加载 代码_iOS 底层探索 - 应用加载
  3. 统计代码行数_推荐一波代码量、行数、提交量、作者等全维度统计神器
  4. 计算机控制系统开卷试卷,13自动化计算机控制技术考试A卷
  5. python数据科学-多变量数据分析
  6. node模块函数图解
  7. 为什么码农要了解业务呢?网友:不是敲代码就好了吗?
  8. jna enum 对应 java_JNA简单使用
  9. 手把手带你入门加密算法的Python实现
  10. 如何查看有没有django及版本
  11. 小甲鱼python课后题和答案简书_小甲鱼Python入门 10讲 答案
  12. Python|凯撒密码加密字符串
  13. 计算机多余自动启动项,去掉多余的开机启动项
  14. android自定义控件(组合控件)相关
  15. 数据不平衡分类问题 代价矩阵 损失函数
  16. 敏捷互联网项目测试质量报告的大纲
  17. 菜鸟教程,css小白入门
  18. JAVA 计算宝箱概率问题
  19. android-下拉更多列表
  20. 交流异步电机的Modelica模型

热门文章

  1. Android应用开发--MP3音乐播放器代码实现(一)
  2. 轻骑兵开发平台(一)
  3. 66. 加一。。。。。。
  4. 一分钟了解阿里云产品:阿里云开放云搜索初探
  5. 如何关闭139端口及445端口等危险端
  6. Terracotta简介——java集群!!!
  7. WXHRound#14被虐记
  8. html数字添加圆匡,HTml--7(css的常用属性)
  9. 每日一学丨Redis 面霸篇:从高频问题透视核心原理
  10. 经典算法:双指针问题--数组合并