آموزش SystemVerilog برای تأیید بخش 1: اصول

SystemVerilog for Verification Part 1: Fundamentals

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: مبانی SystemVerilog زبان ساخت مبانی SystemVerilog برای تأیید RTL مبانی OOP برای مهندس FPGA مبانی روش تأیید تصادفی محدودیت‌ها مبانی معماری لایه‌ای Testbench Creating Generator, Driver, Monitor, Scoreboard, Environment, Quraye,Art. روش های ارتباط بین فرآیندی SV و تصادفی سازی SV پیش نیازها: مبانی Verilog و الکترونیک دیجیتال

صنعت VLSI به دو شاخه محبوب تقسیم می شود. طراحی سیستم و تایید سیستم Verilog، VHDL انتخاب های محبوب برای اکثر مهندسان طراحی که در این حوزه کار می کنند باقی مانده است. اگرچه، تأیید عملکرد اولیه را می توان با زبان توصیف سخت افزار انجام داد. زبان توصیف سخت افزار دارای قابلیت های محدودی برای انجام تحلیل پوشش کد، تست Corner case و غیره است و در واقع گاهی انجام این بررسی با HDL غیر ممکن می شود.

از این رو زبان‌های تأیید تخصصی مانند SystemVerilog به انتخاب اصلی برای تأیید طرح تبدیل می‌شوند.

ماهیت شی گرا SystemVerilog به ویژگی هایی مانند وراثت، چند شکلی و غیره اجازه می دهد تا قابلیت هایی برای یافتن اشکالات مهم در طراحی که HDL به سادگی نمی تواند پیدا کند را اضافه می کند.

راستی‌آزمایی در مقایسه با طراحی یک سیستم دیجیتال مطمئناً پیچیده‌تر و جالب‌تر است و از این رو از تعداد زیادی ساختار OOP در مقابل Verilog تشکیل شده است. SystemVerilog یکی از محبوب‌ترین انتخاب‌ها در میان Verification Engineer برای تأیید سیستم دیجیتال است. این سفر شما را به متداول‌ترین تکنیک‌های مورد استفاده برای نوشتن SystemVerilog Testbench و انجام تأیید تراشه‌ها می‌برد. ساختار این دوره به گونه ای است که هرکسی که می خواهد در مورد System Verilog بیاموزد می تواند همه چیز را درک کند. در نهایت، تمرین کلید متخصص شدن است.


سرفصل ها و درس ها

IDE IDE

  • بررسی اجمالی دوره Course Overview

  • مسیر یادگیری برای دوره Learning Path for Course

  • دستور جلسه Agenda

  • کد را برای نمایش IDE کپی کنید Copy Code for IDE demonstration

  • نحوه استفاده از EDA How to use EDA

  • نحوه استفاده از Xilinx Vivado Design Suite How to use Xilinx Vivado Design Suite

مبانی: ساختارهای رویه ای Fundamentals : Procedural Constructs

  • دستور جلسه Agenda

  • نوع سیگنال در سل Type of signals in TB

  • فرمت بلوک اولیه در Testbench Format of Initial Block in Testbench

  • استفاده از بلوک اولیه Usage of Initial Block

  • اجرای کد Executing Code

  • کد Code

  • A21 A21

  • فرمت همیشه مسدود Format of always Block

  • استفاده از همیشه Block Usage of always Block

  • کد Code

  • A22 A22

  • تراز کردن لبه های ساعت تولید شده و ساعت مرجع Aligning edges of the generated clock and reference clock

  • کد Code

  • درک "دستورالعمل مقیاس زمانی". Understanding `timescale directive

  • تظاهرات Demonstration

  • کد Code

  • A23 A23

  • درک پارامترهای تولید ساعت Understanding parameters for generating Clock

  • نمایش قسمت 1 Demonstration Part 1

  • تظاهرات قسمت 2 Demonstration Part 2

  • کد Code

  • A24 A24

  • خلاصه Summary

درک انواع داده های SV Understading SV datatypes

  • دستور جلسه Agenda

  • انواع داده P1 Datatypes P1

  • انواع داده P2 Datatypes P2

  • انواع داده P3 Datatypes P3

  • انواع داده P4 Datatypes P4

  • نمایش انواع داده P1 Demonstration of Datatypes P1

  • نمایش انواع داده P2 Demonstration of Datatypes P2

  • نمایش انواع داده P3 Demonstration of Datatypes P3

  • نمایش انواع داده P4 Demonstration of Datatypes P4

  • نمایش انواع داده P5 Demonstration of Datatypes P5

  • نمایش انواع داده P6 Demonstration of Datatypes P6

  • نمایش انواع داده P7 Demonstration of Datatypes P7

  • A31 A31

  • درک استفاده از آرایه Understanding usage of array

  • با استفاده از آرایه P1 Using array P1

  • با استفاده از آرایه P2 Using array P2

  • با استفاده از آرایه P3 Using array P3

  • استراتژی های راه اندازی آرایه Array Initialization Strategies

  • تظاهرات Demonstration

  • A32 A32

  • حلقه هایی برای عملیات آرایه تکراری P1 Loops for repetitive array operation P1

  • حلقه هایی برای عملیات آرایه مکرر P2 Loops for repetitive array operation P2

  • حلقه هایی برای عملیات آرایه تکراری P3 Loops for repetitive array operation P3

  • کد Code

  • عملیات آرایه P1: COPY Array Operation P1 : COPY

  • عملیات آرایه P1: مقایسه Array Operation P1 : COMPARE

  • آرایه دینامیک P1 Dynamic Array P1

  • آرایه دینامیک P2 Dynamic Array P2

  • آرایه دینامیک P3 Dynamic Array P3

  • صف P1 Queue P1

  • صف P2 Queue P2

  • A33 A33

  • A34 A34

  • A35 A35

  • استفاده از آرایه با اندازه ثابت Usage of Fixed Size array

  • استفاده از صف Usage of Queue

مبانی تأیید Verification Fundamentals

  • دستور جلسه Agenda

  • درک طرح تأیید P1 Understanding Verification Plan P1

  • درک طرح تأیید P2 Understanding Verification Plan P2

  • تست هدایت شده در مقابل تست تصادفی محدودیت P1 Directed Test Vs Constraint Random Test P1

  • تست مستقیم در مقابل تست تصادفی محدودیت P2 Directed Test Vs Constraint Random Test P2

  • معماری لایه ای P1 Layered Architecture P1

  • معماری لایه ای P2 Layered Architecture P2

  • معماری لایه ای P3 Layered Architecture P3

  • معماری لایه ای P4 Layered Architecture P4

  • خلاصه: معماری لایه ای Summary : Layered Architecture

  • اجزای فردی سل Individual Components of TB

  • خلاصه Summary

مبانی ساخت سیستم Verilog OOP Fundamentals of System Verilog OOP Construct

  • دستور جلسه Agenda

  • مبانی کلاس P1 Fundamentals of Class P1

  • مبانی کلاس P2 Fundamentals of Class P2

  • کد Code

  • مبانی کلاس P3 Fundamentals of Class P3

  • کد Code

  • A51 A51

  • راه های اضافه کردن متد به کلاس Ways to add Method to Class

  • با استفاده از تابع Using Function

  • A52 A52

  • با استفاده از Task Using Task

  • کد Code

  • A53 A53

  • درک عبور از ارزش Understanding Pass by Value

  • درک رمز عبور توسط مرجع Understanding Pass by Reference

  • نمایش ارزش عبور Demonstration of Pass by Value

  • نمایش پاس با مرجع Demonstration of Pass by Reference

  • کد Code

  • خلاصه Summary

  • استفاده از آرایه در تابع Using Array in Function

  • کد Code

  • A54 A54

  • سازنده تعریف شده توسط کاربر User defined Constructor

  • کد Code

  • چندین آرگومان برای سازنده P1 Multiple arguments to Constructor P1

  • چندین آرگومان برای سازنده P2 Multiple arguments to Constructor P2

  • چندین آرگومان برای سازنده P3 Multiple arguments to Constructor P3

  • کد Code

  • A55 A55

  • استفاده از task در کلاس Using task in Class

  • کد Code

  • A56 A56

  • استفاده از کلاس در کلاس Using Class in Class

  • کد Code

  • محدوده عضو داده Scope of Data member

  • کد Code

  • کپی کردن شی Copying Object

  • کد Code

  • استراتژی های کپی کردن Object Strategies to copy Object

  • روش سفارشی Custom Method

  • کد Code

  • درک کپی کم عمق Understanding Shallow Copy

  • نمایش کپی کم عمق Shallow Copy demonstration

  • کد Code

  • درک کپی عمیق Understanding Deep Copy

  • نمایش کپی عمیق Deep Copy demonstration

  • کد Code

  • خلاصه Summary

  • A57 A57

  • گسترش ویژگی های کلاس با وراثت Extending Class properties by Inheritance

  • پلی مورفیسم Polymorphism

  • کد Code

  • درک استفاده از کلمه کلیدی فوق العاده Understanding Usage of Super Keyword

  • کد Code

تصادفی سازی Randomization

  • دستور جلسه Agenda

  • درک ژنراتور Understanding Generator

  • ایجاد مقادیر تصادفی با رند P1 Generating random values with rand P1

  • ایجاد مقادیر تصادفی با رند P2 Generating random values with rand P2

  • کد Code

  • randc در مقابل رند randc vs rand

  • کد Code

  • بررسی تصادفی‌سازی موفقیت‌آمیز است: IF ELSE Checking randomization is successful : IF ELSE

  • بررسی تصادفی‌سازی موفقیت‌آمیز: ادعا Checking randomization is successful : assert

  • کد Code

  • هنگام کار با محرک های متعدد مراقب باشید Care while working with multiple Stimuli

  • کد Code

  • A61 A61

  • اضافه کردن محدودیت: عبارت ساده Adding Constraint : Simple Expression

  • کد Code

  • اضافه کردن محدودیت: کار با محدوده P1 Adding Constraint : Working with Ranges P1

  • اضافه کردن محدودیت: کار با محدوده P2 Adding Constraint : Working with Ranges P2

  • کد Code

  • عملکرد و محدودیت خارجی External Function and Constraint

  • کد Code

  • A62 A62

  • روش‌های تصادفی‌سازی قبل و بعد Pre and Post Randomization Methods

  • کد Code

  • درک سطل randc Understanding randc bucket

  • مواردی که باید هنگام کار با RANDC در نظر بگیرید Things you need to consider while working with RANDC

  • کد Code

  • A63 A63

  • توزیع وزنی P1 Weighted Distribution P1

  • توزیع وزنی P2 Weighted Distribution P2

  • توزیع وزنی P3 Weighted Distribution P3

  • با استفاده از توزیع وزنی P1 Using Weighted Distribution P1

  • با استفاده از توزیع وزنی P2 Using Weighted Distribution P2

  • := در مقابل :/ := vs :/

  • A64 A64

  • عملگر محدودیت Constraint Operator

  • اپراتور مفهومی Implication Operator

  • کد Code

  • اپراتور معادل سازی Equivalence Operator

  • کد Code

  • اپراتور IF ELSE IF ELSE Operator

  • کد Code

  • روشن و خاموش کردن محدودیت Turning ON and OFF Constraint

  • کد Code

  • A65 A65

  • درک FIFO DUT Understanding FIFO DUT

  • کلاس معاملات ساختمانی Building Transaction Class

IPC IPC

  • دستور جلسه Agenda

  • مکانیزم ارتباطات بین فرآیندی Interprocess Communication Mechanism

  • IPC IPC

  • مناسبت ها Events

  • @ VS صبر کنید @ VS Wait

  • کد Code

  • اجرای فرآیند چندگانه Executing Mulitple Process

  • فرآیند چندگانه با بلوک اولیه چندگانه P1 Multiple Process with Multiple Initial block P1

  • فرآیند چندگانه با بلوک اولیه چندگانه P2 Multiple Process with Multiple Initial block P2

  • کد Code

  • فرآیند چندگانه با FORK JOIN P1 Multiple Process with FORK JOIN P1

  • فرآیند چندگانه با FORK JOIN P2 Multiple Process with FORK JOIN P2

  • کد Code

  • نمایش FORK_JOIN Demonstration of FORK_JOIN

  • کد Code

  • درک FORK JOIN_ANY Understanding FORK JOIN_ANY

  • درک FORK JOIN_NONE Understanding FORK JOIN_NONE

  • استفاده از FORK JOIN در Testbench Usage of FORK JOIN in Testbench

  • A81 A81

  • درک سمافور Understanding Semaphore

  • کد Code

  • آشنایی با صندوق پستی P1 Understanding Mailbox P1

  • آشنایی با صندوق پستی P2 Understanding Mailbox P2

  • کد Code

  • تعیین صندوق پستی با سازنده سفارشی Specifying Mailbox with Custom Constructor

  • کد Code

  • ارسال داده های تراکنش با صندوق پستی P1 Sending Transaction data with Mailbox P1

  • ارسال داده های تراکنش با صندوق پستی P2 Sending Transaction data with Mailbox P2

  • کد Code

  • آشنایی با صندوق پستی پارامتری P1 Understanding Parameterized Mailbox P1

  • آشنایی با صندوق پستی پارامتری P2 Understanding Parameterized Mailbox P2

  • آشنایی با صندوق پستی پارامتری P3 Understanding Parameterized Mailbox P3

  • استفاده از صندوق پستی پارامتری شده Using Parameterized Mailbox

  • کد Code

  • A82 A82

  • A83 A83

شروع کار با رابط Getting Started with Interface

  • دستور جلسه Agenda

  • رابط Interface

  • افزودن رابط به Simple RTL P1 Adding Interface to Simple RTL P1

  • افزودن رابط به Simple RTL P2 Adding Interface to Simple RTL P2

  • افزودن رابط به Simple RTL P3 Adding Interface to Simple RTL P3

  • کد Code

  • استفاده از عملگر مسدود کننده برای متغیرهای رابط Using blocking operator for Interface Variables

  • استفاده از اپراتور غیر مسدود کننده برای متغیرهای رابط Using Non-blocking Operator for Interface Variables

  • چرا ما LOGIC را به WIRE و REG در رابط ترجیح می دهیم Why we prefer LOGIC over WIRE and REG in Interface

  • افزودن کد درایور به رابط P1 Adding Driver Code to Interface P1

  • افزودن کد درایور به رابط P2 Adding Driver Code to Interface P2

  • کد Code

  • آشنایی با MODPORT Understanding MODPORT

  • کد Code

  • اضافه کردن ژنراتور P1 Adding Generator P1

  • اضافه کردن ژنراتور P2 Adding Generator P2

  • اضافه کردن ژنراتور P3 Adding Generator P3

  • قوانین مهم Important Rules

  • کد Code

  • اضافه کردن ژنراتور P4 Adding Generator P4

  • اضافه کردن ژنراتور P5 Adding Generator P5

  • کد Code

  • A71 A71

  • خطای تزریق P1 Injecting Error P1

  • خطای تزریق P2 Injecting Error P2

  • کد Code

  • خطای تزریق P3 Injecting Error P3

  • کد Code

  • اضافه کردن مانیتور و صفحه امتیاز P1 Adding Monitor and Scoreboard P1

  • اضافه کردن مانیتور و صفحه امتیاز P2 Adding Monitor and Scoreboard P2

  • اضافه کردن مانیتور و صفحه امتیاز P3 Adding Monitor and Scoreboard P3

  • کد Code

  • بهینه سازی کد مانیتور و تابلوی امتیاز Tweaking Monitor and Scoreboard Code

  • کد Code

  • اضافه کردن مدل ساده جدول امتیاز Adding Simple Scoreboard Model

  • کد Code

  • A72 A72

SystemVerilog برای تأیید قسمت 2 SystemVerilog For Verification Part 2

  • لینک دوره Course Link

نمایش نظرات

آموزش SystemVerilog برای تأیید بخش 1: اصول
جزییات دوره
14 hours
225
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,614
4.5 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

رهبر توسعه دهنده FPGA @ FinTech