آموزش پوشش عملکردی SystemVerilog برای تازه کار

SystemVerilog Functional Coverage for Newbie

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: راهنمای گام به گام استفاده از ابتدا از پوشش عملکردی در سطل‌های صریح و ضمنی تأیید، سطل‌های پیش‌فرض سطل‌های غیرقانونی، سطل‌های نادیده‌گیری، سطل‌های عام، سطل‌های عام، سطل‌های پیش‌فرض، گروه پوششی، رویدادهای نمونه‌گیری، سطل‌های انتقال مجدد گروه پوششی قابل استفاده مجدد و استفاده متقاطع پوشش‌دهی از Functional TB و سیستم Cologerii نمایش پوشش عملکردی با شمارنده ها، رمزگذارهای اولویت، جمع کننده ها، FIFO، SPI و چند مورد دیگر RTL پیش نیازها: مبانی Verilog


با پیشرفت در زبان‌ها و IPهای توصیف سخت‌افزار، فرآیند تأیید روز به روز پیچیده و زمان‌بر می‌شود. HDL قابلیت هایی اضافه کرده است که به مهندس اجازه می دهد تا Testbench را برای سیستم های پیچیده طراحی و بنویسد. اما تأیید قصد طراح و تصمیم‌گیری مجموعه‌ای از محرک‌های مناسب برای برآورده کردن طرح تأیید، همیشه با HDL آسان نیست. از این رو System Verilog برای برآوردن این نیاز با افزودن ساختارهای مستقل به زبان، ادعاها و پوشش را معرفی می کند. اظهارات SystemVerilog به ما اجازه می‌دهد تا قصد طراح را در هر دو حوزه زمانی و غیرموقت تأیید کنیم. پوشش عملکردی مانند بازخورد محرکی است که به DUT ارسال می کنیم تا بتوانیم در کمترین زمان به بهترین محرک برای تأیید طرح برسیم.

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


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

IDE و انگیزه IDE and Motivation

  • انگیزه 1: دانستن تعداد مقادیر تصادفی مورد نیاز برای برآورده کردن تأیید Motivation 1 : Knowing how many random values are required to meet Verification

  • انگیزه 2: دانستن همه انتقال ها توسط SPI پوشش داده می شود Motivation 2 : Knowing all the Transitions are Covered by SPI

  • انگیزه 3: تمام ترکیبات ممکن در حین تأیید آزمایش می شوند Motivation 3: All the possible combinations are tested during Verification

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

  • کد Code

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

شروع شدن Getting Started

  • دستور جلسه Agenda

  • مبانی Fundamentals

  • مبانی Covergroup، Coverpoint و bins Fundamentals of Covergroup, Coverpoint and bins

  • درک گروه پوششی و رویداد Understanding Covergroup and Event

  • کد Code

  • درک option.per_instance Understanding option.per_instance

  • کد Code

  • روشن/خاموش کردن پوشش با شرایط خاص Turning on / off Coverage with specific conditons

  • کد Code

شروع کار با سطل زباله Getting started with bins

  • دستور جلسه Agenda

  • مبانی Fundamentals

  • فرمت بن‌های ضمنی و بن‌های آشکار Format of Implicit bins and Explicit bins

  • روش های مختلف تعیین مقادیر bins Different ways of specifying bins values

  • سطل های ضمنی Implicit bins

  • کد Code

  • اندازه سطل های اتوماتیک Size of automatic bins

  • کد Code

  • در حال گسترش bin_max Extending bin_max

  • کد Code

  • سطل های صریح P1 Explicit bins P1

  • کد Code

  • خلاصه همه احتمالات با تعداد سطل ها Summary of all the possibilities with bins count

  • تظاهرات Demonstration

  • کد Code

  • bins صریح P2: ایجاد آرایه از bins Explicit bins P2 : Creating array of bins

  • کد Code

  • مزایای نام bins هنگام کار با آرایه Advantages of bins names while working with array

  • کد Code

  • کار با enum Working with enum

  • کد Code

  • مورد استفاده: کار با FSM ساده در Verilog Used Case : Working with Simple FSM in Verilog

  • کد Code

  • مورد استفاده: کار با FSM ساده در SystemVerilog Used Case : Working with Simple FSM in SystemVerilog

  • کد Code

  • A31 A31

  • A32 A32

فیلتر کردن سطل ها bins Filtering

  • مبانی Fundamentals

  • فیلتر کردن مقادیر متغیر Filtering Values of the Variable

  • کد Code

  • فیلتر کردن مقادیر از محدوده مقادیر Filtering Values from the range of Values

  • کد Code

  • آشنایی با سطل های غیر قانونی Understanding Illegal_bins

  • کد Code

  • مشکلات با Illegal_bins Difficulties with Illegal_bins

  • کد Code

  • ایجاد سطل های خالی Creation of empty bins

  • کد Code

  • درک ignore_bins Understanding ignore_bins

  • کد Code

  • مزایای ignore_bins Advantages of ignore_bins

  • کد Code

  • نادیده گرفتن محدوده مقادیر از پوشش Ignoring range of values from Coverage

  • کد Code

  • سطل های پیش فرض Default bins

  • کد Code

  • خلاصه Summary

  • حضور X، Z یا ? Handling presence of X, Z or ?

  • سطل های عجایب Wildcard bins

  • کد Code

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

  • کد Code

  • A41: سطل های Wildcard را ترجیح دهید A41: Prefer Wildcard bins

  • A42: سطل های Wildcard را ترجیح دهید A42: Prefer Wildcard bins

  • سوالات متداول 1 FAQ 1

گروه پوششی قابل استفاده مجدد Reusable Covergroup

  • مبانی Fundamentals

  • عبور از ارزش Pass by Value

  • کد Code

  • با مرجع عبور کنید Pass by reference

  • کد Code

  • نکاتی که باید هنگام کار با Generic Covergroup به خاطر بسپارید Things to remember while working with Generic Covergroup

  • کد Code

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

  • کد Code

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

  • کد Code

روش های نمونه Sample Methods

  • مبانی Fundamentals

  • روش 1: نمونه برداری از رویداد با گروه پوششی Method 1: Sampling Event with covergroup

  • کد Code

  • روش 2: استفاده از روش Pre-build sample(). Method 2 : Using Pre-build sample() method

  • کد Code

  • تعریف کاربر Sample Method در داخل بلوک وظیفه User define Sample Method inside task block

  • تعریف کاربر Sample Method در داخل بلوک تابع User define Sample Method inside function block

  • کد Code

  • روش نمونه تعریف شده توسط کاربر در داخل بلوک Property User defined Sample method inside Property block

  • کد Code

  • خلاصه Summary

  • A61: روش Sample() را ترجیح دهید A61 : Prefer Sample() method

  • A62: Posedge of Clock را به عنوان رویداد ترجیح دهید A62 : Prefer Posedge of Clock as event

چند گزینه مفید دیگر Few other Useful options

  • گزینه.وزن option.weight

  • کد Code

  • گزینه.هدف option.goal

  • کد Code

  • استفاده متفاوت از گزینه DIfferent usage of option

  • کد Code

پوشش متقابل Cross Coverage

  • درک متقابل پوشش Understanding Cross Coverage

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

  • کد Code

  • ترکیب فیلترینگ Filtering Combination

  • کد Code

  • روش ترکیبی فیلتر 2: binsof(SIG) intersec {VAL} Filtering Combination Method 2 : binsof(SIG) intersec {VAL}

  • کد Code

  • فیلتر کردن ترکیب خاص از Cross Filtering Specific Combination from Cross

  • A81: پوشش متقاطع را ترجیح دهید A81: Prefer Cross Coverage

  • A82: سطل های Cross و Ignore را ترجیح دهید A82 : Prefer Cross and Ignore bins

  • A83: سطل های Cross و Ignore را ترجیح دهید A83 : Prefer Cross and Ignore bins

سطل های انتقال Transition bins

  • پوشش انتقال ساده Simple Transition Coverage

  • کد Code

  • انتقال تکرار متوالی Consecutive Repetition Transition

  • کد Code

  • انتقال غیر متوالی Non-Consecutive Transition

  • کد Code

  • خلاصه Summary

پروژه ها Projects

  • رمزگذار اولویت: Verilog TB Priority Encoder : Verilog TB

  • کد Code

  • FIFO: Verilog TB FIFO :Verilog TB

  • کد Code

  • استفاده از سطل های انتقال: رابط جانبی سریال Usage of Transition bins : Serial Peripheral Interface

  • کد Code

  • شمارنده 8 بیتی: SystemVerilog TB 8-bit Counter : SystemVerilog TB

  • کد Code

نمایش نظرات

آموزش پوشش عملکردی SystemVerilog برای تازه کار
جزییات دوره
8.5 hours
117
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
541
4.6 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Kumar Khandagle Kumar Khandagle

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