MicroBlaze是AMD-Xilinx提供的一个可以在FPGA中运行的嵌入式软核IP,其本质是一个32位RISC处理器软核,可以在150MHz时钟下,提供125 D-MIPS性能,具有运行速度快、占用资源少、可配置性强等优点。

今天主要是搭建一个通用MicroBlaze最小系统+一个外设,最后固化程序到FPGA。

整体难度★不到

缩略词索引:MB-MicroBlaze

环境平台

  • win10 vivado 2020

  • Vitis 2020

FPGA部分搭建

一个完整的MB系统,包括四个方面:CPU、时钟、 DDR 和外设,其中CPU不用说就是MB,DDR不是必须的,根据硬件选择,如果没有DDR时候选择内部RAM使用需要选择大一点,所以下面分成两种情况建立最小系统。

不带DDR的MB最小系统-通用系统

第1步

搭建Vivado系统,不过多赘述了!

第2步

点击 Create Block Design,创建一个 BD 文件,并命名为MB_block。

第3步

单击添加 IP 图标,然后输入关键字 MicroBlaze。

双击将MB添加到 BD 文件中:

第4步

添加时钟,在添加IP图标位置输入关键字Clocking Wizard。

双击将Clocking Wizard添加到BD文件中。

第5步-此步可不加

时钟设置,双击Clocking Wizard对时钟进行配置。

输入时钟根据硬件进行选择,我的硬件是一个单端50MHz时钟,输出时钟参数如下:

clk_out1作为MB的运行时钟,这里设置为100MHz,而clk_out2的200MHz是作为DDR控制器的运行时钟。

勾选locked作为后续电路的复位信号。

其他页面默认即可,点击【OK】完成设置。

第6步

MB设置,在 BD 文件中,双击 MB 图标,对其进行配置,第一页配置参数如下图所示:

注意图中圆圈是需要勾选的,允许外部存储 BRAM 作为程序运行缓冲区,方框部分是软核的频率、面积和性能三方面的综合结果(三方不可同时兼得)。

点击【Next】,进行下一界面进行设置:

界面默认,点击【Next】:

按照上图设置,点击【Next】:

界面默认,点击【Next】:

按照上图设置,允许 AXI 数据流。修改完成之后点击 【OK】  即可。

上面主要修改三个部分:第一页允许外部存储 BRAM 作为程序运行缓冲区;第三页设置Cache基地址和长度;第五页是允许AXI数据流,用来访问外部DDR。

第7步

让BD自动完成设置,点击Run Block Automation完成剩下的设置。

弹出的界面默认即可,时钟使我们上面第4步Clocking Wizard生成的,Local Memory 选择 32KB,因为没有外部存储器。

第8步

引出相关引脚。

组合键 【Ctrl+T】 引出引脚。

第9步

验证目前设计的正确性:

目前这一步已经完成了最小系统设计。

第10步

修改引脚名称。

第11步

导出BD,按照下图位置:

设置路径,设置BD名称:

路径下就生成了一个tcl文件,同理也可以使用下面命令实现相同功能:

write_bd_tcl [你的路径]/xxx_bd.tcl

第16步

上面就完成了整个最小系统搭建,接下来搭建带带DDR的MB最小系统,然后我们以这个最小系统为例说明其为什么具有通用性。

带DDR的MB最小系统

第1步

搭建Vivado系统,不过多赘述了!

第2步

点击 Create Block Design,创建一个 BD 文件,并命名为MB_block。

第3步

单击添加 IP 图标,然后输入关键字 MicroBlaze。

双击将MB添加到 BD 文件中:

第4步

添加时钟,在添加IP图标位置输入关键字Clocking Wizard。

双击将Clocking Wizard添加到BD文件中。

第5步

时钟设置,双击Clocking Wizard对时钟进行配置。

输入时钟根据硬件进行选择,我的硬件是一个单端50MHz时钟,输出时钟参数如下:

clk_out1作为MB的运行时钟,这里设置为100MHz,而clk_out2的200MHz是作为DDR控制器的运行时钟。

勾选locked作为后续电路的复位信号。

其他页面默认即可,点击【OK】完成设置。

第6步

MB设置,在 BD 文件中,双击 MB 图标,对其进行配置,第一页配置参数如下图所示:

注意图中圆圈是需要勾选的,允许外部存储 BRAM 作为程序运行缓冲区,方框部分是软核的频率、面积和性能三方面的综合结果(三方不可同时兼得)。

点击【Next】,进行下一界面进行设置:

界面默认,点击【Next】:

按照上图设置,点击【Next】:

界面默认,点击【Next】:

按照上图设置,允许 AXI 数据流。修改完成之后点击 【OK】  即可。

上面主要修改三个部分:第一页允许外部存储 BRAM 作为程序运行缓冲区;第三页设置Cache基地址和长度;第五页是允许AXI数据流,用来访问外部DDR。

第7步

让BD自动完成设置,点击Run Block Automation完成剩下的设置。

弹出的界面默认即可,时钟使我们上面第4步Clocking Wizard生成的。

第8步

引出相关引脚。

上图界面选择clk_in1,组合键 【Ctrl+T】 引出引脚:

第9步

验证目前设计的正确性:

目前这一步已经完成了最小系统设计,下面开始DDR设计。

第10步

添加DDR控制器:

添加IP界面,输入关键字memory interface generator

双击memory interface generator后再BD中添加MIG:

第11步

设置MIG IP。

双击 mig_7series_0,进行如下配置:

注:如果system clock的频率在199-201MHz之间,这里会出现一个use system clock 的选项,意思就是用系统时钟作为参考时钟

后面全部默认点击【NEXT】即可。

将MIG的线按照下图进行连接:

第12步

添加外设,我们主要添加串口,负责调试。

双击 UART,将波特率改为 115200:

第13步

再点击 Run connection Automation,再弹出来的窗口中把所有选项勾选上,再点击【OK】 即可。

验证设计:

第14步

修改引脚名称,因为这部分将作为一个最小系统供后续使用。

第15步

导出BD,按照下图位置:

设置路径,设置BD名称:

路径下就生成了一个tcl文件,同理也可以使用下面命令实现相同功能:

write_bd_tcl [你的路径]/xxx_bd.tcl

测试及固化程序

第1步

建立一个新的Vivado工程。

第2步

导入上一节生成的最小系统:

选择tcl文件,确定即可

这样就生成了一个最小系统:

第3步

添加Clocking Wiard,按照下图进行设置

第4步

添加一个AXI-GPIO,按照下图设置:

后面控制三个LED等。

第5步

点击 Run connection Automation,再弹出来的窗口中把所有选项勾选上,再点击【OK】 即可。

第6步

导出硬件

将 bd 文件导出为 tcl 脚本之后,继续对工程进行完善。

选中 xxx.bd,右单击然后选择 Generate Output Products。

第7步

在弹出来的窗口中,如下图所示,然后单击【OK】。

第8步

选中 XXX.bd,右单击然后选择 Create HDL Wrapper,在弹出来的窗口中直接点击【OK】。

第9步

添加一个名为 mb_test.xdc 的约束文件,并添加约束(物理约束需要根据自己硬件选择)。

第12步

单击下列图标产生 Bit 文件。

第13步

生成 Bit 文件之后,单击 File-Export-Export Platform...

第14步

TOOLs-->Launch Vitis IDE

选择工作文件夹。

创建Platform

选择上一步生成的Platform(XSA文件)

右击,build project

无问题后继续后面步骤。

第15步

创建App

【NEXT】

【NEXT】

输入App名称:

【NEXT】

选择Hello World模板。

【FINISH】

第16步

helloworld.c源码我们先不修改。

右击 HelloWorld-->Debug As-->Debug Configurations

设置好参数,使用Vitis自带的串口工具,运行后即可看到打印信息。

接下来就是添加GPIO驱动,和上面操作一样,这里有个小技巧,在建立完App后,点击下图位置:

导入官方提供的历程就可以了。

同样HelloWorld-->Debug As-->Debug Configurations后进行调试即可。

下面说明固化过程。

第17步

固化第一步,生成bit文件,点击XIlinx-->Program Device

记住箭头部分生成的bit文件,同时选择方框内编译出的elf文件。

固化第二步,下载固化FLASH,点击XIlinx-->Program Flash

箭头选择板卡上FLASH的FLASH,方框选择上一步生成的bit文件(默认dowload.bit)。

点击【Program】,完成后重新上电即可。

总结

今天简单演示了一个MB小例子。

【Vivado那些事儿】MicroBlaze最小系统搭建及程序固化相关推荐

  1. sap系统搭建教程_Nios ii最小系统搭建教程

    本教程以最小系统的概念为切入点,详细演示最小系统搭建的每一个步骤:外加嵌入式IP CORE详细的理论剖析和详细的实践演示,提供部分工程集源码下载链接.本手稿为实践总结,只是提供了一个思路,比如,驱动都 ...

  2. 【Aurix系列学习】汇总:TC264D芯片简介及最小系统搭建

    目录 写在前面 芯片资源介绍 芯片命名 系统资源 最小系统的搭建 原理图 PCB 原理图下载链接:https://download.csdn.net/download/qq_42059060/1556 ...

  3. 【Aurix系列学习】TC264D最小系统搭建—基本配置引脚

    目录 1. 测试引脚 2. 调试引脚 3. 复位/NMI引脚 /PORST引脚 /ESRx引脚 4. 电源引脚 初始引脚的配置是TC264D单片机的重点,这一块的配置关系到单片机能否正常上电并可靠运行 ...

  4. 通过J-Flash对最小系统LPC1768进行程序烧录的演示

    关键字:J-Flash 最小系统 LPC1768 程序烧录 概述:通过J-Flash为例演示一下最小系统板下载程序的过程,以J-Flash V6.50b版本为例. 打开J-Flash,选择Flie–& ...

  5. stm32f103c8t6最小系统板烧录程序

    stm32f103c8t6最小系统板烧录程序 连接好线路,却无法使用串口给stm32f103c8t6最小系统板下载程序. 一.串口下载(使用flyMCU) 1.接线如下图,特别注意,boot0必须接1 ...

  6. 不使用总线矩阵的CortexM3最小系统搭建(AHB外设有ITCM,DTCM,DEFAULT_SLAVE和AHB_APB桥,APB外设只有一个UART)附整个工程

    1.1. 实验任务: 不使用总线矩阵搭建系统,系统挂载APB_UART.AHB_SRAM等外设. 1.2. 实验所需模块 CortexM3.v ---------------------------- ...

  7. STM32最小系统搭建(原理图)

    目录 前言 一.搭建最小系统必须的引脚口 二.复位电路 ​ 三.外部晶振电路 四.系统启动配置 详细查看stm32数据手册 前言 下面介绍stm32f103c8t6最小系统的搭建,这款芯片也是销量最多 ...

  8. 使用USB TTL模块 为STC最小系统板下载程序的步骤

    接好GND RX TX 端,及仅拔掉VCC(5V或3.3V) 打开STC-ISP 开始下载 再接上VCC, 若系统板有电源开关,则再打开开关

  9. Esp8266进阶之路10 【小实战下篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

最新文章

  1. 继承QTreeWidgetItem发生error: 'staticMetaObject' is not a member of 'QTreeWidgetItem' 错误
  2. 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?...
  3. zookeeper中展示所有节点_zookeeper工作原理与节点使用
  4. Objective-C MVC
  5. 大一python考试知识点_Python基础知识点(精心整理)
  6. fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
  7. 怎样将优酷独播1080P视频KUX格式转换成MP4
  8. VS2010快捷键总结
  9. 【转】设计模式(三)建造者模式Builder(创建型)
  10. 西门子与源讯联手打造网络安全技术;全球首个5G全息国际通话打通 | IoT黑板报...
  11. 高新科技培育钻石,或掀时尚界新热潮
  12. Android 蓝牙BLE开发详解
  13. python汉语词频统计_Python之四大名著汉字词频统计
  14. java生成唯一订单号
  15. java引入外部字体_Java中如何自定义字体文件(引用外部字体)?-字体文件
  16. 浏览器下载软件时,默认是用迅雷下载,如何取消?
  17. 第5次作业+160+曾元鹏
  18. eclipse refreshing external folders解决方案
  19. 1词法分析PaddleNLP / examples / lexical_analysis
  20. 第十二届蓝桥杯大赛模拟赛(第二期)

热门文章

  1. Xpage客户端脚本触发局部刷新
  2. 搜索软件Elastic上市:市值近50亿美元 是开源项目商业化范本
  3. 满足自动驾驶远程遥控的线控底盘整车控制器VCU
  4. springboot项目图片转换成pdf
  5. 图像处理与计算机视觉网址导航
  6. pytorch3d旋转矩阵转四元数transforms.matrix_to_quaternion函数隐藏的大坑及其解决方法
  7. 网络安全笔记-POC与EXP的Python实现
  8. 压缩包.zip暴力破解方法
  9. Vue封装一个瀑布流图片容器组件
  10. FPGA之触摸按键控制LED灯实验