[X]关闭
 专注集成电路FPGA应用生态推广
 微信公众号
扫码关注
米联客uisrc 首页 Xilinx课程 19版FPGA 5-MicroBlaze 查看内容
0

(基础篇)S05-CH01-MicroBlaze最小系统搭建

摘要: 学习C语言时,我们跑的第一个工程大多都是跑一个Hello World!而要在我们的MA703FA上进行软核设计,使其打印Hello World,则前提是要有一个CPU。学习过ZYNQ和NIOS的都知道,ZYNQ的设计中缺不了ZYNQ Processing Syste ...

软件版本:VIVADO2017.4

操作系统:WIN10

硬件平台: ARTIX-7 系列开发板

米联客(MSXBO)论坛www.osrc.cn答疑解惑专栏开通,欢迎大家给我提供!!!

1.1 前言

      学习C语言时,我们跑的第一个工程大多都是跑一个Hello World!而要在我们的MA703FA上进行软核设计,使其打印Hello World,则前提是要有一个CPU。学习过ZYNQ和NIOS的都知道,ZYNQ的设计中缺不了ZYNQ Processing System这个IP,这个IP的功能就相当于ZYNQ设计中的CPU。不同于ZYNQ自带了硬核,MA703FA上搭载的Artix7系列FPGA必须借由一个软核来充当CPU,这个软核是由FPGA内部的逻辑资源组合而成的,虽然性能上比不了ZYNQ的硬件,但在一些控制的领域还是能做到游刃有余。同样的,xilinx也提供了软核的IP,这就是MicroBlaze。本节就将为大家介绍如何搭建一个MicroBlaze最小系统,并打印Hello World。

1.2 硬件部分设计

       一个完整的MicroBlaze系统主要由四个部分组成:CPU、时钟、DDR和外设。接下来分别介绍这四个部分的搭建,最后使之成为一个完整的系统。

1.2.1 CPU 和时钟设计

Step1:创建一个vivado工程,将工程名字命名为Syetem(如果还不熟悉如何创建工程步骤,请参考前两季课程)。

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

Step3:单击添加IP图标,然后输入关键字MicroBlaze,将其添加到BD文件中来。

Step4:在BD文件中,双击MicroBlaze图标,对其进行配置,配置参数如下图所示:

从上图可以看出,其中大部分的配置可以采用系统默认的配置,上图我们主要修改了两个参数,第一个是允许外部存储BRAM作为程序运行缓冲区,第二个是允许AXI数据流。修改完成之后点击OK即可。
Step5:点击Run Block Automation,在弹出来的窗口中直接点击OK。

Step6:双击clk_wiz_1,然后如下图所示配置。

选择了图中圈出部分后,就可以点击OK完成IP的修改。

Step7:在BD文件中添加Utility Vector Logic。IP设置选择取反。

Step7:选中clk_wiz_1的clk_in引脚,按组合键Ctrl+T引出引脚。

     选中util_vector_logic_0的Op1引脚,按组合键Ctrl+T引出引脚,并修改引脚名为reset.

Step8:将rst_clk_wiz_1_100M的ext_reset_in引脚连接到util_vector_logic_0的reset引脚;将clk_wiz_1的reset引脚连接到util_vector_logic_0的reset引脚。

至此就完成了CPU和时钟部分的设计。

1.2.2 DDR设计

      CPU和时钟部分设计完成之后,接下来是DDR部分的设计,在VIVADO中,提供了存储控制器MIG供大家使用。可以使用TCL脚本配置,也可以使用IP的GUI界面配置。下面介绍GUI界面配置方法。

Step1:在VIVADO最底端的tcl控制台输入以下命名,创建一个MIG IP.

set mig_7series_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.0 mig_7series_0 ]

命令完成之后,可以发现在BD文件当中,创建了一个MIG,如下图所示:

Step2:双击mig_7series_0,进行如下配置

Step1:选择使用芯片型号

Step2:配置DDR型号及时钟

Step3:配置DDR管脚

Step4:点击Read XDC/UCF,加载管脚配置文件。

Step5:选择工程目录下的read_xdc文件夹下的mig_7series_0.xdc文件,点击Validate,点击OK。

Step6:连续点击Next,直到出现如下界面。

Step7:选择Accept,点击Next,直到出现如下界面,选择Generate,DDR3设置完成。

Step8:单击Run Connection Automation,然后如下图设置:

Step9:将MIG的sys_rst,sys_clk_i分别与util_vector_logic_0的reset,clk_out2连接起来,如下图所示:

Step10:选中MIG的DDR3管脚,按Crtl+T引出来。

Step11:选中Address Editor,然后如下图所示设置:

1.2.3 外设设计

       此部分主要是添加一些常用的接口,比如UART和INTC,方法也比较简单,直接添加IP即可。在左侧的工具栏中点击按钮,然后搜索关键字UART,双击将其添加到工程当中,如下图所示:

         接下来还需要对串口做一些设置,双击UART,将波特率改为115200:


       修改完成之后,点击OK,之后再点击Run connection Automation,再弹出来的窗口中把所有选项勾选上,再点击OK即可。

1.3  导出BD文件为tcl脚本

     最小系统搭建完成之后,在之后的设计中可能会再次使用到这一部分的设计,为了避免重复的设计,浪费开发时间,笔者这里介绍一种高效的工程管理方式——将BD文件导出为tcl脚本。导出tcl脚本之后,在下次设计中,我们就只需要运行tcl脚本即可完成此部分电路的配置,能有效的节省开发时间,此方法也不仅仅局限于MA703FA开发板,对于所有XILINX 7系列FPGA均可以适用。

     Step1:将UART IP的输出管脚名称改为UART(单击原有的名字,然后找到如下窗口,修改完成之后按Enter即可)。

      Step2:在TCL控制台中输入如下命令将BD文件导出为tcl脚本。

write_bd_tcl C:/CH01_Hello_World/tcl/Artix7_bd.tcl

      此处需要注意的是上面红色部分是导出文件的存放路径,需要根据自身的情况加以修改。运行完之后,系统会导出一个Artix7_bd.tcl文件,之后我们就可以使用这个文件来搭建最小系统。

1.4 导出硬件

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

Step1:选中top.bd,右单击然后选择Generate Output Products。

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

 

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


 

Step4:添加一个名为Artix7_pin的约束文件,并添加约束(管脚及电压配置以原理图为准):

Step5:单击产生Bit文件。

Step6:生成Bit文件之后,单击File-Export-Export Hardware。

Step7:勾选 Include bitstream,单击OK。

Step8:单击File-Launch SDK。

点击OK

1.5 软件设计

      上一节点击Launch SDK之后,系统会运行SDK,接下来的工作就是创建一个SDK工程用于验证硬件工程的正确性。

Step1:单击File-New-Application Project开始创建一个SDK工程。

Step2:在新弹出来的窗口中,输入工程名字Hello_world(注意不能有非法字符)。

Step3:单击Next,然后在左侧选择Hello world(默认就是),最后选择Finish。

      上图中用红色方框圈出的就是最常用到的三项,其中第一项是创建一个空白工程(创建完成之后没有设计文件),第二项是Hello world打印测试,第三项是存储器测试,可以用来测试DDR3是否正常。

Step4:稍微等待一会儿,等待工程完全创建完毕之后,选中工程(将鼠标挪动到工程上面),然后右单击,选择Debug as-Debug configuration。

Step5:在弹出来的新窗口中,双击下图圈出部分,然后勾选箭头所示参数

Step6:单击APPly,然后单击Debug(进行这一步之前,先给开发板上电)。

Step7:在下图所示区域找到SDK Terminal(这是软件自带的串口调试软件,记住如何使用,下次会直接跳过具体操作),然后单击加号图标

Step8:单击加号图标之后,再新弹出来的窗口中设置好对应的端口号和波特率,然后单击OK。

Step9:按一下F8,或者单击图标开始运行程序,然后可以看到在串口调试区域看到系统打印输出了Hello world,系统功能正常。

1.6 本章小结

       本章为大家介绍了如何搭建MicroBlaze最小系统,然后将bd文件导出为了tcl文件,最后在SDK中运行了一个串口打印Hello World程序。如果大家有兴趣,可以尝试再创建一个SDK工程,选择Memory Test,测试一下板子自身的DDR,这里将运行结果贴出来。

2

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (2 人)

说点什么...

已有0条评论

最新评论...

本文作者
2019-11-5 17:24
  • 7
    粉丝
  • 4576
    阅读
  • 0
    回复

关注uisrc网络

扫描关注,了解最新资讯

电话:0519-80699907
EMAIL:270682667@qq.com
地址:常州溧阳市天目云谷3号楼北楼
热门评论
排行榜

关注我们|扫描二维码

米联客微信公众号

米联客天猫旗舰店

客服服务热线:

0519-80699907

常州-总部:常州溧阳市中关村吴潭渡路雅创高科智造谷10-1幢楼

南京-分部:南京市栖霞区仙林大道181号5幢1821室

邮编:213300 Email:tjy@uisrc.com

Copyright   ©2020-2026 内容版权归©UISRC.COM    ( 苏ICP备19046771号-2 )