CSE 467
Advanced Digital Design
Credits
4.0
Lead Instructor
Bruce Hemingway
Textbook
- Digital Design and Computer Architecture, Harris
Course Description
Advanced techniques in the design of digital systems. Hardware description languages, combinational and sequential logic synthesis and optimization methods, partitioning, mapping to regular structures. Emphasis on reconfigurable logic as an implementation medium. Memory system design. Digital communication including serial/parallel and synchronous/asynchronous methods.
Prerequisites
either CSE 352 or CSE 370; either CSE 326 or CSE 332.
CE Major Status
Selected Elective
Course Objectives
- To learn how to design digital systems, from specification and simulation to construction and debugging.
- To learn techniques and tools for programmable logic design
- To learn how to use modern laboratory test equipment, including logic analyzers and oscilloscopes.
- To understand the limitations and difficulties in modern digital design, including wiring constraints, high-speed, etc.
- To design, construct, test, and debug a moderate-scale digital circuit.
ABET Outcomes
(a) an ability to apply knowledge of mathematics, science, and engineering
(b) an ability to design and conduct experiments, as well as to analyze and interpret data
(c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
(e) an ability to identify, formulate, and solve engineering problems
(i) a recognition of the need for, and an ability to engage in life-long learning
(k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice
Course Topics
- Overview of digital technology
- Logic families
- TTL/CMOS
- Reading and understanding data books
- Interfaces
- Standard components
- Programmable devices
- PROMs
- PALs and PLDs
- FPGAs
- Electrical realities
- Resistance, capacitance and inductance
- Wire delays and time constants
- Fanout and loading
- Decoupling and signal integrity
- Power dissipation and drops
- Ringing, reflections, and terminations
- Clock distribution
- Computer-aided design
- Hardware description languages (HDLs, esp. Verilog)
- Logic compilation
- Two-level and multi-level logic synthesis
- Technology-independent optimization
- Technology mapping
- Sequential-logic synthesis
- Tools for mapping to PLDs and FPGAs
- Laboratory
- Logic analyzer and oscilloscope basics
- Timing, state, capture, bandwidth
- Glitches and transient events
- Debugging techniques
- System-level components
- Static, dynamic, and nonvolatile memories
- RAM, ROM, PROM, EPROM, EEPROM
- Memory controllers and timing
- Digital communication
- Serial and parallel protocols
- Synchronous vs. asynchronous data communication
- Busses
- Arbitration