Hello. I picked up this Spartan-3AN development board to follow along this good book: "FPGA Prototyping by VHDL Examples", Xilinx Spartan -3 Version, by Phong P. Chu. The book appears to be published by Wiley-Interscience. It's a very good book to learn VHDL with. 

Dr. Chu recommended using ISE version 8.2 and Modelsim XE III. I tried using the latest ISE version (14.7), but it kept crashing. What I would like to ask is, can you recommend a tool-chain that is still available, and is compatible with the Spartan 3 series boards? 

I am able to synthesize a project using ISE 8.2, but I can't program it with the IMPACT tool, per the book. The book describes how to perform the programming process using a "boundary scan" via the JTAG interface. I do not have the JTAG dongle, so I'm tyring to use the on-board USB programmer, but I can't find any information on how to use it.

I saw one post mentioning a tool called "Adept", so I tried downloading it. It requires a "bash" tool to install it, so I gave on that. I would spend more time on it if I knew what is the correct tool-chain to use, given that this is an old outdated board with little support.

Should I try to get the latest version of ISE working, or find the programming software to use that USB programmer? Another approach would be to buy a dongle, but I'm not sure which one to get. 

My JTAG interface is 2x6 pins. It looks like the same set of pins on each row, so I don't know if 1x6 interface will work. Digilent has 2 USB dongles, one is 14 pins (Jtag 2), and the other is 6 (Jtag 3). Each one is about $60, so I didn't want to just guess by buying that 1x6 (Jtag 3) programming dongle. 

It seems to me that the Type B USB cable connector was made for programming, but I don't know what software it will work with. The IMPACT tool keeps crashing when I try to communicate with my board. 

I can do synthesis and generate the bit file, but I can't program it. I also can't run the debugger. Could someone please make a suggestion to help extend the life of these excellent Spartan-3 boards? 

Thank you, Richard V

Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Hello Dan. I found a lot of information (links below), but the only programming information that I can find uses the "JTAG" port, which means I would have to buy a $60 dongle for an old, outdated board that I just want to learn with. I also don't know if these newer dongles will work with this old board.

The board apparently has an on-board dongle for programming, but I can't find information on it. I would appreciate any information.

My board is P/N: HW-SPAR3AN-SK-UNI-G-(SPARTAN-3A). I also have a Spartan-3E boards, which is nearly the same, but has different pinouts. If the 3E boards is easier to use, then I'd use that one. 

I just noticed that Vivado HLS supports the Spartan 3A board. I tried using it just a few a while ago. I was able to synthesize a simple project. However, I don't know if I can use Vivado HLS to program this board though. Is using Vivado HLS a waste of time for me (using the Spartan 3)? 

Thank you, Richard V



Link to post
Share on other sites
  • 0


Thank you.  Now I understand more of the context of what you are up to and dealing with.  To your question, I'm not sure at this time what it will take to resurrect your board.  (I don't have one of those, or I might know ... I'll take any extras you have, though ;) )

Can you tell me what O/S you are running?

I have used ISE14.7 successfully many times over, as well as ADEPT.  I haven't used IMPACT, but that "should" work as well.  All of these should be able to help you on your journey.  If you'd like, then go ahead an pick one (or more) and describe the problem you are having.  Maybe we can get you a step closer.

As for the program "bash", it's a very common and well used Linux program which can even run under Windows using cygwin.  Indeed, there's hardly a day that goes by where I don't use it.  bash is a command line interpreter that runs programs.  Indeed, it is the default command line interpreter under Linux and has been for many years.  If you have Linux, chances are you already have bash.  If you are using Windows, then ... you might want to check that you downloaded the right adept installer before trying to install cygwin to get bash working.

Oh, and one other point: JTAG consists of a series of pins: TCK, TMS, TDI, and TDO.  You can find these pins on the configuration page (p6) of your schematic.  Many programs I've worked with have wired their own jtag control pins to these wires--they're fairly standard.  What I don't know is the voltage standard being used by this device (a voltmeter should tell you), or I might suggest hotwiring your JTAG pins from a different JTAG cable or from a micro (RPi?) to get you going.  What I mean is, if the voltages match, any JTAG cable should work.  Whether or not the software works ... that'd be another issue.  The JTAG standard is not so complex that you can't bit-bang it from GPIO, however ... I'm not sure you signed up for that part of the journey.  :D


Link to post
Share on other sites
  • 0

I have been successful using ISE 14.7 to build configuration files for the 3A and 3A-DSP devices. That was the last ISE version and to does support 3AN devices. To configure the Digilent 3A board device I've used the Digilent HS1 JTAG cable and the Adept Utility under Win7. For that board I had to bend one row of the JTAG header pins outward a bit to fit the HS1 due to its mechanical dimensions. The JTAG pins are clearly marked on the HS1 and the 3A header so that you can tell the proper orientation for connecting them. Now the problem for you is that I don't think that the HS1 is not sold any longer. It should be possible to build an adapter to one of the current JTAG cables. I have been able to use IMPACT as well. My version of ISE has a license for ChipScope but that does not work with the 3A device and ISE.

I appreciate anyone having a concern about spending money for a Digilent JTAG cable for an "old board". My answer is this; it depends what you intend to do with the board. The 3 series are a bit short in block memory resources but the IO are still pretty useful. If you can find an FX2 breadboard or want to connect a board of your own design to it the connectors are still available. If you don't have a use for the LCD, PS2 port or other components and don't intend to use more than 8 IO you may have a good point.

You can see what I did recently with a 3A board by looking in the Digilent Project Vault where I posted a project titled "Turn your Nexys Video into a Development System" ( or something close to that...)

Link to post
Share on other sites
  • 0

Thank you both Dan and zygot. You've given me gold. This is some really great information. However, I could not find the JTAG-HS1 zygot mentioned. I found the JTAG-HS2 at the Digilent store: : .

I just reviewed the schematic for the 3A board. The VCC is connected to 3.3 volts. The HS2 programmer works with 1.5 to 5 volts. Does anyone think me buying this HS2 is a mistake for my purpose? My concern is if the driver supports the 3A and 3E boards. I'm not sure if it matters.

Spartan-3AN Schematic:

Dan, you were right about Adept. I accidentally picked the Linux version (my PC is 64 bit). I see the Windows version too now.

Again, thank you all for your support.

Best regards, Richard V

Edited by RichardV
Mention of Adept to Dan, and 3AN schematic
Link to post
Share on other sites
  • 0

Hello again, I found the HS1 cable zygot mentioned. It's available for a "limited time", so I just jumped on it. I'm going to give this a try. It was a little lower cost than the HS2, but I don't know if it was worth it. I think the HS2 might be capable of supporting more devices. 

I will update this thread to show my success or failure after I get it. 

Best Regards, Richard V

HS1 link


Link to post
Share on other sites
  • 0

Hello again. I got my JTAG-HS1 programmer today (Limited Time, $40 + shipping). I had a few setbacks, overcame them and would like to share.

This lengthy post is just FYI for anyone interested in resurrecting a Spartan-3 (3A, 3AN, 3E) board. I no longer need support on the subject of this post, but I am thankful to Dan and Zygot for helping me get to this point. 

Sorry, but I can't help with the "Spartan-3 DSP"; I avoided it since I don't have one. 

I didn't understand Zygot's previous discussion on bending out the pins to make the JTAG HS1 connector fit. Now I get it (image). The pins are are a double-row, 0.1" spacing between rows and pins. The row for the TMS JTAG is too close the the SPI JTAG pins, so the programmer doesn't fit easily. Just like Zygot said, one just has to bend the pins outward, or extend them with an adapter. I got lazy as you can see here. 

I could not use ISE 8.2 because it doesn't support the Spartan-3AN (does support the -3A and -3E). The Adept tool saw the ID CODE difference between the -3A and -3AN and couldn't proceed. So I had to go back to using "Plan Ahead". I think "Plan Ahead" is the right tool, but it had the same problem as ISE. It (xst.exe) kept crashing on my Windows 10 System. I think "XST" is the synthesizer tool because that's when this error would occur (attached image). I found the solution here at:

As it turns out, one doesn't need Adept since Impact works okay. Adept seems to work too, though. 

I know this fix works with "Plan Ahead", but I don't yet know if it will fix that issue I had using ISE directly. It seems that Plan Ahead is a shell program for launching ISE. Can anyone explain the connection between Plan-Ahead and ISE? If I still find a problem using ISE directly, I will make one more post to this thread. 

So my Plan Ahead project works just great with Impact. I got this very simple code to synthesize and program this board; it runs. This Spartan-3AN Demo Board is alive again! If you see one in the trash or eBay, grab it for low cost and you will have a good VHDL learning platform. ISE 14.7 seems to work with this older board. Don't waste your time with the old version of ISE 8.2 if you have the -3AN board; you will reach a dead end. Besides, version 14.7 works way nicer than the older version. 


Why Use Throwback Tools?

If you want to use the latest tools and FPGA, I was previously using the Digilent CMOD-A7 (Xilinx Artix-7 FPGA with built-in programmer: $75-$89 at Digikey). I was using Xilinx Vivado (with SDK) to design and program it. You can actually get away without using VHDL coding using Vivado, but this defeated my purpose (to learn pure VHDL). This is why I temporarily stepped back to this older Spartan-3 board. Once I re-learn VHDL, My Goal: I want to write my own "IP" block in VHDL an integrate it into Vivado. I'll do this later when I feel comfortable with VHDL again. Sometimes one has to step back to move forward. 

Xilinx SDK is a software development kit to program your "C-Language" code into the "MicroBlaze" soft-core processor. You can do a lot of powerful things just using the free Webpack license for Vivado. I liked version 16.2, but it's the older version now. 

Thank you, Richard V



Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now