Linked by Thom Holwerda on Thu 10th Jan 2013 00:43 UTC
Linux "BORPH is an operating system designed for FPGA-based reconfigurable computers. It is an extended version of the Linux kernel that handles FPGAs as if they were CPUs. BORPH introduces the concept of a 'hardware process', which is a hardware design that runs on an FPGA but behaves just like a normal user program. The BORPH kernel provides standard system services, such as file system access to hardware processes, allowing them to communicate with the rest of the system easily and systematically. The name is an acronym for 'Berkeley Operating system for ReProgrammable Hardware'."
Permalink for comment 548066
To read all comments associated with this story, please click here.
Software Hardware continuum
by transputer_guy on Thu 10th Jan 2013 03:06 UTC
Member since:

It would make more sense to include in the host software platform something like a Verilog, VHDL, SystemC, Go, Occam, HandelC, or Matlab like compiler in which you first develop the hardware algorithm as sets of Communicating Sequential Processes and run them as native code. The compiler turns the hardware design or algorithm into either plain C cycle code for fast cycle simulation, or perhaps into an event list for a more detailed simulation engine.

Unless the application requires a great deal of performance, the C cycle code could well runs as fast on a PC as the equivalent hardware in an actual FPGA simply because the PC can run perhaps 4 cores at 3GHz with native floating point while an FPGA might only run the hardware at a 100MHz or less in integer. If a PC isn't fast enough, then a GPU is likely the next target, still have FPUs and loads of cores. An FPGA is really a last resort because it is so much more involved and they keep changing so quickly.

Getting "soft" hardware to run at 300MHz or more requires directly designing for the specific FPGA and using the tool chains from the vendor, even doing layout in excruciating detail.

It would be part of the scope of the tool to optimize the design for highest possible speed for both software emulation and mapping to hardware. Or use prebuilt blocks as HandelC ended up doing.

Its kinda of neat that Google put into Go what occam had 30 years ago, CSP which is a round about way of making communicating sequential processes look like hardware blocks, little blocks with inputs and outputs.

Indeed the entire Transputer idea was about this very idea of software processes modelling hardware. Funnily enough, today is also the 30th birthday of the first shipping Transputer which were in many ways Soft FPGAs. Most all Transputer apps turned into DSP and FPGA apps.

Since this came from a signal processing group, I can imagine the kind of apps they would build, and signal processing usually runs very well already on PCs, esp on clusters.

Reply Score: 5