AXI Memory Mapped to PCI Express 学习笔记(五)—— Test Bench

本文包含有关Vivado Design Suite环境中提供的测试平台(Test Bench)的信息。

一、Endpoint的Root Port模型测试平台

PCI Express Root Port Model是一个强大的测试平台环境,它提供了一个测试程序接口,可以与提供的PIO设计(Programmed Input-Output,指的是可编程输入输出。在PCIe通信中,数据传送由CPU执行I/O端口指令来按照字节或更大的数据单位来处理)或用户设计一起使用。Root Port Model的目的是提供一个源机制,用于生成下游PCI Express TLP(事务层数据包)流量以便对设计进行仿真,并提供一个目标机制,用于在仿真环境中接收来自设计的上游PCI Express TLP流量。
源代码中包含Root Port Model,这是为测试平台提供起点模型。所有关于初始化配置空间、创建TLP事务、生成TLP日志以及提供创建和验证测试的接口的重要工作都已经完成,这方便设计师将精力集中在验证设计的正确功能上,而不是花费时间在开发Endpoint core测试平台基础设施上。
Root Port Model包括以下内容:
• 测试程序接口(TPI),这是为了模拟模型中的Endpoint设备。
• 示例测试,说明如何使用测试程序TPI。
图1展示了Root Port Model与PIO设计相结合的情景。
在这里插入图片描述

二、架构

Root Port Model主要由以下模块组成,这些模块在图6-1中进行了说明:
• dsport(Root Port)
• usrapp_tx
• usrapp_rx
• usrapp_com(仅Verilog)
usrapp_tx和usrapp_rx模块与dsport模块进行接口连接,以便向待测试的Endpoint Design Under Test (DUT)发送和接收TLPs(事务层数据包)。Endpoint DUT包括AXI-PCIe的Endpoint和Block RAM控制器设计(Figure 6-1中已展示)或用户设计。
usrapp_tx模块将TLPs发送到dsport模块,以便通过PCI Express链路传输到Endpoint DUT。反过来,Endpoint DUT设备通过PCI Express链路将TLPs传输到dsport模块,然后这些TLPs被传递给usrapp_rx模块。在通过PCI Express逻辑进行通信时,dsport和core负责数据链路层和物理链路层的处理。usrapp_tx和usrapp_rx都使用usrapp_com模块来执行共享功能,例如TLP处理和日志文件输出。
事务序列或测试程序由usrapp_tx模块发起,以模拟Endpoint设备的逻辑接口。来自Endpoint设备的TLP响应由usrapp_rx模块接收。usrapp_tx和usrapp_rx模块之间的通信允许usrapp_tx模块验证Endpoint设备的正确行为,并在usrapp_rx模块从Endpoint设备接收到TLPs时相应地采取行动。
通过这种架构和机制,测试人员能够精确地控制测试流程,并实时地验证Endpoint设备的响应是否符合预期。

三、Root Port的Endpoint模型测试平台

Root Port配置中AXI Memory Mapped to PCI Express core的Endpoint模型测试平台是一个简单的示例测试平台,它连接Configurator示例设计和PCI Express Endpoint模型,使两者像物理系统中的两个设备一样运行。由于Configurator示例设计包含初始化自身的逻辑以及生成和消耗总线流量的逻辑,因此示例测试平台仅实现了用于监控系统运行和终止仿真的逻辑。
Endpoint模型测试平台包含以下部分:
• 所有Endpoint模型组件的Verilog源代码
• PIO从设备设计
在这里插入图片描述
PIO从设备设计通常指的是一个可编程输入/输出(PIO)的接口,它作为PCI Express Endpoint的一个组件,允许主机(或Root Port)访问和控制Endpoint的某些功能或资源。PIO从设备设计通常包括逻辑来解码传入的TLPs,识别它们是否是针对PIO空间的请求,并执行相应的读写操作。在测试平台中,PIO从设备设计将模拟Endpoint的PIO接口,并与Configurator示例设计进行交互,以验证PIO操作的正确性。
测试平台通过配置和连接这些组件,能够模拟一个完整的PCI Express通信环境,从而验证Endpoint设计的正确性和性能。通过监控仿真过程中的系统行为,测试人员可以收集有关Endpoint模型如何响应不同TLPs的信息,并检查是否有任何错误或不符合预期的行为。

四、架构

Endpoint模型由以下模块组成:
• PCI Express Endpoint(在Endpoint配置中AXI Memory Mapped to PCI Express)模型。
• PIO从设备设计,包括:
pio_rx_engine(PIO接收引擎)
pio_tx_engine(PIO发送引擎)
pio_ep_mem(PIO端点内存)
pio_to_ctrl(PIO到控制器的接口)
pio_rx_engine和pio_tx_engine模块与ep模块进行接口连接,用于从Root Port DUT接收和发送TLPs(事务层数据包)。Root Port DUT由配置为Root Port的core以及Block RAM控制器组成,同时包含σ_αξι和s_axi_ctl模型,用于在s_axi和s_axi_ctl上驱动流量。
PIO从设备设计提供了与Root Port进行通信的接口,使得Endpoint能够响应来自Root Port的PIO读写请求。pio_rx_engine负责接收来自Root Port的PIO读请求,并协调从Endpoint内存中读取相应的数据,然后通过pio_tx_engine发送回Root Port。相反,当Root Port发起PIO写请求时,pio_rx_engine接收TLPs,并将数据写入Endpoint内存。
PIO从设备设计还包括pio_ep_mem,它代表Endpoint的内存空间,并存储PIO操作所需的数据。pio_to_ctrl模块可能用于管理PIO操作的控制逻辑,确保PIO引擎与Endpoint内存之间的数据一致性。
通过这种架构,Endpoint模型能够模拟一个真实的PCI Express Endpoint设备,并与Root Port DUT进行交互,以验证PIO操作的功能性和性能。这有助于测试人员确保Endpoint模型在PCI Express通信环境中的正确性和可靠性,为进一步的集成和验证工作奠定基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷_P4995 跳跳!_python写法

P4995 跳跳&#xff01; - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) n int(input()) data list(map(int,input().split())) data.append(0) data.sort()sum 0 l 0 r len(data)-1 flag 1 while l<r:sum (data[l]-data[r])**2if flag:l 1flag 0else:r - 1flag 1…

LinkedList讲解指南

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

教育数字化调研团走进锐捷,共议职业教育数字化转型新思路

为贯彻落实国家教育数字化战略行动部署和2024年全国教育工作会议精神,加快推进职业教育数字化转型与发展,梳理职业教育数字化转型的现状、问题及发展趋势,并总结展示职业教育数字化转型的好经验、好做法,培育职业教育数字化创新成果,推动数字技术与职业教育深度融合、提高数字化…

ensp的PPP实验报告

实验要求&#xff1a; 1、R1和R2使用PPP链路直连&#xff0c;R2和R3把2条PPP链路捆绑为PPP MP直连 2、按照图示配置IP地址 3、R2对R1的PPP进行单向chap验证 4、R2和R3的PPP进行双向chap验证 1、配置ip地址 R1&#xff1a; [R1] int Serial 3/0/0 [Rl-Seria13/0/0] ip add 192…

机器学习——聚类算法-DBSCAN

机器学习——聚类算法-DBSCAN DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;可以发现任意形状的簇&#xff0c;并能有效处理噪声数据。本文将介绍DBSCAN算法的核心概念、算法流程、优缺点…

Kali远程操纵win7

一.准备 1.介绍 攻击方&#xff1a;kali IPV4:192.168.92.133 被攻击方&#xff1a;win7 IPV4:192.168.92.130 2.使用永恒之蓝漏洞 (1.使用root权限 (2.进入msfconsole (3.添加rhosts (4.run进行一下 二.进行远程操作 1.获取用户名和密码 在cmd5查询 2.获取syste…

抓包工具charles修改请求和返回数据

数据篡改的主要使用场景&#xff1a; &#xff08;1&#xff09;mock场景&#xff0c;mock入参和返回值参数&#xff0c;实现mock测试 &#xff08;2&#xff09;安全测试&#xff0c;对于支付金额等比较重要的字段&#xff0c;可以修改请求参数来进行安全测试 1.首先选择要…

Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述 在 Windows 操作系统中&#xff0c;程序图标一般会涉及三个地方&#xff1b; &#xff08;1&#xff09; 可执行程序&#xff08;以及对应的快捷方式&#xff09;的图标 &#xff08;2&#xff09; 程序界面标题栏图标 &#xff08;3&#xff09;程序在任务…

[激光原理与应用-77]:基于激光器加工板卡的二次开发软件的系统软硬件架构

目录 一、1个板卡、1个激光器、1个振镜的应用架构、1个工位 &#xff08;1&#xff09;PLC &#xff08;2&#xff09;MES &#xff08;3&#xff09;加工板卡 &#xff08;4&#xff09;激光加工板卡与激光器之间的转接卡 &#xff08;5&#xff09;DB25、DB15 &#x…

Typecho如何去掉/隐藏index.php

Typecho后台设置永久链接后&#xff0c;会在域名后加上index.php&#xff0c;很多人都接受不了。例如如下网址&#xff1a;https://www.jichun29.cn/index.php/archives/37/&#xff0c;但我们希望最终的形式是这样&#xff1a;https://www.jichun29.cn/archives/37.html。那么…

图神经网络实战(6)——使用PyTorch构建图神经网络

图神经网络实战&#xff08;6&#xff09;——使用PyTorch构建图神经网络 0. 前言1. 传统机器学习与人工智能2. 人工神经网络基础2.1 人工神经网络组成2.2 神经网络的训练 3. 图神经网络4. 使用香草神经网络执行节点分类4.1 数据集构建4.2 模型构建4.3 模型训练 5. 实现香草图神…

大话设计模式之装饰模式

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向现有对象动态地添加新功能&#xff0c;同时又不改变其结构。装饰模式通过将对象放入包装器中来实现&#xff0c;在包装器中可以动态地添加功能。 在装饰模式中&#xff0c;通常会有…

【教程】JavaScript代码混淆及优化

摘要 本文将介绍常见的JavaScript代码混淆技术&#xff0c;包括字符串转十六进制、Unicode编码、Base64加密、数值加密、数组混淆、花指令、逗号表达式、控制流程平坦化和eval执行。通过对这些混淆技术的理解和应用&#xff0c;可以提高代码的安全性和保护知识产权。 引言 随…

(4)(4.3) Kogger Sonar

文章目录 前言 1 推荐硬件 2 配置回声探测仪模块 3 连接ArduPilot硬件 4 参数说明 前言 KOGGER 声纳(KOGGER Sonar)是一款结构紧凑、成本低廉的水下回声测深仪模块&#xff0c;带有 UART 接口&#xff0c;电源电压为 5-14v。 1 推荐硬件 CP210x USB->UART 转换器和安装…

C++第十三弹---内存管理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、operator new与operator delete函数 1.1、operator new与operator delete函数 2、new和delete的实现原理 2.1、内置类型 2.2、自定义类型 …

开源项目ChatGPT-Next-Web的容器化部署(二)-- jenkins CI构建并推送镜像

一、背景 接着上文已制作好了Dockerfile&#xff0c;接下来就是docker build/tag/push等一系列操作了。 不过在这之前&#xff0c;你还必须在jenkins等CI工具中&#xff0c;拉取源码&#xff0c;然后build构建应用。 因为本文的重点不是讲述jenkins ci工具&#xff0c;所以只…

亮数据——让你的IP走出去,让价值返回来

亮数据——让你的IP走出去&#xff0c;让价值返回来 前言跨境电商最最最大的痛点——让IP走出去超级代理服务器加速网络免费的代理管理软件亮数据解决痛点亮数据优势介绍亮数据浏览器的使用示例总结 前言 当前社会信息的价值是不可想象的&#xff0c;今天在亮数据中看到了个【…

Ipython与Jupyter之间的关系

IPython 和 Jupyter 之间的关系可以从它们的历史和目标中得到很好的解释。IPython&#xff08;Interactive Python&#xff09;最初是由 Fernando Prez 于 2001 年创建的&#xff0c;旨在提升 Python 的交互式计算体验。它提供了一个强大的交互式 Python shell 和一个面向高效计…

『VUE』03. 模板语法 使用js与插入html(详细图文注释)

目录 vscode终端中创建项目什么是模板语法?模板语法--js"变量"用法模板语法--插入html总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 vscode终端中创建项目 回顾一遍前面的cmd. 首先在vscode中打开一个新的空文件…

SpringAOP+自定义注解实现限制接口访问频率,利用滑动窗口思想Redis的ZSet(附带整个Demo)

目录 1.创建切面 2.创建自定义注解 3.自定义异常类 4.全局异常捕获 5.Controller层 demo的地址&#xff0c;自行获取《《—————————————————————————— Spring Boot整合Aop面向切面编程实现权限校验&#xff0c;SpringAop自定义注解自定义异常全局…