Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Regular Visitor
flashman74
Posts: 22
Registered: ‎03-26-2009
0
Accepted Solution

JTAG insertion!

[ Edited ]

I've inserted JTAG chain to program the rom.

 

When I lunch hex2svfsetup, I choose Spartan 3 because non Spartan 3E fpga is on list. After I indicate 0,0 as number of devices before and after fpga.

 

Is it correct ?

 

The message on screen is that a 0,0 on Pico 2 is configured. But, it's Pico3. ?????? Why ????

 

I assume to load the code via usb cable ? Is it correct ?

 

 

Message Edited by flashman74 on 04-07-2009 01:43 AM
Xilinx Employee
chapman
Posts: 416
Registered: ‎09-05-2007
0

Re: JTAG insertion!

IF you are using the Spartan-3E Starter Kit then there are 3 devices in the JTAG chain. Zero before the Spartan-3E and two after. You see this displayed in the iMPACT display as part of your ISE design flow. 

 

The following reference design comes with a demonstration of JTAG_loader which you can use to confirm your own set up.  

 

 

http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm

 

Pulse Width Modulation (PWM) Generation and Control with PicoBlaze Processor
The PicoBlaze processor generates 12 channels of PWM with a PRF of 1KHz and duty cycle resolution of 8-bits (256 steps). Simple commands entered via HyperTerminal (not included) allow the duty cycle for each channel to be set independently with 8 of the channels controlling the intensity of the 8 LEDs and the remaining 4 channels provided as direct outputs on the J4 connector. This design also facilitates rapid changes to the PicoBlaze processor program stored in Block Memory with a second program included for immediate download.

 

 

Ken

 

Ken Chapman
Principal Engineer, Xilinx UK
Regular Visitor
flashman74
Posts: 22
Registered: ‎03-26-2009
0

Re: JTAG insertion!

[ Edited ]

I read the linked document.

 

But starting the configuration, I've this problem :

 

As you can se, device number 1 ( my fpga ) is seen as Pico2. Is it right ?

 

The second device is listed, but not the third, XC2C64A CoolRunner-II. What is the instruction leght of this device ?

 

No referement to this aspect in the documentation!

 

Message Edited by flashman74 on 04-07-2009 06:11 AM
Message Edited by flashman74 on 04-07-2009 06:12 AM
dos.jpg
Xilinx Employee
chapman
Posts: 416
Registered: ‎09-05-2007
0

Re: JTAG insertion!

Yes, this is right but just a bit historical! PicoBlaze-II was the PicoBlaze for Virtex-II devices and these were the first FPGA's with a 1K x 18bit Block memory. This was the same BRAM that was used in Spartan-3 so JTAG_loader really did not need to be changed.

 

As to the instruction length of an XC2C64A then the answer is 8. In most cases you could probably just make a guess and it would work anyway especially for devices after the target device containing PicoBlaze.

 

The general answer to how to find out the instruction length is a little longer but I'll explain how for all readers that may be interested.  Go to the Xilinx installation directory and under ISE you will find directories relating to each family of devices. Then in each of these is a sub-directory called ‘data’.  For example  /ISE/spartan2e/data. I have to say that the Coolrunner 2 director is a little less obvious being called /ISE/acr2/data.

 

Inside the data directory you will then see ‘bsd’ files for each device in the family. Find the device you are interested in and open that file in a text editor. Then look for a line that looks like this….

 

attribute INSTRUCTION_LENGTH of xa2c64a : entity is 8;

 

So now the instruction length for any device can be determined.

 

Regards,

 

Ken

 

Ken Chapman
Principal Engineer, Xilinx UK
Regular Visitor
flashman74
Posts: 22
Registered: ‎03-26-2009
0

Re: JTAG insertion!

[ Edited ]

I followed you!

 

Now on generating program file in ISE there is a warning not present before Jtag insertion :

 

WARNING:PhysDesignRules:1063 - Dangling pins on
   block:<program_rom/ram_1024_x_18.A>:<RAMB16_RAMB16A>.  The block is
   configured to use an input parity pins. There is a dangling output parity
   pin.

 

There is no impact on fpga functionality but, why there is this ?

 

Programming via JTAG, the cable seems not connected. I say "seems", because is the same cable for impact main program bitstream. So, It is connect.

 

How can I check the cable ? I don't know how to do. 

 

 

Message Edited by flashman74 on 04-08-2009 06:42 AM
Xilinx Employee
chapman
Posts: 416
Registered: ‎09-05-2007
0

Re: JTAG insertion!

What you are seeing is normal so carry on. I think now you have forgotton what you have read about using iMPACT with the Paltform USB Cable (also built in to the Starter Kits) and are proably still trying to use the 'playxsvf' utility that expects a parallel download cable. I wish you had tried the examples provided for the Starter Kit (i.e. the PWM reference design) to prove it all works first and then just modify from there rather than start from scratch.

 

Anyway.....How to update a PicoBlaze program (play an XSVF file) using iMPACT

 

Use the existing procedure to create the XSVF file for your board.

kcpsm3 %1

hex2svfsetup.exe

hex2svf %1.hex %1.svf

svf2xsvf -d -i %1.svf -o %1.xsvf

 

Note that 'hex2svfsetup' is only required the first time.

 

Open iMPACT in the normal way and select to configure using Boundary Scan mode.

Ideally, select the option 'Enter a Boundary-Scan Chain' which will then allow you to

see and select the 'xsvf' file which you have in your working directory. If you can do

this then jump over the next section between the **** lines.

 

*******

 

If you already have the device chain for your board defined and shown as a graphic, you

first need to remove these devices. Simply LEFT click on each device symbol to highlight

it and then press the Delete key on your keyboard. Repeat this until the complete chain

is removed and the screen only has the message 'Right click to Add Device or Initialise

JTAG chain'.

Then RIGHT click and select the option 'Add Xilinx Device...'

This will allow you to see and select the 'xsvf' file which you have in your working

directory.

 

*******

 

The graphic should then show a simple TDI to TDO chain consisting of one 'unknown' device

of type XSVF.

 

Right click on the symbol to 'Execute XSVF/SVF' and the PicoBlaze program should be updated.

Hint - It is a good idea to save this as a project (File - Save Project As...) so that you can

avoid the set up each time.

 

Note that iMPACT dynamically reads the XSVF file each time the 'Execute XSVF/SVF' is performed.

Therefore it is useful to leave iMPACT open to allow more rapid iterations to be achieved.

 

 

 

Again, see the PWM reference design for a batch file version of the above.

 

Ken

 

Ken Chapman
Principal Engineer, Xilinx UK
Regular Visitor
flashman74
Posts: 22
Registered: ‎03-26-2009
0

Re: JTAG insertion!

Thank you very much Ken!

 

Now everything works.

 

 

Visitor
wbeaumont
Posts: 4
Registered: ‎09-03-2010
0

Re: JTAG insertion!

[ Edited ]

I  work with the spartan 3A demo board .

I followed the steps and are able to "play" the xsfv file , with impac GUI or with the batch file similar to the one of the PWM project. But the software is not updated in the FPGA .

I uploaded the svf file.

 

Some more information:

- if I connect the jwrite ( so the "write" signal from  the jtag block inside the memory module) to a LED it is blinking when I "play"  the xsvf file ( from IMPACT GUI).

use pBlazeIDe and convert the MEM file to a HEX file and follow then the steps.

As memory template I use what is provided by mediatronix

http://www.mediatronix.com/code/ROM_blank_JTAG.vhd

 

Has someone a clue why it doesn't work?