I am interested to obtain people's thoughts on what is stopping them diving into FPGAs. I have my own theories on this subject and will share these as this discussion develops.
I look forward to hearing your views,
Thanks in advance,
Simon
I am interested to obtain people's thoughts on what is stopping them diving into FPGAs. I have my own theories on this subject and will share these as this discussion develops.
I look forward to hearing your views,
Thanks in advance,
Simon
I haven't had any familiarity with FPGAs.
This's partly because, apparently the software to use them effectively is all expensive and proprietary; there's no (decent?) open source, free software to get started with them.
Also I haven't seen any examples of using them so I'm not sure how relevant they are to me and projects I do or want to do to consider them.
I have tried before but the student team I was learning from was using proprietary material that was monotone. So no easy access to learning and presented in a boring fashion. that being said, even now there does not seem to be an easy way to learn the ABCs of FPGA, flashing an LED or other seemingly very simple steps that can be eventually put together to make a bigger project.
I would like to see a simpler approach especially considering that so many people today can program in C, JAVA, C++, C# etc. Why can't we talk in terms of what people already know, functions, variables etc. I know they are not the same but if some comparisons can be drawn then atleast I can get a foot in the door, which I could not do before.
Kas
Hello Christopher,
Thanks for replying. You are not alone, lots of people think the software is expensive and if you want to target high end FPGAs it can be however, you can get software which will allow you to target complex FPGAs for free. Altera, Xilinx and Lattice all provide free software to eliminate this barrier.
Your second comment is also very common, because FPGAs are so flexible it can be difficult to decide what examples to create. I am looking to load some content in the next few weeks which will at least start people off in their journey in using FPGAs.
cheers
Simon
Hello Kas,
Thanks for taking the time to reply. How does this sound, if I create a few blog posts which explained with screenshots how to create some simple designs and back these up with a Video showing you visually the same steps.
If you think there is a better way to serve up this material please let me know and I will look into how feasible it is to implement,
Simon
Altera appear to have Quartus, which costs money?
Xilinix appears to require licensing, there's some comment on a free version or evanulation but it's not clear what the restrictions or limits are on that.
Lattice does appear to have a free license, but it's not clear what restrictions are on that, aside from locking it down to your MAC address
I'm assuming that across these licenses you wouldn't be able to use it beyond for personal use. Looking into the details were all behind login pages, which currently stopped me looking into it further.
If you want to play FPGA you'll need to get over your logging in inhibitions 
There is free (as in beer) software and you can do quite a lot with it.
Once you start paying for software it does get quite expensive especially if you buy from a silicon independent source. But for starting there is no need at all to do this.
There are reasons why the software is the way it is - in the beginning Xilinx offered the first FPGAs, one with 64 look up tables (LUTs) and one with 100 - now we have devices with 10E6 LUTs. The software was paid for and I may mis-remember but I think at that time (20+ years ago) was a few thousand pounds. When Actel entered the market their software was up at the £20k level. As time passed it became apparent that 1) the software was a major part of the product and 2) very few customers were prepared to pay for it up front.
This resulted in the rather odd business model for FPGA companies where they give away or sell for peanuts a software product that you would normally expect to pay very serious money for (comparing with similar complexity software - at least £10k).
I get the feeling that no one much likes this situation but it's where we are and it isn't going to change quickly unless some one has a really game changing new idea.
John B (who will probably chip in himself) thinks that if the Silicon companies would open up a bit and allow third parties including open source people ready access to the necessary info then open source tools could emerge that would change the game. So far no one has done that.
If you could indicate the kind of projects you do I'd be happy to pitch an FPGA at you (or not if I don't think one would be any use.)
FPGAs can do amazing stuff but it takes a lot longer to write the 'code' (really should be 'design the logic') than software based people expect.
(I'm away for the next few days so I won't respond till Monday - if anyone replies.)
MK
I feel that FPGAs are a solution seeking a problem to a certain extent. It is a law of commodities that the first sip has the greatest worth. Making them bigger and bigger when they are already really big doesn't seem to make them much more useful. They would be fun if there wasn't the barrier of the software. IRL, for most common problems, they are just too much. They are marketed in a turgid manner; show me useful apps, not teabag me with fun fax about how this year's model is 4x more capacious than last year's model. Just after they first came out I plunked a half K for an entry-level programmer (I was willing to do the high-level programming on graph paper and xeroxes from the databook with a pencil) for replacing jellybeans. Lattice changed their chip, my programmer was now worthless. Xeltek told me to cheer up and send them a further K! This really soured me on the idea that these cats would do a small fry such as myself any justice. The eeprom-based units of today obviate the need for a unique programmer, but seems to do nothing for the bureaucracies that decide that they really don't care about us. Then after years and years these factors wonder why they have been unable to develop a user community!
I was at a dinner party recently with a woman who has worked for decades for a major e- distributor. She insisted that most sales are to govt's and institutions, major corporations, commodity parts. Their interest in things like dev boards and the 'make' community they saw as something to entertain themselves while they waited for Hitachi's check to arrive for that last truckload of electrolytic capacitors.
Hers is the largest corporation in Arizona. There is no way they care about your hundred-dollar one-off dev board in any real, economic sense. Their attitude is 'good luck, smartie!'
===========
Also if your logic needs are combinatorial rather than sequential, and your number of inputs is similar to your number of outputs, you can use some kind of ROM as an LUT, as an alternative.
Christopher Stanton wrote:
Altera appear to have Quartus, which costs money?
Xilinix appears to require licensing, there's some comment on a free version or evanulation but it's not clear what the restrictions or limits are on that.
Lattice does appear to have a free license, but it's not clear what restrictions are on that, aside from locking it down to your MAC address
I'm assuming that across these licenses you wouldn't be able to use it beyond for personal use. Looking into the details were all behind login pages, which currently stopped me looking into it further.
Xilinx, Altera, Lattice, and Actel (now part of MicroSemi) all have free-as-in-beer (FaiB) software for their smaller parts. If you want to use their chips that cost $1000 and up you'll have to pay for the software, but for any chip you'd want to use for learning you can use the FaiB version. The FaiB version may not have all the tools that the pay version has. For example, Xilinx ChipScope is not available in ISE WebPack. Also, you don't get any support with the FaiB tools other than on-line forums.
You do need to register to download the software. I think this is mostly to ensure that you have "signed" the end-user license agreement (EULA). This is standard with any software that's not Free-as-in-Freedom or Free (Libre) Open-Source Software (FLOSS).
I've done all my FPGA work for the last 15 years or more using the FaiB versions. There's no restriction on using the FaiB software for personal, educational, not-for-profit, or commercial applications. It's FaiB to remove a barrier to buying FPGA silicon, which is how an FPGA vendor makes money and pays for tool development.
I don't have time right now to go into my "The FPGA is the poster-boy for Free-as-in-Freedom Software" speech. I'll come back and give you some links. For now, take a look at my 'blog Flavia: the Free Logic Array.
I'll take a crack at answering "Why would I be interested in designing an FPGA"? Very simple:
Have you ever wanted a custom digital chip for a project, but didn't have $1 million lying around to pay for fabricating it? Well, an FPGA lets you do it for tens of dollars.
Wow. It still blows my mind. Wow.
Xilinx Wepack usage
Webpack ise is free to use for small to mid-grade chips. The high end chips require a full license. See the webpack software matrix can be found here, which shows any limitations to the webpack vs full versions.
Webpack is free to use commercially. Here is a discussion where Xilinx’s motives are stated.
Altera also has a quartus web edition that is free to use and it appears to have the same un-limited structure until using large devices. See the comparison chart here.
Though, it is free, it is bulky and not open. John B. has started a great project which is moving in the right direction to opening things up to open tools.
Programming requirements of Xilinx FPGAs - no expensive programmers needed
Xilinx and Altera chips offer a very basic way to load the configuration files (bit streams) using a slave serial data stream. The LOGI boards use the Raspberry Pi or Beaglebone to simply load a bitstream dynamically. This makes it nice to dynamically have full control of a single bitstream or multiple bit streams being loaded based on changing needs of the system. I see the Rpi or BBB as a very low cost programmer + very powerful coprocessor.
Alternatively there are some relatively low cost programmers from digilent inc (~$50) that can be used interface with the FPGA using JTAG.
Hi,
This is a very interesting question. With ValentFX we try to smoothen the learning curve for existing micro-controller/micro-processor users to begin to use FPGAs.
One simple solution that we are pursuing is an online system-level edition of FPGA architecture (www.valentfx.com/skeleton). The user can create a hardware architecture using existing open-source IP (hardware components) represented by grapical components and then generate the corresponding top-level architecture and project for Xilinx ISE. For Linux users, the tool also generates a Makefile that can call Xilinx tools with no need to open the Xilinx ISE GUI.
While this is not enough for someone to learn to design hardware, it is one way to get non-hdl developers started doing things before they need to learn all the associated concepts of digital hardware design.
Because we want our users to get their hands dirty and learn to write HDL we have started to experiment with alternative languages for HDL. The result of our experiments will be in a blog post we plan to post soon (sometime next week). We tested PSHDL and MyHDL that propose two different approaches for hardware design and they both work very well. The only thing is that i'am still not convinced that they are entry-level languages because they require to master quite a lot of concepts (especially MyHDL). I personally use VHDL and when testing those language i tend to map the VHDL construct to the MyHDL/PSHDL languages, and i would be interested to get beginners’ feedback on these or other languages. Testing those tools allowed us to define a proposed HDL language with the features one might expect and be comfortable with for a language to begin developing HDL.
Proposed HDL Language Attributes
- Based on well adopted syntax so users can takes advantage of existing editors features (auto-completion, syntax highlighting, ...)
- Remove as much syntactical noise as possible. The user should not have to explicitly define what can be inferred from its constructions
- User should be able to write a basic example in just a few lines and clicks (three clicks should be enough to run a small example)
- An architecture can be defined in a single file (ease sharing) and with no need to define a complicated project structure (Arduino does this really well for micro-controllers)
- Should be vendor agnostic …
What features would you expect from a entry-level HDL Language?
Regards,
Jonathan Piat
CTO of ValentFX, Co-Counder of the LOGI-Boards