软件版本: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、时钟、内存 和外设。接下来分别介绍四个部分搭建,最后成为一个完整系统。这里直接采用 DDR3 作为内存进行设计。简化上一季 DDR 操作,不再需要用 tcl 命令。 1.2.1 DDR设计Step1:创建一个 vivado 工程,给工程取个名字,这里将工程名字命名为project_A7_DDR,选择对应芯片(如果还不熟悉如何创建工程步骤,请参考前两季课程)。 Step2:点击Create Block Design,创建一个BD文件,并命名为Top。 Step3:在VIVADO中,提供了存储控制器MIG供大家使用。可以使用TCL脚本配置,也可以使用IP的GUI界面配置。在VIVADO最底端的tcl控制台输入以下命名,创建一个MIG IP.
单击IP Catalog,选取Memory Interface Generator(MIG 7 series)IP添加到Block design中。
Step4:双击MIG 7 SERIES ,对这个IP进行配置。 选择 Create Design,单击next。 单击next 选择DDR3,单击next。 设置MIG 内核时钟频率为 400MHZ、内存型号、内存的数据位宽 设置IP 核的输入时钟频率 为200Mhz 系统时钟选择no buffer和use system clock, ,MIG高电平复位,XADC补偿使能(本教程没有使用到,但是仍然使能) 终端阻抗选择 50hms 选择 Fixed Pin Out 根据原理图手动填写 PIN 脚定义,或者选择Read XDC/UCF直接读入pin脚定义 填写完成后,先单击Validate再单击NEXT 单击 NEXT
单击 NEXT
单击 NEXT
单击 NEXT
单击 Generate 1.2.2 CPU 和时钟设计Step5:添加 IP clocking Wizard,设置时钟输入和输出。 Step6:添加软核 Microblaze,点击 Run Block Automation,其中 Local Memory 是Microblaze 的内存,使用资源是 BlockRAM,可以自己选择大小,使能中断和AXI 接口。 Microblaze 配置要求如下 如图点击Run connectionAutomation进行连接 1.2.3 外设设计此部分主要是添加一些常用的接口,比如AXI time 和 AXI uart IP,方法也比较简单,直接添加IP即可。在左侧的工具栏中点击按钮,然后搜索关键字AXI Uartlite,双击将其添加到工程当中,如下图所示: 生成顶层文件 添加一个 XDC约束文件(管脚及电压配置以原理图为准),单击产生Bit文件。 生成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:右击hello world 工程,点击generate linker script,,这里的存储可以选择bram或者ddr。 Step6:在弹出来的新窗口中,双击下图圈出部分,然后勾选箭头所示参数 Step7:单击APPly,然后单击Debug(进行这一步之前,先给开发板上电)。 Step8:在下图所示区域找到SDK Terminal(这是软件自带的串口调试软件,记住如何使用,下次会直接跳过具体操作),然后单击加号图标 Step9:单击加号图标之后,再新弹出来的窗口中设置好对应的端口号和波特率,然后单击OK。 Step10:按一下F8,或者单击图标开始运行程序,然后可以看到在串口调试区域看到系统打印输出了Hello world,系统功能正常。 |
扫描关注,了解最新资讯