Hacker News new | ask | show | jobs
by nimish 3187 days ago
Get yourself an FPGA devkit and start making little hardware bits
1 comments

What's the best way for a novice to determine what their needs are? One thing that's been a barrier to entry for me has been fear of vendor lock-in from point of sale with regards to upgrading in the future; ie: purchasing a starter kit by company X but once determining that only company Y supports the feature set. Where there would then require a non-trivial amount devtime would be sunk in re-tooling your code both across hardware and design environments. I was originally really excited to see AWS hosting FPGA instances, but a friend told me that they were charging a heavy premium and only had a limited number of manufacturers.
If you don't know what you are doing, trying to pick an optimal path is not likely to be a useful exercise. I'd start with anything that looked approachable & free/cheap, try to learn a few things, craft a few questions, and then reassess. There's no reason to fear the unknown. Jump in and make it more known
Huh? There's loads of cheap dev kits for a few 10's of bucks on eBay.

Example: http://www.ebay.com/itm/ALTERA-FPGA-Cyslonell-EP2C5T144-Mini...

This uses the EP2C5T144. Some basic getting started info here: http://www.leonheller.com/FPGA/FPGA.html [Leon Heller]

You can run a free copy of Quartus and use it to run Verilog / VHDL cpus, or anything else you want to do.

Same applies to the Xilinx FPGAs.

A really cool example project: http://excamera.com/sphinx/fpga-j1.html

There are basically two companies in this business, Altera (Intel) and Xilinx.

I would not worry about vendor lock-in for now -- there are some quite affordable dev boards (like the Arty (http://store.digilentinc.com/arty-a7-artix-7-fpga-developmen...) I've mentioned elsewhere), and no matter what you pick there's a ton of tooling. The concepts from the tools will translate between vendors, though, even if the commands and exact flows change.

To add to this:

Xcell is the name of Xilinx's self-published journal(s), and it's free. Here's the Xcell portal:

http://www.xilinx.com/about/xcell-publications.html

Here's a short article published in Xcell by Niklaus Wirth after he designed and prototyped a RISC CPU on a Xilinx FPGA:

https://issuu.com/xcelljournal/docs/xcell_journal_issue_91/3...

And finally, it's worth noting that the most recent post on the Xcell blog is one titled "Found! A great introduction to FPGAs", which was written just a couple days ago and is a glowing recommendation for the textbook "Digital System Design with FPGA: Implementation Using Verilog and VHDL".

https://forums.xilinx.com/t5/Xcell-Daily-Blog/Found-A-great-...

If you're worried about vendor lock-in, FPGA/ASIC design is not for you. The design tool market is horrible.

That said, for a novice there are no significant differences in features between Altera and Xilinx.

The place where you might see problems is mostly in simulation, where the big three tool vendors support different language features in SystemVerilog and VHDL-2008. Again, this is not likely to be a problem for a hobbyist/novice.

GHDL has good support for VHDL-2008, I don't know how good Icarus supports the corresponding SystemVerilog.

>The design tool market is horrible

I wouldn't say it's horrible, it's just not open source (mainly because it's mostly a high-end market). You can easily get by with the free versions of the implementation/simulation tools if you're a hobbyist

It's not really a market, though. If you have decided to use Xilinx FPGAs, you're going to use Xilinx tooling. Period.

For someone coming from software programming, that seems very strange. But you get over it.

Lattice is the only vendor with an open-source toolchain: http://www.clifford.at/icestorm/
What I've started doing is looking at the ice40 line of FGPA's that are supported under the Ice Storm project. It's not a perfect way to avoid that kind of lock in but it seems like a decent way to start without having to worry too much about that. That said i'm a total beginner and someone else might have better advice.

http://www.clifford.at/icestorm/

Just toss a coin and pick Xilinx or Intel (Altera). If you are working for a company then you may have better access to a Sales Engineer from one or the other which could also influence your choice.
Edit: Thanks a lot for the info everyone.