AXI Memory Mapped to PCI Express 学习笔记(四)——仿真设计

本文包含有关Vivado Design Suite中对AXI Memory Mapped to PCI Express core进行仿真的示例设计信息。

一、仿真设计概述

在仿真设计中,事务是从Root Port模型发送到配置为Endpoint的AXI Memory Mapped to PCI Express core,并在AXI块RAM控制器设计中进行处理。
AXI-PCIe块的Endpoint配置的示例仿真设计由几部分组成:
Root Port模型
这是模拟PCIe总线操作的测试平台,它模拟了一个PCIe Root Port的行为,用于与AXI-PCIe块的Endpoint进行通信。这个模型能够生成PCIe事务,并检查来自Endpoint的响应是否正确。此外,它还可以捕获和记录总线上的流量,以便进行进一步的分析和验证。
AXI Memory Mapped to PCI Express core
这是作为Endpoint配置的PCIe core,它接收来自Root Port的PCIe事务,并将它们转换为AXI接口可以理解的格式。
AXI块RAM控制器
它则代表了AXI接口的存储器映射端。它实现了AXI接口协议,使得AXI-PCIe块能够与FPGA上的其他AXI兼容组件进行通信。在此示例设计中,AXI块RAM控制器被用作一个简单的存储器,模拟了Endpoint配置中AXI接口的功能。
这个示例设计提供了一个完整的PCIe通信链路模拟环境,用于验证AXI-PCIe块的功能和性能。但是,这只是一个示例设计,用于说明AXI-PCIe块如何与Root Port和AXI接口进行交互。
图5-1展示了AXI Memory Mapped to PCI Express core的仿真设计。
在这里插入图片描述
注意:这个例程支持Verilog作为目标语言。

二、定义和生成例程

在“Customize IP”对话框中,为例程进行以下选择:
1、在“PCIE:Basics”页面上,示例设计仅支持Endpoint(EP)设备。
2、支持默认的“PCIE:ID”设置。
3、支持默认的“PCIE:BARS”设置。
4、支持默认的“PCIE:Misc”页面设置。
5、在“AXI:BARS”页面上,为基地址、高地址以及AXI到PCIe转换值分配默认值。
6、支持默认的“AXI:System”页面设置。
注意:在自定义IP core后,右键单击组件名称,然后选择“Open IP Example Design”。这将打开一个单独的例程。请按照下一节中的步骤来仿真IP core。

三、模拟示例设计

示例设计可以使用以下任一配置来运行:
Vivado模拟器
默认情况下,模拟器设置为Vivado模拟器。要运行仿真,请在Flow Navigator中点击“运行行为仿真”(Run Behavioral Simulation)。
Cadence IES模拟器
在模拟器标签页上,选择“运行仿真”(Run Simulation)> “运行行为仿真”(Run behavioral simulation)。
Mentor Graphics Questa高级模拟器
对于Questa高级模拟器仿真,需要执行以下步骤:
1、在Vivado IDE中,更改仿真设置如下:
目标模拟器:Questa Advanced Simulator/ModelSim
2、在模拟器标签页上,选择“运行仿真”(Run Simulation)> “运行行为仿真”(Run behavioral simulation)。
注意:为了成功运行Cadence IES或Mentor Graphics Questa高级模拟器,可能需要在开发环境中安装相应的模拟器软件,并确保它们与Vivado IDE正确集成。此外,某些模拟器可能需要特定的库文件或配置设置才能与您的设计兼容。
• VCS模拟器
对于VCS仿真,需要执行以下步骤:
1、在Vivado IDE中,更改仿真设置,选择目标模拟器为Verilog Compiler Simulator (VCS)。VCS是一个高性能的Verilog和SystemVerilog仿真器,广泛用于硬件设计和验证。
2、在模拟器标签页上,选择“运行仿真”(Run Simulation)> “运行行为仿真”(Run behavioral simulation)。这将启动VCS仿真器,并加载您的设计以进行仿真。
另外,VCS通常也提供了一些高级功能和选项,如编译优化、性能分析和调试工具等。可以根据需要启用这些功能,以提高仿真性能和调试效率。

四、实施设计

为了实施设计,AXI块RAM控制器可以用作向块RAM位置写入和读取的暂存存储器。
1、AXI Memory Mapped to PCI Express core封装内容
• 一个示例Verilog HDL或VHDL封装(实例化核心和示例设计)。
定义了如何实例化PCIe core和其他必要的组件来构建完整的示例设计。这个文件将包括所有必要的端口映射和连接,以确保core和其他组件之间的正确通信。
• 一个可定制的演示测试平台,用于模拟示例设计。
这个测试平台是一个模拟环境,用于运行示例设计并验证其功能。它通常包括测试向量(即,输入数据和预期输出),用于驱动示例设计的输入端口,并检查输出端口的行为是否符合预期。测试平台还可能包括一些辅助函数和工具,用于初始化仿真环境、控制仿真流程以及收集和报告结果。
通过运行这个可定制的测试平台,可以在仿真环境中模拟示例设计的行为,并检查其是否按预期工作。这有助于在硬件实现之前发现和修复设计中的问题,从而节省时间和成本。
2、示例设计输出结构
图5-2展示了示例设计的输出结构。该图提供了一个可视化的表示,说明了示例设计在仿真或实际硬件运行期间产生的输出数据的组织和布局。
在这里插入图片描述
通常,输出结构会包括以下几个关键组成部分:
PCIe事务输出
显示了通过PCIe接口发送和接收的事务。这可能包括数据包、帧或其他PCIe协议层的数据单元。这些事务可能包括读请求、写请求、完成包等,具体取决于设计的PCIe功能和所执行的操作。
AXI接口输出
示例设计可能通过AXI接口与其他组件(如AXI块RAM控制器)进行通信。AXI接口的输出将显示通过这些接口传输的数据和命令。这可能包括AXI读写请求、响应以及数据传输等。
状态和控制信号
输出结构还可能包括各种状态和控制信号,用于指示设计的当前状态或控制其操作。例如,可能有信号指示PCIe链路的连接状态、事务的完成状态、错误状态等。
调试和监视信息
为了方便调试和性能分析,输出结构还可能包含调试和监视信息。这可能包括内部信号的状态、时序信息、性能计数器等。
Table 5-1 提供了对示例设计目录内容的描述。
在这里插入图片描述

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

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

相关文章

基于模糊控制算法的倒立摆控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 对倒立摆模型进行模糊控制器simulink建模,利用倒立摆的摆角角度与小车的位置来控制小车的推力,控制了倒立摆的摆角问题,使得小车最终停在稳…

前端面试,笔试题

$refs的优点以及弊端 $refs的弊端是,状态管理比较混乱,不利于维护 异步组件和路由懒加载区别 异步组件:异步组件是一种技术,它允许在页面需要时才从服务器加载相应的组件。这种方式适用于大型应用,可以将应用分割成小…

如何在服务器上传/下载文件

从服务器下载文件到本地 打开xshell,输入:ssh root159.xxx.xxx.xx 然后需要输入密码 cd到目录文件夹下 cd /enmotech apt install zip zip -r uploads.zip uploads apt install lrzsz sz uploads.zip 从本地上传文件到服务器 如果文件是放在E盘…

SpringBoot实现RabbitMQ的WorkQueue(SpringAMQP 实现WorkQueue)

文章目录 1. 前言2. 思路3. 消息发送4. 消息接收4.1 能者多劳 总结 1. 前言 上一篇文章,实现了用 SpringBoot实现RabbitMQ的简单队列, 篇文章 操作 用SpringBoot实现RabbitMQ的WorkQueue(SpringAMQP 实现WorkQueue) Work queues,也被称为(Task queues&…

Python Flask-Mail实现邮件发送

一、邮件发送的扩展 关于如何找到flask发送邮件的插件?,上一篇已经分享了如何找到第三方插件,也找到了插件flask-mail的使用文档,那我们就来实战吧 二、根据文档,总结发送邮件的流程 从文档中可以总结出发送邮件的步…

springboot-vue前后端分离项目实例

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【C语言】Infiniband驱动pci_pcie_cap

一、注释 //include\linux\compat-2.6.h #define LINUX_BACKPORT(__sym) backport_ ##__sym//include\linux\compat-2.6.33.h #define pci_pcie_cap LINUX_BACKPORT(pci_pcie_cap)/*** pci_pcie_cap - 获取保存的PCIe能力偏移* dev: PCI 设备** PCIe能力偏移在PCI设备初始化时…

实例、构造函数、原型、原型对象、prototype、__proto__、原型链……

学习原型链和原型对象,不需要说太多话,只需要给你看看几张图,你自然就懂了。 prototype 表示原型对象__proto__ 表示原型 实例、构造函数和原型对象 以 error 举例 图中的 error 表示 axios 抛出的一个错误对象(实例&#xff0…

基于springboot的车辆充电桩管理系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

【Postman如何进行接口测试简单详细操作实例】

1、下载Postman postman下载地址:Download Postman | Get Started for Free 2、安装Postman (1)双击下载好的postman-setup.exe文件,进行安装postman工具 (2)安装完成后,在桌面找到并打开postman软件,输入邮箱和密码进行登录&a…

【前端面试3+1】03深拷贝浅拷贝、let和var、css盒模型、【有效括号】

一、深拷贝浅拷贝 深拷贝和浅拷贝都是用于复制对象或数组的概念,但它们之间有着重要的区别: 1. 浅拷贝: 浅拷贝是指在拷贝对象或数组时,只会复制一层对象的属性或元素,而不会递归地复制嵌套的对象或数组。因此&#xf…

使用jQuery的基本方法

1.jQuery基本选择器有哪些,语法 jQuery(选择器).action()元素选择器 $(p);iD选择器 $("#myElement")类选择器 $(".myClass") 属性选择器 $(a[href^"https://"]2.如何操作类属性 //添加类名 a.classList.add("类1", &…

只用一部手机,为你的吉利车机安装第三方软件(支持大部分车型)

💡 文中使用的方法为DNS重定向,需要你具备一定的动手能力,否则将无法达到最终目的。 💡 阅读本文,视为你有一定电脑基础,难以理解时,请寻求百度帮助,百度就是最好的老师!…

java实现MP4视频压缩

要在Java中实现MP4视频压缩,您可以使用一些第三方库,比如ffmpeg或Xuggler等。下面是使用ffmpeg库进行MP4视频压缩的示例代码: java import java.io.BufferedReader; import java.io.InputStreamReader; public class MP4Compressor { public static void main(String[] args)…

Redis命令-String命令

4.3 Redis命令-String命令 String类型,也就是字符串类型,是Redis中最简单的存储类型。 其value是字符串,不过根据字符串的格式不同,又可以分为3类: string:普通字符串int:整数类型&#xff0…

【Python操作基础】——序列

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

小米HyperOS 澎湃os机型免答题 免社区等级 秒接bl锁操作步骤解析

小米机型解锁bl 绕过社区等级5才可以解锁的限制的教程_没有五级社区怎么解锁bl-CSDN博客 上次解析了小米有些出厂不是HyperOS系统的机型绕社区等级接bl锁的操作。目前有更新出厂为HyperOS系统的机型免社区登录等级限制 免答题解锁bl的操作。而且有网友在米14 平板6sp k70这些新…

【MySQL】5.2MySQL高级语句与sql语句

模板 test、class、class0 mysql> select * from test; -------------------------------- | idcard | name | age | hobbid | -------------------------------- | 01 | lizi | 18 | guangjie | | 02 | monor | 22 | zhaijia | | 03 | sansan | …

【Java程序设计】【C00388】基于(JavaWeb)Springboot的校园竞赛管理系统(有论文)

Springboot的校园竞赛管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,博客…

Fastjson配置消息转换器(时间格式问题)

问题: 我们可以看见,日期的格式有点问题。 由于ArticleListVO类的createTime成员变量是Date类型,默认是由java的Jackson来处理,使用 ISO-8601 规范来处理日期时间格式。ISO-8601 是一种国际标准的日期时间表示法,例如&…