Single-Course Engelsk 5 ECTS

Verification of Digital Systems

Overall Course Objectives

This course provides basic knowledge of methods and tools for verifying integrated circuits, by covering the principial elements of coverage-driven constrained random verification:
• Mapping design architecture requirements into verification plans
• Implementing object-oriented test bench environments
• Creating constrained random test cases with intended random stimuli distribution
• Implementing functional checks on the RT as well as the transactional level
• Building coverage models for measuring verification completeness
• Mapping tests, checks, and coverage models to requirements in the verification plan

The course presents the fundamental theory necessary to understand and implement these principal elements. Students will learn how to use simulation tools to debug the design, the constrained random test cases as well as the implemented design checks, but also how to use such tools to measure the obtained coverage metrics using the implemented coverage models.

As a practical aspect, students work in small teams on a practical implementation of a testbench in PyUVM using Python for verifying the functionality of an RTL design. In the final project, each student team will integrate their complete PyUVM verification environment comprised of tests, checks, and coverage models. The final project will be evaluated based on the theoretical correctness of each element, as well as the aggregated capability of the verification environment for finding complex RTL design bugs.

By the end of this course, students will have gained both a thorough theoretical understanding and practical experience in employing modern methods for verifying integrated circuits, using PyUVM and Python. Students will become ready to employ the extensive industry-scale environments used to verify modern complex chip designs.

See course description in Danish

Learning Objectives

  • Explain the role of different tools and languages in digital system verification and their application in verification processes.
  • Apply the basic theory of constrained random verification to academic and real-world situations, including principles of functional verification of RTL designs, state space exploration, transaction concepts, verification quality, and verification plans.
  • Design directed and constrained random test cases, ensuring effective stimuli distribution to verify RTL designs for real-world situations.
  • Implement and/or use functional checkers, reference models, scoreboards, and assertions using temporal logic to validate design correctness for real-world situations.
  • Develop and apply coverage models and coverage model closure techniques to measure verification completeness.
  • Implement testbenches in PyUVM using Python to verify the functionality of an RTL design.
  • Use simulation tools to debug RTL designs, test cases, functional checks, and coverage models.
  • Analyze the effectiveness of a verification environment by evaluating verification metrics and bug-finding capabilities.
  • Integrate different verification components, including tests, checks, and coverage models, into a complete verification environment.
  • Assess the final quality of a verification environment based on its ability to detect complex RTL design bugs.

Course Content

Principles of verification of integrated circuits, constrained random verification, verification planning, transaction-based test bench architecture, coverage models, functional checks, assertions, PyUVM, Python tests, scoreboards, requirement-centric verification closure.

Possible start times

  • 36 – 49 (Mon 8-12)

Recommended prerequisites

02139/02203, Basic skills in programming and digital electronics including some knowledge of a hardware description language.

Teaching Method

Lectures, group work, and homework. Mandatory final project.

Faculty

Remarks

This course is given in collaboration with the company Syosil, which specializes in verification of digital systems.

See course in the course database.

Registration

Language

Engelsk

Duration

13 weeks

Institute

Compute

Place

DTU Lyngby Campus

Course code 02207
Course type Candidate
Semester start Week 36
Semester end Week 49
Days Mon 8-12
Price

9.250,00 DKK

Registration