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!

Showing results for 
Search instead for 
Did you mean: 
Participant cau4kien
Registered: ‎05-14-2014

Creating PROM file using AXI SPI IP Core with assist of Microblaze

I have developed a small design to use AXI UartLite to receive file(s)  tools such as PuTTY, then Microblaze will direct the configuration file to AXI SPI for programming the External Flash (W25Q64FV) for updating the design without using Impact on the field.


As learned that the MCS file is an ASCII file to used by Impact to load into PROM via JTAG. My first question is: is there any information inside the MCS file, which Impact and JTAG NEED, but not would not be written into External  Flash PROM?


In my design, assumed the input file contains1 Mbytes, would be written to location address let's say staring @ 0x0040000. The code will use the standard SPIx1 perform a page programming (as support by Winbond instructions: a page = 256 bytes), until complete 1 Mbytes.


The design was already tested with dummy value input file, now I would like to do the real test, can I take the MCS file generated by Impact (after doing the bitswap within byte as described in UG380 Figure 5-1) as input via PuTYY and Uart to program the flash or I need convert the MCS (in ASCII format) to HEX file before bring it in Uart?


Other question, in a multiboot design why the MCS file of the multiboot_image is larger than the Golden Image's MCS ? The golden image MCS contains extra header information for warmboot image address and fallback image address should be larger isnt it ?


My multiboot design was verified, the prm file shows:


PROMGEN: Xilinx Prom Generator P.20131013
Copyright (c) 1995-2013 Xilinx, Inc.  All rights reserved.

promgen -w -p mcs -c FF -spi -s 8192 -o multi_boot.mcs -u 000000 golden_image.bit -u 400000 mb_image_simple.bit

PROM multi_boot.prm map: Wed Sep 10 15:18:56 2014

Calculating PROM checksum with fill value ff

Format        Mcs86 (32-bit)
Size          8192K
PROM start    0000:0000
PROM end      007f:ffff
PROM checksum 570b7700

        Addr1        Addr2                     Date File(s)
    0000:0000    0016:ae47     Sep 10 12:27:28 2014 golden_image.bit
    0040:0000    0056:b02b     Sep 10 14:03:21 2014 mb_image_simple.bit


0 Kudos
1 Reply
Participant cau4kien
Registered: ‎05-14-2014

Re: Creating PROM file using AXI SPI IP Core with assist of Microblaze

Per AR#474 and UG380 chapter 5 (configuration data) the PROM file in HEX format contain data with no bit-swapping send to PROM.

Used the Impact command lines, to generate the HEX file, but look at the attrached image, the bit stream input file is 1,469,892 bytes, but the output hex file contains 11,362,394 bytes (10 times larger, exceed the PROM size was specified 8,192K).


I also used promgen to create the hex file from MCS file, it is 2,973,786 bytes (twice larger than the bit stream size).


Anyone have explanation ? does hex file I created contain the other information than configuration data ? How to extract jsut the configuration data for FPGA ?

0 Kudos