将程序固化到flash中,该示范版本为2018.3
本次参考为EGO1开发板,flash模块如下:
步骤:
在生成bit流文件之后
第一步,打开Implemented Design
第二步,依次选择Tools——>Setting——>Bitstream,点击Configure additional bitstream settings。如果上一步Implemented Design没有打开,这里会显示需要打开。
这里面会有很多配置,具体情况可以具体分析,很多地方也可以直接使用默认设置,这里主要介绍下图配置:
- 下载速率可以更改为更快一点,但不要超过flash芯片的速度。
- Bus width为线宽,这里采用的是EGO1开发板,spi线一共四条,选择为x4,但是这里选择为2,可以兼容。(后期才发现是x4的)。
然后下面选择yes。配置完成之后点击OK。然后再次点击Generate Bitstream,提示保存,点击OK。
注意:这一步是要产生配置程序的约束,成功之后会在XDC文件里生成有关约束。保存之后需要再次生成新的bit流文件或者bin文件之类的。
第三步,Tools——>Generate Memory Configuration File,也可以打开hardware之后右键找到。
注:这一步是产生mcs文件进行程序加载,同时也会产生prm文件(也可以选择生成bin文件进行加载,固化的bin文件不能是生成bit时勾选的bin文件,而是这里生成)。
接下来配置如下:
- 生成文件格式( Format)选择“ MCS”
- 存储器大小( Custom Memory Size)参考程序大小,对于特定的FPGA,无论它本身功能实现所需的代码量有多少,它最终编译产生的比特流文件的大小都是固定的。(PS: 这里可以直接在上面选择器件,并且更方便)
- 定义一个MCS文件。(这里不是要你选择一个mcs文件,而是定义一个)
- 配置芯片的接口( Interface),这里为“ SPIx2”。
- Load bitstream files。
- (可选项)需要加载data时选择。
第四步, Add Configuration Memory Device。
接下来,出现如下界面,选择flash芯片。
最后一步,在选择芯片之后会出现如下界面,也就是加载Flash,固化程序。
(图中配置视板卡情况和需要勾选,例如可以将state of non-config mem I/O pins设置成上拉)
点击ok后,就成功啦。
PS
zynq参考固化程序:链接: link.