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: 
343 Views
Registered: ‎09-04-2019

In-System Programming to Config Memeory for Spartan6 via JTAG

Hi,

Our system employs Spartan6(XC6SLX25-2FTG256L)  and config memory(XCF08PVOG48C), and this system has a JTAG chain of these devices for both the Xilinx JTAG pod and In-system programming by the host cpu.

Acoording to the application note(XAPP058, v4.2, May-18-2017), some additional modules are added to the reference C code.  And I need to make a dedicated .xsvf file in order to varify the ported code for our configuration(Spatan6+XCF08P).  Actually, I tried to generate a .xsvf file on the iMPACT tool. However, I could not make it.

As a first step, I need to scan out the IDCODE of XCF08P via TDO.  Could someone pleae tell me how to generate an appropriate .xsvf file on the iMPACT ?

Thanks and Best Regards,

Kimizuka

 

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

回复: In-System Programming to Config Memeory for Spartan6 via JTAG

What do you mean by 'some additional modules are added to the reference C code'? Not understand what the question is. Do you have some other 3rd party devices in the JTAG chain or not? If yes, you need to describe the whole jtag chain in the svf/xsvf by adding their bsdl files sequentially. After this, just pick the one you plan to run operations on and do whatever you need. Finally, just click generate. That's all.

 

------------------------------------------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------------------
0 Kudos
Scholar watari
Scholar
302 Views
Registered: ‎06-16-2013

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

Hi kimizuka1@ici 

 

Would you refer the following ?

 

https://www.xilinx.com/support/documentation/application_notes/xapp503.pdf

 

I suggest you to do the following.

 

- Read XAPP503 and understand how to create svf file.

- Execute iMPACT to output serial signal via JTAG port.

- Record this signal by like data logger.

- Convert this recorded data to C language source code.

- Build binary file.

 

Best regards,

0 Kudos
288 Views
Registered: ‎09-04-2019

回复: In-System Programming to Config Memeory for Spartan6 via JTAG

Thank you for your reply.

For your questions;

- Some additional modules mean that the GPIO manipulation code in order to emulate the JTAG behavior which is called from the xapp058 reference C code.

- In JTAG chain, the Spartan6 and XCF08P are only placed.

I actually tried to generate .xsvf file by invoking the iMPACT tool, however I could not make it due to some PC environment issue... 

After the iMPACT has been succefully invoked, I have another questions. I will post it in convergent with another reply later.

Thanks and Best Regards,

0 Kudos
Highlighted
284 Views
Registered: ‎09-04-2019

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

Thanks for your reply.

I just followed the xapp058, and successfuly invoked the iMPACT to generate .xsvf file for capturing the IDCODE of XCF08P.

After executed the C code which is made of the xapp058 reference C with the JTAG  manipulation module, the waveform of the JTAG signals are captured as the attached .ppt and I have some questions;

1) The IDCODE is scanned out 3times on TDO output, though I execured "Get Device ID" command on the iMPACT.  Is this normal behavior or configured somewhere on the iMPACT ?

2) While scanned out the IDCODE via the TDO, the low level of TCK is kept long time.  Is this behavior OK for JTAG spec ?   And is this come from Linux's multi-thread behavior or other similar behavior ?  

Anyway, I will try to capture the xapp503, and consider of following your suggestion.

Thanks and Best Regards,

Kimizuka


@watari wrote:

Hi kimizuka1@ici 

 

Would you refer the following ?

 

https://www.xilinx.com/support/documentation/application_notes/xapp503.pdf

 

I suggest you to do the following.

 

- Read XAPP503 and understand how to create svf file.

- Execute iMPACT to output serial signal via JTAG port.

- Record this signal by like data logger.

- Convert this recorded data to C language source code.

- Build binary file.

 

Best regards,



 

0 Kudos
Scholar drjohnsmith
Scholar
275 Views
Registered: ‎07-09-2009

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

to me looks like perfectly acceptable behaviour of the JTAG.

Do you need to scan ID multipel times, no  , but no reason why you would not want to check ID 100 percent, bu doing redundant reads.

Do you need to hold trace for "a long time " , provided you meet timing no, but why not  if it makes the code easier, it does no harm.

 

 

 

 

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Scholar watari
Scholar
263 Views
Registered: ‎06-16-2013

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

Hi kimizuka1@ici 

 

First of all, I agree @drjohnsmith mentioned.

 

>1) The IDCODE is scanned out 3times on TDO output, though I execured "Get Device ID" command on the iMPACT. Is this normal behavior or configured somewhere on the iMPACT ?

 

I don't know the behaviour of iMPACT during checking device id.

 

>2) While scanned out the IDCODE via the TDO, the low level of TCK is kept long time. Is this behavior OK for JTAG spec ? And is this come from Linux's multi-thread behavior or other similar behavior ?

 

As you know, JTAG logic is clock synchronous circuit by TCK. And it has too long shift register chain.

So, this behavior is fine.

 

BTW, what purpose do you want to do ?

Exceptionally, custom memory device has some device ids to classify an internal die.

If you want to know whether this device is a fake or not, I suggest the followings.

 

- Make sure marking on this device.

- Make sure correct id code.

 

Best regards,

0 Kudos
239 Views
Registered: ‎09-04-2019

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

Hi,

Thanks for your reply.

For your question;

> BTW, what purpose do you want to do ?

My purpose is to develop an In-System Programmiing utility for our system which is applied with Spartan6 and XCF08P.  I never employ any custom memory devices, so the ID code must be 0xF5057093 as shown in the specification;DS123 (actually, I got the 0xF5057093 from our board via the iMPACT).

 My 3rd question is;

3) In my slide page 4, 7, and 11, the IDCODE is observed as 0xD5057093.  Is there any possibility to read as  0xD5057093 instead of 0xF5057093 ?

Thanks and Best Regards,

Kimizuka

0 Kudos
Scholar drjohnsmith
Scholar
230 Views
Registered: ‎07-09-2009

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

May be of interest,
Xilinx used to have something called ACE, and ACE player ( I think )
that generated the commands etc for you to just "play" out to program a part.
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
Scholar drjohnsmith
Scholar
229 Views
Registered: ‎07-09-2009

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

0 Kudos
Scholar watari
Scholar
199 Views
Registered: ‎06-16-2013

Re: In-System Programming to Config Memeory for Spartan6 via JTAG

Hi kimizuka1@ici 

 

> My purpose is to develop an In-System Programmiing utility for our system which is applied with Spartan6 and XCF08P. I never employ any custom memory devices, so the ID code must be 0xF5057093 as shown in the specification;DS123 (actually, I got the 0xF5057093 from our board via the iMPACT).

 

I can't catch on your mentioned.

XCF08P looks like custom flash memory device.

 

> 3) In my slide page 4, 7, and 11, the IDCODE is observed as 0xD5057093. Is there any possibility to read as 0xD5057093 instead of 0xF5057093 ?

 

If there is not any problem on your schematic, an observed IDCODE has to be an expected IDCODE.

In this case, I suspect your schematic.

 

Would you make sure it ?

 

Best regards,

0 Kudos