I've been designing motherboards for ~30 years and I'd recommend that you just learn VHDL, Verilog and also get familiar with Orcad Capture, Allegro, FPGA vendor tools, Altium and maybe PADS. Then you can spend all the time you want with IP blocks from opencores or wherever, as well as design your own.
Many ARM SOC's wil be easier for you to work with and also to access docs.
If you get a good understanding of these things you'll be able design just about anything. Either for vendors making reliable quality boards or most everything else.
If you're serious about becoming a PC hardware engineer another thing I'd recommend is learning about thermal management. Not that it would be used for building long lasting products but more so for being able to design boards that live just beyond the warranty period. Keep those components warm (but not too hot so the MTBF drops too low), and use cheap capacitors to insure that you'll have obsolete products just beyond the warranty periods. It's getting harder to find people that actually understand how to design good hardware anymore from the gate or even component level, or the vendors that want or value them.
You'll find hundreds of pages of app notes on high speed PCB design that seems to be ignored by many. You should also be able to find older board design guides from chipset vendors that go into details on proper 4-layer PCB stackup, BGA breakout and general great info on routing clock lines, USB, high speed memory, hypertransport, high current low voltage power planes, etc, etc.
Most PC and consumer electronics products today are designed with the 1000 monkeys approach or cut and paste (they just copy a reference design) vs a few knowledgeable engineers. The x86 chipset and CPU vendors provide board makers with reference sections of PCB layouts that are just cut and past into their board layouts for this reason.
-Bari
On 11/27/2012 01:41 AM, Rex O'Regan wrote:
Thanks for all the input... from what everyone on here is saying it seems to me like it will be another big, long project with lots for me to learn. :)
The best implementation would be along the lines of a 486 chip connected to FPGA(?). Then implement all I/O in the FPGA. Is that what the consensus is?
Cheers, Rex