Prereq.: 6.002 or 6.071
Introductory Digital Systems Laboratory
Lectures and labs on digital logic, flipflops, PALs, counters,
timing, synchronization, and finite-state machines prepare students
for the design and implementation of a final project of their choice,
e.g., games, music, digital filters, wireless communications,
graphics, etc. Extensive use of Verilog for describing and
implementating digital logic designs. Students engage in extensive
written and oral communication exercises.
12 Engineering Design Points.
On completion of 6.111 students will have the skills and confidence to
conceive and implement a complex digital system.
More broadly, they will be ready to handle substantial and challenging
design problems. In particular, students will be able to:
- Explain the elements of digital system abstractions such as digital
representations of information, digital logic, Boolan algebra,
state elements and finite state machine (FSMs).
- Design simple digital systems based on these digital abstractions,
using the "digital paradigm" including discrete sampled information.
- Use the "tools of the trade": basic instruments, devices and design
- Work in a design team that can propose, design, successfully
implement and report on a digital systems project.
- Communicate the purpose and results of a design project in written
and oral presentations.
After taking 6.111 a student will be able to
- Describe how analog signals are used to represent digital values in
different logic families, including characterization of the noise
- Create the appropriate truth table from a description of a
combinational logic function.
- Create a gate-level implementation of a combinational logic function
described by a truth table using and/or/inv gates, muxes or ROMs,
and analyze its timing behavior.
- Create a state transition diagram from a description of a sequential
logic function and then convert the diagram into an implementation
of a finite-state machine with the appropriate combinational and
- Describe the operation and timing constraints for latches and
- Draw a circuit diagram for a sequential logic circuit and analyze
its timing properties (input setup and hold times, minimum clock
period, output propagation delays).
- Evalute combinational and sequential logic designs using various
metrics: switching speed, throughput/latency, gate count and area,
energy dissipation and power
- Properly incorporate synchronous and asynchronous memories into
a circuit design.
- Discuss how to interface digital circuits with analog components
(ADC, DAC, sensors, etc.).
- Describe and implement logic for digital audio and video subsystems.
- Design and analyze circuits for digital arithmetic.
- Perform and interpret measurements using oscilloscopes and logic
- Using Verilog, implement a substantial digital system on an FPGA.
- Learn how to write test-benches and perform verification of the relatively complex digital system.