آموزش اظهارات SystemVerilog (SVA) برای تازه کار

SystemVerilog Assertions (SVA) for Newbie

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: راهنمای گام به گام از بینش‌های اولیه اظهارات System Verilog مطابق با LRM 1800 2017 بینش عملگرهای بولی، ترتیبی و خصوصیات قدرت اظهارات همزمان و فوری بینش وظایف سیستم و توابع لبه نمونه استفاده از ادعاهای محلی هم‌نقل I ادعاها در سیستم های دیجیتال کاربرد ادعاهای همزمان در سیستم های دیجیتال کاربرد ادعا در FSM استفاده از ادعا در SystemVerilog TB پیش نیازها:درک بنیادی Verilog

امروزه، ترکیب ادعاها در تأیید طرح برای تأیید رفتار RTL در برابر مشخصات طراحی رایج است. مستقل از زبان تأیید سخت افزار (HVL) یعنی. Verilog، SystemVerilog، UVM که برای انجام تأیید RTL استفاده می شود، افزودن اظهارات داخل کد تأیید به ردیابی سریع اشکالات کمک می کند. مزیت اصلی استفاده از ادعای SV نسبت به بررسی رفتار مبتنی بر Verilog، اجرای ساده توالی پیچیده است که می تواند زمان و تلاش خوبی را در کدهای مبتنی بر Verilog مصرف کند. ادعای SystemVerilog دارای مجموعه محدودی از اپراتورها است، بنابراین یادگیری آنها دشوار نیست، اما انتخاب یک اپراتور خاص برای برآورده کردن مشخصات طراحی با سالها تجربه همراه است. در این دوره، مجموعه‌ای از مثال‌ها را مرور می‌کنیم تا پایه‌ای برای انتخاب یک استراتژی ادعایی صحیح برای تأیید رفتار RTL ایجاد کنیم. این ادعا در سه طعم ارائه می شود. ادعای فوری، ادعای فوری معوق، ادعای فوری معوق نهایی، و ادعای همزمان. یک ادعا کدی است که مسئول بررسی رفتار طرح است. راستی‌آزمایی کامل طرح اساساً شامل تأیید در دامنه‌های موقت و غیرموقت است. ادعاهای SV فوری و Deferred به ما امکان می‌دهند تا عملکرد طرح را در منطقه غیر موقت تأیید کنیم و ادعای همزمان به ما امکان می‌دهد طرح را در منطقه زمانی تأیید کنیم.


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

مقدمه ای بر SVA Power و استفاده از IDE، دوره Introduction to the SVA Power and IDE Usage, Course

  • چارچوب دوره Course Framework

  • دستور جلسه Agenda

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

  • روش بررسی رفتار قبل از SVA Methodology to verify behavior before SVA

  • کد Code

  • قدرت SVA P1 Power of SVA P1

  • کد Code

  • قدرت SVA P2 Power of SVA P2

  • کد Code

  • قدرت SVA P3 Power of SVA P3

  • کد Code

  • قدرت SVA p4 Power of SVA p4

  • کد Code

  • رفتار گزاره های ادعا در سنتز Behavior of the Assertion statements in Synthesis

  • کد Code

  • افزودن پورت ها در بیانیه Assertion Adding ports in the Assertion statement

  • کد Code

  • ساده ترین استراتژی اشکال زدایی برای رفتار غیرمنتظره Simplest Debug strategy for unexpected behavior

  • کد Code

  • درک تکالیف و امتحان Understanding Assignments and Quiz

  • A1 A1

  • امتحان Quiz

شروع شدن Getting Started

  • دستور جلسه Agenda

  • شروع با Assertion Getting Started with Assertion

  • مشکلات با مناطق و اشکالات شبیه سازی Difficulties with regions and Simulation glictches

  • حذف اشکالات شبیه سازی و افزودن ادعای فوری معوق Removing Simulation Glitches and addition of the Deferred Immediate Assertion

  • ظهور ادعای فوری معوق نهایی Rise of Final Deferred Immediate Assertion

  • بررسی اجمالی Overview

  • انتزاع رویدادها و مناطق Abstracting events and Regions

  • نحوه تشخیص نوع ادعا How we identify type of assertion

  • مبانی ادعای فوری ساده Fundamentals of Simple Immediate Assertion

  • تظاهرات Demonstration

  • کد Code

  • مبانی ادعای فوری به تعویق افتاده مشاهده شده/ادعای فوری معوق نهایی Fundamental of Observed Deferred Immediate / Final Deferred Immediate Assertion

  • تظاهرات Demonstration

  • کد Code

  • مبانی ادعای همزمان Fundamental of Concurrent Assertion

  • تظاهرات Demonstration

  • کد Code

  • غیرفعال کردن قابلیت های چک Disabling the Check Capabilities

  • کد Code

  • غیرفعال کردن گزارش ادعا/غیرفعال کردن جمعی ادعاهای متعدد Turning off assertion reporting / Collectively disabling Multiple assertions

  • کد Code

  • کاربرد $asserton و $assertoff Application of $asserton and $assertoff

  • کد Code

  • معنی Assert/Deassert برای انواع مختلف سیگنال Meaning of Assert / Deassert for different type of signal

  • A21 A21

  • P2 P2

  • A22 A22

  • سوالات متداول: Q1 FAQ : Q1

شروع با ادعای همزمان Getting Started with Concurrent Assertion

  • دستور جلسه Agenda

  • لایه ها در اظهارات همزمان Layers in Concurrent Assertions

  • ترفندها Tricks

  • ارزیابی تک یا چندگانه اموال Single or Multiple Evaluation of Property

  • کد Code

  • نحوه فیلتر کردن Vacuous Success How to filter Vacuous Success

  • کد Code

  • ملک با استدلال Property with arguments

  • کد Code

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

  • کد Code

  • درک لبه های ساعت Understanding Clock edges

  • کد Code

  • ساعت پیش فرض Default Clocking

  • کد Code

  • A31 A31

  • A32 A32

  • P3 P3

اپراتورهای مفهومی Implication Operators

  • دستور جلسه Agenda

  • مفاهیم اصولی اپراتورها Implication Operators Fundamentals

  • نمایش: اپراتور مفهومی همپوشانی Demonstration : Overlapping Implication Operator

  • کد Code

  • نمایش: اپراتور مفهومی غیر همپوشانی Demonstration : Non-Overlapping Implication Operator

  • کد Code

  • A41 A41

  • A42 A42

  • A43 A43

  • A44 A44

  • A45 A45

  • امتحان Quiz

وظیفه سیستم قسمت 1 System Task Part 1

  • دستور جلسه Agenda

  • استفاده از $sampled Use of $sampled

  • کد Code

  • $ با سیگنال تک بیتی و چند بیتی افزایش یافت $rose with Single bit and Multi-bit Signal

  • کد Code

  • تعیین ساعت برای تابع نمونه Specifying clock for the sample function

  • $ با Single bit و Multibit Signal سقوط کرد $fell with Single bit and Multibit Signal

  • کد Code

  • شروع با $ past Getting Started with $past

  • تظاهرات Demonstration

  • کد Code

  • خلاصه Summary

  • $ گذشته با تیک تک ساعت $past with single clock tick

  • موارد مورد استفاده معمولی Typical Used Cases

  • نمایش چند مورد استفاده شده Demonstration of few used cases

  • کد Code

  • A51 A51

  • A52 A52

  • A53 A53

  • A54 A54

  • A55 A55

  • امتحان Quiz

عملگرهای توالی Sequence Operators

  • دستور جلسه Agenda

  • شروع با تاخیر اپراتور ## Getting Started with delay Operator ##

  • تظاهرات Demonstration

  • کد Code

  • مدیریت تاخیر متغیر Handling Variable delay

  • کد Code

  • تاخیر بی حد و حصر Unbounded Delay

  • کد Code

  • خلاصه Summary

  • شروع کار با Repetition Operator Getting Started with Repetition Operator

  • عملگر تکرار متوالی Consectuive Repetition Operator

  • کد Code

  • عملگر تکرار با برد Repetition Operator with range

  • کد Code

  • عملگر تکرار غیر متوالی Non-Consectuive Repetition Operator

  • کد Code

  • عملگر تکرار غیر متوالی با برد Non-Consecutive Repetition Operator with range

  • کد Code

  • خلاصه Summary

  • GOTO در مقابل تکرار غیر متوالی GOTO vs Non-Consecutive Repetition

  • کد Code

  • کد Code

  • بینش GOTO در مقابل تکرار غیر متوالی P1 GOTO vs Non-Consecutive Repetition Insights P1

  • GOTO در مقابل بینش‌های تکرار غیر متوالی P2 GOTO vs Non-Consecutive Repetition Insights P2

  • کد Code

  • موارد استفاده شده Used Cases

  • A61 A61

  • A62 A62

  • A63 A63

  • A64 A64

  • A65 A65

  • A66 A66

  • امتحان Quiz

کار با چندین توالی Working with Multiple Sequences

  • دستور جلسه Agenda

  • مبانی اپراتورهای بولی Fundamentals of Boolean Operators

  • استفاده از عملگر AND Usage of AND operator

  • کد Code

  • استفاده از عملگر OR Usage of OR operator

  • استفاده از عملگر NOT Usage of NOT operator

  • مورد استفاده شده Used Case

  • کد Code

  • مورد استفاده دوم Used Case II

  • خلاصه ای از موفقیت و شکست با انواع اپراتورها Summary on Success and Failure with operator types

  • خلاصه زمان بندی موفقیت و شکست عملگر AND و OR Summary of AND and OR operator Success and Failure timings

  • مبانی کل، درون، P1 را قطع می کنند Fundamentals of throughout, within, intersect P1

  • مبانی کل، درون، P2 را قطع می کنند Fundamentals of throughout, within, intersect P2

  • موفقیت و شکست در سراسر Success and Failure of throughout

  • استفاده از سراسر Usage of throughout

  • کد Code

  • مبانی درون Fundamentals of within

  • موفقیت و شکست های درون اپراتور Success and failures of within operator

  • استفاده از اپراتور درون usage of Within operator

  • کد Code

  • اصول عملگر Intersect Fundamental of Intersect Operator

  • استفاده از عملگر Intersect Usage of the Intersect Operator

  • کد Code

  • موارد استفاده شده Used Cases

  • تظاهرات I Demonstration I

  • کد Code

  • تظاهرات دوم Demonstration II

  • کد Code

  • تظاهرات III Demonstration III

  • کد Code

  • A71 A71

  • A72 A72

  • A73 A73

  • A74 A74

  • A75 A75

وظایف سیستم قسمت 2 System Tasks Part 2

  • دستور جلسه Agenda

  • $onehot در مقابل $onehot0 $onehot vs $onehot0

  • کد Code

  • اجرای کدگذاری One Cold Implementation of One Cold encoding

  • یک سرماخوردگی One Cold

  • کد Code

  • استفاده دیگری از $onehot Yet another use of $onehot

  • کد Code

  • ناشناخته () isunknown()

  • کد Code

  • $countbits، $countones $countbits, $countones

  • کد Code

  • $تغییر شد و $پایدار $changed and $stable

  • کد Code

  • ارزیابی با تیک تک ساعت Evaluation with Single Clock tick

  • کد Code

  • موارد استفاده شده Used Cases

  • کد Code

  • خلاصه Summary

  • A81 A81

  • A82 A82

  • A83 A83

  • A84 A84

عملگرهای منطقی زمانی خطی Linear Temporal Logic Operators

  • دستور جلسه Agenda

  • شروع با در نهایت Getting started with eventually

  • استفاده متداول از در نهایت Common Usage of eventually

  • شکل قوی و ضعیف در نهایت Strong and weak form of eventually

  • موفقیت و شکست در نهایت Success and Failure of eventually

  • تظاهرات در نهایت Demonstration of eventually

  • تظاهرات قوی و ضعیف Strong and Weak demonstration

  • کد Code

  • کد Code

  • خلاصه Summary

  • دفعه بعد nexttime

  • کد Code

  • تا زمان until

  • درک موفقیت و شکست Understanding Success and Failure

  • تظاهرات Demonstration

  • کد Code

  • ماهیت قوی و ضعیف تا Strong and Weak nature of until

  • کد Code

  • به دنبال اپراتور Followed by Operator

  • تظاهرات Demonstration

  • کد Code

  • A91 A91

  • A92 A92

  • A93 A93

  • A94 A94

  • A95 A95

متغیرهای محلی Local Variables

  • شروع شدن Getting Started

  • ابتدا به متغیرهای محلی نگاه کنید First look at Local Variables

  • کد Code

  • محدوده و متغیر محلی Range and Local Variable

  • کد Code

  • استفاده از متغیر محلی در جمع کننده Sychronus Using Local Variable in Sychronus adder

  • کد Code

  • تشخیص لبه منحصر به فرد با تاخیر متغیر Handling Variable delay unique edge detection

  • کد Code

  • ACK باید دقیقاً در 50 ثانیه پس از REQ رخ دهد ACK must occur in exactly 50 ns after REQ

  • کد Code

  • اندازه گیری فرکانس ساعت Measuring frequency of clock

مثال های رایج Common Examples

  • اپراتور بولی Boolean Operator

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

  • اپراتور تاخیر Delay Operator

  • اپراتور تاخیر با Range Delay operator with Range

  • تاخیر بی حد و حصر Unbounded Delay

  • اپراتور تکرار Repetition Operator

مورد استفاده شده I: ماشین حالت محدود Used Case I : Finite State Machine

  • درک طراحی Understanding Design

  • بررسی 1: کدگذاری حالت CHECK 1: State Encoding

  • بررسی 2: زمانی را که Reset اعلام شده است بیان کنید CHECK 2 : State when Reset is asserted

  • بررسی 3: حالت انتقال در دین CHECK 3 : State Transition on din

  • بررسی 4: همه ایالت ها حداقل یک بار تحت پوشش قرار می گیرند CHECK 4 : All states are covered atleast once

  • بررسی 5: رفتار خروجی CHECK 5 : Output behavior

  • کد Code

موضوعات متفرقه Miscellaneous Topics

  • درک Bind Understanding Bind

  • کد Code

موارد استفاده شده I : شمارنده Used Cases I : Counter

  • درک طراحی Understanding Design

  • کد Code

  • درک تست ساده Understanding Simple Testbench

  • کد تست Testbench Code

  • بررسی 1: هنگامی که RST اظهار داشت، آن را حذف کنید CHECK 1: DOUT when RST asserted

  • بررسی 2: DOUT باید زمانی معتبر باشد که RST Deassert باشد CHECK 2: DOUT must be valid when RST Deassert

  • مقادیر DOUT برای حالت UP و DOWN M1 بررسی می شود DOUT Values check for UP and DOWN mode M1

  • مقادیر DOUT برای حالت UP و DOWN M2 بررسی می شود DOUT Values check for UP and DOWN mode M2

  • بررسی 5: DOUT باید در هر جایی در طول شبیه سازی ناشناخته باشد CHECK 5: DOUT must be unknown anywhere during simulation

  • کد Code

موارد مورد استفاده II : FIFO Used Cases II : FIFO

  • درک طراحی Understanding Design

  • کد طراحی Design Code

  • بررسی 1: وضعیت کامل و خالی در صورت تایید RST CHECK 1: Status of Full and Empty when RST asserted

  • بررسی 2: وقتی خالی است بخوانید CHECK 2 : Read when empty

  • بررسی 3: وقتی پر شد بنویسید CHECK 3 : Write when FULL

  • بررسی 4: رفتار اشاره گر خواندن و نوشتن در حین خواندن و نوشتن P1 CHECK 4 : Behavior of read and write pointer during Reading and Writing P1

  • بررسی 4: رفتار اشاره گر خواندن و نوشتن در حین خواندن و نوشتن P@ CHECK 4 : Behavior of read and write pointer during Reading and Writing P@

  • بررسی 5: وضعیت مسابقات خالی و پر با مقدار شمارش CHECK 5 : Status of empty and full matches with count value

  • بررسی 6: سیگنال مهم باید همیشه ارزش مشخصی داشته باشد CHECK 6 : Important Signal must have known value all the time

  • بررسی 7: مطابقت داده ها در حین عملیات خواندن و نوشتن CHECK 7: Data match during read and write operation

  • کد Code

مورد استفاده شده: افزودن اظهارات به SV Testbench مبتنی بر کلاس Used Case : Adding Assertions to Class based SV Testbench

  • SV Testbench: جمع کننده همزمان SV Testbench : Synchronus Adder

  • کد طراحی Design Code

  • کد تست Testbench Code

شروع با اظهارات فوری Getting Started with Immediate Assertions

  • دستور جلسه Agenda

  • قالب معمولی ادعای فوری Typical Format of the Immediate assertion

  • کد Code

  • قوانین برای ادعای فوری Rules for immediate assertion

  • کد Code

  • درک اجرای ادعای فوری Understanding Execution of the Immediate assertion

  • استفاده از ادعا در مدار ترکیبی Assertion Usage in Combinational Circuit

  • کد Code

  • استفاده از ادعا در مدار متوالی Assertion usage in Sequential Circuit

  • کد Code

  • اشکالات شبیه سازی Simulation Glitches

  • ادعای فوری برای پیش بینی رفتار بر اساس ساعت Immediate assertion for predicting behavior on the basis of the Clock

  • فوری در مقابل ادعای معوق در مقابل نهایی Immediate Vs Deferred Vs Final Deferred Assertion

  • استفاده از ادعای معوق Deferred assertion Usage

  • LIFO LIFO

  • کد Code

  • FIFO FIFO

  • کلاس تراکنش Transaction class

  • کد Code

امتحان Quiz

  • لینک آزمون فرم گوگل Google Form Quiz Link

مسیر یادگیری پیش رو Learning Path ahead

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

نمایش نظرات

آموزش اظهارات SystemVerilog (SVA) برای تازه کار
جزییات دوره
20.5 hours
250
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
763
4.1 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

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