Joe Armstrong Interviews: Erlang and FPGAs

I’m trying to learn Erlang, so when I found MSDN’s interviews (part I, part II) with Joe Armstrong I could not wait to listen.  Anyone interested in listening to intelligent computer scientists have a casual conversation about functional programming concepts should definitely watch them both.  Listening to Mr. Armstrong talk about the concepts behind Erlang and the type of problems it addresses really helped me to understand some fundamental things about Erlang.  As Erik Meijer mentioned, after initially learning imperative programming styles with assembly language and C, trying to force my mind into the functional programming mode is not easy task. 

However, I was really impressed with Mr. Armstrong’s knowledge of FPGAs and reconfigurable computing.  FPGAs are wonderful tools and it was nice to see a computer scientist interested in the possibilities of FPGAs.  They are still really expensive devices though; in Japan, for small lots, Xilinx sells their Virtex5 FPGA for around US$4000, and Altera sells their Stratix-II FPGA for around US$6000.  As such, FPGAs are usually considered in the realm of hardware design prototyping and communications systems.  I mostly use them to bridging different components together such as DSPs, ADCs, DACs and the PCI bus.  These days you can even program PowerPC or ARM CPU cores into an FPGA, it is really amazing.  One day I hope I’ll get the chance to implement some DSP applications in an FPGA–someday I can escape from being a “bit plumber”!  

So what does this have to do with Erlang?  Programming FPGAs in VHDL or Verilog requires a different style of thinking compared to most modeling.  In fact, hardware modeling resembles Erlang in many respects now that I think of it: processes run in parallel and send data over buses to exchange data.  Check it out yourself if you don’t believe me.


3 thoughts on “Joe Armstrong Interviews: Erlang and FPGAs

  1. You can get Xilinx Spartan-3 FPGAs for US$11.60 from Digi-Key:

    You have to buy 60 of them to get that price (Digi-Key doesn’t stock them, apparently) but there are other inexpensive FPGAs I’ve seen there before, like US$20 in quantity 1. So I don’t think it’s true in general that FPGAs are “really expensive devices”. There certainly are expensive FPGAs out there but the majority of units sold are not so expensive.

  2. Interesting, I’ll make a note to look into Erlang!

    I’m in the RC field myself and what language we use to program the FPGAs is still not settled. VHDL and Verilog are well established, but they are a poor match for the application programming and system-level design tasks. In the future, I see VHDL only being used for the “low-level” stuff, analogous to how one might use assembler when creating drivers, and when coding high-performance sections. For the rest, we need a higher-level language. Lots of people are working on them, and they are being used in anger, but it’ll probably be another 5-15 years before industry standard languages emerge, assuming our industry lasts that long!

  3. Kragen,

    Yes you are right about Spartan3 and older FPGAs, you can get them quite reasonably these days. The development boards are also affordable these days. I was just trying to point out that the “big boys” like Virtex5 and Stratix-II (as well as Stratix-III) are still quite pricy. They might be cheaper in some markets, but at least in Japan where I’m based, it is hard to get your hands on a high-end FPGA.

    HDLs are still very immature and difficult to use for anything more than circuit modeling and bus bridging. I completely agree with you. I haven’t used System-C or System-Verilog, and I haven’t met many who have. I wonder if we will just end up coding some form of C. When I worked with SRIO, the DSP I was using made it so easy, and on the FPGA it was a such a chore because of Verilog. I experimented with Nios and it was just as easy to use SRIO as on the DSP.

    Anyway, lets hope our industry lasts! For now, until the processor designers can get a device that can hook up directly to a ADC and do nearly instantaneous demodulation/modulation I think we’re safe. Then again, TI and Freescale are introducing their multicore DSPs and they’re really encroaching on FPGAs!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s