完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我已经尝试了2天,在使用SPI x4模式运行的Spartan 6上运行Multiboot。 在SPI x2模式下,它似乎运行良好。 我正在使用以下批处理脚本生成MCS文件: del * .mcspromgen -w -p mcs -r boot_header_SPIx4.hex -o boot_header_SPIx4.mcspromgen -w -p mcs -spi -s 16384 -u 010000 Golden_SPIX4CMP.bit -u 400000 App_SPIX4CMP.bit -o incomplete_image.mcstype boot_header_SPIx1.mcs incomplete_image .mcs> MultiBootComplete.mcsdel incomplete_image。* cd .. 作为BitGen选项,我使用了以下内容: Golden:-g next_config_register_write:启用-g reset_on_err:是-g spi_buswidth:4 应用程序:-g next_config_register_write:禁用-g reset_on_err:是-g spi_buswidth:4 我还附加了生成的MultiBootComplete.mcs文件和配置标头。 不幸的是,UG380和SP605 Multibook的例子无法帮助我。 我使用PlanAhead 14.6。 我在这做错了什么? 如果有人能帮助我,我会很开心的。 提前致谢! 此外:CRC错误后回退是否需要额外的bitgen参数? 非常感谢! boot_header_SPIx4.hex 1 KB build_mcs.bat 1 KB MultiBootComplete.mcs 2484 KB 以上来自于谷歌翻译 以下为原文 Hi, I've tried for 2 days now to get Multiboot on a Spartan 6 running with the SPI x4 mode. In SPI x2 mode, it seems to work well. I am generating the MCS files with the following batch script: del *.mcs promgen -w -p mcs -r boot_header_SPIx4.hex -o boot_header_SPIx4.mcs promgen -w -p mcs -spi -s 16384 -u 010000 Golden_SPIX4CMP.bit -u 400000 App_SPIX4CMP.bit -o incomplete_image.mcs type boot_header_SPIx1.mcs incomplete_image.mcs > MultiBootComplete.mcs del incomplete_image.* cd .. As BitGen options, I've used the following: Golden: -g next_config_register_write:Enable -g reset_on_err:Yes -g spi_buswidth:4 App: -g next_config_register_write:Disable -g reset_on_err:Yes -g spi_buswidth:4 I've attached the generated MultiBootComplete.mcs file and the configuration header as well. UG380 and the SP605 Multibook example unfortunatelly could't help me. I use PlanAhead 14.6. What am I doing wrong here? I'll be very happy, if anyone could help me. Thanks in advance! Furthermore: Is there any additional bitgen parameter required for fallback after CRC error? Many thanks! boot_header_SPIx4.hex 1 KB build_mcs.bat 1 KB MultiBootComplete.mcs 2484 KB |
|
相关推荐
9个回答
|
|
对不起,我犯了一个错误:SPI x1效果很好!
以上来自于谷歌翻译 以下为原文 Sorry, I've made a mistake: SPI x1 works well! |
|
|
|
嗨,
有谁能够帮助我? 是否有SPI x4可用的示例? 谢谢! 最好的祝福 以上来自于谷歌翻译 以下为原文 Hi, can anybody help me? Is there an example with SPI x4 available? Thanks! Best regards |
|
|
|
嗨,
感谢您在Xilinx论坛上发布您的查询。 请按照以下步骤操作。 1)使用链接中的SP605多重引导设计。 但请确保您使用的是设计指南中提到的相同ISE版本。 2)现在,您需要在此设计中进行的唯一更改是将x1模式更改为x4模式以进行ICAP多重引导重新配置。 3)在编程prom时,工具会询问SPI的x1或x4设置。 确保在那里给出正确的设置。 3)如果您在生成mcs文件或编程闪存时收到任何警告,请告诉我。 在对回退的查询中,您可以将-g configFallback设置为Enabled以启用回退重新配置。 但是我希望你不要在比特流中插入多重启动设置。 谢谢, 谢谢,AnirudhPS:请将此标记作为答案,以防它有助于解决您的问题。如果帖子引导您找到解决方案,请给予赞誉。 以上来自于谷歌翻译 以下为原文 Hi, Thanks for posting your queries on Xilinx forums. Please follow the below steps. 1) Use the SP605 multiboot design from the link - link. However make sure that you are using the same ISE version as mentioned in the design guide. 2) Now the only change you need to make in this design is to change the x1 mode to x4 mode for ICAP multiboot reconfiguration. 3) While programming the prom the tool asks for the x1 or x4 setting for the SPI. Make sure you give the correct setting there. 3) Let me know if you are getting any warnings while generation of mcs files or while programming the flash. On your query on the fallback, you can give the -g configFallback as Enabled to enable the fallback reconfiguration. However i hope you are not inserting the multiboot settings in the bitstream. Thanks, Thanks, Anirudh PS: Please MARK this as an answer in case it helped resolve your query.Give kudos in case the post guided you to a solution. |
|
|
|
有答案(除了在论坛上的其他地方)?
以防万一,这是我对标题的解码: 意思是: FFFFFFFF:虚字AA995566:同步字31E1FFFF:[001] [1 0] [001 111] [0 0001] =>添加。 0xF:用最大值写入CWDT(cfg看门狗定时器)。 VAL。 32610000:[001] [1 0] [010 011] [0 0001] =>添加。 0x13:写入Gen1(多引导16 LSB)32816B10:[001] [1 0] [010 100] [0 0001] =>添加。 0x14:写入Gen2(SPI命令和多重启动8个MSB)32A14000:[001] [1 0] [010 101] [0 0001] =>添加。 0x15:写入Gen3(黄金16 LSB)32C16B00:[001] [1 0] [010 110] [0 0001] =>添加。 0x16:写入Gen4(SPI命令和黄金8个MSB)32E10000:[001] [1 0] [010 111] [0 0001] =>添加。 0x17:用val写入Gen5。 0 30A10000:[001] [1 0] [000 101] [0 0001] =>添加。 0x5:写入CMD,cmd = 0 =>空命令33012100:[001] [1 0] [0 0001] =>添加。 0x18:写入MODE_REG,new_mode = 1,bus_width = 0(乘1),boot_mode = 001,bootsel = 0 3201001F:[001] [1 0] [010 0001] [0 0001] => add。 0x10:写入HC_OPT_REG(房屋清洁选项寄存器),init_skip = 0(不跳过初始化)30A1000E:[001] [1 0] [000 101] [0 0001] =>添加。 0x5:写入CMD,cmd = 0xE => IPROG命令2000:[001] [0 0] [000 000] [0 0000] => NOP 2000:[001] [0 0] [000 000] [0 0000] = > NOP 2000:[001] [0 0] [000 000] [0 0000] => NOP 2000:[001] [0 0] [00000] [0 0000] => NOP (参见附带的Spartan 6配置指南的摘录部分,从配置详细信息部分中提取,用于MODE寄存器) 这条线: 33012100的bus_width = 0(乘1), 这意味着“重启”的SPI宽度为1(而不是4)。 还要检查hex文件中比特流的地址。 不确定它们是否符合您的要求。 当我尝试使用Spartan 6进行多重启动时,我发现了工具和示例的一些问题。 似乎他们可能尚未解决。 希望能帮助到你。 我经常不上论坛。 任何问题都可能无法解答。 对于那个很抱歉。 以上来自于谷歌翻译 以下为原文 Had an answer on that (somewhere else than on forum)? Just in case, here is my decoding of the header : means : FFFFFFFF : Dummy word AA995566 : Sync word 31E1FFFF : [001][1 0][001 111][0 0001] => add. 0xF : Write CWDT (cfg watchdog timer) with max. val. 32610000 : [001][1 0][010 011][0 0001] => add. 0x13 : Write Gen1 (multiboot 16 LSBs) 32816B10 : [001][1 0][010 100][0 0001] => add. 0x14 : Write Gen2 (SPI command and multiboot 8 MSBs) 32A14000 : [001][1 0][010 101][0 0001] => add. 0x15 : Write Gen3 (golden 16 LSBs) 32C16B00 : [001][1 0][010 110][0 0001] => add. 0x16 : Write Gen4 (SPI command and golden 8 MSBs) 32E10000 : [001][1 0][010 111][0 0001] => add. 0x17 : Write Gen5 with val. 0 30A10000 : [001][1 0][000 101][0 0001] => add. 0x5 : Write CMD, cmd=0 => NULL command 33012100 : [001][1 0][011 000][0 0001] => add. 0x18 : Write MODE_REG, new_mode=1, bus_width=0 (by 1), boot_mode=001, bootsel=0 3201001F : [001][1 0][010 000][0 0001] => add. 0x10 : Write HC_OPT_REG (House clean option reg.), init_skip=0 (don't skip init) 30A1000E : [001][1 0][000 101][0 0001] => add. 0x5 : Write CMD, cmd=0xE => IPROG command 2000 : [001][0 0][000 000][0 0000] => NOP 2000 : [001][0 0][000 000][0 0000] => NOP 2000 : [001][0 0][000 000][0 0000] => NOP 2000 : [001][0 0][000 000][0 0000] => NOP (see extracted part of the Spartan 6 configuration guide attached, extracted from configuration details part, for MODE register) The line : 33012100 has the bus_width=0 (by 1), This means that the SPI width for the "reboot" is by 1 (not by 4). Check also the addresses for your bitstreams in the hex file. Not sure they match with what you wanted. When i tried multi-boot with the Spartan 6, I discover some problems with the tools and the examples. Seems that they might have not been resolved. Hope it helps. I do not come on forum often. Any questions might be unanswered. Sorry about that. |
|
|
|
只是忘了说对于类型1标头包,16个MS位是操作的类型,地址等。
16个LS位是数据部分(与您想要的设置匹配的部分)。 研究配置细节以了解更多信息(是的,我知道,它应该在没有研究的情况下工作)。 以上来自于谷歌翻译 以下为原文 Just forgot to say that for type 1 header packet, the 16 MS bits are the type of the operation, the address, etc. The 16 LS bits are the data section (the one to match with the settings you want). Study the configuration details to know more about it (yes I know, it should work without studying that). |
|
|
|
嗨elewis_reg_tb,
非常感谢你。 但你的标题与我在第1篇文章中的标题相同。 不幸的是它不起作用 - 我不知道为什么。 SP605评估板无法正常启动。 尝试加载配置后,出现红色配置错误指示。 有提示的其他人吗? 提前致谢! 以上来自于谷歌翻译 以下为原文 Hi elewis_reg_tb, thanks a lot for this. But your header is the same as mine in post #1. Unfortunately it does not work - and i don't know why. The SP605 eval board will not boot properly. After trying to load the configuration, the red config error led appears. Anyone else with a hint? Thanks in advance! |
|
|
|
你有没有尝试过 :
33013100而不是33012100? 我可能错了,但是要将buswidth字段更改为4,必须将33012100的“2”更改为“3”,以便将SPI 12的位12:11设置为“10”。 SPI x1的原始标题似乎没问题(不适用于x4)。 以上来自于谷歌翻译 以下为原文 Have you tried : 33013100 instead of 33012100? I may be wrong but to change the buswidth field to 4, you must change the "2" of 33012100 to a "3" in order to have bits 12:11 set to "10" for SPI x4. Original header seems OK for SPI x1 (not for x4). |
|
|
|
最终我找到了使SPI x4编程工作的方法。
最好的方法是基于sp605多引导参考设计,该设计在命令行模式下生成所有文件。 来自此sp605的批处理文件被设置为为SPI x1生成比特流:要成功的关键点是将spi_buswidthBitgen开关设置为1(SPI x1)以进行黄金和多重启动 - 不是4! 当你选择它时,4 Bitgen做了疯狂的事情,因为它有bug,Xilinx不再关心ISE。 因此,保持Bitgen的设置与SPI x1配置相同。 唯一的更改必须在引导头中完成: 1)General2寄存器3281,原来0340我改为6B40(SPI Fast quad read command& 40 as multiboot addres) 2)General4寄存器32C1,原来是0301我改为6B01(SPI Fast quad read command& 01 as golden addres) 3)模式寄存器3301,原来2100我改为3100(重启后设置SPI x4) 我的启动头看起来像这样: FFFFFFFFAA99556631E1FFFF3261000032816B4032A1000032C16B0132E1000030A10000330131003201001F30A1000E2000200020002000 我检查了在SPI x1模式下FPGA的配置大约需要260ms(clk = 26MHz)。 在实施上述变更后,由于SPI x4,需要60ms。 然后我损坏了多引导比特流并且它被强制从黄金启动:它也需要60毫秒来配置黄金。 现在,享受SPI x4模式! 谢谢Xilinx一无所获。 以上来自于谷歌翻译 以下为原文 Eventually I found the way to make SPI x4 programming working. The best way to start is to base on sp605 multiboot reference design which generates all files in command line mode. The batch files from this sp605 are set to generate bitstream for SPI x1: the key point to be sucessfull is to keep spi_buswidth Bitgen switch set to 1 (SPI x1) for golden and multiboot - NOT 4 !!! When you select it as 4 Bitgen does crazy things as it has bugs and Xilinx does not care any more about ISE. So keep settings for Bitgen in the same way as for SPI x1 configuration. The only changes have to be done in boot header: 1) General2 register 3281, originaly 0340 I changed to 6B40 (SPI Fast quad read command & 40 as multiboot addres) 2) General4 register 32C1, originaly 0301 I changed to 6B01 (SPI Fast quad read command & 01 as golden addres) 3) Mode register 3301, originaly 2100 I changed to 3100 (SPI x4 set after reboot) My boot header looks like this: FFFFFFFF AA995566 31E1FFFF 32610000 32816B40 32A10000 32C16B01 32E10000 30A10000 33013100 3201001F 30A1000E 20002000 20002000 I checked that in SPI x1 mode configuration of the FPGA takes roughly 260ms (clk=26MHz). After implementing changes discribed above it takes 60ms because of SPI x4. Then I corrupted multiboot bitstream and it forced to boot from golden: it also took 60ms to configure from golden. Now, enjoy SPI x4 mode! Thank you Xilinx for nothing. |
|
|
|
上述解决方案的一个补充:当您使用IMPACT将为SPI x4(引导标头+ golden + multiboot)准备的MCS文件编程到SPI闪存中时,您必须在选择SPI闪存时选择SPI数据宽度4。
至少在我的主板上有Winbond W25Q64FV的情况。 如果您编写完全相同的mcs文件但数据宽度不是4,则FPGA将无法顺利配置。 在我看来,编程工具不应该分析它写入内存的数据,而它似乎就是这样。 在这个SPI x4模式下有很多陷阱,但如果你遵循这个方案,至少它是有效的。 以上来自于谷歌翻译 以下为原文 One suplement to the solution above: when you program the MCS file prepared for SPI x4 (boot header + golden + multiboot) into your SPI Flash using IMPACT then you have to select SPI data width 4 when you select your SPI Flash. At least it was in the case of Winbond W25Q64FV I have on my board. If you program exactly the same mcs file but data width is other than 4, then the FPGA will not configure sucsefully. In my opinion the programming tool should not analyse the data it writes to memory while it seems that it does. Plenty of traps in this SPI x4 mode but at least it works if you follow this scheme. |
|
|
|
只有小组成员才能发言,加入小组>>
2384 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2431 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
759浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
548浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
371浏览 1评论
1966浏览 0评论
685浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 22:08 , Processed in 1.719092 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号