آموزش میزهای تست SystemVerilog با Xilinx Vivado 2020

Learning SystemVerilog Testbenches with Xilinx Vivado 2020

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: راهنمای گام به گام از Scratch Learning SystemVerilog Testbenches در Xilinx Vivado Design Suite 2020 رویکرد عملی برای یادگیری SystemVerilog مؤلفه‌های ارث، چندشکلی، تصادفی‌سازی در SystemVerilog درک ارتباطات بین فرآیندی درک کلاس، فرآیندها، رابط‌ها و محدودیت‌ها قبل از ظاهر شدن سیستمVerilog مصاحبه ها شما شروع به دوست داشتن SystemVerilog از صفر تا قهرمان در نوشتن می کنید SystemVerilog Test Benches پیش نیازها: درک سیستم دیجیتال یا الکترونیک دیجیتال درک Verilog

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

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

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

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


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

معرفی Introduction

  • نحوه دریافت Vivado IDE How to get Vivado IDE

  • فایل Vivado LIC Vivado LIC File

  • اضافه کردن بردهایی مانند Nexys 4 DDR که در Vivado موجود نیستند Adding boards such as Nexys 4 DDR which are not available in the Vivado

  • تأیید پیکربندی ابزار Verifying Tool Configuration

  • کد Code

حقایق و ترفندهای رایج Common Facts and Tricks

  • هشدار متداول: شی شبیه سازی قابل ردیابی نیست Common Warning : Simulation object is not Tracable

  • خطای رایج: تقویت:: سیستم فایل:: حذف Common Error : boost::filesystem::remove

  • پیدا کردن خطا در کد Finding Errors in Code

معرفی کلاس Introduction to Class

  • ایجاد کلاس Creating a Class

  • کد Code

  • درک بیانیه کلاس Understanding Class declaration

  • استفاده از Constructor برای تغییر پویا اعضای داده Using Constructor to dynamically change data members

  • کد Code

  • یک سازنده برای اختصاص مقدار 16'h1111 به عضو داده 16 بیتی ایجاد کنید. Create a constructor to assign value 16'h1111 to the 16-bit data member

  • نوشتن داده به عضو داده با استفاده از تابع Writing data to data memeber using function

  • کد Code

  • خواندن داده ها از تابع Reading data from the function

  • کد Code

  • یک تابع در داخل کلاس ایجاد کنید تا نتیجه جمع را برگردانید Create a Function inside the class to return the result of addition

  • پنهان کردن داده ها در SV Data hiding in SV

  • کد Code

  • تکلیف 3 Assignment 3

  • استفاده از اکسترن با Function Using extern with Function

  • درک این کلمه کلیدی Understanding this keyword

  • کد Code

درک تراکنش و مولد Understanding Transaction and Generator

  • اجزای میز تست SV Components of SV testbench

  • درک تراکنش Understanding Transaction

  • درک تصادفی سازی در SV Understanding randomization in SV

  • کد Code

  • rand vs randc rand vs randc

  • کد Code

  • خلاصه Summary

  • تصادفی سازی موفقیت آمیز و کار در سطح سیستم Randomization Successful and system level task

  • کد Code

  • درک محدودیت ها در SV Understanding Constraints in SV

  • کد Code

  • نحوه حذف محدودیت خاص در سل How to remove spcific constraint in TB

  • محرک های تصادفی برای ماژول ایجاد کنید Create random stimuli for the module

  • محرک های تصادفی برای ماژول ایجاد کنید Create random stimuli for the module

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

  • درک FORK JOIN Understanding FORK JOIN

  • کد Code

  • درک FORK JOIN_NONE و JOIN_ANY Understanding FORK JOIN_NONE and JOIN_ANY

  • خلاصه FORK_JOIN Summary of FORK_JOIN

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

  • کد Code

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

  • کد Code

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

  • SystemVerilog Testbench Link 1 SystemVerilog Testbench Link 1

  • مثال 1 Example 1

  • کد 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

  • نحوه نوشتن Interface How we write Interface

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

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

  • کد Code

  • نحوه مشاهده مقادیر در نمایشگر شکل موج How to observe values on Waveform Viewer

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

  • کد Code

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

  • کد Code

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

  • کد Code

  • ادغام همه چیزهایی که تاکنون آموخته ایم Merging everything that we learned so far

  • کد Code

  • تکمیل لینک 1 Completing Link 1

  • کد Code

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

  • شروع کار با مانیتور و تابلوی امتیاز Getting Started with Monitor and Scoreboard

  • کد Code

  • افزودن پیچیدگی به طراحی ما Adding Complexity to our design

  • کد Code

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

کلاس و پروژه های محیطی Environment Class and Projects

  • خلاصه Summary

  • خلاصه BD Summary BD

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

  • کد Code

  • ایست بازرسی Checkpoint

  • 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 Fine tunning Code P1

  • کد Code

  • کد تنظیم دقیق P2 Fine tunning Code P2

  • کد Code

  • کد تنظیم دقیق P3 Fine tunning Code P3

  • کد Code

چالش های رایج با Vivado SImulator Common Challenges with Vivado SImulator

  • Vivado نمی تواند زمان را با شی نوع رویداد ردیابی کند Vivado Cannot trace time with Event type object

  • Vivado از ردیابی شی نوع پویا پشتیبانی نمی کند Vivado does not support tracing of the dynamic type object

مسیر پیش رو: یادگیری UVM و ادعاها با Vivado Path Ahead : Learning UVM & Assertions with Vivado

  • یادگیری UVM Learning UVM

  • اظهارات سیستم آموزشیVerilog Learning SystemVerilog Assertions

نمایش نظرات

آموزش میزهای تست SystemVerilog با Xilinx Vivado 2020
جزییات دوره
8.5 hours
85
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
434
4.5 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

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