UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor dqy91
Visitor
508 次查看

Spartan-6 的multiboot问题

转到解答

大家好,我建立了两个工程一个Golden一个Multiboot,并按照https://china.xilinx.com/support/answers/41156.html这里的步骤在ISE里面分别配置了Golden和Multiboot的processProperties选项,地址也都一样,唯一区别是我用的SPI是M25P32(32M),SPI data width 为1。然后生成了两个bit文件,通过promgen -w -p mcs -c FF -o spi_MultiBoot -s 8192 -u 0000 Golden.bit -u 200000 MultiBoot.bit -spi命令生成mcs文件,结果用iMPACT下载到SPI里面下载失败,FPGA既不能配置multiboot也不能配置golden,请问问题可能出在哪里?谢谢!

另外再问一下如果要更新multiboot是不是直接将原来所在的SPI位置擦除然后将更新后生成的multiboot工程的mcs写入原地址就可以了?

0 项奖励
1 个已接受解答

已接受的解答
Visitor dqy91
Visitor
409 次查看

回复: Spartan-6 的multiboot问题

转到解答

问题解决了,看来还是要慢慢摸索啊。

1.因为通过ISE processProperties将multiboot功能植入bit中会在golden前面加一个header,这个header大小为68字节,真正的golden地址是从这之后开始的,因此golden的地址不是0,换成十六进制就是0x44。

2.header中包含了golden地址、multiboot地址以及SPI读写模式等信息。其中General2 3281和General4 32C1后面应该跟03xx,03代表SPIx1模式,不知道为什么我在processProperties中设置的SPI buswidth明明是1,但是生成的bit文件header中3281和32C1后面跟的是00xx,直接记事本打开golden.bit,将这两处改为03xx,然后通过promgen -w -p mcs -c FF -o spi_MultiBoot -s 4096 -u 0000 Golden.bit -u 200000 MultiBoot.bit -spi正常生成mcs文件,下载成功,程序正确运行。

13 条回复
Xilinx Employee
Xilinx Employee
471 次查看

回复: Spartan-6 的multiboot问题

转到解答

Hi @dqy91,

 

把你的.cfi和.prm文件发来看看,另外命令里对32MB的SPI(-s 4096)。出错是在哪一步,擦除,编程还是校验?变成普通的mcs有问题吗?

 

 

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Visitor dqy91
Visitor
459 次查看

回复: Spartan-6 的multiboot问题

转到解答

你好,我现在已经把-s改成4096了,我发现通过processProperties设置multiboot会在生成的bit文件和mcs文件添加一个header通过ICAP原语存储Multiboot的信息,包括Golden和Multiboot的地址。是否是我设置的Golden地址不对,不应该从0开始而是应该从header后的地址开始?而且我看了ICAP,General 2 3281和General 4 32C1后面应该跟03xx,03代表SPI只用1位传输,xx代表地址位[23:16],但是我在bitGen里面设置的SPI位宽明明是1,生成的bit和mcs文件General 2和4低4位却跟的是00xx,这是怎么回事?通过impact下载SPI没有提示任何错误,但是就是下载失败,感觉是超时。

另外我现在也试了一下ICAP的设置方法,通过在工程中添加ICAP模块通过外部按键触发Multiboot。我也通过ICAP的General 1,2,3,4设置Golden和Multiboot的地址分别为0x0和0x200000,通过promgen -w -p mcs -c FF -o spi_MultiBoot -s 4096 -u 0000 Golden.bit -u 200000 MultiBoot.bit -spi生成mcs文件,这次processProperties保持默认配置,SPI下载成功,并且正常情况下可以通过按键从Golden跳转至Multiboot,但是我一旦将SPI的Multiboot部分擦除,运行Golden时按按键FPGA就无法重配置,也无法再返回Golden,除非重新上电。这又是怎么一回事?请高手指教,谢谢!


@simon  已写:

Hi @dqy91,

 

把你的.cfi和.prm文件发来看看,另外命令里对32MB的SPI(-s 4096)。出错是在哪一步,擦除,编程还是校验?变成普通的mcs有问题吗?

 

 


 

0 项奖励
Visitor dqy91
Visitor
410 次查看

回复: Spartan-6 的multiboot问题

转到解答

问题解决了,看来还是要慢慢摸索啊。

1.因为通过ISE processProperties将multiboot功能植入bit中会在golden前面加一个header,这个header大小为68字节,真正的golden地址是从这之后开始的,因此golden的地址不是0,换成十六进制就是0x44。

2.header中包含了golden地址、multiboot地址以及SPI读写模式等信息。其中General2 3281和General4 32C1后面应该跟03xx,03代表SPIx1模式,不知道为什么我在processProperties中设置的SPI buswidth明明是1,但是生成的bit文件header中3281和32C1后面跟的是00xx,直接记事本打开golden.bit,将这两处改为03xx,然后通过promgen -w -p mcs -c FF -o spi_MultiBoot -s 4096 -u 0000 Golden.bit -u 200000 MultiBoot.bit -spi正常生成mcs文件,下载成功,程序正确运行。

Visitor sundeli
Visitor
338 次查看

回复: Spartan-6 的multiboot问题

转到解答

您好,我最近也在进行这个项目,但是我按照ar41156 操作后存在下载失败的问题

报错

DONE did not go high

 

也按照本帖中的建议使用ue修改了 3281 和 32c1后面的spi模式配置控制字。

但是仍然存在下载失败的问题。

 

地址与文中给的不同,偏移地址选取了100_000,

选用的flash是 m25p16,偏移地址选200_000时会导致溢出,不知道我这样修改偏移地址是否会有影响。

在下载失败后我尝试过回读fpga中的数据,发现出错的位置总是在第一个bit流的末端。

 

:1015600000813002001915EF30A1000D200020008D
:10157000200020002000200020002000200020006B
:101580002000200020002000FFFFFFFFFFFFFFFFE3

这是从flash中读出的出错位置的数据

 

:1015600000813002001915EF30A1000D200020008D
:10157000200020002000200020002000200020006B
:081580002000200020002000E3
:020000040010EA

这是生成的mcs源文件的数据。

 

现在使用的这块板子能够正常的下载mcs程序。

请问我该修改什么呢?

0 项奖励
Xilinx Employee
Xilinx Employee
329 次查看

回复: Spartan-6 的multiboot问题

转到解答

Hi @sundeli,

 

你把golden bit里的header贴出来看看呢?

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Visitor sundeli
Visitor
299 次查看

回复: Spartan-6 的multiboot问题

转到解答

我有个问题 ,关于size的选择 为什么4096对应的是32mb 谁能帮助我解答一下这个size的实际计算法方式。

0 项奖励
Xilinx Employee
Xilinx Employee
295 次查看

回复: Spartan-6 的multiboot问题

转到解答

Hi @sundeli

 

这里的4096单位是KB。

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Visitor sundeli
Visitor
275 次查看

回复: Spartan-6 的multiboot问题

转到解答

4096kb不是4mb么。为什么对应的是32mb的芯片呢?还是4096指的是 kbyte所以对应的是32mbit?

0 项奖励
Visitor sundeli
Visitor
269 次查看

回复: Spartan-6 的multiboot问题

转到解答
:020000040000FA
:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000AA99556631E11FFF326100003281031059
:1000200032A1004432C1030032E1000030A10000DF
:10003000330121003201005F30A1000E20002000BA
:1000400020002000FFFFFFFFFFFFFFFFFFFFFFFF7C
:10005000FFFFFFFFAA99556630A10007200031A1DC
:10006000043031413D08316189EE31C204002093F2
:1000700030E100CF30C100812000200020002000AE
:100080002000200020002000200020002000200070
:100090002000200020002000200033813CC8318156
:1000A0000881342100003201001F31E11FFF33219C
:1000B0000005334100042000200020002000200023
:1000C000200020002000200020002000200033A17C
:1000D0001BE233C20000000020002000302200009C
:1000E000000030A10001506000038A1100000000F0
0 项奖励
Visitor sundeli
Visitor
233 次查看

回复: Spartan-6 的multiboot问题

转到解答

您好,我已经附上了我的mcs的文件头。

我还和例程中的mcs文件进行了对比。

实在是不知道问题出在什么位置。想寻求帮助。

另外,multiboot的程序下载和普通的mcs文件下载有什么不同么?

0 项奖励
Xilinx Employee
Xilinx Employee
195 次查看

回复: Spartan-6 的multiboot问题

转到解答

是的4KB就是4k bytes

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Xilinx Employee
Xilinx Employee
193 次查看

回复: Spartan-6 的multiboot问题

转到解答

Hi @sundeli,

 

你在golden bit里,按照ug380的Table 7-1: Example Bitstream for IPROG through ICAP里对比一下,看起来opcode可能不对:spi.PNGspi opcode

或者按照sp605的办法,直接将header,golden,multiboot合成一个文件:

https://www.xilinx.com/products/boards-and-kits/ek-s6-sp605-g.html#documentation

 

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Xilinx Employee
Xilinx Employee
192 次查看

回复: Spartan-6 的multiboot问题

转到解答

下载没有什么区别。

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------