4 ms·
Tooling tooling tooling. FPGA hardware is cool but the tooling fucking sucks. Like stepping back into the time where you needed to pay thousands of dollars to g
by nimish 9y ago
Tooling tooling tooling. FPGA hardware is cool but the tooling fucking sucks. Like stepping back into the time where you needed to pay thousands of dollars to get decent compilers and debuggers.
The ability for anyone to develop software for CPUs at zero-cost is an amazing freedom. You literally cannot do that on certain fpgas--not only do they cost thousands, so do the tools to actually create a working design.
Until that changes, FPGAs will always be niche.
- simias 9y agoI dream of a GCC/LLVM for FPGAs. I'm not holding my breath for Intel to help with that though.
- aeruder 9y agoC (or really any traditional programming language) doesn't really map to an FPGA. There are some compilers out there that attempt to convert traditional C code to state machines for FPGAs, but FPGAs are really a completely different paradigm. You're actually describing digital logic, not a sequence of steps. That being said, there are soft-processors that have been written in VHDL/Verilog and can be incorporated into a FPGA design, and those CPUs do often have GCC support (Microblaze Xilinx, NIOS 2 Altera, plenty of MIPS CPUs out there, etc.).
- simias 9y agoOh that's not what I was implying, sorry for the confusion. I meant an open source, portable HDL compiler/synthesizer like what GCC/LLVM are for software. As the parent and many others point out in this thread the tooling is a really sore point for FPGA development. It's always big, clunky, often buggy closed source applications (often running on an unhealthy dose of Tcl scripts cobbled together). And of course if you change supplier you have to relearn everything or pay for an other third-party closed source solution to abstract some of the differences between the environments of Xilinx, Altera/IntelFPGA and friends.
- gcp 9y agoThe sore point of FPGA development is that not only the tooling is beyond terrible, it's also effectively a strong lock in. Changing designs is all but easy, even IF your design is not tied to specific hard fabric on the FPGA. So you got terrible tooling and then a lock in into that tooling. Not very appealing. Why the f--- would anyone use FPGA's unless they're the only option?
- aeruder 9y agoUnderstood, and I totally agree that it is an industry ready for some shakeup. I used to work for a large defense contractor doing FPGA work, and we really went out of our way to try to stick to 100% VHDL to attempt to avoid vendor lock-in. This meant things like writing block ram HDL in a way that it would be inferred by the synthesis tool to use the block ram (and not synthesize out of a bunch of LUTs). It was a constant struggle to keep things synthesizing correctly. We mostly standardized on using Synopsys Synplify Pro for vendor-neutral synthesis and then using the Altera/Xilinx backend tools for place and route, etc. But even then, we regularly had to whitelist certain good versions of Synopsis' tools. It was possible to do this with the vendor-specific synthesis tools too, but it was still a massive effort to check that primitives synthesized into the correct elements across different parts/vendors. Ugh, do not miss it.
- Symmetry 9y agoThere are some people working on that, for example: http://www.clash-lang.org/ http://www.clash-lang.org/
- LoweD 9y agoLast time I checked out Christiaan Baaji's CLASH, it was a Haskell DSL for generating RTL. That is neat, but it doesn't involve any LLVM-like abstraction of FPGA primitives for synthesis. That would be more than neat, revolutionary really. But it would require buy-in from the major vendors, in the form of publishing many low-level device details.
- nakedrobot2 9y agoFPGA's are extremely powerful, but the toolchain is absolute dog shit. Xilinx, shame on you. Intel, will you change anything here? The compound problem of this in reality is that finding the right people who have the right strain of semi-insanity to do this really well, is very slim. And most of them are tied up with a massive salary from some aerospace company such as Raytheon, GE, Honeywell, or someone like Philips (building medical devices). Add to that compile times of an hour or a day, and you have a glacial development cycle on your hands.
- jalons 9y agoHFT also still pays top dollar for competent FPGA developers. I'd wager they're willing to pay more than the listed industries too, especially if you factor in profit sharing and bonus structures.
- deleted 9y ago[deleted]
- chillingeffect 9y agohahaah yes, i just installed a Xilinx tool and they had me watch an "Installer training Video." The gist of which is you can now actually uncheck products you don't need to install, preventing them from being installed.
- nxmehta 9y agoFYI, the toolchain is shit because: 1. The optimization problems that EDA tools have to solve are about as hard as it gets - NP-hard and sigma 2p problems at a massive scale. I'd argue that these are among the hardest optimization problems in modern computer science today. 2. The number of people with the CS + EE training to develop this software is decreasing. Not a lot of people are getting PhDs in EDA anymore, because: 3. Regular software houses (Google, Amazon, etc.) have about 2-3x the comp as EDA companies. Trust me I've seen a lot of incredibly smart EDA people jump to Google and more than double their salary overnight. I doubt Intel is going to shift the balance here. It's not easy to develop a fast and efficient SP&R flow.
- Boothroid 9y agoI have an iCEstick sitting in a drawer, for which some pretty amazing open source tools are available: http://www.clifford.at/icestorm/ http://www.clifford.at/icestorm/ I wish I had the time to play with it!
- aj7 9y agoThe fact that you don't is an indication of its true value.
- Cerium 9y agoLattice has gotten some great product placement with recent parts. They have one that is cheap and essential to implementing voice command wake (siri, ok Google). Fpga have huge value for the right applications, but are often low value for individual developers since bring up time is so long.
- Boothroid 9y agoHardly, I just have too much else on. Have you any experience with the project?
- gcp 9y agoI got a Xilinx Spartan DEV board sitting in a drawer too. The board is great but Xilinx's tooling has negative value for me, so it'll stay there. Tooling is 100% the thing keeping FPGAs back.
- ethbro 9y agoAs far as I can tell, it's an economics problem. The big consumers of FPGAs don't care if the tooling is terrible, because they're coming from 80s development environments and practices and can afford to dedicate 50-person teams to the job function. Smaller companies won't touch it because it's terrible, and the vendors won't improve it because there's no demonstrated market for improvements.
- 9y ago