Start Date: 08/02/2022
Course Overview
This comprehensive 4-days hands-on intensive course provides complete and integrated training program. It provides the participants with a deep knowledge of 1800-2005 SystemVerilog. The goal of this course is to fulfill the needs and requirements of engineers wanting to exploit the breadth of SystemVerilog features for both design and verification.
Level:
Intermediate to AdvancedWho should attend?
Experienced Verilog design and verification engineers wanting to use System Verilog 1800-2005 features for modeling, synthesis and verification of digital designsPrerequisite:
Digital design knowledge, Verilog 1364-1995 and Verilog 1364-2001
Software Tools:
After completing this training, you will be able to:
Use System Verilog design advanced techniques Create libraries and configurations Build abstract models for verification of digital designs, using class-based object oriented constructs Create random, coverage driven simulation environment
Lab Description:
Lab Descriptions• Manipulating packed, unpacked, static and dynamic arrays and lists
• Writing short design and test-bench using interfaces
• Writing SystemVerilog packages and library configurations
• Write short design and test-bench using programs and bind techniques
• Write SystemVerilog programs using abstract object oriented modeling
• Create program using random and constrained variables
• Writing assertions and debugging short design
• Testing coverage of existing small verification environment
Course Outline:
1. Verilog short history brief
2. SystemVerilog data types
3. User-defined types, structs and unions
4. Procedural statements and flow control
5. Arrays and lists
6. Interfaces and Clocking Blocks
7. SystemVerilog new operators
8. Packages and configuration libraries
9. Programs and module binding
10. Transaction Level Modeling (TLM)
11. Object oriented modeling – structs and classes
12. Random and constrained simulation
13. Direct Programming Interface (DPI)
14. Assertions
15. Coverage
Topics brakdown
- Verilog Evolution
- Data Types
- Strings
- Enumerated Data Types
- User-defined types
- Structs and Unions
- Arrays
o Array Querying System Functions
o Dynamic array
o Dynamic Arrays’ Pre-defined Methods
o Associative Arrays
o Associated Arrays Pre-defined Methods
o Array Assignment Patterns
o Queues
- New Operators
- Unique and priority decision statements
- Functions
- Procedural Statements and Flow Control
- Fork-join Enhancements
- Instances and Port Connection Enhancements
- Programs
- Clocking Blocks
- Bind Operator
- Packages
- Object Oriented Modeling
- Random Simulation
- Random Sequence
- Assertions
o Concurrent Assertions
o Assertions Structure
o Boolean Expression
o Sequence
o Sequence – Time Range Operators
o Sequence Declaration
o Sequences as Containers
o Consecutive Repetitions in Sequences
o Goto Repetition in Sequences
o Non-consecutive Repetition in Sequences
o The Intersect Operation
o The AND and INTERSECT examples
o OR Operation
o first_match operator
o Throughout Operator
Throughout Example
o Sequence Contained Within Another Sequence
o ended Sequence Method
ended Sequence Method Example
o triggered Sequence Method
o Sequence Operators Summary
o Manipulating Data in Sequences
o Calling Sub-Routines on Sequence Match
o System Tasks and Functions
o Properties
o Properties Kinds
o disable iff Within Properties
– Implication Example
– Properties Examples
o Property’s Arguments
o Implications Within Properties
o Multi-clock support
o Concurrent Assertions
o Assert Statement
o Assume Statement
o Cover Statement
o Clock Resolution
o Properties Declaration Technique
o Expect Statement
o Coverage