![]() |
ECE 495 Computer Engineering Design Laboratory Experiment No.1 |
Newark College of Engineering |
Event Driven Circuit
Objectives:
The objective of this laboratory is to familiarize the student with the design techniques for event driven sequential circuits, and to introduce the student to applications involving EEPROMs.
Preparation:
Review Chapter 2 of Computer Systems Organization & Architecture by John Carpinelli.
Equipment Needed
References
John D. Carpinelli, Computer Systems Organization & Architecture, Addison Wesley, 2001.
Morris Mano, Computer Engineering Hardware Design, Addison Wesley.
Background
Event driven sequential circuits differ from combinatorial circuits in that the outputs of the circuit depend not only on the present state of the inputs but also on the past history of the inputs. Thus a sequential circuit has memory. Memory is provided for each bit needed to define a state by using a bit storage device such as a flip-flop. Any type of flip-flop is suitable, but with some designs the J-K type may be better in the sense that the combinatorial logic required for the feedback path is usually (but not always) minimized by this choice. The combinatorial part of the circuit can be implemented using gates, MUXs or any method that is capable of providing the necessary feedback logic. In our case an EEPROM will be used. This will have the added benefit of familiarizing the student with the procedures of working with these very common (and presently inexpensive) read only digital memories. The storage device that will be used will be an octal D-type latch, and it will be seen that the entire design has chip count of two.
In this experiment, an event driven sequential circuit will be implemented. This type of circuit is free running in the sense that the output must respond to an input change in a very short time. Other names commonly used are non-pulse circuits or asynchronous circuits.
A Simple Example
A simple example was chosen in order to acquaint the student with the type of design presented in this experiment. It does not necessarily correspond to anything practical, but was chosen for the simplicity needed to get the requisite familiarity. The state diagram of this system is shown in Figure 1.1. Each state is defined by the two bit WZ and each state produces an output defined by the three bits PQR. The inputs KL, needed to make the transitions between the states are indicated on the directed branches connecting the state balloons. It is implicit that when KL does not cause any transition that the system remains in the same state.
![]() |
| Figure 1.1: The state diagram of a simple event-driven sequential circuit. |
To gain familiarity with the use of EEPROMs, the two chip design of the type shown in Figure 1.2 was chosen.
The EEPROM contains the combinatorial logic and the octal D-type latch contains the needed bit storage. Both devices contain more logic than is needed for this design, so expansion should be possible. It is decided to pass the inputs FG through the latch, so that the system clock will control all the events and facilitates the testing of the system. The output bits PQR are derived combinatorially from the state bit WZ. Since the EEPROM has a substantial amount of unused logic we can put it to good use by using three of the EEPROM output lines for the output bits PQR. We determine the bit storage pattern for the EEPROM by creating a state table as shown in Table 1.1. Note that the present state and inputs supply the address to the EEPROM; the data outputs provide the next state and system outputs.
![]() |
| Figure 1.2: Hardware implementation for the simple event-driven sequential circuit of Figure 1.1. |
EPROMs or EEPROMs are useful for changeable designs. If you don’t like your first design, change it and reprogram the ROM. Rewiring is not required if your basic design is sound. We are using an EEPROM because it does not require a 20 minute erasure using a UV light device.
Before assembling a program, source code must be created with an editor or word processor (in ASCII mode). As an example, assume we are creating a source file for the state table in Figure 1.1, named TEST.ASM. A partial listing of directives for using the assembler ASM68K.EXE is given below:
ORG 0
DC.B $1E, $07, $07, $0B ; start assembling code from address 0
DC.B $0B, $1E, $07, $15 ; stores 4 bytes of date
DC.B $15, $0B, $15, $15
DC.B $1E, $15, $1E, $1E
END
Once the source file is edited it can be assembled using the assembler ASM68K.EXE. The assembler will produce a TEST.HEX files (S-records) which can then be used to program the EEPROM with the Superpro Programmer program.
| Present State | Next State | |||||||
| State | Input | State | Output | |||||
| W | Z | F | G | W | Z | P | Q | R |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
| 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| Table 1.1: The state table of the simple event-driven sequential circuit. | ||||||||
An Event Driven Annunciator System
The state diagram for the sequential circuit that we wish to design is shown in Figure 1.3. It is a two alarm system which might be used in factory to signal that various levels of faults are occurring on the production line. One application may be in process control, where the fault could indicate a high pressure. A flashing amber light would indicate the first state of pressure change, a potential hazard. A large change in the system, shown by a flashing red light would indicate an emergency condition.
![]() |
| Figure 1.3: State diagram of the annunciator circuit. |
The annunciator has 6 proper states, so we shall need a 3 bit sequential circuit. Each state is described by the 3 bits UVW. For this example, states A through H have UVW = 000 to 111 respectively. The annunciator monitors the factory for the presence of a low-level alarm signal LLA and a high level alarm signal HLA. The high-level alarm signal HLA cannot occur if the low-level alarm signal LLA has not occurred first. The circuit operates in the following manner:
Prelab Assignment
Student should obtain their unique state sequences from the laboratory instructor. Each student should prepare a design similar to the one presented in this experiment which will realize the required state assignments for this design.
Laboratory Assignments
Program the EEPROM to realize the design of the annunciator for the required
state assignments. Use the logic analyzer or a logic probe to debug the design
and verify its operation to the laboratory instructor.