FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写

之前系统microblaze使用的是本地存储BRAM,空间有限,因此添加外部存储系统DDR3;QSPI Flash将程序固化到开发板上,使开发板每次重启时自动烧写程序
新建工程—选择arty a7开发板—创建BD设计—添加系统时钟
系统时钟修改
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第1张图片
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第2张图片

拖动DDR3到BD面板,即mig_7series(MIG IP),关键在于时钟设置(时钟配置如果错误,则后续运行会报错)。
在arty a7用户开发手册中找到DDR3的表格,找到recommended input clock period,对应的value为166.667MHZ,即给mig_7series的系统时钟sys_clk分配166.667MHZ的时钟,参考时钟clk_ref分配200MHZ的时钟(200MHZ的依据可以双击打开MIG IP,在user guide中搜索clk_ref即可找到,今后在使用其他IP时,如果对引脚配置不清楚,也可以在user guide中进行查找)
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第3张图片
对引脚进行手动连接,删除mig的外接clk_ref_i引脚和sys_clk_i引脚
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第4张图片

添加microblaze软核—添加QSPI FLASH,连接50Mhz时钟
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第5张图片
点击run block automation,可以把local memory 和cache configuration设置的小一些,此处分别设为32k和16k,clock connection选择mig分出来的ui clk,点击ok
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第6张图片
继续添加led灯,拨码开关和uart(修改uart波特率为115200),点击run connection automation自动进行连线,这样添加了DDR3和QSPI Flash的硬件系统就搭建完毕。
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第7张图片

在source创建HDL封装文件—生成比特流文件(number of jobs改为12)—导出硬件信息(file-export hardware,注意勾选include beatstream,若使用vivado2019.2版本注意查看保存路径,版本升级后不会保存在默认路径,有可能保存到上一个工程路径下)
进入vitis软件设计,新建helloworld工程
查看存储空间说明文件(已变为ddr3)
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第8张图片
修改bsp
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第9张图片
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第10张图片

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第11张图片
点击锤子进行编译
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第12张图片编译完成

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第13张图片
注:在vitis左侧窗口可能会同时打开多个工程(如果设置在同一文件夹下,注意区分,否则编译会出错)
新建工程(启动器),选择我们刚刚创建的硬件平台
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第14张图片
生成spi bootloader
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第15张图片
先选中编译,会生成.elf文件

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第16张图片
同样地,把helloword文件也编译生成elf文件,设置串口,运行helloworld,会在串口窗口接收到
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第17张图片
打开bootloader文件下的blconfig.h,修改应用工程的偏移量(arty a7 35开发板的偏移量是00c00000),并编译
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第18张图片program fpga

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第19张图片
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第20张图片
生成download.bit文件
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第21张图片烧写到flash

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第22张图片
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第23张图片

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第24张图片
根据输出的信息修改flash type
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第25张图片
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第26张图片提示烧写成功
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第27张图片
选择hello world项目program flash,修改以下项目,偏移量与刚刚在程序中修改的一致
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第28张图片

FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第29张图片
点击开发板prog等待几秒后,指示灯会重新亮起(等待的几秒是程序重新烧写的时间),在串口窗口也会看到提示消息
FPGA开发笔记(三)外部DDR3添加与QSPI Flash烧写_第30张图片

你可能感兴趣的:(FPGA开发)