Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎03-10-2014

INFO:iMPACT:583 when programming Spartan-3 Starter Board PROM

[Note: I'm not sure if the Spartan-3 Starter Board is a Xilinx product or 3rd-party... please let me know if I should post elsewhere.]




I have a Spartan-3 Starter Board (this one: which I have used in my physics research. I want to put a new program on the device PROM, but I get this error when I try to program it using iMPACT:


INFO:iMPACT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File.
INFO:iMPACT:1578 - '1': Device IDCODE : 00001111111111111111111111111110
INFO:iMPACT:1579 - '1': Expected IDCODE: 00000101000001000101000010010011


I'm using a Xilinx Platform Cable USB to connect to the board. I run Windows 7, and I have ISE 14.1. A previous student was able to program the device using this computer, so I really don't know why I can't get it to work.


I have the jumpers on the board set to:

<M0:M1:M2> = <1:0:1> (from the manual: "JTAG: The FPGA waits for configuration via the four-wire JTAG 


JP1: "Disable" (from the manual: "Jumper removed. Platform Flash is disabled. Other configuration data source 

provides FPGA boot data.") (It doesn't seem to matter what I set this to, but who knows, maybe this information is important.)


This is what I do in iMPACT after I generate a .bit file in ISE:


1. Open iMPACT. Click cancel on all the prompts until I get to the main window. Double-click on Create PROM File under "iMPACT Flows," enter these settings:
Inline image 1
Click OK. I'm prompted to add a configuration file, like this:
Inline image 2
So I click OK and select my .bit file with the file dialog that comes up. There's another prompt asking if I would like to add another device file, I click No. The window looks like this now:
Inline image 3
I right click in the area to the right and select Generate File, a blue box comes up with "Generate Succeeded" and the console reads:
Add one device.33dd3INFO:iMPACT - Current time: 3/10/2014 2:40:15 PM
// *** BATCH CMD : setMode -pff
// *** BATCH CMD : setSubmode -pffserial
Total configuration bit size = 1699136 bits.
Total configuration byte size = 212392 bytes.
// *** BATCH CMD : generate
0x33da8 (212392) bytes loaded up from 0x0
Using user-specified prom size of 256K
Writing file "C:\VHDL visionFPGA\visionFPGA\michaelsvisionPROM.mcs".
Writing file "C:\VHDL visionFPGA\visionFPGA\michaelsvisionPROM.prm".
Writing file "C:\VHDL visionFPGA\visionFPGA\michaelsvisionPROM.sig".
Writing file "C:\VHDL visionFPGA\visionFPGA\michaelsvisionPROM.cfi".
// *** BATCH CMD : setCurrentDesign -version 0
2. Double click on "Boundary Scan" under iMPACT Processes, then right-click in the window area and select "Initialize Chain." The chain is initialized, and a prompt asks if I want to "continue and add configuration files." I click No, but a window with settings comes up; I leave them as they are and click OK.
Inline image 4
3. Right-click on the icon for the xcf02s platform flash and select "Assign New Configuration File." Choose the .mcs file I generated.
4. Now when I right-click on the xcf02s, one of the options is "Program." When I select it, a red box comes up with "Program Failed" and the console reads
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
GUI --- Auto connect to cable...
// *** BATCH CMD : setCable -port auto
INFO:iMPACT - Digilent Plugin: Plugin Version: 2.2.10
INFO:iMPACT - Digilent Plugin: no JTAG device was found.
AutoDetecting cable. Please wait.
PROGRESS_START - Starting Operation.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
 Driver file xusbdfwu.sys found.
 Driver version: src=1027, dest=1027.
 Driver windrvr6.sys version = WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
 Cable PID = 0008.
 Max current requested during enumeration is 280 mA.
Type = 0x0605.
 Cable Type = 3, Revision = 0.
 Setting cable speed to 6 MHz.
Cable connection established.
Firmware version = 1100.
File version of C:/Xilinx/14.1/ISE_DS/ISE/data/xusbdfwu.hex = 1100.
Firmware hex file version = 1100.
PLD file version = 0012h.
 PLD version = 0012h.
PROGRESS_END - End Operation.
Elapsed time =      0 sec.
Type = 0x0605.
ESN not available for this cable.
Attempting to identify devices in the boundary-scan chain configuration...
INFO:iMPACT - Current time: 3/10/2014 2:41:57 PM
// *** BATCH CMD : Identify -inferir 
PROGRESS_START - Starting Operation.
Identifying chain contents...'0': : Manufacturer's ID = Xilinx xcf02s, Version : 0
INFO:iMPACT:1777 - 
Reading C:/Xilinx/14.1/ISE_DS/ISE/xcf/data/xcf02s.bsd...
INFO:iMPACT:501 - '1': Added Device xcf02s successfully.
PROGRESS_END - End Operation.
Elapsed time =      0 sec.
// *** BATCH CMD : identifyMPM 
// *** BATCH CMD : assignFile -p 1 -file "C:/VHDL visionFPGA/visionFPGA/michaelsvisionPROM.mcs"
'1': Loading file 'C:/VHDL visionFPGA/visionFPGA/michaelsvisionPROM.mcs' ...
// *** BATCH CMD : setAttribute -position 1 -attr packageName -value ""
INFO:iMPACT - Current time: 3/10/2014 2:45:17 PM
// *** BATCH CMD : Program -p 1 -e -v 
PROGRESS_START - Starting Operation.
INFO:iMPACT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File.
INFO:iMPACT:1578 - '1':  Device IDCODE :        00001111111111111111111111111110
INFO:iMPACT:1579 - '1': Expected IDCODE:    00000101000001000101000010010011
Please make sure that the version of the xc18v00 proms you are using are supported in iMPACTPROGRESS_END - End Operation.
Elapsed time =      0 sec.
If I select any of the other options when I right-click on the xcf02s, like "Get Device ID," those also fail.
Does anyone know how to fix this? I've spent a long time trying to figure it out, but I'm not very familiar with ISE or FPGAs in general, so any advice would be very much appreciated. 
Thank you!
0 Kudos
5 Replies
Registered: ‎08-14-2007

I think there's some restrictions on new users that may have prevented your images from posting correctly.  However the symptom showing up in your Device ID code looks a lot like a signal integrity problem on the JTAG chain itself.  The fact that the detected ID code has long strings of 1's followed by long strings of 0's implies there may be a bad signal connection on TMS or perhaps poor signal quality (ringing) on the TCK signal.


If the same board and cable works well on another computer, it is also possible you have a driver issue.  There was a new answer record about Impact and drivers posted just today.  There could also be some issues if you had at some time installed the Digilent cable drivers (same guys who made your board) and then use the Xilinx software and cable.

-- Gabor
Xilinx Employee
Xilinx Employee
Registered: ‎02-06-2013



Have a look at the below link



Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful.
0 Kudos
Registered: ‎03-10-2014

That's too bad that the images won't load--they show up for me! Thanks for taking a look anyway.


There are definitely also Digilent drivers and cables installed on the computer I'm using. I've tried to program the FPGA with the Digilent software (Adept) and a Digilent cable, but that also failed for different (?) reasons. I wasn't able to initialize the JTAG chain with the Digilent cable because whenever I tried to talk to it (in Adept or in iMPACT, using the Digilent plugin), I immediately got an error from Windows saying that the device had malfunctioned and was stopped. I then had to unplug the cable and plug it back in before it would be recognized. If the Digilent and Xilinx drivers could be in conflict, what's the best way to totally purge one or the other?


I can look at the JTAG chain with a scope, as in the thread yenigal linked to below, but I wouldn't really know what to look for. If there were a signal integrity problem in the JTAG chain, would that be something I could fix myself?


Thanks again. 

0 Kudos
Registered: ‎03-10-2014

Update: I was able to get a Digilent USB JTAG cable to intialize the chain after a firmware fix, but I still get the same 583 error in iMPACT when I try to program/read the device ID/anything.


Also, the only device I see in the JTAG chain is the xcf02s... should I see other devices, e.g. the FPGA?

0 Kudos
Registered: ‎03-10-2014

I modified the .bsd file for the xcf02s, changing the expected IDCODE to what iMPACT was getting. This stops the 583 error, but now I get


// *** BATCH CMD : identifyMPM
INFO:iMPACT - Current time: 3/11/2014 11:02:55 AM
// *** BATCH CMD : ReadIdcode -p 1
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
INFO:iMPACT:1206 - Instruction Capture = '1111111100000001'
INFO:iMPACT:1207 - Expected Capture = '10101010XXXXX001'
INFO:iMPACT:2130 - Boundary-scan chain test failed . Please check tdi->tdo connection between the cable and device:'1' ( 'xcf02s').
A problem may exist in the hardware configuration.
Check that the cable, scan chain, and power connections are intact,
that the specified scan chain configuration matches the actual hardware, and
that the power supply is adequate and delivering the correct voltage.


I guess that's another sign that it's a hardware failure?


0 Kudos