基于xilinx公司ZC706开发板的XDMA_PCIE接口设计。

2023-11-11 00:10

本文主要是介绍基于xilinx公司ZC706开发板的XDMA_PCIE接口设计。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于xilinx公司ZC706开发板的XDMA_PCIE接口设计。

笔者主要是以自己的亲身经历介绍自己初学PCIE接口时的一些经验和碰到的一些问题。
开发环境:vivado2017.4;台式机电脑(含有PCIE接口)一台;ZC706可开发板一块
首先,拿到xilinx的ZC706开发板后,第一步要先熟悉整个开发板的各个功能模块,知道自己需要使用的是开发板的哪个模块。第二步的基本工作是去xilinx公司的官网上下载官方GPIO_PCIE的程序,先把整个硬件搭建起来,确认程序加载和调试整个流程没有问题,保证后期的开发不会出现一些低级问题。以上所说的材料,都可以在一下网站上下载:xlinx官方开发板ZC706的一些资料。其中需要注意的有ZC706开发板的硬件资料——包括开发板原理图和管教约束文件:ZC706开发板的硬件原理图和管教约束.xdc
官网GPIO_PCIE例程和使用说明,读者只需要按照说明把这个程序调通,后面就可以正式进行XDMA_PCIE开发了。
GPIO_PCIE官方例程
注意该例程中需要使用的调试助手pcitree只能在32位系统中使用(比较坑)所以笔者准备了两台电脑,一台调试用,一台学习开发用。
下面开始XDMA_PCIE设计。
首先创建一个新的bd工程,点击Create Block Design,工程名命名为XDMA_PCIE。进入Diagram界面,点击+添加一个IP核。如下所示:
插入IP核
选择DMA/Bridge Subsystem for PCI Express(PCIE),双击这个IP核,进入编辑界面。笔者的选择如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击ok退出编辑界面,然后点击Run Block Automation,在这个地方因为系统篡改了笔者的设置,因此这里笔者做了一下处理,首先删除util_ds_buf模块和sys_diff_clock,然后双击DMA/Bridge Subsystem for PCI Express(PCIE)这个IP核,进入编辑页面,重新按照上述设置编辑一下,再次点击Run Block Automation配置界面如下:
在这里插入图片描述
点击ok,删除sys_diff_clock、IBUF_DS_ODIV2_0[0:0],然后点击util_ds_buf模块的CLK_IN_D右击选择Make External 即可,这样设置一下是为了解决后期valid时出现的模块之间不匹配的问题。
点击+号添加MIG模块。双击MIG模块进入编辑模块,一直点击NEXT,直到controller options
选择memory Type 为SODIMMS,PL端的ddr。点击next。Data width 为256,点击next。
Input Clock period 为 5000ps(200MHz),RTT (nominal)-On Die Termination(ODT)为RZQ/6。点击NEXT。
System Clock 为No Buffer,Reference Clock 为 Use System clock,点击next。
勾选DCI Cascade。点击next,选择Fixed Pin Out。点击next。
点击Read XDC/UCF,导入labfiles\zc706_mig_pinout.ucf。文件可在如下网站下载:
UCF文件下载。点击Validate,ok,next,Pin Number 选择为H9/G9(CC_P/N)点击next。一直点击到
generate。然后点击Run Block Automation,修改Diagram如下图所示:
最后的bd设计框图
点击Validate Design,然后显示Validation successful。点击Run Synthesis,点击ok。
这里,网站上大部分资料都是推荐去手写Constraints 文件,笔者在这浪费了太多时间,总是被管教设计不匹配或者重复约束管脚问题所烦扰。后来笔者转变思路,具体如下:
点击open Synthesized Design ,等完成后选择右上角I/Oplanning界面。如下所示:
在这里插入图片描述
打开I/O Ports页面,配置需要的管脚信息,可以对照着前面提到的labfiles文件夹里面的管脚信息或者官方提供的电路原理图来填写。如下所示:
在这里插入图片描述
这样约束管脚和直接添加xdc文件之间,最大的好处就是不会发生重复定义和参数设计不匹配的冲突。约束完了以后点击file选项,在下拉菜单中选择save constraints as选项及生成了相应的管脚约束XDC文件了。
点击generate bitstreams,即可生成相应的bit文件,通过JTAG加载到ZYNQ-ZC706开发板中即可。此时开发板不要断电,重新启动调试用的电脑,电脑在开机的过程中会自动扫描外围的硬件,等电脑开机后会看到xilinx的硬件信息,此处调试的所用到的上位机是直接用的米联客的程序,大家可以在b站上自己去搜索下载。https://www.bilibili.com/video/BV1QE411u7XP。最后的测试图如下所示:电脑中显示xilinx设备
启动上位机检测设备
读写.bin文件
读写图片

这篇关于基于xilinx公司ZC706开发板的XDMA_PCIE接口设计。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/386233

相关文章

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订