ZYNQ学习之——MIO】的更多相关文章

1.GPIO基础知识 Zynq7000 系列芯片有 54 个 MIO(multiuse I/O) ,它们分配在 GPIO 的 Bank0 和Bank1 隶属于 PS 部分, 这些 IO 与 PS 直接相连. 不需要添加引脚约束, MIO 信号对 PL部分是不可见,即PL不能对这部分IO信号进行任何操作. 所以对 MIO 的操作可以看作是纯 PS 的操作. 参考芯片手册看到 Bank0:MI0[31:0] Bank1:MI0[52:53] Bank2:EMI0[31:0] Bank3:EMI0[6…
Zynq是一款SOC芯片,之前只是用了PL(Programmable Logic)部分,而Zynq最突出的功能,就是内部的双核Cortex-A9,所以从现在开始我将学习ZYNQ的SOC学习(PS部分). 本文记录的是熟悉Zynq的PS(Processor Subsystem)部分使用方法,了解开发板资源,做一个最小系统Hellow world,使用资源有ARM Cortex-A9.DDR3内存.一个UART串口.具体流程是将写好的程序加载到DDR内存中,然后CPU一条一条执行,那么执行的情况可以…
---恢复内容开始--- 本次试验学习和掌握zynq的emio的使用,是通过PS控制PL端的GPIO. 1.创建硬件工程,主要就是添加EMIO就可以.当然了创建工程的时候还要注意DDR的设置,根据自己板子的DDR设置相应的参数.依次设置如下参数: 这里设置了3个EMIO口,最多可以设置成64个,具体看应用而定. 设置DDR3参数 2.既然是PL端,那就必需有管脚约束文件了,添加一个管脚约束文件.在管脚约束文件xdc中添加PL的管脚映射. 到这里就有个问题来了,什么知道管脚映射到哪里呢.不着急,打…
拿过ZYNQ开发板,里面给了很多部件,果断从网上下载了手册,N多手册和原理图. 要比Spartan-6复杂多了,耐心地看了看,知道ZYNQ系列分为PS(系统)以及PL(逻辑)部分. 之前,自己一直在做MIPS处理器的实现,其实对很多概念也没什么大的认识,对于FPGA的认识其实就是数字电路+Verilog. 其实,我个人认为FPGA的学习与研究千万不能冒进,就是要肯下功夫慢慢来,只要时间够了,一切问题都可以迎刃而解. 今天,自己主要做两方面事情:利用Xilinx SDK编写HelloworldC程…
https://blog.csdn.net/u010580016/article/details/80430138?utm_source=blogxgwz1 开发环境:window10, vivado 2017.1, ubuntu 16.04, Eclipse+cdt 硬件环境:米尔科技zturn board,zynq7z010 本笔记详细介绍了开发ZYNQ7000系列的基础软件系统构建,介绍了Vivado的使用以及IP核的配置,最后搭建能让ZYNQ运行arm linux系统的软件环境,在今后的…
1,好早买了块FPGA板,zynq 7010 .终极目标是完成相机图像采集及处理.一个Window C++程序猿才开始学FPGA,一个小菜鸟,准备转行. 2,关于这块板,卖家的官方资料学起来没劲.推荐上GOOGLE ,YouTube 搜“Zynq Training”等等.感觉质量好高.,英语很简单,大部分能听懂. 3,在google问题时意识到可以看一下zedboard的资料.下载zedboardd的官方资料,发现有个优点是能够把各个名词解释一遍.可以搜“zedboard_CTT_v2013_2…
官方文档http://www.xilinx.com/support/documentation/application_notes/xapp890-zynq-sobel-vivado-hls.pdf 准备工作 下载 工程文件 http://pan.baidu.com/s/1eQqwjBk 这是我用百度云分享的 如果不行了, 可以用 官方链接 https://secure.xilinx.com/webreg/clickthrough.do?cid=193509 sobel 算子边缘检测原理 这里不…
做硬件的第一个实例,一般当然是LED点灯啦~ 硬件:ZedBoard 软件:ISE 14.7 1.新建工程 2.选择平台 3.新建完成后,输入如下代码: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 16:49:10 11/23/2014 // De…
1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScale+  MPSoC架构 Xilinx新一代Zynq针对控制.图像和网络应用推出了差异化的产品系,这在Xilinx早期的宣传和现在已经发布的文档里已经说得很清楚了.她的产品系如图2所示. 图2 产品表 从图2看到,这个系列的Zynq算是8核(或9核)异构产品:四核的ARM-CortexA53 CPU.双核的Cortex-R5 RPU.Mali-400 GPU(一个Geometry核,两个像素核).…
1.Zynq 学习裸跑系列 学会Zynq(1)搭建Zynq-7000 AP SoC处理器 作者:FPGADesigner 学会Zynq(2)Zynq-7000处理器的配置详解 作者:FPGADesigner 学会Zynq(3)Zynq的软件开发基础知识 作者:FPGADesigner 学会Zynq(4)GPIO中MIO的使用方法 作者:FPGADesigner 学会Zynq(5)GPIO中EMIO的使用方法 作者:FPGADesigner Zynq 7020笔记之 GPIO MIO 和EMIO的…
------------------最近项目上用到了一款美信的DS1308RTC芯片,由于是挂在了Zynq的PS MIO上,需要软件人员协助才能测试:觉得太麻烦了,想通过飞线,然后在Vivado中调用IIC的IP核,在PL端实现IIC的读写,借此验证此芯片的功能是否正常.因此简单学习一下IIC的协议,顺便借此提升一下对IIC的认识--------------- 常用的串行扩展总线有:IIC总线.SPI总线与UART总线. IIC总线只有两根双向信号线.一根是数据线SDA,另一根是时钟线SCL.…
By Adam Taylor 从上周的博客开始,我们已经进入到Zedboard(而不是MicroZed)板上的OLED显示模块的编程了.然而在正式进入具体的OLED编程之前,我认为有必要验证我们是否已经为应用正确地配置了SPI端口.这个操作可以为我们后续的步骤减少很多时间,并且做起来也很容易.事实上它确实很简单,本篇博客中我会展示两种不同的方法.第一种方法中会通过Zynq SoC的MIO来与SPI管脚接口,而第二种方法则会通过EMIO.两者的不同之处在哪里呢?请继续往下看. 我打算玩个小把戏.我…
1 参考 Xilinx ZYNQ 7000+Vivado2015.2系列(四)之GPIO的三种方式:MIO.EMIO.AXI_GPIO 2 理论指示 在PS侧,有PS自己的IO pin,称为MIO,共有54个(编号0-53).如果PS侧IO不够使用,则可以通过扩展的方式来使用PL侧的IO.扩展方式有两中:EMIO和GPIO. EMIO 方式可以将PL侧IO直接看作PS侧IO使用,只是编号从54-117. 而GPIO则没有数量限制.直接挂到AXI总线上就可以. 上图是EMIO和MIO的IO映射关系…
在<MiZ702学习笔记7——尝试自制带总线IP>,我曾提到了AXI4-Lite的简单用法,驱动了下流水灯,只涉及到了写总线.今天,我想利用之前的VGA模块,将AXI4-Lite的读写都应用上.这篇文章主要是思想的介绍,以及AXI4-Lite读的方法.一些细节请先阅读<MiZ702学习笔记7——尝试自制带总线IP>. 具体思路为如下框图所示: 所以这次,我们需要两条AXI4-Lite总线,一条负责给VGA模块提供RGB数据(写),一条读取VGA模块提供的扫描的坐标信息(读). 点击…
一.GPIO原理 1.GPIO介绍 程序员通过软件代码可以独立和动态地对每个 GPIO 进行控制,使其作为输入.输出或中断. (1)通过一个加载指令,软件可以读取一个 GPIO 组内所有 GPIO 的值. (2)通过一个保存指令,将数据写到一个 GPIO 组内的一个或多个 GPIO . (3)在 ZYNQ-7000 SOC 内,GPIO 模块的控制寄存器和状态寄存器采用存储器映射方式,它的基地址为 0xE000_A000. (4)每个GPIO都提供了可编程的中断.通过软件程序代码可以实现:①读原…
1.参考 UG585 网络笔记 2.理论知识 见中断部分 3.实验目的 练习使用PL侧的普通信号来中断PS处理器. 4.实验过程 建立工程,设置并初始化串口中断,在运行程序之后,如果串口接收到N(1-63)个字节数据,则产生串口中断,Zynq响应中断,将数据从RXFIFO读出之后写入到DDR3预定的地址中. 5.实验平台 Microphase ZUS zynq7020 开发板. 串口使用 uart1[48,49]. DDR选择 MT41J256M16 RE-125,32bit. BANK1 =…
驱动代码: #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <asm/irq.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/device.h> //包含了device.class 等结构的定义 #include <…
1,ubuntu给软件包降级,先安装aptitude sudo apt-get  install aptitude 2,强制降级,等号“=”前后不能有空格 sudo aptitude install libgcrypt20=1.6.1-2ubuntu1.14.04.1…
ZYNQ是一款SOC芯片,之前使用VGA做过的实验只是PL(Programmable Logic)部分,而ZYNQ最突出的功能,就是内部的双核Cortex-A9,所以从现在开始我将学习ZYNQ的SOC学习(PL部分). 本实验的目的是熟悉ZYNQ的PS(Processor Subsystem)部分使用方法,了解开发板资源,做一个最小系统Hellow world,使用资源有ARM Cortex-A9.DDR3内存.一个UART串口.实验内容是,将写好的程序加载到DDR内存中,然后CPU一条一条执行…
10.0难度系数★☆☆☆☆☆☆ 10.1是什么是固化 我们前几章将的程序都是通过JTAG先下载bit流文件,再下载elf文件,之后点击Run As来运行的程序.JTAG的方法是通过TCL脚本来初始化PS,然后用JTAG收发信息,可用于在线调试.但是这样只要一断电,程序就丢失了.还得全部重新来过. 本章介绍通过制作镜像文件,将镜像文件拷贝到SD卡,然后将拨码开关拨到SD启动,那么每次断电之后程序都会自动从SD启动,程序就别固化,而不会掉电丢失了. 10.2固化的流程 10.3固化准备 <第七章 Z…
时间:2016.06.13 目的:阶段性总结学习的策略 -------------------------------------------------------------------------- 经过一段时间的接触,开始对Zynq开发有了一定的了解与认识.下面是总结常用的 文档,并配上适量的说明,权当备忘! --------- 这些仅是自己目前觉得比较重要的. --------------- Vivado工具系列 --------------- 1.首当其冲,必须是 UG949:Ult…
还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个铺垫. 打包成一个普通的IP的目的,可以直接将这个IP粘贴到Block文件中.(和用文本实例化是一个意思).应为我们调用zynq的核的时候一般是用Block的形式,为了zynq和我们的VGA模块更方便的组织起来,就需要这种IP打包方式. 为什么是强调是普通的IP,这个主意是区分带AXI接口的IP,这个在后面介…
前面我已经把PetaLinux成功安装到了Ubuntu虚拟机当中了,接下来就要实际操作,将PetaLinux移植到我们自己的硬件平台当中去. step1:硬件描述文件 有两种PetaLinux工程建立的方法,一种是下载官方开发板的BSP包并安装,一种就是针对自己的硬件平台去剪裁Linux功能以适应自己的需求. 第一种,比较简单,官方提供了完整的demo和已经预编译好的各种文件. 比如说我们从网上下载了Avnet-Digilent-ZedBoard-v2015.4-final.bsp,我们直接执行…
一.AXI DMA介绍 本篇博文讲述AXI DMA的一些使用总结,硬件IP子系统搭建与SDK C代码封装参考米联客ZYNQ教程.若想让ZYNQ的PS与PL两部分高速数据传输,需要利用PS的HP(高性能)接口通过AXI_DMA完成数据搬移,这正符合PG021 AXI DMA v7.1 LogiCORE IP Product Guide中介绍的AXI DMA的应用场景:The AXI DMA provides high-speed data movement between system memor…
最近本人一直在学习ZYNQ SOC的使用,目的是应对科研需要,做出通用的算法验证平台.大概思想是:ZYNQ PS端负责与MATLAB等上位机数据分析与可视化软件交互:既可传输数据,也能通过上位机配置更新硬件算法模块配置寄存器内容,同时可计算分析PL端算法实现性能指标.PL端的FPGA逻辑则负责算法的硬件实现,以探索高效并行硬件架构.为此本人后续会持续编写<利用ZYNQ SOC快速打开算法验证通路>系列专题博文,在各个阶段进行些基础性总结. MATLAB中数据为双精度浮点型,因此打开算法验证通路…
如何学习FPGA 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/k331922164/article/details/44626989 PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴.回贴就有积分了,里面的资源非常丰富,各种软件.资料都能找到.一.入门首先要掌握HDL(HDL=verilog+VHDL). 第一句话是:还没学数电的先学数电.然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL.因为veri…
最近由于项目需要,要将bit文件固化到zedboard的flash中,使程序上电自启,断电不丢失. 我们知道,一般板级调试的时候都是直接下载bit流到FPGA就行,固化到Flash的话,也是先生成.mcs文件,然后下载到Flash即可. 但是在经过反复尝试之后,发现对zynq系列好像行不通. why?这得从zynq的启动流程说起. 一.ZYNQ的启动流程 ZYNQ7000 SOC 芯片可以从 FLASH 启动,也可以从 SD 卡里启动, 本节介绍程序 FLASH 启动的方法.Zynq7000 S…
1.资料获取:https://github.com/Xilinx(开发所需资源,包括:交叉编译工具,linux kernel 源码,u-boot 源码, device-tree 源码,  qemu,  gdb 等) http://www.wiki.xilinx.com(开发流程资料,包括:创建 FSBL,配置编译内核,配置编译 u-boot,编译生成 dtb,制作根文件系统,linux 设备驱动程序,设计例程等) http://china.xilinx.com/support     (Xili…
一直来,都是使用Vivado中自带的GMIItoRGMII IP核来完成GMII转RGMII的功能:尽管对GMII及RGMII协议都有一定的了解,但从没用代码实现过其功能.由于使用IP时,会涉及到MDIO配置IP寄存器的问题,觉得麻烦.因此决定用代码实现GMII转RGMII的功能. 参考Lattice的开源代码,进行移植.移植后在Vivado中进行编译时没有问题,但一旦进行实现(Implementation)时就会有如下错误: [Place 30-574] Poor placement for…
[南京米联]ZYNQ第二季更新完毕课程共计16节课 [第二季ZYNQ]                                                                         CH01_Helloworld ZYNQ米联客培训(免费) http://www.osrc.cn/forum.php?mod=viewthread&tid=1239&extra=page%3D1 [第二季ZYNQ]    概述: 1.掌握VIVADO 软件的使用,创建基于ZYN…