完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我在我的项目中使用Spartan-3AN(XC3S400AN)。 我希望能够在现场配置FPGA。 因此,我向FSM添加了几种状态,负责从/向系统内闪存(ISF)读取/写入(我在ISF中也有一些用户数据)。 为了确保始终可以正确配置FPGA,新配置映像应写在ISF的另一个指定区域,当前工作映像不是。 例如,在XC3S400AN中,有两个区域可用于FPGA图像; 一个从地址开始:0x00_0000,另一个从地址开始:0x08_0000(ug333.pdf,第23页,假设默认寻址模式)。 如果正常工作的当前FPGA配置映像位于地址:0x08_0000,则新映像应写入地址:0x00_0000。 因为FPGA应该处理所有配置错误,因为没有更高的监督,所以在开始通过ICAP配置FPGA之前,需要知道配置映像是否存在任何问题。 因此,有一个模块在接收和写入新图像到ISF期间计算CRC-16。 如果结果与位文件CRC相同,则ICAP被触发,否则不会发生任何事情。 类似于xapp468.pdf的东西:“失败安全的MultiBoot参考设计”,但没有使用picoblaze。 为此,我需要知道Spartan-3AN的确切位文件格式。 具体来说, 在位文件的开头,应该忽略哪些字节? 从哪个字节,我应该开始计算CRC? CRC的位置在哪里? 我找到了一个文档,它在Spartan-3上指定了一些这方面的信息:xapp452.pdf“Spartan-3 FPGA系列高级配置架构”(第11页),但它与我所拥有的位文件的不同之处在于: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F - 字节编号 00 09 0F F0 0F F0 0F F0 0F F0 00 00 01 61 00 36 69 73 66 5F 6D 65 6D 5F 74 6F 70 5F 76 32 2E 6E 63 64 3B 48 57 5F 54 49 4D 45 4F 55 54 3D 46 41 4C 53 45 3B 55 73 65 72 49 44 3D 30 78 46 46 46 46 46 46 46 46 00 62 00 0E 33 73 37 30 30 61 6E 66 67 67 34 38 34 00 63 00 0B 32 30 31 33 2F 30 39 2F 31 32 00 64 00 09 31 38 3A 30 33 3A 30 38 00 65 00 05 36 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF AA 99 30 A1 00 07 20 00 31 61 - 同步字 09 EE 33 21 3C 0F 31 A1 00 C9 31 41 2F 00 31 C2 这也与xapp468文档中picoblaze .psm代码中搜索的模式不同(我对picoblaze不太熟悉,但我可以看到在这段代码中我们正在寻找0xFF然后同步字然后是0x31,0x61和0x80 你可以看到它与我的不同。 如果您能提供有关Spartan-3AN位文件格式的详细信息,并且我需要修改它的某些部分,以便能够以我之前指定的方式将配置文件写入ISF,我将不胜感激。 。 谢谢, Nazila 以上来自于谷歌翻译 以下为原文 Hi, I am using Spartan-3AN (XC3S400AN) in my project. I would like to be able to configure the FPGA in field. So I added several states to an FSM which responsible for reading/writing from/to the In-System Flash memory (ISF) (I also have some user data in the ISF). To be sure that the FPGA can always be configured properly, the new configuration image should be written on the other designated region of the ISF which the current working image is not. For instance, in XC3S400AN, there are two regions that can be used for FPGA images; one starts at address: 0x00_0000 and the other one starts at address: 0x08_0000 (ug333.pdf, page 23 and assuming default addressing mode). If the current FPGA configuration image, which is properly working, is located at address: 0x08_0000 then the new image should be written in address: 0x00_0000. Since, the FPGA should handle all configuration errors, ect because there is no higher supervision, it is desired to know if there is any issues with the configuration image before start configuring the FPGA through ICAP. So there is a module which is calculating CRC-16 during the time of receiving and writing the new image to ISF. If the result was the same with the bit file CRC then the ICAP is being triggered otherwise nothing will happen. Something similar to the xapp468.pdf: "Fail-Safe MultiBoot Reference Design" but without using picoblaze. To do this, I need to know the exact bit file format for Spartan-3AN. In specific,
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F -- byte number 00 09 0F F0 0F F0 0F F0 0F F0 00 00 01 61 00 36 69 73 66 5F 6D 65 6D 5F 74 6F 70 5F 76 32 2E 6E 63 64 3B 48 57 5F 54 49 4D 45 4F 55 54 3D 46 41 4C 53 45 3B 55 73 65 72 49 44 3D 30 78 46 46 46 46 46 46 46 46 00 62 00 0E 33 73 37 30 30 61 6E 66 67 67 34 38 34 00 63 00 0B 32 30 31 33 2F 30 39 2F 31 32 00 64 00 09 31 38 3A 30 33 3A 30 38 00 65 00 05 36 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF AA 99 30 A1 00 07 20 00 31 61 -- synch word 09 EE 33 21 3C 0F 31 A1 00 C9 31 41 2F 00 31 C2 This is also different from the pattern being searched for in the picoblaze .psm code in xapp468 document (I am not very familiar with picoblaze but I can see that in this code we are looking for the 0xFF then synch word then 0x31, 0x61 and 0x80. As you can see it is different from what I have. I would appreciate it if you could provide me the details on the Spartan-3AN bit file format and if I need to modify some parts of it in order to make it possible for the configuration files to be written in ISF in the manner I specified earlier. Thank you, Nazila |
|
相关推荐
1个回答
|
|
似乎没有人回答过这个问题!
这是秘密吗? 即使看起来相关的应用笔记(xapp138)已经消失了! http://forums.xilinx.com/t5/Virtex-Family-FPGAs/CRC32-calculation-in-a-bit-file/m-p/228347#M13600 http://forums.xilinx.com/t5/Spartan-Family-FPGAs/CRC-checking/m-p/19940 http://forums.xilinx.com/t5/Embedded-Development-Tools/Configure-Spartan-3AN-from-parallel-NOR-flash/m-p/44857#M9986 http://forums.xilinx.com/t5/Virtex-Family-FPGAs/how-to-calculate-the-CRC-result-of-a-configuration-bitstream/m-p/227139 在xapp468.pdf中,他们计算CRC并将其与位文件中的CRC进行比较,但没有更多详细信息.... 以上来自于谷歌翻译 以下为原文 It seems that the noone ever answered to this question! Is this a secret? Even it seems that a related application note (xapp138) has been disapeared!!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
2420 浏览 7 评论
2823 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2461 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1176浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
587浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
451浏览 1评论
2005浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 20:04 , Processed in 1.663891 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号