当前位置: 首页 > 编程日记 > 正文

zynqpl端时钟_第十一章 ZYNQ-MIZ701 PS读写PL端BRAM

本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示。

涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。

本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性。 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍。

本文所使用的开发板是Miz702 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4

1.0本章难度系数★★☆☆☆☆☆

1.1 搭建硬件工程

Step1:新建一个名为为Miz701_sys的工程

Step2:选择RTL Project 勾选Do not specify source at this time

Step3:选择xc7z010clg400-1为开发器件。

Step4:单击Finish

1.2使用IP Integrator创建硬件系统

Step1:单击Create Block Design

Step2:输入system

Step3:单击下图中添加IP按钮

Step4:搜素单词z选择ZYNQ7 Processing System,然后双击

Step5:添加进来了ZYNQ CPU IP,然后双击对其进行配置。

Step6:修改输入时钟为50MHZ,PL端频率FCLK_CLK0为100MHZ。

Step7:修改内存型号为MT41K256M16 RE-125。

Step8:在MIO configuration选项中,勾选添加UART1接口。

Step9: 在PL-PS Configuration下,选中 GP0和GP1然后 点击ok。

Step10:单击Run Block Automation进行智能布线。

Step11:直接单击OK

Step12:在你点击了OK后,你会发现DDR以及FICED_IO自动的延伸出来。

Step13:连线的作用就是把PS的时钟可以接入PL部分,当然这里我们暂时用不到PL部分的资源。在Block文件中,我们迚行连线,将鼠标放在引脚处,鼠标变成铅笔后迚行拖拽,连线如下图所示:

Step14:点击,Add IP,连续添加两个 AXI BRAM Controller

Step15:分别双击AXI BRAM Controller模块,把number of BRAM interfaces 全部修改成1

Step16:点击ADD IP,添加Block Memory Generator

Step17:双击Block Memory Generator ,修改Memory Type。

Step18:点击run Connection Automation,把axi_bram_ctrl_1的S_AXI端口的连接目标修改为如图所示:

Step19:点击重新布局,生成好的硬件框架如下

Step20:点击Address Editor 可以看到系统已经为我们自动分配好了正确的地址

Step21: 右击 system.bd, 单击Generate Output Products

Step22:支部操作会产生执行、仿真、综合的文件

Step23:右击system.bd 选择 Create HDL Wrapper 这步的作用是产生顶层的HDL文件

Step24:选择Leave Let Vivado manager wrapper and auto-update 然后单击OK

Step25:执行->产生bit文件

1.3导出SOC硬件到SDK

Step1:File->Export->Export Hardware

Step2:勾选Include bitstream 直接单击OK

Step3:File->Launch SDK加载到SDK

Step4:单击OK

1.4软件工程

Step1:打开的SDK界面如下,这里的信息是和硬件相关的,例如在Address Map 这一栏下可以看到axi_bram_ctrl_0和刚刚在vavado Address Editor下的地址是一致的

Step2: 新建一个名为BRAM_Test的空的工程,并且新建一个main.c文件,添加如下代码。/*

* mai.c

*

*  Created on: 2016年6月26日

*      Author: Administrator

*/

#include

#include "xil_io.h"   //这个头文件下面包含很重要的IO读写函数

#include "xparameters.h"  //这个头文件里把硬件的地址映射等参数都写成了宏定义方便使用

//void print(char *str);

int main()

{

int num;

int rev;

xil_printf("------The test is start...------\n\r");

//XPAR_AXI_BRAM_CTRL_0_S_AXI_BASEADDR是axi_bram_ctrl_0的地址,Xil_Out32通过控制axi_bram_ctrl_0,向blk_mem_gen_0写数据

for( num=0; num<15; num++ )

{

Xil_Out32(XPAR_BRAM_0_BASEADDR + num*4, 0x10000000+num);     //

}

//XPAR_AXI_BRAM_CTRL_1_S_AXI_BASEADDR是axi_bram_ctrl_1的地址,Xil_In32 通过控制axi_bram_ctrl_0,把blk_mem_gen_0里的数据读出来

//PS和PL可以在blk_mem_gen_0里共享数据

for( num=0; num<15; num++ )

{

rev = Xil_In32(XPAR_BRAM_0_BASEADDR + num*4);

xil_printf( "The data at %x is %x \n\r",XPAR_BRAM_0_BASEADDR + num*4,rev);

}

xil_printf("------The test is end!------\n\r");

return 0;

}

1.5测试结果

串口终端打印输出信息如下:

------The test is start...------

The data at 80000000 is 10000000

The data at 80000004 is 10000001

The data at 80000008 is 10000002

The data at 8000000C is 10000003

The data at 80000010 is 10000004

The data at 80000014 is 10000005

The data at 80000018 is 10000006

The data at 8000001C is 10000007

The data at 80000020 is 10000008

The data at 80000024 is 10000009

The data at 80000028 is 1000000A

The data at 8000002C is 1000000B

The data at 80000030 is 1000000C

The data at 80000034 is 1000000D

The data at 80000038 is 1000000E

------The test is end!------

1.6本章小结

本文通过PS端把数据写入到PL端的BRAM,然后从而又把数据从PL端读到PS端,从而简单的实现了PL和PS的数据交互和共享。

相关文章:

nagios报警的问题

最近我写了关于naigos监控的安装与配置的技术文档&#xff0c;公司运维按照我的文档部署naigos&#xff0c;发现不能发送报警邮件&#xff0c;经过我的检查&#xff0c;发现问题如下&#xff1a;1、hosts里的配置[rootnagios ~]# cat /etc/hosts # Do not remove the followin…

机器学习常见的分类算法的优缺点

1. 前言 在机器学习中&#xff0c;种类最多的一类算法要属很类算法&#xff0c;本文对机器学习中的各种分类算法的优缺点做一个总结。 2. 贝叶斯分类法 2.1 优点 所需估计的参数少&#xff0c;对于缺失数据不敏感。有着坚实的数学基础&#xff0c;以及稳定的分类效率。2.2 缺点…

公司新来一个同事:为什么 HashMap 不能一边遍历一边删除?一下子把我问懵了!

前段时间,同事在代码中KW扫描的时候出现这样一条:上面出现这样的原因是在使用foreach对HashMap进行遍历时,同时进行put赋值操作会有问题,异常ConcurrentModificationException。于是帮同简单的看了一下,印象中集合类在进行遍历时同时进行删除或者添加操作时需要谨慎,一般使用迭代器进行操作。于是告诉同事,应该使用迭代器Iterator来对集合元素进行操作。同事问我为什么?这一下子把我问蒙了?对啊,只是记得这样用不可以,但是好像自己从来没有细究过为什么?

一文搞懂MySQL索引

官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。看到这里,你是不是对于自己的sql语句里面的索引的有了更多优化想法呢。

leetcode-45 跳跃游戏II

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标…

做技术到底可以做到哪种地步-技术为什么越走越窄 (转)

尽管做技术已经有不少年头了&#xff0c;不管是犹犹豫豫还是坚定不移&#xff0c;我们走到了现在&#xff0c;依然走在技术这条路上。 不管我们处于何种职位&#xff0c;拿着哪种薪水&#xff0c;其实&#xff0c;我们会是不是的问问自己“做技术到底可以做到那种地步”&#x…

linux本地agent执行脚本_github 4.4K星|马哥教育企业教练团队研发一款轻量级、无Agent自动化运维平台...

马哥教育企业教练团队研发了一款自动化运维平台系统—Spug&#xff0c;上线后广受中小运维爱好者喜爱&#xff0c;目前github4.4k星&#xff0c;已经成为自动化热门项目。2020年了&#xff0c;运维不会搞运维自动化&#xff0c;都不好意思说自己做运维的了&#xff0c;大一点的…

mysql 数据目录更改

[CentOS]MySQL更改数据文件存储目录环境&#xff1a;CentOS(Linux) Mysql5.X 1.如果MySQL已经启动的话&#xff0c;需要先停止MySQL的运行#service mysqld stop2.home 目录下新建目录[data]/home #mkdir data3.移动MySQL默认数据库文件#mv /var/lib/mysql /home/data4.修改MySQ…

leetcode-452 用最少数量的箭引爆气球

在二维空间中有许多球形的气球。对于每个气球&#xff0c;提供的输入是水平方向上&#xff0c;气球直径的开始和结束坐标。由于它是水平的&#xff0c;所以y坐标并不重要&#xff0c;因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球…

ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战

背景什么是统一异常处理目标统一异常处理实战用 Assert(断言) 替换 throw exception定义统一异常处理器类扩展总结《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》…

【iOS开发】企业版证书($299)In-House方式发布指南 (转)

一、明确几个概念 1、企业版IDP&#xff1a;即iOS Development Enterprise Program。注意是$299&#xff0f;Year那种&#xff0c;并不是$99/Year的那种。 2、In House&#xff1a;是只企业内部发布&#xff0c;仅限企业内部人员使用。 二、In-House方式特点 1、不能发布到Appl…

苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程(精)

概述&#xff1a; 苹果的证书繁锁复杂&#xff0c;制作管理相当麻烦&#xff0c;今天决定重置一个游戏项目中的所有证书&#xff0c;做了这么多次还是感觉很纠结&#xff0c;索性直接记录下来&#xff0c;日后你我他查阅都方便&#xff1b; 首先得描述一下各个证书的定位&#…

ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......

2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法, 后面为class用法及属性方法、set、symbol、rest等语法. 一、基本语法: 1、 定义变量&#xff1a;let 使用var 定义的变量没有{ }限制&#xff0c;在条件中定义的i&#xff0c;全局中都可以使用&#xff0c…

读书:历史 -- 东印度公司

浅田实 — 日本 文学博士、英国近世史学专家 东印度公司曾经为英国殖民印度&#xff0c;扮演过冲锋陷阵的历史角色。 富可敌国来形容东印度公司绰绰有余&#xff0c;它的崛起和衰落是时代变迁的缩影。 英国发起的第一次工业革命迫切需要资本的输入和输出来带动蒸汽齿轮得高速转…

2014腾讯校园招聘研发笔试题

嘿嘿转载于:https://www.cnblogs.com/churi/p/3969749.html

用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏

准备python基础相关准备&#xff1a;pygame的基础知识&#xff0c;参考目光博客的“用Python和Pygame写游戏-从入门到精通”安装python 3.8.0 在python官网下载&#xff0c;不多说。安装pygame&#xff0c;命令&#xff1a;pip install pygame如安装较慢&#xff0c;可以参考如…

大量LAST_ACK 的分析过程

2019独角兽企业重金招聘Python工程师标准>>> 记录一下自己的思想过程 现象:在netstat的时候发现大量处于LAST_ACK状态的TCP连接&#xff0c;达到在ESTABLISHED状态的90%以上 [rootccsafe ~]# netstat -ant|fgrep ":"|cut -b 77-90|sort |uniq -c …

操作系统--内存管理方式

“碎片的内存”描述一个系统中所有不可用的空闲内存。这些资源之所以仍然未被使用&#xff0c;是因为负责分配内存的分配器使这些内存无法使用。这一问题通常都会发生&#xff0c;原因在于空闲内存以小而不连续方式出现在不同的位置。由于分 配方法决定内存碎片是否是一个问题&…

题解 UVA11354 【Bond】

并查集按秩合并 传送门 大意&#xff1a;给出一张n个点m条边的无向图&#xff0c; 每条边有一个权值&#xff0c;有q个询问&#xff0c; 每次给出两个点s、t&#xff0c;找一条路&#xff0c; 使得路径上的边的最大权值最小。 我们可以发现&#xff0c;跑最小生成树会跑挂&…

管理 zabbix_Zabbix 2019 峰会丨看睿象云如何在 Zabbix 中玩转告警

2019年11月29日-30日&#xff0c;为期两天的 Zabbix 大会中国站在北京盛大召开&#xff0c;本届 Zabbix 大会以“新视界&#xff0c;新技术&#xff0c;共建未来新监控!”为主题&#xff0c;为与会人员提供前沿的监控技术学习&#xff0c;多元的行业案例讲解&#xff0c;以及现…

Oracle存储过程返回游标实例详解

复制代码 代码如下:CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT VARCHAR2, P_SUB VARCHAR2, P_SENDOR VARCHAR2, P_RECEIVER VARCHAR2, P_SERVER VARCHAR2, P_PORT NUMBER DEFAULT 25, P_NEED_SMTP INT DEFAULT 0, P_USER VARCHAR2 DEFAULT NULL, P_PASS VARCHAR2 DEFAUL…

03 Django REST Framework 视图和路由

01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类&#xff0c;实现了很多方便的功能--如请求数据解析和认证等。 比如&#xff0c;区别于Django中的request从request.GET中获取URL参数&#xff0c;从request.POST中取某些情况下的POST数据…

[Quick-x]制作新手引导高亮区域方法之二:裁剪模式

demo下载&#xff1a;https://github.com/chenquanjun/Quick-x-HighlightArea 2、裁剪模式 (1)创建裁剪对象 local bgColor ccc3(255, 0, 0) --非高亮区域颜色local bgOpacity 0.6 --非高亮区域透明度local layerColor CCLayerColor:create(ccc4(bgColor.r, bgColor.g, bgCo…

单一窗口关区备案_单一窗口税费支付权限管理

企业需先使用法人卡登录“单一窗口”税费支付系统进行业务权限授权后&#xff0c;才可以使用操作员卡查询、支付、打印税单等。“业务权限授权”模块提供税费支付企业相关业务权限(关区、协议)的授权功能。使用“单一窗口”税费支付系统的部门、用户、角色管理与权限配置等操作…

每日一题题目29:五个数字能组成多少互不重复的四位数

#有五个数字&#xff1a;1、2、3、4、5&#xff0c;能组成多少个互不相同且无重复数字的四位数&#xff1f;各是多少&#xff1f; e [] for a in range(1,6):for b in range(1,6):for c in range(1,6):for d in range(1,6):if a!b and a!c and a!d and b!c and b!d and c!d:e.a…

读书:历史 -- 空王冠

15世纪50到80年代的玫瑰战争&#xff0c;短短30年间王冠易手7次&#xff0c;成千上万人死于战乱。这段时期&#xff0c;可以算得上英国历史上最混乱、最残暴的历史时期。 英国统治时间最长的金雀花王朝分崩离析&#xff0c;被都铎王朝取代。

机器人香囊_青少年智能机器人等级评定~户外营~圆满结束!

2020暑期田园探秘~青少年智能机器人等级评定户外营在8月3日至7日短暂而愉快的欢乐时光中圆满结束了让我们一起来回顾一下这愉快、欢乐、体验成长的时光孩子们在激动的心情下踏上了探秘的欢快路途......初到营地的第一件事~组建团队~首先让大家见识一下我们的团队我们的团队由&a…

Linux下DB2数据库安装教程

最近因为工作需要在学习DB2数据库&#xff0c;本教程讲解DB2数据库在inux下的安装步骤。 安装前请查看 DB2版本和许可证 说明来增加了解&#xff0c;先弄明白改安装什么版本&#xff0c;这里我用的是最新的Express-C版本&#xff0c;这个版本是提供给个人学习用的版本。 管理客…