vivado 创建PS工程
前言
本文简要介绍在vivado中创建PS工程。单纯使用zynq芯片的PS部分就像使用普通ARM芯片一样,只是多了建立Zynq硬件系统这一个步骤。vivado创建PL工程参见此处
新建工程
建立Zynq硬件系统
新建块设计

添加zynq处理器IP核


自动配置

添加一个GPIO IP核,同样自动配置,然后在空白处右击选择Regenerate Layout,重新布局

可以将GPIO核改名为LED,核的端口也改为LED
配置
双击zynq核进行配置,此处不需要配置
双击GPIO核,将端口设为输出,因为vivado有ZedBoard的信息,所以不用自己配置IP configuration

新建约束文件

生成顶层文件
先右击system → Generate Output Products → Generate
再右击system → Create HDL Wrapper → OK
Vivado会为IP子系统生成一个顶层文件,以便对该系统进行综合、实现并生成比特流
生成比特流
工程配置完成,点击左下侧Generate Bitstream生成比特流,点击Yes。若没有其他错误,比特流生成完成。
外设地址
硬件工程设计好之后,可在以下窗口中看到系统分配给外设的地址

将硬件工程导出到SDK
VIVADO -> File → Export Hardware 导出硬件到SDK,打钩,包括比特流,点击OK


新建软件工程

注意点next选择empty application

新建.c源文件

录入代码
//点亮灯,需要流水灯代码请自行修改
#include "xparameters.h"
#include"xgpio.h"
#define LED_CHANNEL 1
XGpio GpioOutput;
int main()
{
XGpio_Initialize(&GpioOutput,XPAR_LED_DEVICE_ID);
XGpio_SetDataDirection(&GpioOutput,LED_CHANNEL,0x0);
while (1)
{
XGpio_DiscreteWrite(&GpioOutput,LED_CHANNEL,0xFF);//点亮全部LED灯
}
}

下载
回到Vivado,program device

再到SDK,运行

效果

说明
bsp是与硬件配置有关的板级支持包,可以方便调用bsp包内的函数实现对外设的控制,而不用关心底层驱动实现。
.elf文件是生成的可执行文件
关于处理器系统
Zynq搭载的是一颗双核ARM-Cortex-A9处理器,是一颗“硬”处理器,而Xilinx MicroBlaze是由可编程逻辑组成的“软”处理器,MicroBlaze也可以在Zynq芯片上实现

上图绿框是应用处理单元(APU),包含两个ARM核等处理资源。NEON引擎实现了单指令多数据功能来实现DSP类算法的加速,NEON指令是对ARM指令集的扩展,可以直接使用。浮点扩展(FPU)则实现了浮点运算的硬件加速
zynq的GPIO
zynq的GPIO实现方式有三种:MIO、EMIO、AXI_GPIO。PS通过这三种GPIO和外部接口通信。上面例子点亮LED灯使用的是AXI_GPIO,是一个IP核,消耗PL逻辑资源和PL管脚资源,挂载在AXI总线上,通过AXI总线地址访问。MIO直接和PS相连接,不消耗PL资源,共有54个。EMIO接口位于PS和PL之间,连接到PL的管脚时不消耗PL逻辑资源,连接到PL实现的外设时不消耗PL的逻辑资源也不消耗PL的管脚资源。


vivado 创建PS工程的更多相关文章
- vivado 创建PL工程
参考来源 https://china.xilinx.com/video/hardware/i-and-o-planning-overview.html 前言 我Win10系统上的Xilinx Plat ...
- Vivado SDK 2014.2 创建新工程后,BSP版本不对的解决办法
问题描述如下: 1. 使用Vivado SDK 2014.2已经创建了工程,但是此时,hdf文件增加了外设,需要重新创建工程以更新SDK中的外设描述: 2. 使用新的hdf创建工程后,发现system ...
- 在VS2015 RC打开CTP中创建的工程
VS2015终于出了RC了!小伙伴们快来安装试用吧,地址在这里,还有新的Windows 10开发工具哦,要不然是开发不了Universal Windows App的,安装前记得卸载CTP版本. 新的R ...
- 三、使用maven创建scala工程(scala和java混一起)
本文先叙述如何配置eclipse中maven+scala的开发环境,之后,叙述如何实现spark的本地运行.最后,成功运行scala编写的spark程序. 刚开始我的eclipse+maven环境是配 ...
- 什么是maven与maven的使用过程(例如在idea创建maven工程(重点讲讲idea创建使用maven管理的web工程,并且部署到tomcat上))
什么是maven与maven的使用过程(例如在idea创建maven工程) (重点讲讲idea创建使用maven管理的web工程项目,并且部署到tomcat服务器上) 一.什么是maven? 1, M ...
- Eclipse创建Maven工程报错
问题 用Eclipse创建maven工程的时候,总是会报错,例如提示: Unable to create project from archetype [org.apache.maven.archet ...
- MyEclipse创建Maven工程
先要在MyEclipse中对Maven进行设置:
- 关于Xcode6创建的工程在Xcode5打开
Xcode6创建的工程在Xcode5打开- 4.0只显示3.5大小的问题 只需要在工程里添加Default-568h@2x.png,即可以解决
- windows下无法创建django工程的问题
环境:python2.7 django1.7 安装好django后,将C:\Python27\Lib\site-packages\Django-1.7.7-py2.7.egg\django\bin; ...
随机推荐
- Integer 的 valueOf 方法 与 常量池(对 String Pool 的部分理解)
举例: public class Test { @org.junit.Test public void intTest() { Integer t1 = 128; Integer t2 = 127; ...
- js读取解析JSON类型数据【申明:来源于网络】
js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841
- 终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core
迷人的 ASP.NET Core 有一个美中不足之处,自从一开始接触它到现在,我就一直不喜欢,一直想找到替代品,甚至想过自己实现一个,它就是 BundlerMinifier . 昨天面对 bundle ...
- mongoDB数据库插入数据时报错:db.collection is not a function
nodejs连接mongodb插入数据时,发现mongoDB报错:db.collection is not a function.解决方法: 1.npm下载mongodb2.x.x版本替换3.x.x ...
- mac新手使用
mac新手使用教程 B站上有个Mac云课堂
- 最全的MonkeyRunner自动化测试从入门到精通(9)
最基本脚本功能开始编写(1)Monkeyrunner和Monkey的区别 1)Monkeyrunner工具在工作站上通过API定义的特定命令和事件控制设备或模拟器(可控) 2)精确控制事件之间的事件 ...
- VUE中的v-show和v-if
v-show="判断条件" 显示或隐藏 v-show占位置 v-if 隐藏(不占位置)
- random函数的使用
random作为随机函数用处很多,在Python里面也经常使用,特别是处理一些随机事件的时候,特别好用! 废话不多说,直接看下面的例子: random.randomrandom.random() ...
- Linux C++ IDEs
个人推荐CLion, Visual Studio, Netbeans, Eclipse CDT排名部分先后,纯属个人偏好. 还有一点需要说明的是,笔者只用这几个工具写代码,也就是用他们提供的代码提示, ...
- jmeter插件使用说明
jmeter作为一个开源的接口性能测试工具,其本身的小巧和灵活性给了测试人员很大的帮助,但其本身作为一个开源工具,相比于一些商业工具(比如LoadRunner),在功能的全面性上就稍显不足. 这篇博客 ...