Fundamentals of Digital System Design
(3-0-0-3)
CMPE Degree: This course is Required for the CMPE degree.
EE Degree: This course is Required for the EE degree.
Lab Hours: 0 supervised lab hours and 0 unsupervised lab hours.
Technical Interest Group(s) / Course Type(s): BSCmpE core (2012-13 curriculum), BSEE core (2012-13 curriculum), Courses for non-ECE majors, VLSI Systems and Digital Design
Course Coordinator: Kevin Toby Johnson
Prerequisites: CS 1371 [min C] or CS 1171 [min D] or CS 1301 [min C]
Catalog Description
Computer system and digital design principles. Switch and gate design, Boolean algebra, number systems, arithmetic, storage elements. Datapath, memory organization. Instruction set architecture, assembly language.Course Outcomes
Realize a Boolean expression with electronic switches and DeMorgan equivalent gates using a basic schematic design and simulation environment.
Simplify Boolean expressions in product-of-sums (POS) and sum-of-products (SOP) forms using Karnaugh Maps.
Implement encoders, decoders and multiplexers using basic gates (including pass gates).
Use basic design tools to analyze first-order combinatorial logic delay and energy dissipation.
Express signed, unsigned, fixed-point and floating-point values in binary representations.
Perform signed and unsigned addition and subtraction, observing errors.
Implement latches and registers and use in state machines and register files.
Implement toggle cells for designing divide-by-N counters.
Analyze sequential logic timing and power consumption using different tools.
Design storage systems using memory arrays composed of basic static and dynamic cells.
Implement a datapath using register files, functional units, and a three bus architecture.
Describe the instruction types and formats of a RISC instruction set.
Implement instruction sequences in a datapath using a RISC instruction set.
Describe the operation of a branching, single-cycle controller.
Strategic Performance Indicators (SPIs)
Not Applicable
Topical Outline
- Introduction to Computing Systems
- Switch Design
- Boolean Algebra
- Gate Design
- Simplification
- Building Blocks
- Number Systems
- Arithmetic
- Latches and Registers
- Counters
- State Machines
- Memory
- Datapaths
- Introductory Assembly Programming