CPSC 220
Fall 2017
Computer Architecture


 
"The best way to predict the future is to implement it."
-- David Heinemeier Hansson
 
 
This course is all about how to become comfortable with the complexity of computer systems by taking a close look at them from bottom to top. We will investigate such topics as binary arithmetic, basic electronics, CMOS transistor circuits, logic gates, integrated circuits, sequential logic, multiplexors, adders, ALUs, CPUs, machine code, C programming, and top out with an introduction to ARM assembly language.

Successfully completing the course will put you squarely in the picture of how computers work, at least concerning the parts we can manipulate with standard tools available today. If there is something special you would like to see added to the course, let me know ASAP so I can provide the necessary materials in a timely manner.

For a more complete course description, consult the course syllabus available here.


Course Information

Below is running list of all the assignments, homework, and announcements in this course. Homework sets are usually provided as PDF files which you can print or not as you wish. Labs will be available on Mondays before lab on Tuesday. I often provide links to various amusing, weird, puzzling and interesting computing materials I have found on the web. If you have any problems downloading or locating materials on this list, please let me know ASAP so I can solve the problem.

I have provided a zip file containing various images of circuits, components, etc which you can find here. These may come in handy as you do writeups of labs and homework without needing to draw all your own images. I will update this file regularly with additional images.

Some of these images are also used in my Latex source files for the labs which you can find here as an increasing zip file as well.

As mentioned elsewhere, you can find many free or low cost circuit drawing programs by a search for circuit, or schematic, drawing software. You will find many, many choices which will work fine for our level of schematic drawing. Circuit simulation programs are also available, usually not entirely free, which calculate and display current flow, LED on/off, voltages present, etc. You will want to check on export capability so you can embed your schematic images in your writeups.

Fritzing is one such free schematic editor program with board layout options. You can download it from Fritzing.org

Eagle CAD is a more complex schematic and board layout which has an Express free version and and Educational version as well. You can download it from http://www.cadsoft.io

From former student Pieter Schaap comes a suggestion for using Lucid Chart found at www.lucidchart.com as a schematic drawing program. Note, after creating a new document, there is a "small" button left bottom to select "more shapes". There you should select the "electrical" set.

Another tool suggested as a circuit drawing and simulation program is iCircuit found at iCircuit.com. Licenses are available at low cost for basic versions.

A circuit drawing and simulation program suggested by Aleem Mohammed is easyEDA found here.

Another newish circuit drawing and simulation program is Boolr found at boolr.me. Nice packaging of simple circuits into packages is a nice touch.

You can find a resistor color code table here. Many others are available online as well such as Reading the resistor color code.

You can find a video about VLSI manufacturing processes here. There are many Youtube videos on various aspects of chip manufacture.

Unhappy with USB? Too many connectors, not enough connection? Join the club: here so we can all be unhappy together.


10-23-2017. You will find Lab 7 here as well as paper copies in the lab. You should have read through the Prelab before coming to lab on Tuesday so you are ready to do some Arduino coding. Lab 7 is due Friday in class.

You should read Appendix C, an online document, referenced in our textbook (DDCA) on C programming. There is a link to it here. There is also another reference for C programming here. We will be doing C coding in the Arduino environment as well as Raspberry Pi coming up soon.

There is a quiz as usual on Friday in class as well.


10-16-2017. You will find Lab 6 here as well as paper copies in the lab. You should have read through the Prelab before coming to lab on Tuesday so you are ready to do some Arduino coding. Lab 6 is due Friday in class.

There is a quiz as usual on Friday in class as well.


10-10-2017. Check out the video, available here of Massimo Banzi talking about the evolution of Arduino and a variety of open source projects it has enabled.

You can find the standard Getting Started tutorial for Arduino from the official source here or look through the many other web pages devoted to all things Arduino. Go ahead and install the Arduino software on your laptop/desktop if you want to get started with Arduino.

We are going to be using the Adafruit Arduino Metro which is a variant of the standard Arduino UNO. To find out how to customize your Arduino software for Metro, visit the Adafruit web site for Metro found here.

NOTICE: you may need to install USB FTDI drivers for your computer so you can connect to Arduino METRO and download programs.

You can find many, many Arduino example programs online or use the official standard found here.

I will be showing some Arduino examples on Monday in class so we can get up to speed for Lab 6 on Tuesday.

There are also several books on Arduino in the lab that explain how to get started with Arduino and write sketches.


9-30-2017. You should have read through Chapter 2 in our textbook. You will find Lab 5 here as well as in the lab.

Exam 1 is on Tuesday Oct. 3rd in lab time. You can find the Review Sheet for Exam 1 here.

9-19-2017. You should have read pp. 55-69 in our textbook. You will find Lab 4 here . Be sure to do the Prelab BEFORE coming to lab on Tuesday. In this lab we move beyond the low level details of MOSFETs and learn to use integrated circuits (ICs) to make much more complex circuits.

9-12-2017. You should have read pp. 21-35 in our textbook. You will find Lab 3 here . Be sure to do the Prelab BEFORE coming to lab on Tuesday. In this lab we move beyond the general description of MOSFETs in our textbook and make actual circuits using these transistors.

9-2-2017. You will find Lab 2 here . Be sure to do the Prelab BEFORE coming to lab on Tuesday. There is a link above for the resistor color code which will be helpful.

8-28-2017. Welcome back from the summer break. I expect you are well rested and ready to begin. Let's start off with some introductory reading from our textbook, Digital Design and Computer Architecture (ARM Edition). Read the Preface, and read Sections 1.1-1.4 before lab on Tuesday. Look through the table of contents and see if there are things you want to explore in the class then flip through the text and see what looks interesting. I am certainly willing to modify the course contents based on passionate student interest but that requires feedback from you. See you in class.

You will find Homework 1 here. This is due next Monday in class.

You will find Lab 1 here. This is due next Tuesday in class.