CHUMP: ICS4U 4-bit TTL Processor Project

 

Given that ACES is an acronym for Advanced Computer Engineering School it seems reasonable to introduce students to just that: building their own processor from scratch. As Ken Shirriff reminds us, "Before the microprocessor era, minicomputers built their processors from boards of individual chips." It is highly instructive for ACES to physically manipulate and explore this precise architecture prior to their undergrad years, so here we go...

Of the variety of designs to choose from, our tradition preference is 4-bit design based on TTL chips due to their availability, project documentation, and suitability for our background. PDF Reference: A Simple and Affordable TTL Processor for the Classroom. D. Feinberg.

Breadboard Photo IC Discussion
Chip # Description Who? Usage
555 Timer CD Clk: clock source
74LS00 (Digikey) Quad 2-Input NAND ? NAND: jump bit logic
74LS157 (Digikey) Quad 2/1 Data Selector ? SEL/MUX: select constant/memory
74LS161 (Digikey) 4-Bit Counter ? PC: Program Counter
74LS174 (Digikey) Hex D Flip-Flop ? Addr: next R/W address
74LS181 (ABRA) Arithmetic Logic Unit (ALU) ? ALU: Logic/Arithmetic test if zero
74LS377 (Digikey) Octal D Register ? Accum: accumulator register
74S289 (ABRA)
74S189 (ABRA)
64-bit RAM ? RAM: data storage
AT28C17 (ABRA) 2k x 8 Parallel EEPROM ? Program code and Control logic

CHUMP Tasks

  1. Code. With reference to the CHUMP Instruction Set, develop and submit a unique and (somewhat) interesting CHUMP program (presented in the manner below) as your first ER submission of your ICS4U year. Take advantage of the fact that you are free to add one additional instruction (logic, arithmetic or conditional in nature). Your goal six weeks from now will be to demonstrate that the program you write today will run on the processor you build.

  2. 5V Clock. Following Ben Eater's terrific 4-part video series on the 555-based Clock module, build, test and report on your own module. This will be the heartbeat of your CHUMP. For this project use MUST the following parts I supply you: breadboard, 1MΩ trim pot, DPDT PB switch (soldered to socket), rectangular LEDs (red, green, amber), 3×555 timers, strip of 0.1μF caps, TTL AND, OR, NOT logic ICs, bags of 0.3" and 0.4" preformed jumper wires. Please take great care with these parts; they are not replaceable. Power can come from a 5V AC/DC adapter or your Arduino for the time being. Finally, for both your text and video presentations, strive to be as clear, concise, and detailed as Eater has been in his presentation, even going one better than him with a video that is under 3 minutes.

  3. Arithmetic and Logic Unit (ALU). Assemble, test, and report on the SN74LS181 ALU Module. This stage represents the final independent exploratory module before we attempt to build our entire processor. Using the components you have been provided with (additional breadboard, 3" coloured jumper wires, SN74LS181, bargraph and 270 Ω bussed resistor network) and employing ACTIVE HIGH logic, wire up an ALU circuit that can be used to explore the 32 functions (16 logic and 16 arithmetic) the IC is capable of performing. For this submission only, arrange your circuit so that it closely matches the diagram below. (SN74LS181N.fzz) Note. If you're using Fritzing for your processor the generic IC component is probably your best best. The inspector allow you to edit some characteristics.

  4. Presentation. TBA
  5. Publication. TBA.

Related

References

 

Jackson Russett's EEPROM Programmer Shield (Rollover):

 

Links