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

之前系统microblaze使用的是本地存储BRAM,空间有限,因此添加外部存储系统DDR3;QSPI Flash将程序固化到开发板上,使开发板每次重启时自动烧写程序
新建工程—选择arty a7开发板—创建BD设计—添加系统时钟
系统时钟修改
在这里插入图片描述
在这里插入图片描述

拖动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中进行查找)
在这里插入图片描述
对引脚进行手动连接,删除mig的外接clk_ref_i引脚和sys_clk_i引脚
在这里插入图片描述

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

在source创建HDL封装文件—生成比特流文件(number of jobs改为12)—导出硬件信息(file-export hardware,注意勾选include beatstream,若使用vivado2019.2版本注意查看保存路径,版本升级后不会保存在默认路径,有可能保存到上一个工程路径下)
进入vitis软件设计,新建helloworld工程
查看存储空间说明文件(已变为ddr3)
在这里插入图片描述
修改bsp
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
点击锤子进行编译
在这里插入图片描述编译完成

在这里插入图片描述
注:在vitis左侧窗口可能会同时打开多个工程(如果设置在同一文件夹下,注意区分,否则编译会出错)
新建工程(启动器),选择我们刚刚创建的硬件平台
在这里插入图片描述
生成spi bootloader
在这里插入图片描述
先选中编译,会生成.elf文件

在这里插入图片描述
同样地,把helloword文件也编译生成elf文件,设置串口,运行helloworld,会在串口窗口接收到
在这里插入图片描述
打开bootloader文件下的blconfig.h,修改应用工程的偏移量(arty a7 35开发板的偏移量是00c00000),并编译
在这里插入图片描述program fpga

在这里插入图片描述
在这里插入图片描述
生成download.bit文件
在这里插入图片描述烧写到flash

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
根据输出的信息修改flash type
在这里插入图片描述
在这里插入图片描述提示烧写成功
在这里插入图片描述
选择hello world项目program flash,修改以下项目,偏移量与刚刚在程序中修改的一致
在这里插入图片描述

在这里插入图片描述
点击开发板prog等待几秒后,指示灯会重新亮起(等待的几秒是程序重新烧写的时间),在串口窗口也会看到提示消息
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值