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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor knightrider
Visitor
545 Views
Registered: ‎09-05-2018

Impact works, and it works not

Jump to solution

I'm using Windows 7 + ISE 14.7 + make (Cygwin) to play with a XC3S500E-fg320 on a Spartan 3E Starter Board. That's old stuff but it should work as it used to before. After a long journey in the terminal, I finally reached impact.exe, which aborts with:

 

INFO:iMPACT:583 - '2': The idcode read from the device does not match the idcode
in the bsdl File.
INFO:iMPACT:1578 - '2': Device IDCODE : 00001111111111111111111111111111
INFO:iMPACT:1579 - '2': Expected IDCODE: 00000001110000100010000010010011
Elapsed time = 0 sec.

I asked the internet and it seems that the problem is always a buggy JTAG interface, but I'm using the USB-port of the board. 

 

Trying the GUI version of impact works. There's no problem in configuring the FPGA.

 

Now it gets even more strange: The above terminal output appears when restarting the board and then executing impact.exe, normal stuff. Next, I programmed the FPGA with the bitfile in the impact GUI and then start impact.exe via Cygwin again. Now the output is:

 

INFO:iMPACT:583 - '2': The idcode read from the device does not match the idcode
in the bsdl File.
INFO:iMPACT:1578 - '2': Device IDCODE : 00000000000000000000000000000100
INFO:iMPACT:1579 - '2': Expected IDCODE: 00000001110000100010000010010011
Elapsed time = 0 sec.

 

... so it seems that the device idcode changed after programming the board!? 

 

Changing the idcode in xc3s500e.bsd to everything 'X' doesn't seem to work. Another solution approach could be the Windows device manager which states a driver problem:

 

Device Manager.jpg

 

But this seems hopeless because the cable and the driver are working flawless with the impact GUI.

 

So what am I overlooking here?

 

Best Regards

 

 

 

0 Kudos
1 Solution

Accepted Solutions
Visitor knightrider
Visitor
455 Views
Registered: ‎09-05-2018

回复: Impact works, and it works not

Jump to solution

Thanks Ivy,

 

your reference to 'Identify' made it. 'Identify' in impact CLI outputs the same like 'Initialize Chain' in the impact GUI:

 

Identifying chain contents...

'0': : Manufacturer's ID = Xilinx xc2c64a, Version : 0
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/xbr/data/xc2c64a.bsd...
INFO:iMPACT:501 - '1': Added Device xc2c64a successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
'1': : Manufacturer's ID = Xilinx xcf04s, Version : 13
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/xcf/data/xcf04s.bsd...
INFO:iMPACT:501 - '1': Added Device xcf04s successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
'2': : Manufacturer's ID = Xilinx xc3s500e, Version : 4
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/spartan3e/data/xc3s500e.bsd...
INFO:iMPACT:501 - '1': Added Device xc3s500e successfully.

 

Since the xc3s500e FPGA got position number '2', my batch commands for impact CLI were:

 

assignFile -p 2 -file "top_update.bit"
Program -p 2 

 

That was the problem because the FPGA actually has a different position number when it comes down to programming. Luckily, 'Get Device ID' in impact GUI delivers the correct position number:

 

INFO:iMPACT - Current time: 29.09.2018 16:20:36
Maximum TCK operating frequency for this device chain: 10000000.
Validating chain...
Boundary-scan chain validated successfully.
'1': IDCODE is '01000001110000100010000010010011'
'1': IDCODE is '41c22093' (in hex).
'1': : Manufacturer's ID = Xilinx xc3s500e, Version : 4

 

So my batch commands for impact CLI are now:

 

assignFile -p 1 -file "top_update.bit"
Program -p 1

 

And this works perfectly, as well as programming the M25P16 SPI Flash on this position. Now my life is complete again :-)

 

But I'm still a bit curious if this is a bug, having different position numbers for devices, depending on if you use 'Initialize Chain' or 'Get Device ID'. Anyway, I'm happy.

 

Best Regards

Robert

View solution in original post

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
512 Views
Registered: ‎08-10-2008

回复: Impact works, and it works not

Jump to solution
Hi k,

I don't know a solution for this but I can tell there is nothing to do with the device IDCODE.
you can work with a GUI iMPACT, this means the JTAG SI is not buggy as well.

It seems the terminal cannot recoginize the JTAG chain correctly. It must see some 'virtual' 'extra' part in the JTAG chain so it cannot correctly locates 3E part then it reads out wrong IDs.

Never try to modify a BSDL file unless you are a mater of this.

You can try to issue a 'identify' command in termal and check what the terminal sees. If it does reports something, you can try to fix that.

Thanks,
Ivy
------------------------------------------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------------------
Visitor knightrider
Visitor
456 Views
Registered: ‎09-05-2018

回复: Impact works, and it works not

Jump to solution

Thanks Ivy,

 

your reference to 'Identify' made it. 'Identify' in impact CLI outputs the same like 'Initialize Chain' in the impact GUI:

 

Identifying chain contents...

'0': : Manufacturer's ID = Xilinx xc2c64a, Version : 0
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/xbr/data/xc2c64a.bsd...
INFO:iMPACT:501 - '1': Added Device xc2c64a successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
'1': : Manufacturer's ID = Xilinx xcf04s, Version : 13
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/xcf/data/xcf04s.bsd...
INFO:iMPACT:501 - '1': Added Device xcf04s successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
'2': : Manufacturer's ID = Xilinx xc3s500e, Version : 4
INFO:iMPACT:1777 -
Reading C:/Xilinx/14.7/ISE_DS/ISE/spartan3e/data/xc3s500e.bsd...
INFO:iMPACT:501 - '1': Added Device xc3s500e successfully.

 

Since the xc3s500e FPGA got position number '2', my batch commands for impact CLI were:

 

assignFile -p 2 -file "top_update.bit"
Program -p 2 

 

That was the problem because the FPGA actually has a different position number when it comes down to programming. Luckily, 'Get Device ID' in impact GUI delivers the correct position number:

 

INFO:iMPACT - Current time: 29.09.2018 16:20:36
Maximum TCK operating frequency for this device chain: 10000000.
Validating chain...
Boundary-scan chain validated successfully.
'1': IDCODE is '01000001110000100010000010010011'
'1': IDCODE is '41c22093' (in hex).
'1': : Manufacturer's ID = Xilinx xc3s500e, Version : 4

 

So my batch commands for impact CLI are now:

 

assignFile -p 1 -file "top_update.bit"
Program -p 1

 

And this works perfectly, as well as programming the M25P16 SPI Flash on this position. Now my life is complete again :-)

 

But I'm still a bit curious if this is a bug, having different position numbers for devices, depending on if you use 'Initialize Chain' or 'Get Device ID'. Anyway, I'm happy.

 

Best Regards

Robert

View solution in original post

0 Kudos