I am starting to think I am crazy here. Is it just me or is the toolchain situation for FPGAs severely f*ucked up? I confess: I am a total newbie, just want to get my first insights to the FPGA world and pulled a simple FPGA breakout board (miniSpartan3) from my electronics box (well I bought that one a few years ago but life happened and now here I am with a need for it).
So the FPGA is a Xilinx Spartan 3A - I go to the Xilinx website, first impressions:
1) The fancy new design suite doesn't support the older devices like the spartan 3 (and I'm not even sure there's a free version of it)
Microsoft isn't doing much with Windows 95 either. I love the Spartan 3 boards but I realize I have to install ISE 14.7 in parallel with the newer Vivado I need for my Artix devices.
2) So I go to the "ISE Design Suite", of which the newest version only supports Spartan 6.
Yes, Xilinx walked away from ISE once Vivado was up and running.
3) I have to download version 10 of it which is from 2008.
Why? I have 14.7 installed on Win 7 and Win 10 to work on projects using Spartan 3 and 3E. What I THINK Xilinx means is that 14.7 only works on familites UP TO Spartan 6.
4) It crashes on start-up, so I have to create some magic registry keys for it to even start
As I recall, all you have to do is rename a couple of files which are already on your machine. It's nice to see that Xilinx now has a Win 10 version but it was never a big deal - the solution was all over the Internet.
The problem started when Microsoft created a new version of the OS. Suddenly, a program on life support didn't work. Who's fault is that? Some published interface goes sideways but it doesn't make sense to blame it on Xilinx. Their ISE worked BEFORE Microsoft changed the interface. One of the hazards developers run across, daily!
5) It doesn't support the footprint I have, so I need to get a service pack. Which won't install for the first 2 trys but magically work on the third try.
What does Google have to say? All of human knowledge is on Google. I have never had that problem.
6) Now it somewhat runs but every half an hour or so it just crashes anyways. No way found to circumvent that so far.
Never had that problem either and I have been using 14.7 since it was released and I think I started with version 6 (I'm not sure of that). Hit up Google. If you have a problem, it's a good bet somebody else had the problem and found a solution.
I am sorry if this is a bit of a rant. I'm just really frustrated. Like, how do you guys who work on FPGAs for a living even stand this? I get this is a rather old FPGA - but it is still in production, how can there not be an up to date way to program it?
A misguided rant, in my view. 14.7 works fine, I use is all the time with my obsolete boards. But the key word here is 'obsolete'. The entry level boards these days use Artix 7s and Vivado is the toolchain.
Truth be told, I wasn't a fan of Vivado. I'm too old for such a seismic shift in the development tools. It took me a while to get back up to speed. Now I ALMOST prefer Vivado.
Is there any alternative to this whole mess? Like can I just use an editor of my choice to write up some VHDL and only use the xilinx tools to create the bitstream I need? How would I go about that if possible?
RTFM! Some designers used that approach and probably still do. All of the Xilinx tools can be run from the command line or from a Makefile. Any editor can be used but one with language awareness, like the Vivado editor, seems preferable. Maybe Notepad++, it has support for Verilog and VHDL. I haven't used a Makefile but I would bet that the individual programs return error codes and failure at any particular step can be noted by 'make' and the process aborted.
Here is a concise 423 page manual on command line tools for 14.5. Search Xilinx for something newer - there may not be an important change in the name and parameters for the tools.
https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_5/devref.pdfThere are some tools, like Data2Mem which allow BlockRam in bitstreams to be updated. This is very useful when you want to cram machine code into a CPU memory and change it as the CPU source code changes. To my knowledge, it ONLY works at the command line.
Sit back, smoke 'em if you got 'em, and think about the realities of aging. Even Vivado is 7 years old. Here's an interesting fact: It took 1000 man-years and $200 million to create Vivado. ISE was 15 years old at the time...
https://en.wikipedia.org/wiki/Xilinx_VivadoThe alternative is to change over to Altera or one of the smaller players like Lattice. It might work out...