Finally time to try building a custom CPU from basic TTL and other "simple" ICs (no 74ls181 ALU, that would be cheating :-) ).
The YACC1-2020, provides the tools and resources to learn computer science starting from the basics of digital logic through to a fully working custom CPU with a user defined instruction set, assembler, BASIC interpreter, and one day an operating system with filesystem, command line interpreter, and utilities.
The project is currently under development as a personal project. The basic idea has been kicking around inside my head for years (47 years to be exact), but until recently never made it to the top of my list (I did make an attempt a few years back but life got in the way). Now I am exploring if this project might be interesting to others, perhaps as an educational tool or maybe just a fun project.
Here is a video of the machine in operation and some photos can be found in the Photos & Videos subdirectory in this repository
The basic system is comprised of 7 cards:
- Memory card with 64k RAM and 32K ROM (total address space 64K) The memory card also contains two temporary registers
- Register card, each with 4 16-bit registers that can drive data or address bus, although the system can operate with one register card anything really useful will require two cards. The system has control lines to support upto 4 register cards for a total of 16 registers
- IO Card has serveral options; Serial RS-232, 8-bit switches, 8-bit LED, LCD
- ALU Card supports the boolean, compare, add/sub operations, and the accumulator
- Sequencer 2 card set made up of a memory card and logic card mated together (see photos)
- Optional but highly revommended Bus Test Card, this allows driving the bus in test mode and monitoring the bus in listening mode
Like many others, back in the mid 1970s I had the opportunity to learn both computer programming and microcomputer hardware simultaneously. For me it all started with programming BASIC on a timeshare HP machine via a terminal and/or optical hollerith cards. My math teacher who also taught computer programming allowed us to use the termoianl if we finished our work early. At home I also dabbled with digital circuits and when Popular Electronics published the COSMAC ELF project I was hooked. Now I wonder if for some students when learning computer science does the hardware seem too much like a magic box.
If this project is of intertest, perhaps your one of the following:
- High school computer science educators
- Freshman and sophomore college computer science educators
- Electronics or Retro computer enthusiast
- Or just generally interested
Please reach out to ken at cottageworker dot com
Useful data sheets, manuals, references.
(These are all readily available online but if I inadvertently violated copyright
please let me know and I will remove immediately)
System wide notes, more specific notes in various subdirectories
PCB designs, there are two different subdirectories:
Production: These are the latest fully functioning designs, most likely currently in use
Working - Underdevelopment: These are the newest versions of the boards in design
Each board has or will have a "theory of operation" document
Some sharable files
Presentations related to the YACC1-2020 project
All software related to the project, see subdirectory for more information
Arduino: Configuration files for Arduino code
Clocker: External Arduino based to tool for single step debug operations
Eagle: Configuration files for Eagle
Waveforms: Timing diagrams for cpu instructions, probably should move to software area
Current bus connector specifications
-- Thanks for taking a look --