FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四
前言
-
前面三篇,主要记录了基于Vivado 2020.2 的 Block Design 设计,本篇开始记录导出硬件产物到 Vitis,进行嵌入式C语言开发:开发MicroBlaze的嵌入式软件,如读写内存,验证DDR3是否正常工作
-
DDR3,最终呈现给用户的就是内存,使用FPGA AXI 总线,映射到某个地址,读写DDR3 MIG IP 映射后的地址空间,如果能正常的读写,DDR3 就可以正常工作
开发环境
-
Windows 10 64位 专业版(Vivado IDE 推荐的环境)
-
Vivado 2020.2,可以使用 Vivado 2018.2或最新的Vivado 2022.1等版本,操作起来差别不算大,需要安装Vitis,Vivado 2018.2 版本是 SDK开发
-
Xilinx FPGA开发板:xc7k325tffg900-2
导出硬件
-
Vivado 2020.2 中,成功生成BitStream文件后,就可以导出硬件设计文件了,这样可以打开Vitis,进行嵌入式MicroBlaze处理器的开发,单片机开发环境,C语言开发
-
Vitis 跟之前 SDK 导出硬件产物稍微有点区别
-
【File 】 -> 【Export】 -> 【Export Hardware】
- 注意这里 勾选 BitStream文件
- 这里可以更改目录,默认为工程的根目录下
- 查看导出的文件,发现只有 一个 xsa 类型的文件
- 启动 Vitis ,【Tools】 --> 【Launch Vitis IDE】
Vitis开发
- 启动 Vitis后,发现没有什么,跟直接打开Vitis 类似,所以这里新建 应用工程:【Application Project】
-
直接 Next
-
选择 Vivado 导出的 硬件设计文件 xsa 格式
-
应用工程的名字: 如 top
-
这里可以直接 Next
- 这里使用现有的例程:Memory Tests,内存测试例程
- Vitis SDK 工程,测试 DDR3的,基本搭建完成了,编译通过
烧写 FPGA
- Vivado 2020.2,【Open Hardware Manager】,通过xilinx 下载器,连接上板子
- Vitis :【Program Device】
调试FPGA
- 实际测试,发现Vitis 默认 点击下载调试按钮,会自动下载 FPGA程序,这里的FPGA程序,是合并了Vitis 生成的 elf文件的
-
程序运行后,发现串口开始打印数据了
-
默认的程序,打印一次就结束了,我这里简单的修改了下,每2S 都打印一次,这样方便串口数据的持续打印,方便验证结果
#include "sleep.h"
,用于延时函数 :sleep
的调用
- main 函数中,增加
while (1)
循环检查,让串口持续输出
int main()
{
int i;
init_platform();
print("--Starting Memory Test Application--\n\r");
print("NOTE: This application runs with D-Cache disabled.");
print("As a result, cacheline requests will not be generated\n\r");
for (i = 0; i < n_memory_ranges; i++) {
test_memory_range(&memory_ranges[i]);
}
print("--Memory Test Application Complete--\n\r");
print("Successfully ran Memory Test Application");
while (1)
{
sleep(2);
xil_printf("\n\r%s : DDR3 one Test: \n\r", __func__);
for (i = 0; i < n_memory_ranges; i++) {
test_memory_range(&memory_ranges[i]);
}
print("--Memory Test Application Complete--\n\r");
print("Successfully ran Memory Test Application\n\r");
}
cleanup_platform();
return 0;
}
小结
-
本篇记录 Vitis C语言开发环境的编译与下载运行,此时 下载到FPGA中,程序没有固化,断电后就不再运行,后面继续介绍Vitis 生成 elf文件后,如何跟 Vivado 生成的 bit 文件,合并编译成 可以固化的bit文件或者 bin文件
-
C语言开发环境,eclipse的开发环境,引入嵌入式C开发,让FPGA开发更灵活