ECE 385
ECE 385 - Digital Systems Laboratory
Spring 2025
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Digital Systems Laboratory | ECE385 | AL1 | 32782 | PKG | 3 | 1600 - 1650 | M W | 1002 Electrical & Computer Eng Bldg | Zuofu Cheng |
Digital Systems Laboratory | ECE385 | AL1 | 32782 | PKG | 3 | - | Zuofu Cheng | ||
Digital Systems Laboratory | ECE385 | ZJ1 | 75254 | LCD | 3 | - | Zuofu Cheng |
See full schedule from Course Explorer
Official Description
Subject Area
- Computer Engineering
Course Director
Description
Introduction to the experimental analysis and synthesis of digital networks, including the use of a microcomputer as a controller.
Goals
This course is designed to give students in computer and electrical engineering an ability to design, build, and debug digital systems that include programmable logic, microprocessors, memory systems, and peripherals.
Topics
- Combinational logic circuits
- Storage elements
- Hazards and race conditions
- Circuit characteristics (fanout, delays, etc.)
- Field Programmable Gate Arrays (FPGAs)
- Combinational networks (adders, multiplexes, etc.) in SystemVerilog
- Sequential networks (counters, shift registers, etc.) in SystemVerilog
- Synchronous state machines
- Static timing analysis, clock domains, metastability, and synchronization
- Logic simulation and testbenches
- Microprocessors and system on chip
- Project using a microprocessor and system on chip concepts
Detailed Description and Outline
This course is designed to give students in computer and electrical engineering an ability to design, build, and debug digital systems that include microprocessors, memory systems, and peripherals.
Topics:
- Combinational logic circuits
- Storage elements
- Hazards and race conditions
- Circuit characteristics (fanout, delays, etc.)
- Field Programmable Gate Arrays (FPGAs)
- Combinational networks (adders, multiplexes, etc.) in SystemVerilog
- Sequential networks (counters, shift registers, etc.) in SystemVerilog
- Synchronous state machines
- Static timing analysis, clock domains, metastability, and synchronization
- Microprocessors and system on chip
- Project using a microprocessor and system on chip concepts
Computer Usage
At different times during the term students may use a Windows or Linux personal computer and the appropriate electronic design automation (EDA) tools to design and simulate digital circuits. During the last 11 weeks the students use a field-programmable gate array (FPGA) prototyping platform to design, simulate, program, and test their digital logic and system-on-chip circuits. 1. Nine experiments of increasing complexity covering first 10 topics. Groups of 2 students use a protoboard to build their circuits and an I/O lab station, oscilloscope, logic analyzer, and pulse generator to debug and demonstrate their experiments. FPGAs may be used in some experiments. 2. During the last 4 weeks, groups of 2 students choose, design, build, and debug a project using the FPGA hardware in conjunction with a system-on-chip platform software build environment.
Topical Prerequisites
- Basic electronics laboratory experience
- Ability to use oscilloscopes
- Ability to design combinational and sequential circuits
- An understanding of basic computer organization
- Ability to program in the C programming language
Texts
Class Notes (printed or available online)
ABET Category
Engineering Science: 10%
Engineering Design: 90%
Course Goals
The course is required for both electrical and computer engineering students. The course is designed to give students in computer and electrical engineering ability to design, build, and debug digital systems. The first half of the course uses standard TTL chips, wires and a proto board. The second half of the course uses CAD tools to synthesize logic described in SystemVerilog, which is then mapped to an FPGA.
Instructional Objectives
A. At the end of the first week (Experiment #1), the students should be able to do the following:
1. Design, document, and build a logic circuit to eliminate the problems caused by “contact bounce” in a mechanical switch. (1, 2, 6)
2. Detect and identify static hazards (glitches) in a logic circuit caused by delays in logic gates. (1, 6)
3. Design, document, and build additional logic circuitry to eliminate glitches in existing logic circuits. (1, 2, 3, 6)
4. Design, document, and build an input/output logic circuit with four ‘debounced’ switches and six LED’s (Light Emitting Diodes). (2, 6)
B. At the end of the second week (Experiment #2), the students should be able to do the following:
1. Identify different types of digital storage elements (latches and flip-flops) and draw the corresponding timing diagrams. (1, 6)
2. Design, build, and test a memory unit with a new given behavior, using logic gates. (1, 2, 3, 5, 6)
3. Devise and perform tests to verify the operation of said memory unit. (1, 2, 3, 5, 6)
C. At the end of the third week (Experiment #3), the students should be able to do the following:
1. Design, build, and test a logic circuit which behaves as a 4-bit serial logic processor. (1, 2, 3, 5, 6)
2. Build, test, and possibly improve a provided state machine specification. (1, 2, 6)
3. Document the entirety of the logic design in a correct, coherent, and complete manner. (3)
D. At the end of the fourth week (Experiment #4), the students should be able to do the following:
1. Learn, install, configure, and operate commercial Electronic Design Automation (EDA) tools. (7)
2. Design, test, and document a carry ripple adder, carry looka-head adder, and carry select adder in SystemVerilog. (1, 2, 6)
3. Implement and test the design on a FPGA evaluation board. (1, 2, 3, 5, 6)
E. At the end of the fifth week (experiment #5), the students should be able to do the following:
1. Design, document, and build, and test a 8-bit by 8-bit multiplier using SystemVerilog (1, 2, 3, 5, 6)
F. At the end of the sixth week (Experiment #6), the students should be able to do the following:
1. Design, document, and build a datapath for an SLC3 (Simplified LC-3) microprocessor (1, 2, 3, 5, 6)
G. At the end of the seventh week (Experiment #6 part 2), the students should be able to do the following:
1. Design, document, and build, and test a complete SLC-3 microprocessor on the FPGA using provided C language programs (1, 2, 3, 5, 6, 7)
H. At the end of the eighth week (Experiment #7), the students should be able to do the following:
1. Learn and operate the system on chip platform configurator and create an NIOS II soft-CPU based system-on-chip (SoC) platform. (7)
1. Design, document, and build a system-on-chip (SoC) platform using the FPGA development board. (1, 2, 3, 5, 6)
I. At the end of the ninth week (Experiment #8), the students should be able to do the following:
1. Design, document, and test a USB keyboard protocol and a standard VGA protocol using SystemVerilog and FPGA. (1, 2, 3, 5, 6, 7)
J. At the end of the eleventh week (Experiment #9), the students should be able to do the following:
1. Design, document, and build an AES encryption software module running on the CPU side of the SoC platform. (1, 2, 3, 5, 6, 7)
2. Design, document, and build an AES decryption accelerator module to accelerate AES operations using the FPGA (1, 2, 3, 5, 6, 7)
K. At the end of the fourteenth week (Four Weeks Final Project), the students should be able to do the following:
1. Propose, design, document, and build a digital system that is challenging and does something interesting. SystemVerilog and FPGA are used in conjunction with A/D and D/A converters, LCD display panels, keyboards, joy sticks, speakers, cameras, and VGA monitors. (1, 2, 3, 4, 5, 6, 7)