前言:之前笔者的试用博文提到安富利这块板子非常适合MicroBlaze开发,同时网上关于MicroBlaze的资料非常少(或含糊不清),没有一篇能完整介绍VIVADO SDK的设计流程,所以笔者带来这篇博文以供参考。

实验平台:Avnet-Artix-7 50T 开发套件/其它硬件也可以
EDK:Vivado 2015.2
SDK:Xilinx SDK 2015.2

实验内容:创建一个简单的MicroBlaze,实现板上LED流水灯和串口功能。

实验步骤:
(一)        EDK部分
1.        VIVADO下创建一个空工程。
2.        IP Integrater -> Create Block Design
3.        框图内添加IP,such as MicroBlaze IP。使用Avnet-Artix-7 50T 开发套件双击Board
中器件即可。非该套件使用者,需要右击Diagram->ADD IP ->AXI Uartlite |AXI GPIO。需要双击IP设置对应波特率和GPIO_LED的位数。

4.        点击 Run Block Automation

5.        点击 Run Connection Automation
——将剩下的线连上,时钟都接100MHz,非开发板用户功能都设置为custom。
注意:rst复位信号,Active High or Low根据自己开发板来定。
最终的Diagram如下图所示:

6.        点击VIVADO工具栏 Validate Design按钮(或按F6),编译设计时候正确。
7.        右击Design Sources栏中 .bd文件,Generate Output Product。
8.        Creator HDL wrapper。//Let Vivado auto……
9.        Synthesis -> Implementation -> Generate Bitsteam
10.        File -> Export Hardware //include bitstream 勾打上,location 随意。
至此,FPGA软核系统包括所需外设电路驱动都搭好了,EDK部分至此结束。

(二)        SDK部分
1.        File -> Launch SDK。


SDK界面如上图所示,这是笔者SDK Application建立好之后界面,不过也差不多。

2.        File -> New


Project Name 随意起个,点击next,选择Hello World模板,Finish。


这里模板已经写好了串口的初始化和打印部分,我们在添加上流水灯部分就OK了。


完整程序如上图所示,需要添加两个头文件,分别包含了外设器件的地址和操作GPIO的库函数。有Keil或其他编程经验的都可以看懂。
3.        工具栏 Xilinx Tools –> Program FPGA
4.        右击 左侧New_Pro选择RUN As -> 1….. //笔者这里选择的是第一个

实验结果如下图所示:        //注意的是串口的设置不要错


总结:本文实现的功能是很简单的,主要是让大家体会MicroBlaze设计的流程。笔者没有介绍每一步的详细过程,旨在提供一个框架的搭建流程。

转载:http://www.openhw.org/module/forum/thread-644629-1-1.html

Artix-7 50T FPGA试用笔记之Create a simple MicroBlaze System的更多相关文章

  1. kbmMW 5.07.00试用笔记

    在kbmMW 5.06.20试用笔记中遇到的问题,在这个版本中,基本都解决了.但还是发现修正后存在的小问题及新问题: 1.Resolve返回值错误 当提交的ClientQuery是执行一条sql语句, ...

  2. kbmMW 5.06.20试用笔记

    1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使 ...

  3. CentOS 7 mini 试用笔记

    CentOS 7 mini 试用笔记 安装过程中,网卡是默认关闭的,要手动打开. 安装好以后,查看IP地址:# ip addr----------------------1: lo: 本地回环2: e ...

  4. Create a simple REST web service with Python--转载

    今日尝试用python建立一个restful服务. 原文地址:http://www.dreamsyssoft.com/python-scripting-tutorial/create-simple-r ...

  5. CREATE FILE encountered operating system error 5(Access is denied.)

    这篇博文主要演示"CREATE FILE encountered operating system error 5(Access is denied.)"错误如出现的原因(当然只是 ...

  6. FPGA Timing笔记

    很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路 ...

  7. Xilinx FPGA 学习笔记

    一.时序设计 方法1.通过状态机来实现,通过verilog控制FPGA,让它该快的时候快,该慢的时候慢. 方法2.FPGA中运行CPU 把逻辑控制顺序复杂的事情用C代码来实现,而实时处理部分用veri ...

  8. FPGA学习笔记(六)—— 时序逻辑电路设计

    用always@(posedge clk)描述        时序逻辑电路的基础——计数器(在每个时钟的上升沿递增1) 例1.四位计数器(同步使能.异步复位) // Module Name: coun ...

  9. uniGUI试用笔记(十三)调用WebService

    今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘. 1.对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长, ...

随机推荐

  1. php版本管理工具composer安装及使用

    类似于web前端有gulp,webpack,grunt.php也有专门的包安装管理和安装工具,即composer. composer官网:https://getcomposer.org      中文 ...

  2. kubernetes实战(八):k8s集群安全机制RBAC

    1.基本概念 RBAC(Role-Based Access Control,基于角色的访问控制)在k8s v1.5中引入,在v1.6版本时升级为Beta版本,并成为kubeadm安装方式下的默认选项, ...

  3. Day19 客户关系系统实战

    day19 今日内容 Service事务 客户关系管理系统     Service事务 在Service中使用ThreadLocal来完成事务,为将来学习Spring事务打基础! 1 DAO中的事务 ...

  4. shell 变量定义技巧总结

    可以多学习和模仿操作系统自带的/etc/init.d/functions函数库脚本的定义思路,多学习Linux系统脚本中的定义,有经验的读者最终应形成一套适合自己的规范和习惯. (1)变量名及变量内容 ...

  5. Spark checkpoint机制简述

    本文主要简述spark checkpoint机制,快速把握checkpoint机制的来龙去脉,至于源码可以参考我的下一篇文章. 1.Spark core的checkpoint 1)为什么checkpo ...

  6. C# static的用法详解

    C#   static的用法详解 有的东西你天天在用,但未必就代表你真正了解它,正如我之前所了解的 static . 一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 n ...

  7. redis入门学习记录(一)

    1.linux在线下载Redis ,官网地址:https://redis.io/download目前,最新的Redist版本为redis-5.0.0,使用wget下载 进入/usr/local/src ...

  8. Python 操作 SQL 数据库 (ORCAL)

    MySQLdb.connect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:host:MySQL服务器名user ...

  9. HDU4642

    #include<stdio.h> #include<string.h> int main() { int i,j,n,m; int t; scanf("%d&quo ...

  10. HDU1503Advanced Fruits

    /*给出两串,求一个最小的字符串包含这两个子串,子串在这个字符串中的顺序不变, 做法:定义两个数组,分别标记公共部分在第一个串和第二个串中的位置,在输出是判断一下,输出一个串两个公共部分之间的部分,不 ...