Pyuvm Series Part 3 : Python Oops Fundamentals
Published 1/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 984.39 MB | Duration: 3h 13m
Published 1/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 984.39 MB | Duration: 3h 13m
Step by Step Guide from Scratch
What you'll learn
Fundamentals of Classes
Class Methods
Inter-process communication
Randomization
Building verification environment in Python
Requirements
Fundamentals of Digital Electronics and Verilog
Completion of Python for VLSI Engineer P1, and P2 Course or Basics of Python & COCOTB
Description
This comprehensive course is designed to empower software engineers, developers, and verification engineers with advanced Python programming skills for effective Object-Oriented Programming (OOP) and hardware verification tasks. Participants will delve into the fundamentals of Python and explore advanced concepts, including classes, inheritance, copy mechanisms, randomization, inter-process communication with queues, and task synchronization with events. The course will also provide hands-on experience in building a verification environment, encompassing generators, drivers, monitors, and scoreboards for robust Design Under Test (DUT) verification.Key Topics Covered:Object-Oriented Programming (OOP) in Python:Understanding classes and objectsEncapsulation, inheritance, and polymorphismMethod overriding and operator overloadingCopy Mechanisms:Shallow and deep copy in PythonBest practices for efficient copyingCopying complex data structuresRandomization Techniques:Utilizing the 'random' module for pseudo-random number generationRandomizing data for diverse test scenariosSeed management for reproducibilityInter-Process Communication:Introduction to Python multiprocessingCommunication using queuesSynchronization and data exchange between processesTask Synchronization:Implementation of event-driven synchronizationCoordinating tasks with eventsAvoiding race conditions and deadlocksVerification Environment:Designing a verification environment for a Design Under Test (DUT)Developing generators for stimulus creationBuilding robust drivers for interfacing with the DUTMonitoring and analyzing DUT behavior with monitorsScoreboarding techniques for result verificationHands-On Projects:Participants will engage in practical exercises and projects throughout the course, applying the learned concepts to real-world scenarios. This will include creating a complete verification environment for a sample DUT, incorporating OOP principles, copy mechanisms, randomization, and inter-process communication.By the end of this course, participants will possess advanced Python skills, enabling them to design and implement efficient and scalable verification environments for hardware designs, while incorporating best practices in OOP and software development. This course is ideal for professionals working in fields such as hardware verification who want to enhance their Python proficiency for building Class based Verification environment in Python.
Overview
Section 1: Fundamentals of Classes part 1
Lecture 1 Fundamentals of Class
Lecture 2 Creating class p1
Lecture 3 Code
Lecture 4 Creating class p2
Lecture 5 Code
Lecture 6 Creating Class p3
Lecture 7 Code
Lecture 8 Understanding self p1
Lecture 9 Understanding self p2
Lecture 10 Code
Lecture 11 Double Underscore Methods
Lecture 12 Code
Lecture 13 User defined methods in Class
Lecture 14 Code
Lecture 15 Deleting Class
Lecture 16 Code
Section 2: Fundamentals of Classes part 2
Lecture 17 Inheritance P1
Lecture 18 Code
Lecture 19 Inheritance P2
Lecture 20 Code
Lecture 21 Shallow and Deep Copy
Lecture 22 Shallow Copy
Lecture 23 Deep Copy
Lecture 24 Code
Section 3: Interprocess Communication (IPC)
Lecture 25 IPC with functions
Lecture 26 Code
Lecture 27 IPC with classes
Lecture 28 Code
Lecture 29 Configurable delays
Lecture 30 Code
Lecture 31 Default behavior of Queue
Lecture 32 Code
Lecture 33 Queue with user defined size
Lecture 34 Code
Lecture 35 Event within task for single transaction P1
Lecture 36 Event within task for single transaction P2
Lecture 37 Code
Lecture 38 Event within task for multiple transaction
Lecture 39 Code
Lecture 40 Event with Mulitple classes
Lecture 41 Code
Section 4: Randomization
Lecture 42 Adding random variables
Lecture 43 Code
Lecture 44 Using randomize_with
Lecture 45 Code
Lecture 46 Adding Constraints : Standalone
Lecture 47 Code
Lecture 48 Adding Constraints : Combined
Lecture 49 Code
Lecture 50 Adding Constraints : Overwriting Constraint
Lecture 51 Code
Lecture 52 Adding Constraints : Solving Order
Lecture 53 Code
Lecture 54 Adding Constraints : Dependent Constraint
Lecture 55 Code
Lecture 56 Adding Constraints : User defined weighted distribution
Lecture 57 Code
Section 5: Building Verification Environment
Lecture 58 Understanding Verification environment P1
Lecture 59 Understanding Verification environment P2
Lecture 60 Understanding Verification environment P3
Lecture 61 Understanding Verification environment P4
Lecture 62 Understanding Verification environment P5
Lecture 63 Adding Transaction, Generator and Driver P1
Lecture 64 Adding Transaction, Generator and Driver P2
Lecture 65 Adding Transaction, Generator and Driver P3
Lecture 66 Code
Lecture 67 Adding Monitor and Scoreboard P1
Lecture 68 Adding Monitor and Scoreboard P2
Lecture 69 Code
Section 6: Project : 4-bit Synchronus Adder
Lecture 70 Design
Lecture 71 TB Part 1
Lecture 72 TB Part 2
Lecture 73 TB Part 3
Lecture 74 Code
If you're excited about Python and DUT verification with Python, this is the place for you.