cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
andreamrl
Visitor
Visitor
12,895 Views
Registered: ‎12-27-2010

Impact 12.4 adding SPI for indirect programming.

Hello,

 

I have a spartan 3AN evaluation board and I just installed the latest ISE (Webpack actually).

I want to use Impact to program an HEX file to the SPI flash on my board in indirect mode (I understand that direct programming has been dropped since ISE 11.4).

 

In the documentation I found around it seems easy to add an SPI flash in Impact; it is said that the tool should ask me if I wish to add the SPI flash, but it does not happen here, and I could not find any way to do it manually.

 

Indeed I can see the jtag chain, I can associate a bitstream to my FPGA, but I never see any option to tell Impact that a SPI flash is connected to the FPGA in order to program it.

 

Can please someone enlight me?

 

Thanks

Andrea

0 Kudos
8 Replies
iguo
Xilinx Employee
Xilinx Employee
12,860 Views
Registered: ‎08-10-2008

Right click on your FPGA and select 'Add SPI/BPI flash..', there should be a window popped up saying: Add PROM File
------------------------------------------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------------------
0 Kudos
andreamrl
Visitor
Visitor
12,853 Views
Registered: ‎12-27-2010

Thanks for the suggestion, but the problem is that I have not this entry in the menu that opens when I do right click on the FPGA..

The "Add SPI/BPI flash" entry is not present..

 

Andrea

impact.jpg
0 Kudos
cg49me
Observer
Observer
12,835 Views
Registered: ‎12-17-2010

Having the exact same problem...

 

http://forums.xilinx.com/t5/Xilinx-Boards-and-Kits/S-3AN-Starter-Kit-Indirect-Prog-ing-iMPACT-12-4-What-am-I-doing/m-p/115864

 

I suppose I'm glad I'm not the only one.  I too, have a Webpack license, and am wondering if that's got anything to do with it.

 

Oddly, I have more options than you when right-clicking on my FPGA in the chain:

 

Program Flash and Load FPGA...

Program FPGA Only

Verify

Erase

Blank Check

Readback...

Get Device ID

Get Device Checksum

Get Device Signature/Usercode

--------------------------------------------

Assign New Configuration File...

Set Programming Properties...

Set Erase Properties...

--------------------------------------------

Launch File Assignment Wizard

0 Kudos
andreamrl
Visitor
Visitor
12,830 Views
Registered: ‎12-27-2010

The more options are probably because you have already associated a bitstream to configure the FPGA, while I was in bypass when I took the snapshot.

 

In any way the option for adding the SPI memory is not present :-(

 

Andrea

0 Kudos
cg49me
Observer
Observer
12,774 Views
Registered: ‎12-17-2010

Ah, right you are.

 

Just tried iMPACT 11.1 - no dice.  No dotted line off of the FPGA, no "Add SPI/BPI..." option.

0 Kudos
mcgett
Xilinx Employee
Xilinx Employee
12,769 Views
Registered: ‎01-03-2008

Add my comment from the other thread:

 

There is something weird going on and I'm not quite sure why.  The Spartan-3AN documentation shows support for the external BPI and external SPI modes, but the ISE software does not appear to have the necessary files to be able to program these using the indirect method.

 

Anyone buying the Sparta-3AN devices would be intending to use the internal SPI memory to configure the device, so your attempt to use an external SPI memory is very unusual.  While this is unusual, it does appear to be support by the hardware just not the software.

 

Xilinx is shutdown until January 4th, but I would still suggest that you open a webcase online now as there may be a software patch or workaround to be able to resolve this issue. 

------Have you tried typing your question into Google? If not you should before posting.
Too many results? Try adding site:www.xilinx.com
horkel
Observer
Observer
12,433 Views
Registered: ‎05-31-2009

How to persuade iMPACT to program external SPI flash connected to Spartan3AN Device?

 

(iMPACH from ISE 12.4)

 

If you have Spartan3AN device in boundary scan chain iMPACT does not support external SPI flash. Ask Xilinx developer why.

 

NoFlash.png

 

If you set Spartan3A device instead in the boundary scan chain definition (assign any bitfile for Spartan3A device for FPGA) then you can assign MCS file to external SPI flash.

 

AskForFlash.png

 

FYI: To generate MCS file from bitfile you may use this command (I have 2048k flash memory):

 

       promgen -spi -p mcs -o demo_1.mcs -s 2048 -u 0 demo_1.bit

 

Program promgen is here: C:\SW32\Xilinx\ISE_12.4\ISE_DS\ISE\bin\nt

 

If the real connected device is Spartan3AN then external flash memory programming fails. iMPACT tries to download temporary bitfile info FPGA (programming engine) but it fails because the connected device has different JTAG IDCODE. See the console info in the picture. There is 1 bit difference.

 

Failed.png

 

I suppose that Spartan3A and Spartan3AN devices have the same FPGA chip inside. The only difference is that Spartan3AN have buried internal SPI flash in the same package and it has different IDCODE. So the only problem is where this information is stored.

 

You have to modify BSDL file for your device so that iMPACT will not refuse Spartan3AN device if it is expecting Spartan3A. We are editing Spartan3A definition (because we have Spartan3A in boundary scan chain). The difference is only 1 bit. Example:

 

In the BSDL file C:\SW32\Xilinx\ISE_12.4\ISE_DS\ISE\spartan3a\data\xc3s50a.bsd there is device definition:

 

[edited content]

attribute IDCODE_REGISTER of XC3S50A : entity is     "XXXX" &    -- version
    "00100X1" &    -- family <<<<<<<< here is X instead of 0
    "000010000" &    -- array size
    "00001001001" &    -- manufacturer
    "1";        -- required by 1149.1

 

[original content]

attribute IDCODE_REGISTER of XC3S50A : entity is     "XXXX" &    -- version
    "0010001" &    -- family
    "000010000" &    -- array size
    "00001001001" &    -- manufacturer
    "1";        -- required by 1149.1

The difference is in family code. Do not forget to restart iMPACT. Id read BSDL file during initialization only.

 

Success.png

 

Now I have Spartan3AN device with one bitfile in its internal flash and second in external SPI flash and I am happy :smileyhappy:

 

I hope Xilinx will add external SPI flash support for Spartan3AN devices.

 

cg49me
Observer
Observer
12,428 Views
Registered: ‎12-17-2010

Thank you!

 

Yes, hopefully Xilinx will fix this issue in the near future...

0 Kudos