September 2006 (originally from December 1996)

## CSE 370: Introduction to Logic Design

Purpose:

Implementation of digital computing elements at the gate
level. Specification and implementation of
finite-state machines and basic system modules. Appreciation
of the similarities and differences between computing in hardware and software.

### Precondition Concepts:

- basics of computation (as
from an introductory computer programming course)
- basic Boolean logic

### Precondition Abilities:

- design and implement
medium-sized programs (up to about 1000 lines), consisting of several
(4-12) modules
- understand and extend
medium-sized (500+ lines) programs
- read, write, use, and
document (own and others') software components

### Precondition Skills:

- programming
experience at an introductory level (e.g., C, Java, etc.)
- familiarity with a PC
environment

### Postcondition Concepts

- combinational logic
- basic gates
- Boolean algebra
- two-level/multi-level
logic
- optimization
- regular logic
structures

- sequential logic
- latches and flip-flops
- synchronous
methodology
- registers and counters

- finite-state machines
- specification
- implementation
- optimization

- programmable logic devices
- combinational elements
- sequential elements
- implementation of
finite-state machines
- limitations on mapping

- elements of computers
- data-path and control
- arithmetic/logic units
- registers and busses
- controllers

### Postcondition Abilities

- map a problem statement to a
digital logic solution including combinational and sequential (FSM) logic
- map the implementation to
programmable logic devices
- optimize the implementation
- verify the implementation

### Postcondition Skills

- use of a hardware description
language
- use of synthesis tools to
generate and map logic to programmable logic devices
- simulation of digital logic