225 views
# 8-Bit Seminar References 1. Watch the videos [Ben Eater's](https://eater.net/8bit) build, especially: 1) [Intro](https://www.youtube.com/watch?v=AwUirxi9eBg&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=35) 2) [SR Latch](https://www.youtube.com/watch?v=KM0DdEaY5sY&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=6) ff. 3) [Bus architecture](https://www.youtube.com/watch?v=QzWW-CBugZo&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=9) and [tristate](https://www.youtube.com/watch?v=faAjse109Q8&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=10) 4) [ALU design](https://www.youtube.com/watch?v=mOVOS9AjgFs&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=15) ff. 5) [Control logic](https://www.youtube.com/watch?v=AwUirxi9eBg&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=35) ff. 6) [555 timer](https://www.youtube.com/watch?v=kRlSFm519Bo&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=2) ff. 2. Look into the book by Wakerly. You don't have to read everything but it is a great reference. 1. Chapter 5 discusses the basic of combinational logic design and introduces several 7400 chips. 2. Chapter 7 discusses sequential logic design (every this with states, i.e. latches). 2. Chapter 3 gives foundations on electrical aspects of TTL and CMOS. 3. Appendix B for DC circuit basics, especially RC circuits. 3. Study existing builds. 4. Study existing ISAs. # References ## 7400 series ICs * [Wikipedia List](https://en.wikipedia.org/wiki/List_of_7400-series_integrated_circuits) of most 74xx chips. If the datasheet link does not go to a PDF directly, the chances that the part is no longer available is quite high. Some may still be available on eBay. * [Logic Levels](https://hackaday.com/wp-content/uploads/2018/07/logic-family-voltage-table.jpg) of the different families. * Excellent [4-part Series](https://www.nutsvolts.com/magazine/article/understanding_digital_logic_ics_part_1) on 7400 chips. Chapter 3 is particularly relevant. * Excellent [article](https://www.righto.com/2017/03/inside-vintage-74181-alu-chip-how-it.html) on the 74181 ALU chip. ## Textbooks * John Wakerly. [Digital Design Principles and Practice](https://www.pearson.com/uk/educators/higher-education-educators/program/Wakerly-Digital-Design-Principles-and-Practices-4th-Edition/PGM761351.html), 4th edition, 2006. ChapterĀ 3 is an excellent and relevant introduction to digital circuits. There is an [appendix](http://wakerly.org/DDPP/DDPP3_pdf/elecCkts.pdf) with a review on electrical circuits basics. * Horowitz and Hill. [The Art of Electronics](https://en.wikipedia.org/wiki/The_Art_of_Electronics), 3rd Edition. Comprehensive text book and reference on electronics in general. Also has a chapter on digital logic and TTL chips (Chapter 10). * Albert Malvino. Digital Computer Electronics, 3rd edition. The text book that Ben Eater used for his build. * The [All About Circuits](https://www.allaboutcircuits.com/textbook/) text book on electronics. ## Documentation of existing CPUs * Intel 8080/8085 - [Assembly Language Programming Manual](https://datasheetspdf.com/pdf-file/1328906/Intel/Intel8080/1) contains ISA description. - [User Manual](http://www.bitsavers.org/components/intel/MCS80/MCS80_85_Users_Manual_Jan83.pdf) contains description of the interrupt mechanism. - [ISA Overview](https://www.righto.com/2013/02/8085-instruction-set-octal-table.html) in octal. - [StackOverflow post](https://stackoverflow.com/questions/2165914/how-do-interrupts-work-on-the-intel-8080) on how interrupts work on the 8080. Note that the 8085 has a more siphisticated interrupt facility. - Ken Shirriff's posts on the 8085 - [ALU](https://www.righto.com/2013/07/reverse-engineering-8085s-alu-and-its.html) - [Register file](https://www.righto.com/2013/03/register-file-8085.html) * Zilog Z80 - [User Manual](https://www.zilog.com/docs/z80/um0080.pdf) including ISA documentation. - Ken Shirriff's series of [blog posts](https://www.righto.com/search/label/Z-80)'s on the Z80 ĀµArch. * WDC 6502 - [Official Documentation](https://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf) including ISA description. - [Peripheral Interface Adapter (6521)](https://www.westerndesigncenter.com/wdc/documentation/w65c21.pdf) documentation. Contains information about interrupt handling. - [Video](https://www.youtube.com/watch?v=DlEa8kd7n3Q&list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH&index=11) on interrupt handling - In-depth [post](http://6502.org/tutorials/interrupts.html) on interrupts. * Motorola 6800 - [ISA](http://www.8bit-era.cz/6800.html) ## Other Builds * [Ben Eater](https://eater.net/8bit)'s build and [video playlist](https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU) (based on the textbook by Malvino * [derulf1](https://github.com/DerULF1/8bit-computer)'s build. - 64kB RAM, interrupt controller, real-time clock, LCD display, SD card reader. - The [video series](https://www.youtube.com/watch?v=yACH8p4KfyQ&list=PL5-Ar_CvItgaP27eT_C7MnCiubkyaEqF0) is very detailed and goes in-depth on many aspects. Particularly helpful and interesting is the [video](https://www.youtube.com/watch?v=tdtGz5nVM9A&list=PL5-Ar_CvItgaP27eT_C7MnCiubkyaEqF0&index=2) on power distribution and the clock. * [rolf-electronics](https://github.com/rolf-electronics/The-8-bit-SAP-3). Has extensive documentation that covers electronics problems. * [scamp-cpu](https://github.com/jes/scamp-cpu). Comes with a browser-based simulator. * [YACC1](https://cottageworker.com/) has a cool way of modularizing the components onto PCBs and connecting them with a bus. * [nqsap](https://tomnisbet.github.io/nqsap/) by Tom Nisbet features extensive documentation, many valuable tips, and helpful links to other resources. * The fabulous [Gigatron](https://gigatron.io/) focuses on few chips and has a primitive ISA. It is programmed by a higher-level assembler whose programs run on interpreter. Has a cool [ALU design](http://6502.org/users/dieter/a1/a1_4.htm). Features a small VGA graphics card. * [Homecomputer Webring](https://www.homebrewcpuring.org/) with many more builds. ## Video / Graphics * [Ben Eater's Videos on a VGA card](https://eater.net/vga) * [VGA Timings](http://tinyvga.com/vga-timing) * [VIC-II](https://en.wikipedia.org/wiki/MOS_Technology_VIC-II) - [Reference](http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt) - [Tutorial](https://www.retro-programming.de/programming/nachschlagewerk/vic-ii/) ## Electronics * Various guides on debouncing: [1](http://www.ganssle.com/debouncing-pt2.htm), [2](https://www.we-online.com/web/en/index.php/download/media/07_electronic_components/download_center_1/application_notes_berichte/sn015__contact_circuit_debounce_for_switches/SN015a_EN.pdf), [3](https://www.eejournal.com/article/ultimate-guide-to-switch-debounce-part-3/) and an [EEVBlog video](https://www.youtube.com/watch?v=Nj-Q8FQxHhU). * lordmonoxide's [lessons learned](https://www.reddit.com/r/beneater/comments/dskbug/what_i_have_learned_a_master_list_of_what_to_do/) from building an 8-bit CPU on breadboards. * [Good advice to draw schematics](https://electronics.stackexchange.com/questions/28251/rules-and-guidelines-for-drawing-good-schematics). * [PCB Design Tutorial](https://www.mikrocontroller.net/attachment/26687/PCBDesignTutorialRevA.pdf). * [EEVblog](https://www.youtube.com/c/EevblogDave) has excellent tutorials on electronics, especially fundamentals videos on [DC](https://www.youtube.com/watch?v=xSRe_4TQbuo&list=PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK) and [AC](https://www.youtube.com/watch?v=rrPtvYYJ2-g). One particular [video](https://www.youtube.com/watch?v=Ht48vv0rQYk&t=277s) covers rise and fall times of TTL signals. * Indispensable [KiCAD Shortcuts](https://shortcutworld.com/KiCAD/mac/KiCAD_Shortcuts). ## Misc * [Verilog Library for 74xx Chips](https://github.com/TimRudy/ice-chips-verilog). * Maybe [Logisim Evolution](https://github.com/logisim-evolution/logisim-evolution) is helpful to simulate parts of your machine. * [customasm](https://github.com/hlorenzi/customasm) is a customizable assembler. Maybe useful for your own ISA. * [Sail](https://www.cl.cam.ac.uk/~pes20/sail/) is a framework to describe ISAs and processor semantics. * [minipro](https://gitlab.com/DavidGriffith/minipro) can flash EEPROMs/Flash memory. We have SST39SF010 flash in the lab. You can write this with `minipro -s -p SST39SF010 -w <filename>` * You can use [Knoepfchen](https://github.com/shack/knoepfchen) for get some buttons/switches/clock to your breadboard easily.