This course introduces the basic concepts of functional verification and model checking, highlighting their importance in modern system designs. It explains different modeling formalisms for representing the behavior of hardware and software, which are either suitable for automated analysis or can represent data-dependent controls that are common in computing system designs. Additionally, it describes system compositions with respect to different communication models.



Introduction to Modeling for Formal Verification

Instructor: Hao Zheng
Access provided by New York State Department of Labor
Recommended experience
What you'll learn
Explain functional verification and model checking, including their benefits and drawbacks
Describe transition systems and how they represent behavior of hardware and software
Use program graphs to describe systems with data-dependent control
Describe communication models for system composition, including concurrency, shared variables, handshake, and synchronous parallelism.
Details to know

Add to your LinkedIn profile
10 assignments
March 2025
See how employees at top companies are mastering in-demand skills


Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review

There are 3 modules in this course
This module introduces basic concepts of functional verification and model checking. It demonstrates the importance of verification via some examples, outlines the challenges, and reviews pros and cons of model checking with respect to other verification methods.
What's included
7 videos6 readings3 assignments
This module introduces transition systems, a basic modeling formalism for representing behavior of hardware and software that is suitable for automated analysis. The syntax and semantics of transition systems are explained, and how sequential circuits can be represented as transition systems is described. Next, program graphs as a formalism to model software are introduced. Syntax of program graphs is described, and semantic interpretation using transition systems is explained.
What's included
10 videos3 readings3 assignments
This module introduces some modeling formalisms capturing different types of system compositions. Particularly, interleaving of concurrent transition systems, compositions of systems communicating via shared variables or handshaking are explained. Additionally, synchronous parallelism is described for composing synchronous circuit composition.
What's included
10 videos4 readings4 assignments
Instructor

Offered by
Why people choose Coursera for their career




Recommended if you're interested in Computer Science
University of Colorado Boulder
EIT Digital
EIT Digital

Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy