赞
踩
创作时间:2021-07-08
开发环境:vivado2019.1
电脑环境:Windows 10
开发板: KC705(xilinx xc7k325tfgg900i)
–
先确定一下我们的目标。
使用microblaze控制,向串口一直发送Hello World。
包括三大部分
1)硬件搭台部分(这个台就是Mciroblaze)
2)软件代码编写实现部分(结合自带库函数,写C代码)
3)测试环境搭建与测试
step4:
自动会变成如下图:
自动连线后,如下图:
输入时钟为:差分200Mhz,
输出时钟为单端100Mhz,
复位类型:高电平复位。
波特率为:9600,
数据位数:8,
校验类型:无校验。
至此,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]
Tools ->> Valid Design
验证成功。
仿真-综合-生成bitstream
此时发现综合不成功,报错如下:
查找解决方案,在这个链接中找到了答案。
https://forums.xilinx.com/t5/Design-Entry/v2019-1-ERROR-Could-not-find-a-top-module-in-the-fileset/m-p/990842
注:wrapper翻译为:包装包裹。
一定要记着:Create HDL Wrapper,否则无法综合。
可以打开这个顶层看看,自动生成了这个顶层module.
如果已经避坑了,就不用“重新综合-实现-生成bitstream”了。
File ->> Export ->> Export Hardware
导出成功,如下:
File ->>Lauch SDK
进入SDK
编写软核 hello world
File ->>New Project ->>Aplication
弹出这些文件夹
文件夹说明:
为了方便显示,我们让软核一直输出 Hello world.修改如下:
硬件KC705连接好JTAG,上电。
bit 文件就在这里。
烧写完毕。
打开串口助手,设置好串口的属性(串口端口号、波特率、数据宽度、校验位)。
Run–>Run As–>Lauch on Hardware(System Debugger).
串口接收到数据。
MicroBlaze小试-串口输出Hello World,一个demo,至此完成。主要就是熟悉流程。
THE END~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。