آموزش Writing SystemVerilog Testbenches برای تازه کار

Writing SystemVerilog Testbenches for Newbie

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: راهنمای گام به گام SystemVerilog از صفر تا قهرمان در نوشتن SystemVerilog Testbenches رویکرد عملی برای یادگیری SystemVerilog مؤلفه‌های وراثت، چند شکلی، تصادفی‌سازی در SystemVerilog درک ارتباطات بین فرآیندی درک کلاس، فرآیندها، رابط‌ها و محدودیت‌ها همه چیزهایی که باید در مورد SystemVerilog برای Verview ظاهر شود. شما Loving SystemVerilog را شروع خواهید کرد پیش نیازها: درک سیستم دیجیتال یا دیجیتال الکترونیک درک Verilog

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

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

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

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


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

کلاس در System Verilog Class in System Verilog

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

  • کد Code

  • چرا کلاس برای ما مهم است؟ Why Class is important for us ?

  • چگونه یک کلاس ایجاد می کنیم How we create a class

  • کد Code

  • وقتی متد ()new را فراخوانی نکنید چه اتفاقی می افتد. What happen when you do not invoked new() method.

  • نوشتن داده برای عضو Data کلاس Writing data to the Data member of the class

  • نحوه استفاده از متد در کلاس How we use Method in Class

  • خواندن داده ها از روش Reading data from the Method

  • کد Code

  • به روز رسانی عضو دیتا با کمک روش Updating Data member with the help of Method

  • کد Code

  • پنهان کردن داده ها در کلاس ویدیو Data Hiding in Class Video

  • نسخه نمایشی وراثت Inheritance Demo

  • طبقه مشتق/ارث Derived Class / Inheritance

  • کد Code

  • اگر کلاس مشتق شده سعی کند به عضو داده محلی دسترسی پیدا کند چه می شود What if Derived class try to access local data member

  • بردن Takeaway

سوال متداول از بخش قبلی Frequently asked question from Previous Section

  • Q1 Q1

تصادفی سازی و ارتباطات بین فرآیندی Randomization and Interprocess Communication

  • تصادفی سازی متغیر Randomization of the Variable

  • کد Code

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

  • کد Code

  • آشنایی با محدودیت های خارجی و داخلی Understanding External and Internal Constraints

  • کد Code

  • بررسی موفقیت آمیز بودن تصادفی سازی Checking if Randomization is successful

  • کد Code

  • آشنایی با روش pre_randomize و post_randomize Understanding pre_randomize and post_randomize Method

  • کد Code

ارتباطات بین فرآیندی Interprocesss Communication

  • درک FORK JOIN Understanding FORK JOIN

  • کد Code

  • خلاصه Summary

  • ارتباطات بین فرآیندی Interprocesss Communication

  • درک رویداد Understanding Event

  • کد Code

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

  • کد Code

ژنراتور و درایور Generator and Driver

  • درک SystemVerilog Link 1 Understanding SystemVerilog Link 1

  • درک ژنراتور و درایور Understanding Generator and Driver

  • کد Code

  • مقدار محرک تولید شده توسط Generator و دریافت شده توسط Driver را چاپ کنید Print the Value of the Stimulus generated by Generator and received by Driver

  • یک کد ژنراتور و درایور برای ماژول بنویسید Write a Generator and Driver code for the Module

رابط ها Interfaces

  • آنچه در این ماژول پوشش داده خواهد شد What will be covering in this module

  • ایجاد رابط Creating Interface

  • کد Code

  • 20 محرک تصادفی برای رابط مورد بحث در مثال قبلی ایجاد کنید Create 20 random Stimulus for the Interface discussed in previous example

  • اتصال رابط به DUT: با استفاده از تخصیص فرآیندی و Ckt ترکیبی Connecting Interface to DUT : Using Procesural Assignment and Combinational Ckt

  • کد Code

  • به جلو نزدیک شوید Approach ahead

  • اتصال رابط به DUT: با استفاده از تخصیص مداوم Connecting Interface to DUT : Using Continuous Assignment

  • کد Code

  • اتصال رابط به DUT: مدار متوالی Connecting Interface to DUT : Sequential Circuit

  • کد Code

  • اتصال کلاس درایور به رابط Connecting Driver Class to Interface

  • کد Code

  • کد لینک 1 را کامل کنید Complete Link 1 Code

  • کد Code

مانیتور و تابلوی امتیاز Monitor and Scoreboard

  • ایده انتزاعی در مورد مانیتور و تابلوی امتیاز Abstract Idea about Monitor and Scoreboard

  • کد Code

  • افزودن تراکنش و رابط به همراه مانیتور و تابلوی امتیاز Adding Transaction and Interface along with Monitor and Scoreboard

  • کد Code

  • 25 محرک برای کد ذکر شده در برگه دستورالعمل تولید کنید Generate 25 stimuli for the Code mentioned in Instruction tab

محیط زیست و پروژه ها Environment and Projects

  • خلاصه Summary

  • خلاصه Summary

  • ترجیح دادن ویرایشگر متن متفاوت برای پروژه های بزرگ Preferring different Text Editor for big projects

  • Complete Testbench مثال 1: 8 بیتی و دروازه Complete Testbench Example 1 : 8-bit AND Gate

  • کد Code

  • Complete Testbench مثال 2: جمع کننده 8 بیتی Complete Testbench Example 2 : 8-bit Adder

  • کد Code

  • طراحی SV Testbench برای ضریب 16 بیتی Design SV Testbench for 16-bit Multiplier

  • Complete Testbench مثال 3: شمارنده 8 بیتی Complete Testbench Example 3: 8-bit Counter

  • کد Code

  • طراحی SV testbench برای شمارنده 16 بیتی Design SV testbench for the 16-bit Counter

  • Complete Testbench مثال 4: RAM Complete Testbench Example 4 : RAM

  • کد Code

  • تطبیق کد برای برآوردن الزامات P1 Adapting Code to meet requirements P1

  • کد Code

  • تطبیق کد برای برآوردن الزامات P2 Adapting Code to meet requirements P2

  • کد Code

  • تطبیق کد برای برآوردن الزامات P3 Adapting Code to meet requirements P3

  • کد Code

  • تطبیق کد برای برآوردن الزامات P4 Adapting Code to meet requirements P4

  • کد Code

  • کد کامل Complete Code

سوال متداول Frequently asked question

  • چرا randc با محدودیت مقداری تکراری ایجاد می کند (Rishu Choubey) Why randc with constraint generate some repetitive values (Rishu Choubey)

استفاده از بلوک برنامه (فقط برای کاربران VERA که دیگران می توانند از آن صرف نظر کنند) Use of Program Block (Only for VERA Users others can skip)

  • قسمت 1 Part 1

  • قسمت 2 Part 2

  • کد Code

مسیر پیش رو Path Ahead

  • دوره آموزشی SystemVerilog Fundamentals را کامل کنید Complete SystemVerilog Fundamentals Course

  • دوره مشترک پروژه های تأیید اعتبار SystemVerilog Common SystemVerilog Verification Projects Course

  • مبانی اظهارات SystemVerilog SystemVerilog Assertions Fundamentals

  • مبانی پوشش عملکردی SystemVerilog SystemVerilog Functional Coverage Fundamentals

  • تأیید RTL با UVM برای تازه کار RTL Verification with UVM for Newbie

نمایش نظرات

آموزش Writing SystemVerilog Testbenches برای تازه کار
جزییات دوره
8 hours
93
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,150
4.4 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

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