### 6.111 Introductory Digital Systems Laboratory

Prereq.: 6.002 or 6.071
Units: 3-7-2

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.

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