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
- abstraction
- modularity, encapsulation, interface vs. implementation
- computer organization
- basic instruction set, fetch-execute cycle
- 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
- write clients, implementations separately, given spec of interface
- experience with software tools with integrated
project/file-management concepts
Precondition Skills:
- programming skill in C and/or C++
- familiarity with 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/sequencers/microprogramming
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