The ADSR Envelope of Programming (Humour)

For those of you that grew up with ADSR envelopes on the BBC Microcomputer or the Commodore 64 or on your Korg.


The Last Programmer Standing will be holding an FPGA

In my article Computing Without Processors in the August edition of Communications of the ACM I advocate the deployment of heterogeneous computing technology to help address the ever pressing requirements we have for computing with reduced latency and reduced energy consumption. Significant challenges lie ahead for those that try to reign in the extreme…


Computing Without Processors article on ACM Queue

My article on Computing Without Processors is on the ACM Queue page now:  The article explains why it is important for us to learn to program not just regular microprocessors but also many other kinds of computing elements. As we struggle to meet the latency and energy consumption constraints we will inevitably be forced…


Creating a Windows DLL from a Haskell Program and calling it from C++

Every so often you have to leave the warm comfortable safe world of Haskell and venture out into what some unsavoury types call the “the real world”. I’ve always thought it better to call the real world rather than have it call on me in Haskell-land. But when that does not work you have the…


Compiling C# Programs to FPGA Circuits: An Ethernet Packet Processing Example

In a previous blog article I showed how to get the default Ethernet address swap circuit working on the ML605 board. The address swap module (which can be generated in VHDL or Verilog) is tedious to write yourself because you have to explicitly write it as a state machine. In typical hardware description languages you…


Using the Virtex-6 Embedded Tri-Mode Ethernet MAC Wrapper v1.4 with the ML605 Board

Whenever I get a new Xilinx development board I go through the tedious process of porting my circuits that use Ethernet communication to the new board. To save other people the pain I went through to get this to work I have written this blog which outlines the changes you need to make to the…


Reconfigurable Data Processing for Clouds

Along with Anil Madhavapeddy at the University of Cambridge I’ve been thinking about how to apply reconfigurable computing technology (for example FPGAs) in data-centres and in cloud computing systems. Reconfigurable computing for some time now has had the potential to make a huge impact on mainstream high performance computing. We will soon have a million…


Computing a Parallel Facebook Life

Soon there will be so much information about our lives entered into social network systems to allow us to perform calculations with this historical data to compute “what-if” scenarios i.e. compute a parallel life we could have had if we had made some different decision in the past. For example, if I had gone to…