利用ICAP 核实现多重启动
参考资料:《FPGA Configuration手册》
- 调用ICAP核
ICAP原语在Xilinx的编译软件ISE 中调用,调用路径为:
Edit→LanguageTemplates→VHDL/Verilog→DevicePrimitiveInstantiation→Virtex6 → Config/BSCAN Components→ In-ternal Config Access Por
2、例化ICAP模块,参数配置
ID Code根据不同型号FPGA,查手册Configuration对应的ID号;
ICAP_WIDTH常用X32,即32位
3、编写状态机对ICAP核进行预配置
按照上图中指令顺序写入指令,要注意的有:指令要为SelectMAP数据顺序指令;第五个指令Warm Boot Start Address为下一个配置程序启始地址。
4、
在多个程序中都使用多重启模块,可以方便的实现多种版本程序直接的切换。
5、ISE产生多重引导烧写文件步骤如下
生成多版本自启动的flash文件过程如下:
1、启动Generate Target PROM/ACE File,选择configure MultiBoot FPGA
2、选择程序版本数量和Flash的数据位宽等(下图中程序版本数量为2)
3、点击“ok”,出现下图所示,添加第一版程序
4、如果只给一片FPGA配置,点击“NO”,不再给别的设备添加此版本程序
5、修改第二版程序的起始地址(一定要大于第一版程序的结束地址)
6、最后添加好的bit文件如下,只要flash允许,添加几个bit都是可以的 。完成后产生mcs文件。