CSC258H: Week 4 Reading Guide

Week 4: FSM Design

Topic Reading Recommended Exercises
Synchronous Design DDCA 3.3-3.4 All Exercises: 3.15-3.29

This week is a bit of a catch-up week. We've looked at a lot of circuit elements in the past two weeks, and this week, we'll put them together to build finite state machines -- circuits that rely on previous state to perform a computation. In order to do so, you'll need to have a firm grasp of how to design combinational logic, so this week's reading is light: it's your chance to review exercises from past weeks if you could use some extra practice.

We'll continue to look at state based circuits next week, but we'll add a twist: we'll be analyzing their performance in addition to simply building correct circuits. This material will be quite challenging, as it employs a significant amount of jargon (terms you'll have to memorize) and requires that you understand how logic flows through a circuit. In case you want to take some extra time on it, I've published the reading guide a week early.

Synchronous Design: Sections 3.3-3.4

Section 3.3 introduces several possible problems that might occur in circuits that contain loops. Skim it as background for the real emphasis this week: section 3.4, finite state machines. "Race condition"" is an important term (example 3.4) to spend some time on. Section 3.4 introduces a specific type of synchronous circuit: the finite state machine. I would look at section 3.4.1 and example 3.7 and then attempt the exercises, reading more as you need. In particular, make sure you can identify both Mealy and Moore machines (example 3.7) and are comfortable with the process of designing a finite state machine.

There are quite a few exercises this week, so that you have plenty to practice on. I would pay special attention to 3.19 and 3.20, as they are the "basic" FSM design problems. You'll need to be solid on these to continue. Later problems are more complex but can be solved using the same techniques.