CS 14 -- Train lab


For this lab, we'll be working with a train set that is controlled by some digitial signals. There will be a demo to show you the operation of the trains. The bulk of the project will be done with your entire lab section. As a group, you will design a special-purpose processor to make the control of the trains programmable.


Basic Input/Output for train control

There are both input and output lines that your processor must handle:

4-bit train control codes:

Number Meaning
0 Toggle system on/off
1 Select train 1
2 Select train 2 (Note that there is no train 2)
3 Select train 3
4 Select train 4 (Note that there is no train 4)
5 Reverse selected train
6 Toggle light (Note that to perform this command, you must send this signal, send the train number, and then send the reverse signal)
7 Stop the selected train
8 to 13 Set selected train speed to the selected value. (Note that 8 is so slow that you probably shouldn't use it!)
14 to 15 Unused

Notes on train signal use:


Your assignment, loosely stated

You should design a specialized processor that would allow someone to control the train by choosing instructions on your processor. You must select a few instructions that your processor will support, and choose an instruction format---that is, you should choose the instruction word length, as well as the breakdown of bits within the instruction word.

It is important that you design the processor in as modular a fashion as is reasonable. There should likely be some kind of centralized control board that is designed to connect directly to the train control circuitry. Other boards should connect to this controller board, and each be made to handle some subset of your total instruction set.

Information about chips and other parts will be made available as quickly as possible. If there's a part that you think you need, inquire as to whether or not we have it, and consider that you may have to create your own solution from the parts that you've already used.


Scott F. Kaplan
Last modified: Tue Apr 2 09:18:13 EST 2002