Author Topic: What are FPGAs used for today and with what tools?  (Read 2115 times)

0 Members and 1 Guest are viewing this topic.

Offline poleguy

  • Newbie
  • Posts: 1
  • Country: us
Re: What are FPGAs used for today and with what tools?
« Reply #25 on: September 28, 2020, 04:08:24 pm »
I'm new to the forums here, but I've been working as EE doing mostly FPGA designs since graduating in EE in 1999. Here's my take on the FPGA industry from that perspective.

At this point it seems the two big players, Altera and Xilinx are primarily driven by a growth strategy that's focused on truly massive designs and on datacenter applications. This leaves the new huge FPGA parts out of reach for the little guys (individuals or even companies trying to put them into products at consumer price points.) Unfortunately this means that there is little innovative development on small, low power, or even moderately sized designs from A or X.

It seems the datacenter designs are focused mainly on high level synthesis, so that the "FPGA" designers don't actually need to know how to produce an efficient FPGA design and rather can build a high level model and let the tools 'make it fast.' They may be 50% inefficient, but in the right markets that's not really a problem. The efficient low-level FPGA designer is becoming like a COBOL designer: obsolete, but highly valuable in a very small niche.

Even the designers who work with relatively big parts tend to do most of their work piecing together IP blocks purchased from X or A, or even free from X or A, which trades fast results for a bit of vendor-lock-in. This makes you very tied to the vendor, to the tools, the part family, and even to the tool version. For a moderately sized company seeking rapid ship dates and maximal profit for minimal up-front design cost, this sort-of makes sense, but those designs are going to end-up leaving designers with long term technical-debt (design-for-maintenance?).

Recently we had a case where Xilinx introduced (and eventually fixed) a bug in its VHDL synthesizer that caused x + 1 to be evaluated to x - 1 in certain hard to determine cases. This shows that the flow they are using is likely only really tested on high-level-synthesized designs, so there is ongoing risk that synthesis of hand coded designs may be at risk for synthesis changes that break legacy designs. It seems likely that Verilog and SystemVerilog are getting tested more extensively than VHDL because the high level languages use that by default. Xilinx won't admit this. At the moment they promise HDL won't go away, but it seems a risk that they may change there mind later and have HDL just become practically unusable because the tools aren't designed around that use case, or that they might introduce a high-level-synthesis only flow where all the new features go. (I'm speculating of course.)

Here around Chicago there are some jobs building high-frequency-trading systems for the guys who like to gamble with other people's money, and there are some defense jobs, and a well known microphone company, and the shell pieces of dying motorola. Otherwise you'll need to move (or zoom maybe) to Texas, etc. where the tech industry is hotter.

Some other parts smaller players like lattice provide some nice parts that are small cheap and simple. It's now the case that any logic beyond single gate transistors makes sense to be in a small FPGA. The cheap FIFO chip that peter-h mentions above is no longer cheap or available at all. I have on my bench in front of me now a design with a Xilinx Artix 7 that interfaces serially with a small lattice part on another board that is used to break out 40 GPIO. This greatly simplifies the board to board connection, and at this point serial to parallel shift registers (e.g. 74*595) end up more expensive. 

The transceivers in these designs allow for simple and cheap fiber-optic links even, and it's still a fun time to be working in the industry, but it seems the interesting jobs are few and less interesting than in the past.

Nick
 

Offline 0db

  • Frequent Contributor
  • **
  • Posts: 336
  • Country: zm
Re: What are FPGAs used for today and with what tools?
« Reply #26 on: September 28, 2020, 04:23:59 pm »
recently we had a case where Xilinx introduced (and eventually fixed) a bug in its VHDL synthesizer that caused x + 1 to be evaluated to x - 1 in certain hard to determine cases.

with which software (ISE? Vivado?) and version and for which target device (spartan3,6,7, ... others)?
 

Online AndyC_772

  • Super Contributor
  • ***
  • Posts: 3714
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: What are FPGAs used for today and with what tools?
« Reply #27 on: September 28, 2020, 06:09:48 pm »
I'd agree with a lot of that, the big players' focus on data centre applications to the exclusion of all 'small' parts is obvious, and harmful.

One of my all-time favourite ICs is the smallest Cyclone IV part from Altera, the EP4CE6E22. It has a quantity of logic and memory that's a good fit for a number of projects, and way more I/O than I often need. I wish it came in 64 or 100 pin packages.

I also wish it wasn't 11 years old already, not as horrendously costly for what you get, and that the newer Cyclone 10LP was significantly better in any way. Put it on a BoM with a modern microcontroller and the lack of development progress in the last 10 years on the FPGA side is painful.

I don't mind the vendor lock-in. My board is designed to use a whole bunch of sole-source components; I'm not going to change CPU manufacturer without a very good reason, nor am I inclined to change even relatively generic analogue parts in designs that have been thoroughly tested, qualified and field-proven over many years. Any suggestion that I'm somehow storing myself up a future problem by instantiating an Altera memory function or multiplier is missing the point by a country mile.

Offline asmi

  • Super Contributor
  • ***
  • Posts: 1413
  • Country: ca
Re: What are FPGAs used for today and with what tools?
« Reply #28 on: September 28, 2020, 07:59:13 pm »
One of my all-time favourite ICs is the smallest Cyclone IV part from Altera, the EP4CE6E22. It has a quantity of logic and memory that's a good fit for a number of projects, and way more I/O than I often need. I wish it came in 64 or 100 pin packages.
That's stage 1. Stage 2 will begin when you come across the project that will require external memories (as they tend to consume a lot of pins, and often has very specific requirements as to which pins you can or can not use, which often leads to underutilized IO banks due to IO voltage conflicts, or layout reasons), at that point you will realize that you need more pins, not less. It will also be about time when you also realize that you need more FPGA resources than these simple old chips can provide. Stage 3 will be when you want to use serial transceivers for hi-speed communications - usually these starts as wanting to implement something like DisplayPort, which is among the simplest Gbps-class interfaces to implement, and cover pretty much any modern serial standard out there - and this will further restrict which devices you can use, as not all of them have required number of transceivers and/or they are running fast enough for your needs. I've been there a couple of years ago, and since that I've seen few others follow similar path.
FPGAs are fun. But unfortunately not cheap, and the price goes up rather quickly as you climb the functionality ladder :(

Offline james_s

  • Super Contributor
  • ***
  • Posts: 13010
  • Country: us
Re: What are FPGAs used for today and with what tools?
« Reply #29 on: September 28, 2020, 08:43:27 pm »
what has not changed is that the xilinx tools still suck ... Altera is much better.


I've spent quite a lot of time in Xilinx ISE and Altera Quartus and my conclusion is that they both suck in different ways and both do a few things quite well. Overall I have found I prefer the Altera workflow but Xilinx has a much easier to use simulator and a few other advantages. I see no clear winner.
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 13010
  • Country: us
Re: What are FPGAs used for today and with what tools?
« Reply #30 on: September 28, 2020, 08:47:42 pm »
That's stage 1. Stage 2 will begin when you come across the project that will require external memories (as they tend to consume a lot of pins, and often has very specific requirements as to which pins you can or can not use, which often leads to underutilized IO banks due to IO voltage conflicts, or layout reasons), at that point you will realize that you need more pins, not less. It will also be about time when you also realize that you need more FPGA resources than these simple old chips can provide. Stage 3 will be when you want to use serial transceivers for hi-speed communications - usually these starts as wanting to implement something like DisplayPort, which is among the simplest Gbps-class interfaces to implement, and cover pretty much any modern serial standard out there - and this will further restrict which devices you can use, as not all of them have required number of transceivers and/or they are running fast enough for your needs. I've been there a couple of years ago, and since that I've seen few others follow similar path.
FPGAs are fun. But unfortunately not cheap, and the price goes up rather quickly as you climb the functionality ladder :(

One of my favorite parts is an ancient Cyclone II, complete dev boards using it are under $15 and I have managed to fit all kinds of interesting projects into it. Complete 8 bit computers, several early arcade games and other interesting vintage hardware. I have a DE2 dev board with a much larger FPGA and have found it handy for prototyping due to the onboard displays and switches and stuff but I have never come anywhere close to filling it. Most of my projects end up being memory constrained and I run out of block RAM long before I run out of logic. External memory can solve this but as you say, it consumes a lot of pins, especially when you have something like an arcade game that has video RAM and ROM and system RAM and ROM operating in different clock domains.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf