当前位置:   article > 正文

【FPGA】MicroBlaze小试01-串口输出Hello World(demo,熟悉开发流程)_vivado microblaze 串口

vivado microblaze 串口

创作时间:2021-07-08

开发环境:vivado2019.1
电脑环境:Windows 10
开发板: KC705(xilinx xc7k325tfgg900i)


先确定一下我们的目标。
使用microblaze控制,向串口一直发送Hello World。

包括三大部分
1)硬件搭台部分(这个台就是Mciroblaze)
2)软件代码编写实现部分(结合自带库函数,写C代码)
3)测试环境搭建与测试

(一)硬件搭台部分

step1:创建block design

在这里插入图片描述

step2:添加microblaze IP

在这里插入图片描述

step3: 再添加一个 uart IP

在这里插入图片描述

step4:
在这里插入图片描述

自动会变成如下图:
在这里插入图片描述

step5:自动连线

在这里插入图片描述
在这里插入图片描述

自动连线后,如下图:
在这里插入图片描述

step6:进一步配置clk以及uart

1)配置clk wiz

输入时钟为:差分200Mhz,
输出时钟为单端100Mhz,
复位类型:高电平复位。

2) 配置uart

波特率为:9600,
数据位数:8,
校验类型:无校验。
在这里插入图片描述

step7:microblaze硬件管脚对应绑定

至此,microblaze基本搭建完成,接下来我们需要进行硬件管脚约束绑定。

建立约束文件,注意管脚的命名要和block design 里面的相同。
在这里插入图片描述

在这里插入图片描述
约束文件如下:

#vivado管脚约束XDC文件
#**********************************
#clk
set_property PACKAGE_PIN AD12 [get_ports {sys_diff_clock_clk_in1_p}]
set_property IOSTANDARD DIFF_SSTL15 [get_ports {sys_diff_clock_clk_in1_p}]
#rst(SW3常低,高电平复位)    
set_property PACKAGE_PIN AG5 [get_ports reset] 
set_property IOSTANDARD LVCMOS15 [get_ports reset]
#uart
set_property PACKAGE_PIN K24 [get_ports rs232_uart_tx]#FPGA output
set_property IOSTANDARD LVCMOS25 [get_ports rs232_uart_tx]
set_property PACKAGE_PIN M19 [get_ports rs232_uart_rx]#FPGA input
set_property IOSTANDARD LVCMOS25 [get_ports rs232_uart_rx]
#led_8bits 暂时不用
#set_property PACKAGE_PIN AB8 [get_ports {led_8bits_tri_o[0]}]
#set_property IOSTANDARD LVCMOS15 [get_ports {led_8bits_tri_o[0]}]
#set_property PACKAGE_PIN AA8 [get_ports {led_8bits_tri_o[1]}]
#set_property IOSTANDARD LVCMOS15 [get_ports {led_8bits_tri_o[1]}]
#set_property PACKAGE_PIN AC9 [get_ports {led_8bits_tri_o[2]}]
#set_property IOSTANDARD LVCMOS15 [get_ports {led_8bits_tri_o[2]}]
#set_property PACKAGE_PIN AB9 [get_ports {led_8bits_tri_o[3]}]
#set_property IOSTANDARD LVCMOS15 [get_ports {led_8bits_tri_o[3]}]
#set_property PACKAGE_PIN AE26 [get_ports {led_8bits_tri_o[4]}]
#set_property IOSTANDARD LVCMOS25 [get_ports {led_8bits_tri_o[4]}]
#set_property PACKAGE_PIN G19 [get_ports {led_8bits_tri_o[5]}]
#set_property IOSTANDARD LVCMOS25 [get_ports {led_8bits_tri_o[5]}]
#set_property PACKAGE_PIN E18 [get_ports {led_8bits_tri_o[6]}]
#set_property IOSTANDARD LVCMOS25 [get_ports {led_8bits_tri_o[6]}]
#set_property PACKAGE_PIN F16 [get_ports {led_8bits_tri_o[7]}]
#set_property IOSTANDARD LVCMOS25 [get_ports {led_8bits_tri_o[7]}]
#other其他约束
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

step8:验证设计是否有效

Tools ->> Valid Design
在这里插入图片描述
验证成功。

step9:仿真-综合-生成bitstream

仿真-综合-生成bitstream
在这里插入图片描述
此时发现综合不成功,报错如下:
在这里插入图片描述
查找解决方案,在这个链接中找到了答案。

https://forums.xilinx.com/t5/Design-Entry/v2019-1-ERROR-Could-not-find-a-top-module-in-the-fileset/m-p/990842
在这里插入图片描述
注:wrapper翻译为:包装包裹。
在这里插入图片描述

step10:Create HDL Wrapper

一定要记着:Create HDL Wrapper,否则无法综合。
在这里插入图片描述
在这里插入图片描述
可以打开这个顶层看看,自动生成了这个顶层module.
在这里插入图片描述

step11:重新综合-实现-生成bitstream

如果已经避坑了,就不用“重新综合-实现-生成bitstream”了。
在这里插入图片描述

step12:导出硬件设计文件hdf

File ->> Export ->> Export Hardware

在这里插入图片描述

导出成功,如下:
在这里插入图片描述

(二)软件代码实现部分

step13:lauch SDK

File ->>Lauch SDK
在这里插入图片描述
进入SDK

在这里插入图片描述


编写软核 hello world

step14:建立软核工程

File ->>New Project ->>Aplication

在这里插入图片描述
在这里插入图片描述
弹出这些文件夹
在这里插入图片描述
文件夹说明:
在这里插入图片描述

在这里插入图片描述

step15:修改与编写代码

为了方便显示,我们让软核一直输出 Hello world.修改如下:
在这里插入图片描述

step16:烧写文件

硬件KC705连接好JTAG,上电。
在这里插入图片描述
bit 文件就在这里。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

烧写完毕。

(三) 测试环境搭建与测试

step17:测试环境搭建

打开串口助手,设置好串口的属性(串口端口号、波特率、数据宽度、校验位)。

在这里插入图片描述

step18:测试与测试结果

Run–>Run As–>Lauch on Hardware(System Debugger).

在这里插入图片描述
串口接收到数据。
在这里插入图片描述


MicroBlaze小试-串口输出Hello World,一个demo,至此完成。主要就是熟悉流程。


THE END~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/634142
推荐阅读
相关标签
  

闽ICP备14008679号