我正在运行一个使用Master SPI配置的virtex6。
我的黄金图像位于地址0x000000处,它指向0x100000以供下一个要加载的图像。
当地址0x100000具有良好的图像时,它会正确加载。
当地址0x100000具有几乎好的图像时 - 内存中的几个位置被更改 - 它会加载黄金图像。
当0x100000加载了良好图像的后半部分时,则
FPGA无法启动。
当我读取状态时,这是iMPACT的输出:
==================================================
==
信息:iMPACT - 当前时间:11/8/2013 2:18:15 PM // *** BATCH CMD:ReadStatusRegister -p 1此设备链的最大TCK工作频率:66000000.Valida
ting chain ...边界扫描链
验证成功.1:器件温度:当前读数:48.90 C,Min。
阅读:48.41 C,Max。
读数:50.38 C1:VCCINT
电源:电流读数:1.031 V,Min。
阅读:1.031 V,Max。
读数:1.034 V1:VCCAUX电源:电流读数:2.502 V,最小值
阅读:2.502 V,最大
阅读:2.525 V'1':读取训练寄存器内容...... [0]
VALID_0 - 错误或启动结束(EOS)检测:0 [1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION:0 [2] IPROG_0 - 内部W
ARMBOOT(IPROG)触发重新配置:0 [3] WTO_ERROR_0 - 看门狗超时错误:0 [4
] ID_ERROR_0 - FPGA器件IDCODE错误:0 [5] CRC_ERROR_0 - 循环冗余校验(CRC)错误:0 [6] WRAP_ERROR_0 - BPI闪存地址计数器绕错误:0 [7] HMAC_ERROR_0 - HMAC错误:0 [8] VALID_1
- 检测到错误或结束启动(EOS):0 [9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION:0 [10] IPROG_1 - 内部WARMBOOT(IPROG)触发重新配置:0 [11] WTO_ERROR_1 - 看门狗超时错误:0 [12]
ID_ERROR_1 - FPGA器件IDCODE错误:0 [13] CRC_ERROR_1 - 循环冗余校验(CRC)错误:0 [14] WRAP_ERROR_1 - BPI闪存地址计数器绕错误:0 [15] HMAC_ERROR_1 - HMAC错误:0'1':读取
状态寄存器内容... [0]
CRC错误:0 [1]解密器错误:0 [2] PLL锁定状态:1 [3] DCI匹配状态:1 [4]启动结束(EOS)状态:0 [5] GTS_CFG_B状态:0 [6] GWE
状态:0 [7] GHIGH STATUS:0 [8] MODE PIN M [0]:1 [9] MODE PIN M [1]:0 [10] MODE PIN M [2]:0 [11] INIT_B内部信号状态
:1 [12] INIT_B引脚:1 [13]完成内部信号状态:0 [14]完成引脚:0 [15] IDCODE错误:0 [16]安全错误:0 [17]系统监控超温报警状态:
0 [18] CFG启动状态机阶段:0 [19] CFG启动状态机阶段:0 [20] CFG启动状态机阶段:0 [21]保留:0 [22] SPI闪存选择密码FS [0]:1
[23] SPI闪存选择引脚FS [1]:0 [24] SPI闪存选择引脚FS [2]:1 [25] CFG总线宽度检测:0 [26] CFG总线宽度检测:0 [27]保留:0
[28] HSWAPEN PIN:0 [29] BAD PACKET ERROR:0 [30]保留:0 [31] EFUSE BUSY STATUS:0
==================================================
==
有什么我想念的吗?
我试图打开看门狗以配置黄金图像,但它没有做任何事情。
启动它的命令永远不会被加载,因为它发生在IPROG命令之后。
我在测试回退重新配置的有效性时发现了这个问题。
在部署系统之后,我需要有一种可靠的更新闪存的方法,而不会让用户意外地将其嵌入。
有任何想法吗?
谢谢,
乔纳森