### 6.111 Introductory Digital Systems Laboratory

Prereq.: 6.002, 6.08, or 16.004
Units: 3-7-2

Introduces digital systems with lectures and labs on digital logic, flipflops, PALs, counters, timing, synchronization, and finite-state machines. Includes overview of accelerometers, gyros, time of light and other modern sensors. Prepare students for the design and implementation of a final project of their choice: games, music, digital filters, wireless communications, video or graphics. Extensive use of Verilog for describing and implementating digital logic designs.

12 Engineering Design Points.

### Course Objectives

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 tools.

• 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.

### Course Outcomes

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 margins.

• 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 sequential components.

• Describe the operation and timing constraints for latches and registers.

• 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 analyzers.

• 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.