Difference between revisions of "Main Page"
Jump to navigation
Jump to search
(Use the new Box template) |
(added external interfaces to try and balance it more) |
||
(One intermediate revision by the same user not shown) | |||
Line 10: | Line 10: | ||
| style="vertical-align: top;" | | | style="vertical-align: top;" | | ||
{{Box|title= | <!-- 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 --> | ||
* [[Instruction | |||
{{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| | {{Box|title=Software| | ||
* [[ | * [[Emulator]] | ||
* [[ | * [[Assembly language]] | ||
* [[C language]] | |||
* [[Forth language]] | |||
}} | }} | ||
{{Box|title=Advanced topics| | |||
{{Box|title=Advanced | Instruction set extensions: | ||
* [[ | * [[Exceptions and interrupts]] | ||
* [[Floating-point unit]] | |||
* [[Virtual memory]] | * [[Virtual memory]] | ||
* [[ | Performance tricks: | ||
* [[Instruction prefetching]] | |||
* [[Pipelining]] | |||
* [[ | |||
* [[Branch prediction]] | * [[Branch prediction]] | ||
* [[Data cache]] | * [[Data cache]] | ||
Line 50: | Line 59: | ||
| style="vertical-align: top; padding-left: 10px;" | | | style="vertical-align: top; padding-left: 10px;" | | ||
{{Box|title= | |||
* [[ | <!-- 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| | {{Box|title=CPU projects| | ||
* [https://www.bigmessowires.com/bmow1/ Big Mess of Wires] | * [https://www.bigmessowires.com/bmow1/ Big Mess of Wires] |
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
|