硬件平台:ZedBoard

软件平台:vivado2013.3

本演示样例通过综合、实现,生成比特流,发送到SDK实现。

启动vivado而且创建一个项目

依据提示操作一步步创建新项目的时候记得选择RTL Project

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

板子选择ZedBoard。其它默认。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

创建一个IP综合设计

在IP Integrator中选择Create Block Design

在Create Block Design弹出页。为IP子系统设计定义个名字

在IP子系统中。在中间的Diagram中选择Add IP

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

在搜索页。输入zynq找到ZYNQ7 Processing System IP

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

在Diagram页,点击Run Block Automation,然后Run Block Automation对话框打开,选择/processing_system7_1。这时。会出现一个对话框,这个IP核会自己主动为FIXED_IO和DDR接口创建外部连接,点击OK。

用相同的方法,我们添加外设。在Diagram右击,选择Add IP,在搜索页,输入gpio找到AXI GPIO IP,点击enter确认加入,反复上述步骤,输入axi bram加入AXI BRAM Controller;输入block加入Block Memory Generator。完毕之后的窗体例如以下所看到的:

依据要求定制IP核

双击Block Memory Generator进入Re-­-customize IP界面,在Basic页,将Mode设置为BRAM Controller。Memory Type设置为True Dual Port RAM。当中AXI BRAM Controller为Block Memory Generator提供AXI内存映射接口。

通过点击连接点并拖动连线将Block Memory Generator与AXI BRAM Controller连接起来

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

使用Designer Assistance

Block Designer Assistance能够帮助我们将AXI GPIO和AXI BRAM Controller连接到Zynq-7000 PS。

1.点击Run Connection Automation然后选择/axi_gpio_1/s_axi将GPIO IP和BRAM Controller连接到Zynq PS上

2.再次选择Run Connection Automation。连接/axi_gpio_1/gpio,然后会弹出一个对话框,选择板子接口为leds_8bits。这一步但是配置IP核,创建一些必要的文件约束(XDC)

3.再次再次选择Run Connection Automation。选择剩下的/axi_bram_ctrl_1/S_AXI选项,这样就完毕了Zynq7 PS与AXI BRAM Controller的连接。布局完毕的连线例如以下所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

打开Address Editor标签页,这里是我们所使用的IP的内存映射,在这里有两个IP:GPIO和BRAM Controller,一般来说Vivado会自己主动分配这些内存映射。我们也能够改动它,这里把AXI BRAM Controller改成64K。

保存配置(CTRL+S)。

在工具栏那里,通过Validate Designbutton执行DRC(Design-Rules-Check)

假设成功会弹出成功的对话框。

生成HDL设计文件

在Sources窗体,右击顶层子系统设计选择Generate Output Products,这会生成用于结构图IP核的源文件和相关的约束文件。

还是在顶层子系统设计选择Create HDL Wrapper创建一个顶层HDL文件

完毕设计并生成比特流

在Flow Navigator中,点击Generate Bitstream完毕设计并生成比特流(这一步时间会非常长)

在生成比特流后,选择Open Implemented Design

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFrZTgyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

将硬件信息导入到SDK

在这一步,我们将硬件信息导入到SDK,这一步须要将板子电源接上,而且把PROG和UART都已经连接电脑。详细例如以下所看到的:

1.在Flow Navigator,选择Open Block激活IP综合设计。

从Vivado菜单中选择Export Hardware for SDK,

在弹出的对话框中,确保Export Hardware,Include bitstream,Launch SDK都已经选择了。

至今。高端硬件。开始SDK操作软件的一部分。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Vivado的helloword计划(一个):硬件project部分的更多相关文章

  1. Vivado的helloword程序:硬件工程部分

    硬件平台:ZedBoard软件平台:vivado2013.3 本示例通过综合.实现,生成比特流,发送到SDK实现.启动vivado并且创建一个项目根据提示操作一步步创建新项目的时候记得选择RTL Pr ...

  2. Vivado的helloword程序:软件工程部分

    建立工程 Export结束后,会自动启动SDK.界面如下.可以看到工程浏览器Project Explorer中已经有一个硬件平台hw_platform_0,里面有一系列配置和初始化文件.不要修改这些文 ...

  3. myeclipse 第一个web project

    创建一个java project. 不行...js文件是javascript代码的文件.应该放在web目录下...java文件是后台管理的程序代码.放在src目录下...不同的...   那是不是把所 ...

  4. 一个Web Project引用多个Java Project在Eclipse下的配置--转载

    项目结构: 项目由一个Web Project和多个Java Project构成,Web Project需要引用其它Java Project的类和Jar包.开发时用Eclipse3.5和Tomcat调试 ...

  5. WinHEC(Windows硬件project产业创新峰会)将2015回归

    WinHEC这是Windows Hardware Engineering Cumminity,中国呼吁Windows硬件project产业创新峰会.将2015在早期的回报,2015年3月18日至19日 ...

  6. Spring Framework5.0 学习(1)—— 用Gradle构建一个Java Project

    1.0  安装Gradle,参考之前文章<Gradle入门实战(Windows版)> 2.0  使用gradle 快速生成一个Java project gradle init --type ...

  7. 使用eclipse插件创建一个web project

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  8. 18 12 30 新建一个 django project

    1. 新建一个 django project 1 2 django-admin.py startproject project_name 特别是在 windows 上,如果报错,尝试用 django- ...

  9. 有个性的手动计划模式(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 任务工作表里默认的标题"工期"."开始时间"."结束时间"这些 ...

随机推荐

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图:   从上图我们可以 ...

  2. Java4Android之BlockingQueue

    在研究Smack的源码的时候,我对它的连接Connection以及派生类XMPPConnection的关注是最多的,由于一个即时通信程序,它的网络模块必是它的核心. 而我非常在乎它是怎样实现的. 在收 ...

  3. c#为了实现自己的线程池功能(一)

    线程池的技术背景 在面向对象编程中,创建和销毁对象是非常费时间的,由于创建一个对象要获取内存资源或者其他很多其他资源,所以提高服务程序效率的一个手段就是尽可能降低创建和销毁对象的次数.特别是一些非常耗 ...

  4. POJ 3100 &amp; ZOJ 2818 &amp; HDU 2740 Root of the Problem(数学)

    题目链接: POJ:id=3100" style="font-size:18px">http://poj.org/problem? id=3100 ZOJ:http ...

  5. 关于产品的一些思考——腾讯之QQ音乐

    --------------------2014.5.11-------------------- 原来一直使用小米手机自带的音乐播放器,除了搜歌下载不方便,其它的还好(省电是最大的长处),用过Jin ...

  6. iOS: NSMutableArray的方法removeObject:inRange:

    - (void)removeObject:(id)anObject inRange:(NSRange)aRange

  7. BZOJ 2783 JLOI 2012 树 乘+二分法

    标题效果:鉴于一棵树和一个整数s,问中有树木几个这样的路径,点和担保路径==s,深度增量点. 这一数额的输出. 思维:用加倍的想法,我们可以O(logn)在时间找点他第一n.因为点权仅仅能是正的,满足 ...

  8. Java多线程的wait(),notify(),notifyAll()

    在多线程的情况下.因为多个线程与存储空间共享相同的过程,同时带来的便利.它也带来了访问冲突这个严重的问题. Java语言提供了一种特殊的机制来解决这类冲突,避免同一数据对象由多个线程在同一时间访问. ...

  9. struts2在&lt;s:select&gt;用动态标签

    后台传过来的必要性userlist成为一个下拉菜单.因此,认为使用<s:select>.但设置了很久设置的属性,在这个下跌. JSP代码: <s:select label=" ...

  10. HDU 1557 权利指数 国家压缩 暴力

    HDU 1557 权利指数 状态压缩 暴力 ACM 题目地址:HDU 1557 权利指数 题意:  中文题,不解释. 分析:  枚举全部集合,计算集合中的和,推断集合里面的团体是否为关键团队. 代码: ...