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