Xilinx FPGA支持bit和mcs格式程序文件,bit文件通常用于调试,会下载到片上RAM,掉电数据丢失,mcs文件会下载到外挂的SPI Flash,掉电数据不丢失,启动时,FPGA芯片先读取SPI Flash数据,然后将数据转移至RAM中运行。
bit文件可以转换为mcs文件,通常使用ISE自带的iMPACT软件实现,选择存储大小、指定存储路径、文件名、指定bit文件等系列操作:
iMPACT还支持运行脚本文件,关于命令参数的介绍,可以查看iMPACT自带的帮助文档。
下面我们介绍如何使用命令行脚本,一键bit转换mcs,一键bit文件下载,一键mcs文件下载
准备工作
1.把iMPACT添加到环境变量,impact.exe文件路径为:
your_path:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\impact.exe
命令行输入:impact -v
,查看是否添加成功:
2.新建文件夹flash,把需要转换的bit文件放进去,比如top.bit
。
一、iMPACT命令行实现bit转mcs
flash文件夹下新建bit_to_mcs.cmd
文件,内容如下:
setMode -pff setSubmode -pffspi addDesign -version 0 -name "0" addPromDevice -p 1 -size 2048 addDeviceChain -index 0 addDevice -p 1 -file ./top.bit generate -format mcs -fillvalue FF -output ./top.mcs quit
表示将当前目录下的top.bit
文件转换为top.mcs
文件,2048表示存储器大小为2048KB,我这里使用的是M25P16,容量大小16Mbit=2048KByte。
可以在终端输入命令执行这个脚本文件:
impact -batch ./bit_to_mcs.cmd
当然也可以再写一个文件执行这个脚本,新建run_bit_to_mcs.cmd
文件,内容如下:
impact.exe -batch bit_to_mcs.cmd echo "bit to mcs convert complete!" pause
这样以后就只需要双击这个run_bit_to_mcs.cmd
文件就一键实现bit转mcs了。
二、iMPACT命令行实现bit文件下载
我们还可以实现一键下载bit文件的功能,新建program_bit.cmd
文件,内容如下:
setmode -bscan setcable -p auto adddevice -p 1 -file top.bit program -p 1 quit
表示将当前目录下的top.bit
文件下载到FPGA内部RAM。
新建run_program_bit.cmd
impact.exe -batch program_bit.cmd echo "bit file program success!" pause
这样只要双击这个run_program_bit.cmd
文件就可以实现一键下载bit文件了。
三、iMPACT命令行实现mcs文件下载
同理,我们还可以实现一键下载mcs文件的功能,新建program_mcs.cmd
文件,内容如下:
setMode -bscan setCable -p auto addDevice -p 1 -file "./top.bit" attachflash -position 1 -spi "M25P16" assignfiletoattachedflash -position 1 -file "./top.mcs" Program -p 1 -dataWidth 1 -spionly -e -v -loadfpga quit
指定存储器型号为M25P16,bit文件为当前目录下的top.bit
,mcs文件为当前目录下的top.mcs
,数据位宽为1
新建run_program_mcs.cmd
文件,内容如下:
impact.exe -batch program_mcs.cmd echo "mcs file program success!" pause
这样以后只需要双击这个run_program_mcs.cmd
文件就可以实现mcs文件下载了。
关于以上脚本文件各参数的说明,可以查看iMPACT官方帮助文档
。