Difference between revisions of "Main Page"
Jump to navigation
Jump to search
(added external interfaces to try and balance it more) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
{| style="width: 100%;" | | {| style="width: 100%;" | | ||
| style="vertical-align: top;" | | | style="vertical-align: top;" | | ||
< | |||
<!-- Left side: tutorials. Starting from the top (and skipping irrelevant ones) should get a new person going in a useful direction, kinda like a tutorial. More experienced people can go farther down the list. At some point it can split into branches --> | |||
{{Box|title=Getting started| | |||
Essential knowledge: | |||
* [[Introduction to digital logic]] | |||
* [[Binary arithmetic]] | |||
* [[How a computer works]] | |||
Designing and simulating a CPU: | |||
* [[Getting started - Logisim]] | |||
* [[Getting started - FPGAs]] | |||
Building a CPU in real life: | |||
* [[Electronics primer]] | |||
* [[Getting started - logic chips]] | |||
* [[Getting started - transistor circuits]] | |||
* [[Getting started - relay circuits]] | |||
}} | |||
{{Box|title=Basic CPU design| | |||
Important design considerations: | |||
* [[Programmer's model]] | |||
* [[Harvard vs Von Neumann]] | |||
* [[RISC vs CISC]] | |||
* [[Number of bits]] | |||
Hardware design: | |||
* [[Instruction encoding]] | |||
* [[Data path]] | |||
* [[ALU]] | |||
* [[Control unit]] | * [[Control unit]] | ||
* [[ | }} | ||
* [[ | {{Box|title=Software| | ||
* [[Emulator]] | |||
* [[Assembly language]] | |||
* [[C language]] | |||
* [[Forth language]] | |||
* [[ | }} | ||
{{Box|title=Advanced topics| | |||
Instruction set extensions: | |||
* [[Exceptions and interrupts]] | |||
* [[Floating-point unit]] | |||
* [[Virtual memory]] | |||
Performance tricks: | |||
* [[Instruction prefetching]] | |||
* [[Pipelining]] | |||
* [[Branch prediction]] | |||
* [[Data cache]] | |||
* [[Out-of-order execution]] | * [[Out-of-order execution]] | ||
* [[Register renaming]] | |||
}} | |||
| style="vertical-align: top; padding-left: 10px;" | | | style="vertical-align: top; padding-left: 10px;" | | ||
< | <!-- Right side: various reference information, try to order by put most-widely-applicable stuff at the top --> | ||
< | |||
{{Box|title=Logic references| | |||
* [[Relay logic]] | |||
* [[Logic level reference]] | |||
* [[Logic chip reference]] | |||
}} | |||
{{Box|title=External interfaces| | |||
* [[UART]] | |||
* [[I2C]] / [[SPI]] | |||
* [[VGA]] | |||
* [[PS/2]] (mouse and keyboard) | |||
* [[Ethernet]] | |||
* [[USB]] | |||
}} <!-- looking pretty unbalanced! More stuff needed here --> | |||
{{Box|title=CPU projects| | |||
* [https://www.bigmessowires.com/bmow1/ Big Mess of Wires] | * [https://www.bigmessowires.com/bmow1/ Big Mess of Wires] | ||
* [http://www.homebrewcpu.com/ Magic-1] | * [http://www.homebrewcpu.com/ Magic-1] | ||
Line 44: | Line 82: | ||
* [https://relaycomputer.co.uk/pages/overview.html Paul Law's relay computer] | * [https://relaycomputer.co.uk/pages/overview.html Paul Law's relay computer] | ||
* [http://zipcpu.com/about/zipcpu.html ZipCPU] | * [http://zipcpu.com/about/zipcpu.html ZipCPU] | ||
}} | |||
|} | |} |
Latest revision as of 17:43, 6 July 2021
Homebrew CPU Wiki This main page is mostly a placeholder for now. |
Getting started
Essential knowledge: Designing and simulating a CPU: Building a CPU in real life: Basic CPU design
Important design considerations: Hardware design: Advanced topics
Instruction set extensions: Performance tricks:
|
Logic references
|