Tags
Language
Tags
January 2025
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1

Pyuvm Series Part 3 : Python Oops Fundamentals

Posted By: ELK1nG
Pyuvm Series Part 3 : Python Oops Fundamentals

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

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.