لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش میزهای تست 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
نمایش نظرات