MicroBlaze串口设计(附源工程)

今天给大侠带来 MicroBlaze 串口设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833。话不多说,上货。

“FPGA产品设计与研发 ” 零基础入门及就业

MicroBlaze串口设计(附源工程)_第1张图片

 

本篇通过原理图设计,学习MicroBlaze基本结构,通过Tcl脚本创建简单的MicroBlaze工程,实现MicroBlaze调用UART模块,完成串口打印功能,掌握在模块化设计中,MicroBlaze最小系统的组成,学会导出、建立以及运行基于SDK的工程。获取本篇相关源工程代码,可在公众号内回复“MicroBlaze串口设计源工程”。

 

设计原理

 

本系统中,Basys3的MicroBlaze模块调用基于AXI协议的UART IP核,通过AXI总线实现MicroBlaze-UART之间的通信,完成串口打印。

 

操作步骤

 

一、基于GUI界面创建工程

1. 创建新的工程项目

1) 双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;

2) 点击‘Create Project’,或者单击File>New Project创建工程文件;

3) 将新的工程项目命名为‘lab6’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续;

4) 选择新建一个RTL工程,由于本工程无需创建源文件,故将Do not specify sources at this time(不指定添加源文件)勾选上。点击 Next继续;

5) 选择目标FPGA器件:xc7a35tcpg236-1或Basys3;

6) 最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建。

 

2. 创建原理图,添加IP,进行原理图设计。

1) 在Project Navigator下,展开IP INTEGRATOR,选择‘Create Block Design’创建新的原理图设计;

2) 将新的设计命名为‘MB_UART’;

MicroBlaze串口设计(附源工程)_第2张图片

 

3) 添加一个clock IP,在原理图(Diagram)界面中鼠标右击,选择‘Add IP’。在IP搜索框中输入‘clocking’,双击添加Clocking Wizard;

MicroBlaze串口设计(附源工程)_第3张图片

 

4) 双击Clocking Wizard模块进行自定义配置,选择Output Clocks一栏,确定clk_out1频率为100(MHz),Reset Type为Active High;

MicroBlaze串口设计(附源工程)_第4张图片

 

MicroBlaze串口设计(附源工程)_第5张图片

 

5) 鼠标右击‘clk_in1’,选择Make External添加引脚;

MicroBlaze串口设计(附源工程)_第6张图片

 

6) 完成后,如下图所示:

MicroBlaze串口设计(附源工程)_第7张图片

 

7) 同样的,在Diagram中添加MicroBlaze IP;

MicroBlaze串口设计(附源工程)_第8张图片

 

8) 添加完成后如下图所示,点击‘Run Block Automation’;

MicroBlaze串口设计(附源工程)_第9张图片

 

9) 在弹出窗口中,使用以下设置替换默认设置;

Local Memory: 128KBLocal Memory ECC: NoneCache Configuration: NoneDebug Module: Debug OnlyPeripheral AXI Port: EnabledInterrupt Controller: 不勾选Clock Connection: /clk_wiz0/clk_out1(100 MHZ)

MicroBlaze串口设计(附源工程)_第10张图片

 

10) 完成之后,Vivado会基于之前的设置自动生成一些额外的IP,并且会自动连接完毕,此时不要点击‘Run Connection Automation’;

MicroBlaze串口设计(附源工程)_第11张图片

 

11) 在Diagram中添加AXI Uartlite IP,在搜索框输入‘uart’,选择相应的IP;

MicroBlaze串口设计(附源工程)_第12张图片

 

12) 鼠标右击Clocking Wizard的‘reset’,选择Make External添加引脚;

MicroBlaze串口设计(附源工程)_第13张图片

 

13) 使用连线工具将Processor System Reset的‘ext_reset_in’与‘reset’相连接。

MicroBlaze串口设计(附源工程)_第14张图片

 

14) 完成后,点击‘Run Connection Automation’,在弹出窗口中勾选所有端口,点击OK继续;

MicroBlaze串口设计(附源工程)_第15张图片

 

15) 完成后,点击按钮重新布局,完成后如下图所示:

MicroBlaze串口设计(附源工程)_第16张图片

 

16) 点击按钮验证设计是否正确

17) 验证成功,设计与连线都正确,点击OK,Ctrl+S保存设计。

MicroBlaze串口设计(附源工程)_第17张图片

 

18) 在Sources窗格中鼠标右键‘MB_UART’,选择‘Create HDL Wrapper’。

MicroBlaze串口设计(附源工程)_第18张图片

 

19) 使用默认选项,点击OK继续,完成HDL文件的创建。

MicroBlaze串口设计(附源工程)_第19张图片

 

20) 添加约束文件

a) 在Flow Navigator中,展开PROJECT MANAGER,点击‘Add Sources’。

b) 选择‘Add or create constraints’,点击Next继续。

MicroBlaze串口设计(附源工程)_第20张图片

 

c) 选择‘Add Files’,找到并添加‘MB_Uart.xdc’文件。注意,要勾选Copy constraints files into project

(文件路径:\Basys3_workshop\sources\lab6\Src\Constraint)

 MicroBlaze串口设计(附源工程)_第21张图片

 

3. 综合、实现、生成比特流文件

1) 在Flow Navigator中展开PROGRAM AND DEBUG,点击Generate Bitstream。Vivado工具会提示没有已经实现的结果,点击‘Yes’,Vivado工具会依次执行综合、实现和生成比特流文件。

MicroBlaze串口设计(附源工程)_第22张图片

 

 

 

 

 

二、基于Tcl脚本创建工程

1. 打开Vivado 2017.2

2. 在底部Tcl命令框使用‘cd’命令,进入MB_Uart.tcl文件所在路径。参考路径:C:\Basys3_workshop\sources\lab6\Src\Tcl,在Tcl命令框输入:cd C:/Basys3_workshop/sources/lab6/Src/Tcl (注意:Vivado使用‘/’)

3. 在Tcl命令框中,输入命令:source ./ MB_Uart.tcl。输入完毕按回车,运行Tcl,等待Tcl进行创建、综合、实现,最后生成比特流文件。

4. 建立SDK应用工程

1)  在顶部工具栏中,选择File>Export>Export Hardware导出硬件工程到Vivado SDK;

MicroBlaze串口设计(附源工程)_第23张图片

 

2) 在弹出窗口中勾选‘Include bitstream’,点击OK继续;

MicroBlaze串口设计(附源工程)_第24张图片

 

3) 在工具栏中,选择File>Launch SDK,使用默认工程,启动Vivado SDK;

MicroBlaze串口设计(附源工程)_第25张图片

 

4) 在SDK上方工具栏中,选择File>New>Application Project,新建一个SDK应用工程;

MicroBlaze串口设计(附源工程)_第26张图片

 

5) 工程取名为‘helloworld’,点击Finish完成创建;

MicroBlaze串口设计(附源工程)_第27张图片

 

6) 可以看到 SDK 界面左侧如下,新增加了helloworld和helloworld_bsp两项。其中helloworld_bsp为helloworld应用工程的板级支持包:

MicroBlaze串口设计(附源工程)_第28张图片

 

7) 双击helloworld下的src下的helloworld.c。这个文件为包含主函数的C语言文件,然后可以通过 CTRL+B 完成工程的 build;

MicroBlaze串口设计(附源工程)_第29张图片

 

8) 连接Basys3开发板,打开电源,点击SDK任务栏Xilinx Tools>Program FPGA;

MicroBlaze串口设计(附源工程)_第30张图片

 

9) 在弹出窗口中点击Program完成比特流文件的下载:

MicroBlaze串口设计(附源工程)_第31张图片

 

10) 连接Basys3的串口。选择SDK界面下方的Terminal窗口,点击下图的连接按钮:

MicroBlaze串口设计(附源工程)_第32张图片

 

11) 在弹出窗口中,将Connection Type设置为Serial,在Port一栏选择正确的串口,点击OK完成串口配置并连接;

MicroBlaze串口设计(附源工程)_第33张图片

 

12) 在SDK界面左侧Project Explorer中鼠标右击helloworld,选Run As>Launch on Hardware(GDB),运行SDK软件工程;

MicroBlaze串口设计(附源工程)_第34张图片

 

13) 稍等几秒,可以看到Terminal界面出现了打印的‘Hello World’字样。

MicroBlaze串口设计(附源工程)_第35张图片

 

 

 

END

 

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

 

往期推荐

  • FPGA Vivado 开发环境简介

  • FPGA零基础学习:数字通信中的电压标准

  • “FPGA产品设计与研发 ” 零基础入门及就业

你可能感兴趣的:(FPGA学习系列)