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. The book appears to be published by Wiley-Interscience.
It's a very good book to learn VHDL with. Chu recommended using ISE version 8.2 and Modelsim XE III. I tried using the latest ISE version (14.7), but it kept crashing.
The Spartan-3E Starter board is also compatible with the MicroBlaze™ Embedded. Spartan-3E Starter Board; Custom Digilent cardboard box with protective foam. Built around a Xilinx® Spartan®-3E FPGA and an Atmel® AT90USB2 USB controller. Digilent Basys 2 Spartan-3E FPGA Trainer Board. Reference manual; Applications.
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. 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 Links. 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 ', it's a very common and well used Linux program which can even run under Windows using.
Indeed, there's hardly a day that goes by where I don't use it. 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. If you are using Windows, then. You might want to check that you downloaded the 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. 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.). 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 July 19, 2017 by RichardV Mention of Adept to Dan, and 3AN schematic. 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. The weathering magazine pdf.
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.
In these days when a lot of perfectly working boards are just thrown away because they are obsolete, I think we should admire and encourage the 'effort' of using these old (but unused) boards. I think that some more details can be useful on this matter. This is a Xilinx board, meaning that it was engineered by Xilinx and only produced by Digilent.
Spartan 3e Manual
It is based on Spartan 3 FPGA XC3S200, which is very old and, comparing with up to date FPGAs, not very powerful. But is more than enough for small applications or for learning VHDL or Verilog.
On PC side, in order to generate the programming file (bit file), you need Xilinx tools ISE (as mentioned in the above messages). In order to program the bit file on the board, you need a programming cable. On the PC side it will be connected to USB, on the board it will connect to JTAG connector J7 (1x6 pins). Please read more about this mater on the page 41 of the board's user guide. An example of such a cable is Digilent HS2.
On the other hand, let's look from the other perspective: You should be aware that the current direction of Xilinx tools is to move towards Vivado, so using this 'ancient' board you lose the possibility to learn Vivado. If you are student or your work is related to academia, almost at the price of the Digilent HS2 you can get all the Basys3 board. This relies on the Artix 7 family FPGA, is up to date and also doesn't need a programming cable. Edited August 25, 2017 by Cristian.Fatu. Spartan 3, obsolete? An ideal family to learn about FPGA devices and toolsets? Of course not.
Other than having minimal block memory resources the IO and internal clock rates are not that bad compared to the slowest Artix decides. ISE 14.7, the last version available supports the entire family. I wouldn't try implementing a Microblaze on the boards that nickb has but I wouldn't waste the resources of a Basys3 or other board with a small Artix device with a Microblaze either, The whole notion that FPGA development requires using a soft processor is nonsense. What those old boards offer, unlike most of the Digilent Series 7 boards, is enough IO to be useful for a real world application. Now that is nonsense to my way of thinking. The whole notion that FPGA development requires using a soft processor is nonsense. I would amend it to state that soft processors make sense for some problems.
Whether a microblaze makes the most sense, or a makes more sense, I'll leave up to you. I will say that a Spartan (although not much more.). You may even find that a, such as a, can be built for even less logic, should you wish to try rolling your own CPU. Still, doing so only make sense for some problems. The only other piece of wisdom I might add is this: there's something to be said for learning how to create simple logic on a disadvantaged FPGA (or CPU-whether on or off an FPGA). It teaches a certain creativity, and may even help you understand many of the lessons those before you were forced to learn.
I appreciate the objective test case for the ZipCPU on a 6LX4. Such actual implementation is useful to everyone. I have no argument with the proposition that it's possible that filling a 6LX4 with a soft CPU might be the way to go for a particular application. Perhaps, I didn't state my case very well. My point was that of all of the many FPGA designs that I've done in industry, none of them has had a soft CPU. Why use up most of the valuable FPGA resources unless absolutely necessary? In industry you use the technique that requires the least amount of resources and adds to the company IP portfolio.
Spartan 3e Starter Kit
You can implement a lot of functionality in a 6LX4 or in the Spartan 3E Starter Board ( even with the smallest device ) using standard digital techniques. The larger issue is why promote a concept that is, in my considerable industry experience not used, as being necessary and the only flow possible? ( I have a theory on the probable answer.) Is that the proper thing to do to a student wanting to learn skills that employers want? If your primary focus is the educational market why not provide the kind of information that helps students quickly gain the concepts of HDL and FPGA development?
There is certainly the need, as my last few posts to another thread indicate. The student will be better served learning how to think, develop the basic HDL skills, and be introduced to the 'hidden' issues of basic FPGA development. Learning how to drag and drop IP that doesn't teach these skills, and only trains in using a particular tool set, seems to me to be a dis-service to the intended audience. Everyone has to learn the tool set interface.
But this changes all the time. Dragging and dropping canned IP is not an engineering skill, even if it's a skill that every FPGA engineer has to have. Selling boards with feature that require non-free IP, even if you can get a 30 day evaluation license, is not helpful to students or skilled engineers wanting to prototype an idea or learn how to design for a particular interface.
Selling boards that help sell your own PMOD products is OK, I suppose, if you don't limit them to that functionality. I disagree that we are off topic. I was responding the Chriatian.Fatu's assertion above: 'It is based on Spartan 3 FPGA XC3S200, which is very old and, comparing with up to date FPGAs, not very powerful. But is more than enough for small applications or for learning VHDL or Verilog.' Unless you are filling the device ( these boards were sold with an XC3S500E-4FG320C device) with superfluous things like a soft CPU core there's plenty of room for designs that are not 'small'.
Oh, but wait, all of Digilent's board demo designs use a Microblaze. Here are a few quotes directly from the (formerly available) Digilent Spartan 3E product page: The Spartan ®-3E Starter Board provides a powerful and highly advanced self-contained development platform for designs targeting the Spartan-3E FPGA from Xilinx ®. It features a 500K gate Spartan-3E FPGA with a 32-bit RISC processor and DDR interfaces. n order to program and communicate with the Spartan-3E Starter board, you must download and install the free.The Spartan-3E Starter board is also compatible with the MicroBlaze™ Embedded Development Kit (EDK) and PicoBlaze™ from Xilinx.
I believe that this discussion is as relevant to nickb's post as the above mentioned commentary, which needed a correction. In fact the reply to nickb's post was the only reason that I took the time to post a comment. Had the reply only dealt with programming the board I would have passed it. If you want to open such a 'off-topic' discussion about using soft CPU cores I'll be happy to post some interesting questions and opinions on the topic.
Edited August 25, 2017 by zygot. OK, so clearly I misread what the boards in question are. So, I need to withdraw all of the references that pertain to the Spartan 3E Starter Board. I don't need to withdraw the other observations. As it turns out the Spartan 3 Starter Board was the very first product that I bought from Digilent. While not the best design ( almost all of the IO header signals are also used by on board devices ) these are still OK boards for prototyping. There are a lot if IO available on easy to use 0.1' dual pin headers.
Spending $60 for an HS-2 programming cable would seem to be a reasonable investment to me if I had the small cache of boards that you have. When I was using the board ( Admittedly this was quite a long time ago. ) I used a Xilinx parallel JTAG cable, but as the parallel port is a historical oddity these days you might find an old Xilinx USB JTAG cable cheaper. Curiously, the Spartan 3 IO feature DCI termination.
A feature not even available for the Kintex HR bank IO. As to the XC3S200 being only for small designs. I've done work professionally with much smaller devices that packed a lot of functionality. I hope that the boards work out well for you. So I found my old Spartan 3 Starter Board.
I wish I could say that it brought back fond memories. The Reference Manual suggests that you can use the IO headers to program the FPGA and FLASH. The schematic supports this idea. A nice project would be to use another FPGA board, you can even use one with a PMOD connector to program your S3 boards. I once did a CPLD controller to configure Stratix devices in parallel mode. The system had multiple boards with FPGAs and had to power up configured but allow a processor to configure any FPGA on the fly through the backplane as well. The schematic was obviously created in Express PCB.
If the entire board was executed using this free software ( in a fairly rough version I might add. ) let me tip my hat to the engineer who did it. The BGA is pretty easy compared to footprints that you will find in devices today but this wasn't a trivial undertaking. And for the record, I was a bit hasty in saying that none of my commercial work had a soft CPU core. There was the time that I used the very first version of NIOS, which by the way started out as a personal project by an Altera engineer and not a corporate concept.
That was a rough experience. I hope that the NIOS guy got something more than a nice plaque for his efforts. So I realize that you probably have a schedule for that work project. But just for the sake of argument. Has your interest in FPGA development included the effort required to learn VHDL or Verilog?
Reply with the right answer ( hey you have a 50% chance. ) and I might take the time to demonstrate how you might be able to avoid the cost of buying a USB JTAG cable to use your boards.
Heck, I might do it anyway as the answers that you've received so far ( except for the one sitting just above this one of course.) really cheeses my fries. I would be interested in this.
But you didn't answer my question to nickb. Stay tuned to the Project Vault. It may be a week or two but I'm working on a demo.
The S3 Starter Board may be the only one Digilent designed that's amenable to a configuration demo. Try that with your ( my ) fancy-schmancy Series 7 board. My personal interest in FPGA development includes the effort to learn VHDL. I look forward to this. I had purchased a S3 Starter Board specifically to go through Pong Chu's ' FPGA prototyping by VHDL examples' book.