OpenCores is a project to design useful hardware, and release the designs (usually written in VHDL or Verilog) to the world under an open source license, usually the GPL or BSD licenses.

The project was started by Damjan Lampret in about 1999, and since then quite a few people have worked on hardware designs under the OpenCores banner. It is interesting to note that, compared to the number of open source software projects, which probably number in the hundreds of thousands, there are only a relatively tiny number of open source hardware projects. Whether this is due to the relative ease of software distribution compared to hardware, the fact that hardware designs are often very complex (though large software projects like XFree86 and GCC are often equally complex), some social difference between programmers and hardware designers, or something else altogether, is unclear to me.

So far, OpenCores has produced a number of hardware designs, including several RISC and DSP cores. Some, such as the OpenRISC 1000, are new designs, but there are also ARM and MIPS clones available. There are also CPU designs in progress that, when completed, will support symmetric multithreading.

Other hardware designs available from OpenCores include a PCI bridge, UARTs, controllers for Ethernet, Firewire, USB, and ATA, VGA cards, floating point units, and hardware for crypto acceleration, including RSA and DES. They are also doing work in an attempt to make OpenCores a single stop source for designs for system on a chip, or SoC, hardware. To this end, they have standardized on the Wishbone system bus, which (according to the FAQ) "is the only commonly used SoC bus which is truly free."

In general, you can't do much with just a hardware design specification. To actually convert this into something you can run, you have to either build the design into an FGPA, or go to a fab that does contract work, like TSMC, to create a bunch of ASICs for you. Either of these is a very time consuming, and expensive, path, especially in small quantities. At some point in the future it may become viable to run a completely open system, especially if a company can step in to arrange the production and sale, since they would benefit from the economies of scale, but as of now, you'd have to have a lot of money and time to get everything together.

The OpenCores website is http://www.opencores.org