Open Source 3D Hardware
An anonymous submitter writes: "Open Source haven icculus.org has updated with a new project: Manticore. Different from most Open Source projects however, Manticore is hardware. It is a 3D graphics acceleration design, coded in VHDL. Although still fairly early in development, its goals are similar to those of other 3D cores, from companies like NVIDIA and ATI. The project includes an SDRAM controller for storage, and a VGA unit for display, in addition to the 3D rendering core. It is available under the Design Science License. Source, Documentation and other information available at the Manticore Homepage."
Why dont they put it on Open Cores?
Thats where all open hardware projects are.
Mouse powered Chips, Open source Processors and Lego
Bugger! Lets try again.
What they need is an XESS board
I used one when I made my MIPS clone and it was huge. I could fit an array of 14 full 32 bit processors on one Vertex chip all working at 100MHz. The cool thing is that they also have a VGA port and a DAC.
Mouse powered Chips, Open source Processors and Lego
Ditching VGA might sound like a noble goal. Until you try to put the card in the machine and boot. Linux needs at least text mode, and Windows seems to fall back to VGA if it can't find drivers for anything else... (at least that's what happened in 98, NTs probably handle this diffenently =)
At least implement the VGA text modes, or else you need to install the drivers blind... May be your thing, but not mine! =)
Such cards do exist. They generally cost at least a few thousand dollars though.
Also don't expect a fpga based card do outperform a dedicated circuit. Youll need an order of magnitude (at least) more silicon area to make a circuit on an fpga than on an asic, and you can never hope to match the speed.
Furthermore you will need appropiate software to synthesize and run place and route on the fpga. These generally cost from around $10000 each, Though prices are negotiable. If you can manage with less you might be able to make do with the vendor provided synthesis software, but don't expect good results. Synplicity or leonardo spectrum (to be replaced with Precision Synthesis) are the good choices.
There are many patents related to 3D graphics processing, hold by companies like nVidia, Matrox, ATI (just go to www.uspto.gov and search for your favorite graphics hardware company). And since this are not "software patents", they are already valid around the world. Are these guys considering this?
Unfortunately the xst synthesis software that xilinx provides is next to useless. If you do your own optimizations, then fine. If you rely on the synthesis software to optimize (and quite frankly handcrafting logic optimizations isn't my idea of fun) then you won't get very good results.
Xst isn't terribly compatible with regular synthesizable VHDL either. Expect some revriting.
As for fitting a cpu core on a fpga: Sure cpu cores aren't particularly big (even on state of the art designs, the die area is largely used for cache rather than core.)
As for pipeling: Sure you can get it up to a 100 MHz or so, but pipelining incurs penalties. You can very easily be bitten by data dependencies.
As for size, we are working on a virtex II 6000, and it can barely fit a dprototype of a design which will occupy approx 4mm^2 of silicon area on the final 0.18um asic (granted the design would have been done somwhat differently if we actually targeted the fpga)
Hardware is always "compatible" with OpenGL and DirectX. When writing an OpenGL or D3D driver, you basically provide a layer of abstraction that goes from the 3D API down to your own chip's instructions and data formats.
When nVIDIA and ATI say that their hardware is fully API compliant, they mean that their hardware implements all the required features of the API in hardware, and their drivers provide the abstraction to compute everything in hardware too.
I'm sure nVIDIA and ATI have patents on their hardware - this is entirely expected. But just as there are multiple pieces of code that produce the same effect, there are multiple designs of hardware that generate the same output.
Also, pixel shaders and vertex shaders are two different things - they happen at two different stages of the rendering pipeline. I'm sure nVIDIA has patents relating to them, but DirectX and OpenGL have their own specifications for shaders which any hardware developer can implement.
You should never take life too seriously - You'll never get out of it alive.
So, you don't really need all that much capital, and the open-source development model will provide the large teams of engineers.
Unfortunately I can't contribute to this project because I code not in VHDL but in Verilog (which gets a lot more done for the same amount of effort in my opinion and others here and here).
As a practising hardware and firmware design engineer, I take issue with some of your numbers. Not that it means I totally disagree with the conclusion, but we'll get there. 1. A decent Virtex 2 will set you back, but it's not 3k unless you need a million or two equivalent gates. I use a fairly high-end Virtex-II on a design and it costs about 1k. You would need only the programming tool and that's free for the software. The cable is specified on the Xilinx site, and it's easy to fabricate. There are other FPGAs as well - Altera makes a nice line in the sub 1k range, and it performs well up to about 150MHz. 2. Boards can be run ( let's say a 12 layer board , although that's overkill for this) in low quantities for about $500/board. I do prototypes like this almost weekly up to 24 layers ( or so it seems lately ) and I know what I am paying. You'll have to buy a panel, though, so the cost would be # on panel ( probably 6 for this size board on a small panel)* cost per unit - about 3k as a guesstimate. 3. DDR266 needs a base clock of 133MHz, which FPGAs can do quite easily now. The data and strobes burst at the higher rate, but local pipelining of the data buffers ( meeting the DDR spec for a 2x pipeline) is fairly simple. More difficult is the strobe delay adjusters, but it's all spec'd. I think the purpose is more to be able to generate a controller that could be used. Designing PCBs with fast DDR or fast anything really ( it's not just the raw speed, it's the timing budget ) is still a lesser known skill especially if it's soldered down. Designing a PCI card is child's play - I can get reference designs including layout from 10 places at least. The big issue here would be PCB layout - the tools to do this sort of unit *will* set you back 20-50k, and those are the tools neceessary for high density, high layer count, rules oriented boards. I don't think it's out of the scope for what they want to do, if they can lay their hands on the layout and schematic capture tools - maybe I'll help 'em design the board and lay it out ;)
#include