【FPGA】MicroBlaze小试01-串口输出Hello World(demo,熟悉开发流程)
创作时间: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]
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~
【FPGA】MicroBlaze小试01-串口输出Hello World(demo,熟悉开发流程)相关推荐
- 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验
一.前言 实验内容及步骤 使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括: (1) 在 Quartus Prime 中建立一个工程: (2) 使用 PD 建立并生成一个简单的基 ...
- FT2000+模块在麒麟系统下串口输出功能调试
FT2000+芯片自带串口,于是模块可以通过前出CPU串口登录系统,查看系统IP地址等信息,在网络故障时方便用户进行问题定位. 打开串口功能需要在系统下配置两个地方 1.需要修改/boot/grub. ...
- STM32获取GY-25A倾角传感器串口输出数据
STM32获取GY-25A倾角传感器串口输出数据 GY-25A模块是新型的倾角传感器模块,具有X和Y两轴模拟角度输出和串口角度输出的功能.这里介绍STM32获取GY-25A串口输出的角度数据.(获取模 ...
- 基本知识(1)有关打印格式以及串口输出形式整理
有关打印格式以及串口输出形式整理 1.printf 打印格式: 1 printf(" "); //空格 2 printf("\n"); //换行 3 print ...
- 休眠 关闭串口输出_C#实例:串口通讯
先看下运行结果: 最近在研究串口通讯,其中有几个比较重要的概念,RS-232这种适配于上位机和PC端进行连接,RS-232只限于PC串口和设备间点对点的通信.它很简单的就可以进行连接,由于串口通讯是异 ...
- android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出
通过手机进行通信是可以实现很多遥控功能,虽然距离是比较短,一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多. 实验目的:用Android实现蓝牙连接通过Arduino串 ...
- 串口输出换行_stm32初学者必会操作----usart串口调试工具
stm32初学者必会操作----usart串口调试工具 今天笔者介绍stm32初学者必会的工具 usart的串口设备. usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据. 下图就是 ...
- STM32串口输出字符串
目录 串口 步骤 1.确定 IO 口并初始化 2.初始化 UATR 3.UART 中断配置 4.编写 UART 中断服务函数 5.1.方法一:重定向 fputc() 5.2.方法二:将字符串分割成一个 ...
- STC单片机获取红外解码从串口输出
STC单片机获取红外解码从串口输出 串口数据演示 所使用的红外接收头VS1838 VS1838引脚定义 电气特性 所使用的红外按键板 红外遥控接收模块 VS/HX1838 相关的资料: https:/ ...
最新文章
- 怎么让电脑运行速度变快_分享几种电脑运行速度慢的解决方法_windows7教程
- Kafka科普系列 | 什么是LSO?
- Android 中 Activity 的生命周期
- secureCRT修改鼠标颜色
- Hibernate-----5、持久化对象
- ISA2004升级到ISA2006需要注意的事项
- 更改eclipse炫酷主题
- 办公环境大改造 澳洲健康食品激活生活每一天 VTN品牌俱乐部把关你的品质生活
- word2019关闭时无响应
- SWUSTOJ #69 偷菜时间表
- 我的世界中国版服务器家园系统,《我的世界》中国版“暑期更新”上线 家园系统休闲玩法亮点...
- 一些有意思的知识的网站
- C#VS工程报错:CS0234 命名空间“Microsoft.VisualStudio”中不存在类型或命名空间名“VCProjectEngine(是否缺少程序集引用)
- Kafka原理介绍+安装+基本操作
- java 用户留存率_【java】mongodb 数据统计(留存率) 应该怎么实现?
- 加了索引,mysql查询就一定会用吗?
- 【Σ-Δ型ADC芯片】
- Hibernate中的sessionFactory是做什么用的?
- 成绩忽好忽坏的孩子,往往缺乏良好的学习习惯--一语中的
- 用 MAUI 在Windows 和 Linux 绘制 PPT 图表