前言
- Vivado 版本: Vivado 2018.2 + Vivado HLS 2018.2, Vivado HLS 2018.2 用于 SDK 开发,C语言开发
- 创建基于MicroBlaze的 【Block Design】后,添加了 【AXI Uartlite】,发现烧写到FPGA后,没有任何的反应,这时才发现,要想让 microblaze 这个MCU模块工作起来,还需要C语言开发
- 基于
Vivado HLS 2018.2
的 SDK开发,也就是 FPGA 就是一个 MCU了,让MCU工作,还得需要MCU工作的程序,如基于SDK开发的C语言程序
操作步骤
添加MicroBlaze及AXI Uartlite
- Vivado 创建工程,这部分可以参考之前的文章,如 FPGA 学习笔记:Vivado 2019.1 工程创建
- 【Block Design】的创建,这个可以参考之前的文章,如:FPGA 学习笔记:Vivado 2019.1 添加 IP MicroBlaze
网络连线
- 【Block Design】中,可以使用使用Vivado提供的【自动连接】,连接大部分的网络port,但是部分特殊的连接,需要手动连接,如复位线
- 这里只需要注意 【复位线】的连接
- 更改 Clocking Wizard 模块的复位电平,改为低有效,然后引出,resetn_0,并且把 【Processor System Reset】模块的 【ext_reset_in】手动连接到 resetn_0
- Clocking Wizard 引出
clk_in1_0
时钟输入引脚,可以选择 IP 模块的引脚后,右键【Make External】自动导出引脚的网络Port - 如果 【Uartlite】模块没有网络,可以使用Vivaod 自动连接生成网络,可以手动创建网络,然后连接到IP 模块的引脚上
导出【Block Design】
- 点击 【Validate Design】按钮,确认 【Block Design】是否正常,若果有问题,需要根据提示进行修改,如网络为空
- 【Create HDL Wrapper…】,生成 wrapper 文件,如果工程没有 top 文件,可以先使用这个生成的wrapper文件作为 top文件
- 【Generate Output Products…】生成【Block Design】设计文件,网表等文件,
配置引脚
- 【Run Implementation】,执行 FPGA 实现,会先执行 FPGA综合【Run Synthesis】,执行完成后,就可以打开 【Open Implemented Design】,打开FPGA实现后的设计文件,配置引脚,引脚配置部分参考前面的文章,如
FPGA 学习笔记:Vivado 配置IO引脚约束
- 约束文件内容为:
set_property PACKAGE_PIN E14 [get_ports uart_rtl_0_rxd]
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_rxd]
set_property PACKAGE_PIN D17 [get_ports uart_rtl_0_txd]
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_txd]
set_property PACKAGE_PIN U7 [get_ports resetn_0]
set_property IOSTANDARD LVCMOS15 [get_ports resetn_0]
set_property IOSTANDARD LVCMOS15 [get_ports clk_in1_0]
set_property PACKAGE_PIN R4 [get_ports clk_in1_0]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CFGBVS VCCO [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design]
set_property PACKAGE_PIN U27 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property PACKAGE_PIN F25 [get_ports sys_rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n]
- 生成 二进制文件,这里设置一下,同时生成 bin 文件
- 然后点击【Generate Bitstream】,生成 bit 文件与bin 文件
- 未完待续
小结
- 本篇介绍了完成MicroBlaze Uartlite的连线,生成Block Design 的设计文件,配置好引脚,生成二进制文件
- 后面接着介绍 导出 硬件文件,打开 SDK(Vivado 2018.2),并MicroBlaze 工作起来,让串口输出 helloword 信息