دوره آموزشی Vivado 1A

نوع آموزش: آموزش حضوری

 

 

Vivado Design Suit Part1A (R05)

پیش نیازها:

  1. آشنایی با یکی از زبان‌های برنامه‌نویسی VHDL یا Verilog
  2. همراه داشتن لب تاپ

امکانات آزمایشگاهی:

  1. بوردهای YE-E15Z با تراشه Artix (هر بورد برای حداکثر دو نفر در نظر گرفته شده است).
  2. پروگرامرهای USB یا JTAG
  3. مستندهای مورد نیاز بورد YE-E15Z برای ورکشاپ شامل معرفی بود، تعریف پایه‌ها و ...

مواردی که در اختیار دانشجویان قرار داده می‌شود:

  1. تمام مستندهایی که در کلاس ارائه می‌شود (به صورت PDF) (توجه: PowerPointها به زبان انگلیسی تهیه شده‌اند و به زبان فارسی ارائه می‌شوند).
  2. تمام کدهای مورد نیاز برای ایجاد و تکمیل پروژه‌های آزمایش‌ها
  3. معرفی سایت و معرفی موارد دیگر در حین ورکشاپ
  4. نرم‌افزار Vivado (در صورت درخواست دانشجویان)
  5. در انتهای دوره مدرک معتبر از طرف شرکت به دانشجویان تقدیم می‌شود.

نکته: امکان تغییر تعداد و عنوان آزمایش‌ها وجود دارد.

روش ارزیابی:

نمره‌ای که در مدرک دانشجو قید می‌شود، براساس ارزیابی‌هایی است که در طول دوره انجام می‌شود. این ارزیابی‌ها عبارتند از:

  1. حضور دانشجو در کلاس:

به دلیل زیاد بودن مطالب، عدم حضور دانشجو و عدم مطالعه باعث فاصله گرفتن از ساختار ورکشاپ و فراگرفتن مطالب خواهد شد. به همین دلیل حضور دانشجو و عدم غیبت در ارزیابی تأثیر مستقیمی دارد.

  1. پرسش و آزمون:

به صورت تصادفی در بعضی از جلسه‌ها آزمون‌های کوتاه یک تا 5 سؤالی برای ارزیابی و همچنین تکرار و تمرین مطالب ارائه شده، از دانشجویان گرفته می‌شود.

  1. انجام آزمایش‌ها

انجام دادن کامل و صحیح آزمایش‌ها و گرفتن نتیجه مطلوب نیز در ارزیابی تأثیر دارد. هدف انجام دادن تمام آزمایش‌ها نیست و در صورت نیاز و کمبود زمان ممکن است یک یا چند آزمایش به صورت کار در منزل ارائه شود. هدف تمرین و تکرار مطالب آموزش داده شده، تلسط بر آن‌ها و یادگیری نکته‌های جدید می‌باشد. بنابراین کیفیت انجام آزمایش‌ها از اهمیت بالایی برخوردار است.

نسخه نرم‌افزار مورد استفاده:

Vivado Design Suit 2017.3

مکان دوره:

شرکت فنی و مهندسی محققان یاسین

سرفصل مطالب:

Latin:

  1. Xilinx ISE Design Suit Overview
  2. Vivado Design Suit
  3. Terminology and concepts
  4. Design Entry (Sources, IP Cores, Constraints, …)
  5. RTL Elaboration
  6. Simulation
  7. TCL Scripting and XDC
  8. IO & Clock  Planning  & Analyzing
  9. Logic Synthesis & Simulation
  10. Implementation & Simulation
  11. Programming and Debugging

فارسی:

  1. مروری بر نرم‌افزار ISE
  2. معرفی نرم‌افزار Vivado
  3. معرفی اصلاحات و بیان مفاهیم
  4. روش ایجاد پروژه، اضافه کردن منابع (فایل‌های VHDL و Verilog، IPها، قیدهای زمانی و فیزیکی، ...) و کار با پروژه
  5. بررسی پروژه در سطح RTL
  6. شبیه‌سازی
  7. بیان اسکریپت نویسی، قیدهای طراحی XDC و تفاوت آن‌ها با یکدیگر
  8. طراحی کلاک، پایه‌های ورودی و خروجی و بیان آنالیز مربوطه
  9. بیان جزئیات مربوط به سنتز و شبیه‌های در سطح سنتز
  10. بیان جزئیات مربوط به پیاده‌سازی و شبیه‌سازی در سطح پیاده‌سازی
  11. برنامه‌ریزی و خطایابی پروژه بعد از برنامه‌ریزی






 

توضیح تفصیلی مطالب ارائه شده در ورکشاپ:

1) مطالبی که در بخش Xilinx ISE Design Suit Overview  بیان می‌شود.

در این بخش خلاصه‌ای از قابلیت‌های نرم‌افزار ISE بیان می‌شود.

  1. Xilinx ISE Design Suit Overview

2) مطالبی که در بخش Vivado Design Suit بیان می‌شود.

در این بخش، ضمن معرفی نرم افزار Vivado، دلایل استفاده از آن بیان می‌شود.  ضمن معرفی طرحواره کلی طراحی با استفاده از نرم‌افزار Vivado، انواع مدهای استفاده آن بیان خواهد شد.

  1. Introduction
  2. Reasons to use Vivado
  3. Vivado Design Suit Overview
  4. Understanding Use Models

3) مطالبی که در بخش Terminology and Concepts بیان می‌شود.

در این بخش مفاهیمی نظیر RTL، Netlist، گیت منطقی، سنتز در سطح منتطقی، سنتز رفتاری یا سنتز در سطح بالا، جانمایی و مسیریابی بین عناصر بیان خواهد شد.

  1. Register Transfer Level (RTL)
  2. Netlist
  3. Logic gate
  4. Logic Synthesis
  5. High level Synthesis or behavioral synthesis
  6. Placement
  7. Routing

4) مطالبی که در بخش Design Entry (Sources, IP Cores, Constraints,…)  بیان می‌شود.

در این بخش ابتدا بخش‌های مختلف نرم‌افزار Vivado بیان خواهد شد، پس از آن روش ایجاد پروژه، کار با پنجره‌های مختلف، فرایند ایجاد و ویرایش قیدها زمانی و مکانی در سطح مقدماتی، اضافه کردن فایل‌ها و منابع دیگر به پروژه و مدیریت آن‌ها، روش ایجاد IPها، اضافه کردن آن‌ها به پروژه و مدیرت آن‌ها، کار با منابع DSP، روش اضافه کردن و سنتز آن‌ها در نرم‌افزار Vivado، مفهوم طراحی OUT-Of-Context، مفاهیم مربوط به قیدهای زمانی و مکانی در IPها بیان خواهد شد.

  1. Vivado Design Suit
  2. Open Example Projects, Creating Projects (RTL Projects, Post Synthesis Projects, I/O Planning Projects, Imported Projects)
  3. Vivado IDE and Text Editor
  4. Working with Settings, Windows, Text Editor, Language Template, Property Editor
  5. Compile Order (Processing Order)
  6. Constraints Editing Flow and Constraints Sets
  7. Adding, managing and modifying Design Sources
  8. IP-Centric Design Flow (Terminology, Xilinx IP Catalog, Concept of Output Products, IP Upgrading, Editing Flow,  …)
  9. Global and Out-of-Context Design Flow Concept and Core Container concept
  10. Managed IP Projects …
  11. IP Integrator Environment (Introduction) and Working with DSP Sources

5) مطالبی که در بخش RTL Elaboration بیان می‌شود.

در این بخش مفهوم بررسی پروژه در سطح RTL، تنظیمات مربوط به آن بیان شده و سپس روند بررسی پروژه در سطح RTL بیان خواهد شد. پس از انوع قانون‌های بررسی طراحی (DRCs) و روش آنالیز آن‌ها بیان خواهد شد.

  1. RTL elaboration concept
  2. Elaboration Settings
  3. Running RTL Elaboration
  4. Running DRCs
  5. Report Methodology

6) مطالبی که در بخش Simulation بیان می‌شود.

در این بخش روند کلی شبیه‌سازی بیان شده و انوع کتابخانه‌ها، دستورها و منابعی که در شبیه‌سازی استفاده می‌شوند، معرفی خواهند شد. پس از آن روند تعریف ست‌های شبیه‌سازی و تنظیمات مربوط به آن‌ها بیان خواهد شد. پس از آن شبیه‌ساز نرم‌افزار Vivado معرفی خواهد شد و روند شبیه‌سازی در این نرم‌افزار، کار با بخش‌های مختلف شبیه‌ساز، خطایابی طراحی و موارد خاص در شبیه‌سازی بیان خواهند شد.

  1. Simulation Flow, Simulation Sets,  Adding Source Files  and Simulator Settings
  2. Using a third-party simulator
  3. Running Simulation
  4. Vivado Simulator
  5. Static Simulation
  6. Waveform Configurations
  7. Debugging a Design
  8. Handling Special Cases
  9. Simulating in Batch or Scripted Mode
  10. DPI in Vivado Simulator
  11. Xilinx Simulator Interface  (XCI)

 

 

7) مطالبی که در بخش TCL Scripting and XDCبیان می‌شود.

در این بخش مفاهیم SDC، XDC و TCL معرفی شده و تفاوت‌های آن‌ها، روش ایجاد و ویرایش آن‌ها بیان خواهند شد. سپس مفهوم شیء که در هر سه مورد استفاده می‌شود، معرفی خواهد شد. پس از آن انوع دستورات TCL و جزئیات بیشتری از TCL Store بیان خواهد شد.

  1. Introduction (SDC, XDC, TCL)
  2. Tool Command Language (TCL)
  3. TCL scripting, Useful TCL commands, Multithreading, Calling External commands
  4. Objects in the Design
  5. Object names : Hierarchical& Flattened Names
  6. Constraints Scoping
  7. Other/Advanced TCL Commands
  8. TCL Features
  9. Customize command in the GUI
  10. Constraints Examples (Physical and Timing)
  11. Xilinx TCL Store

ح) مطالبی که در بخش IO & Clock  Planning  & Analyzing بیان می‌شود.

در این بخش ابزارهای موجود در نرم‌افزار Vivado برای بررسی ورودی-خروجی‌ها بیان خواهد شد و پس از آن انوع قیدهای مربوط به تراشه و روش تغییر آن‌ها بیان خواهد شد. در ادامه روش استفاده از ابزارهای موجود برای طراحی  پورت‌های ورودی-خروجی، اتصال حافظه خارجی، طراحی کلاک و آنالیز نویز سوئیچنگ بیان می‌شود. در انتها روش استخراج قیدهای طراحی شده از ابزارهای موجود و استفاده از آن‌ها در پروژه بیان خواهد شد.

  1. I/O and Clock Analyzing Concepts
  2. I/O and Clock Planning Design Flow
  3. Defining Alternate Compatible Parts and Setting Device Configuration Modes
  4. Setting Device Constraints: DCI Cascade and Internal VREF
  5. Viewing Device Resources: Properties, Clock Region and … Windows
  6. Defining and Configuring I/O Ports and other options
  7. Migrating an I/O Planning Project to an RTL Project
  8. Configuring Memory IP
  9. Using the Memory Bank/Byte Planner
  10. Clock Planning
  11. Validating I/O and Clock Planning
  12. Working with SSN Analysis
  13. Exchange Information With the PCB or System designer

 

8) مطالبی که در بخش Logic Synthesis & Simulation بیان می‌شود.

در این بخش ابتدا تمامی ابزارهای موجود برای سنتز پروژه بیان شده و سپس انوع تنظیمات مربوط به سنتز، روشن تعریف استراتژی، اعمال تنظیمات مربوط به تراشه در این مرحله و در نهایت سنتز پروژه بیان خواهد شد. پس از آن سنتز به صورت Out-Of_Context بیان می‌شود. روش اضافه کردن Netlist به پروژه در این بخش بیان شده است. ضمن بیان آنالیز نتایج سنتز، نوع دستورات مربوط به سنتز، Attributeهای سنتز و شبیه‌سازی پروژه بعد از سنتز نیز در انتها بیان خواهد شد.

 

  1. Logic Synthesis Concept
  2. Windows in Logic Synthesis
  3. Using Synthesis Settings: Run/Report Strategies
  4. Create/Modify Synthesis Runs
  5. Working With Synthesis Runs: Active Run, Run detail , Launching a Run and …
  6. Using the Out-of-Context Flow For HDL Modules
  7. Modifying IP Files (Review)
  8. Opening Synthesized Runs
  9. Using the Synthesized Design Environment
  10. Options Area In The Synthesis Strategy
  11. Synthesis Attributes
  12. Simulation After Synthesize
  13. Block Synthesis Strategies

9) مطالبی که در بخش Implementation & Simulation بیان می‌شود.

مشابه با بخش سنتز، در این بخش نیز ابتدا تمام ابزارهای موجود برای پیاده‌سازی یک پروژه بیان می‌شودند، روش تعیین استراتژی، بهینه‌سازی پروژه از لحاظ فیزیکی، مسیریابی بین المان‌ها، پیاده‌سازی به صورت Retrofitting، Repeating و  Incremental، انوع تنظیمات دیگر پیاده‌سازی بیان می‌شود. سپس  انواع روش‌های ویرایش Netlist بعد از پیاده‌سازی و کاربردهای آن‌ها بیان خواهد شد. از مهم‌ترین کاربردهای ویرایش Netlist بعد از پیاده‌سازی می‌توان به تغییر کمی در پروژه بعد از پیاده‌سازی و استفاده از آن در دیباگ کردن پروژه اشاره کرد. در نهایت روش ذخیره فایل DCP و شبیه‌سازی بعد از پیاده‌سازی پروژه بیان خواهد شد.

  1. Implementing the Design, Key Steps in Non-Project, Windows in implementation
  2. Implementation Runs: Defining Runs, Active Run, Run Settings, …
  3. Implementation Strategies: Customizing, Defining, …
  4. Launching Implementation Runs and Other Options
  5. Implementation Sub-Processes In Non-Project Mode
  6. Interactive Physical Optimization: Retrofitting, Repeating, …
  7. Routing
  8. Incremental Compile: Enabling, Disabling, Analysis, Package, …
  9. Implementation and Recommended Steps After Implementation
  10. Design checkpoint file
  11. Reset Project in the Project Mode
  12. Modifying A Netlist: Using Commands, ECO flow
  13. Post-Implemented Design Simulation

10) مطالبی که در بخش Programming and Debugging بیان می‌شود.

در این بخش ابتدا اصطلاحات مربوط به Debug بیان می‌شوند، سپس انوع تنظیمات مربوط به Bitstream و روش ایجاد آن، بخش مدیریت سخت‌افزار در نرم‌افزار Vivado، برنامه‌ریزی FPGA و حافظه فلش، ویژگی‌های پیشرفته مربوط به برنامه‌ریزی، خطایابی طراحی با استفاده از ابزارهای موجود بعد از برنامه‌ریزی، جزئیات مربوط به IPهای ILA و VIO و در نهایت محیط‌های دیباگ دیگر نظیر MIG و IBERT معرفی شده و زبان برنامه‌نویسی ماشین حالت برای خطایابی پروژه بیان خواهد شد. از مهم‌ترین مطالبی که در این بخش بیان می‌شود می‌توان به ویرایش و ایجاد IPهای دیباگ بعد از سنتز و پیاده‌سازی اشاره کرد که از اهمیت بسیار بالایی خصوصا در پروژه‌های بزرگ دارند.

  1. Debug Terminology
  2. Remote Debugging in The Vivado
  3. Device Configuration Bitstream Settings & Generating the Bitstream
  4. Programming The Target FPGA Device & Programming a Configuration Memory Device
  5. Bitstream/Configuration Memory Verify and Readback
  6. Generating an Encrypted Bitstream + Advanced Programming Features
  7. System Monitor
  8. Debugging the Design: HDL Instantiation Debug Probing Flow
  9. Debugging the Design: Netlist Insertion Debug Probing Flow
  10. Vivado Hardware Manager in detail + Trigger At Startup + Export ILA Data
  11. Virtual Input/Output (VIO) IP Core
  12. Post Implementation Design Debugging: Modifying/Replacing/Creating Debug Cores
  13. MIG/ IBERT Debug Interface
  14. Trigger State Machine Language Description

 

 

آزمایش‌ها:

این ورکشاپ شامل 15 آزمایش می‌باشد که سعی شده است در آن‌ها بسیاری از مباحث بیان شده در ورکشاپ پوشش داده شوند.

Lab_1: TCL Scripting1 (Concept of Level)

Lab_2: TCL scripting2 (An example of complete script)

Lab_3: Simulation1 (Non-Project Mode)

Lab_4: Simulation2 (Project Mode + Debugging Design)

Lab_5: Project1 (Non-Project mode)

Lab_6: Project2 (Project Mode: Synthesize, Implementation, …)

Lab_7: I/O Planning1 (Pre-Synthesize)

Lab_8: I/O Planning2 (Post-Synthesize)

Lab_9: Implementation1 (Runs and Strategies)

Lab_10: Implementation2 (Incremental Compile)

Lab_11: Debug1 (Post-Synthesis Netlist Insertion)

Lab_12: Debug2: (HDL Insertion: ILA)

Lab_13: Debug3 (VIO Core)

Lab_14: Debug4 (Debugging in the Hardware with YE-E15Z Board)

Lab_15: Debug5 (Post-Implementation Netlist and Debug Core modification)

 

جزئیات مربوط به آزمایش‌ها:

آزمایش 1: TCL Scripting1 (Concept of Level)

در این آزمایش، دانشجو با مفاهیم اولیه اسکریپت نویسی آشنان می‌شود. یک اسکریپت بسیار ساده نوشته شده و تست می‌شود. در حین انجام آزمایش دانشجو با مواردی نظیر روش اضافه کردن اسکریپت به نرم‌افزار Vivado و اجرای آن آشنا می‌شود. یکی از مفاهیم اولیه‌ای که در این آزمایش مورد بحث است، مفهوم Level می‌باشد.

آزمایش 2: TCL Scripting1 (Concept of Level)

در این آزمایش Template کامل یک اسکریپت در اختیار دانشجو قرار داده می‌شود که توضیحات آن در ورکشاپ بیان شده است و با توجه به آزمایش شماره 1، مسئول آزمایشگاه توضیحات تکمیلی را نیز ارائه می‌دهد. هدف از این آزمایش استفاده از Template برای نوشتن یک اسکریپ کامل است که تمام مسائل مربوط به اسکریپت در آن رعایت شده باشد. یک اسکریپت کامل باید بتواند ورودی‌های به صورت لیست را تحلیل کند، راهنما داشته باشد، نسخه داشته باشد، در صورتی که یک آرگومان غیرمرتبط در وردی دریافت کند، باید خطا دهد و .... در این آزمایش تمام این موارد در نظر گرفته شده است.

آزمایش 3: Simulation1 (Non-Project Mode)

در این آزمایش شبیه‌سازی به صورت Non Project Mode و با استفاده از Tcl Shell انجام خواهد شد. برای شبیه‌سازی در محیط Tcl Shell، به دو صورت می‌توان عمل کرد. روش اول اینکه با استفاده از دستور xelab فایل‌های پروژه را به یکدیگر لینک کرده و سپس با استفاده از محیط shell آن را شبیه‌سازی کرد. برای استفاده از دستور xelab نیاز به فایل .prj دارید که توضیحات لازم در این باره در ورکشاپ داده شده است. روش دوم شبیه‌سازی این است که با استفاده از دستور xvldl و دستور xvlog فایل‌های طراحی را در یک کتابخانه فراخوانی کرد و سپس شبیه‌سازی را انجام داد. در آزمایش هر دو روش شبیه‌سازی انجام خواهد شد و هدف آن آشنایی دانشجو با محیط Tcl shell می‌باشد.

آزمایش 4: Simulation2 (Project Mode + Debugging Design)

در این آزمایش شبیه‌سازی یک پروژه در حالت Project Mode انجام می‌شود و هدف آن آشنایی کامل دانشجو با محیط شبیه‌سازی در نرم‌افزار Vivado و قابلیت‌های مختلف آن که در ورکشاپ توضیح داده شده می‌باشد. این آزمایش شامل 25 گام می‌باشد که اکثر مباحث شبیه‌سازی در آن لحاظ شده است. از مواردی که در این آزمایش در نظر گرفته شده، استفاده از قابلیت دیباگ در محیط شبیه‌سازی برای یافتن و رفع خطاهای احتمالی در پروژه است.

آزماش 5: Project1 (Non-Project mode)

در این آزمایش یک پروژه به صورت Non Project mode تا مرحله پیاده‌سازی و تولید bitfile با استفاده از محیط Shell سنتز می‌شود. از اهداف اصلی این آزمایش می‌توان به آشنایی با مراحل ایجاد، سنتز و پیاده‌سازی پروژه در محیط Shell و همچنین ذخیره نتایج خروجی نظیر فایل  DCP و آنالیز آن به صورت مستقل اشاره کرد.

آزمایش 6: Project2 (Project Mode: Synthesize, Implementation, …)

در این آزمایش یک پروژه با استفاده از نرم‌افزار Vivado در حالت Project Mode انجام می‌شود تا دانشجویان مطالب توضیح داده شده در ورکشاپ را مورد بررسی قرار دهند. از اهداف اصلی این آزمایش می‌توان به آشنایی کامل با روند ایجاد پروژه و مدیریت آن، Elaborate، سنتز و پیاده‌سازی پروژه، ایجاد Runهای مختلف، روش آنالیز و گزارش گرفتن از پروژه، ذخیره کردن فایل DCP آنالیز آن به صورت مجزا اشاره کرد.

آزمایش 7: I/O Planning1 (Pre-Synthesize)

در این آزمایش مفهوم I/O Planning قبل از سنتز و بدون فایل HDL بیان می‌شود. در واقع I/O Planning در مرحله طراحی مورد استفاده قرار می‌گیرد و در انتهای آزمایش پروژه I/O Planning تبدیل به پروژه RTL می‌شود. آشنایی با قابلیت‌های مهم I/O Planning در مرحله طراحی و استخراج فایل‌های خروجی برای تبادل با طراح سیستم و PCB از اهداف اصلی این آزمایش می‌باشد.

آزمایش 8: I/O Planning2 (Post-Synthesize)

در این آزمایش مباحث مربوط به I/O planning بعد از ایجاد پروژه یعنی در حالتی که فایل‌های HDL و XDC داریم مورد بررسی قرار می‌گیرد. طبق مطالب بیان شده در ورکشاپ، بعضی از قابلیت‌های I/O Planning در حالتی که RTL داریم با حالتی که روی پروژه I/O Planning کار می‌کنیم متفاوت هستند. بسیاری از قابلیت‌های I/O Planning نیز در هر دو حالت مشابه هستند. هدف از انجام این آزمایش، استفاده از قابلیت‌های I/O Planning بعد از مرحله طراحی و در حین توسعه پروژه HDL است. برای انجام این آزمایش یک پروژه RTL که از قبل تولید شده، استفاده می‌شود.

آزمایش 9: Implementation1 (Runs and Strategies)

هدف از این آزمایش بررسی تأثیر استراتژی‌های مختلف هم در زمان پیاده‌سازی و هم در نتیجه پیاده‌سازی است. در مورد انوع استراتژی‌ها و زمان استفاده از آن‌ها به تفصیل در ورکشاپ بحث شده است. در این آزمایش یک پروژه در اختیار دانشجویان قرار داده شده است که باید Runهای مختلف Implementation را با استراتژی‌های مختلف ایجاد کرده و نتایج پیاده‌سازی در حالت‌های مختلف بررسی کنند.

آزمایش 10: Implementation2 (Incremental Compile)

انواع روش‌های پیاده‌سازی نظیر Retrofitting، Repeating  و Incremental  در ورکشاپ به تفصیل مورد بحث قرار گرفت. یکی از مهم‌ترین و پرکاربردترین این روش‌ها، روش Incremental Compile است. در این آزمایش از روش Incremental Compile برای پیاده‌سازی استفاده می‌شود تا دانشجویان با استفاده از این روش، کاربردهای آن و آنالیز نتایج آن آشنا شوند.

آزمایش 11: Debug1 (Post-Synthesis Netlist Insertion)

یکی از مهم‌ترین قابلیت‌های نرم‌افزار Vivado، ویرایش و اضافه کردن IPهای دیباگ بعد از سنتز پروژه است. در واقع در این روش، Netlist حاصل از سنتز ویرایش شده و بدون تغییر کد HDL، تغییرات در Netlist اعمال می‌شود. این روش مزایای بسیار زیادی دارد که از جمله می‌توان به افزایش سرعت اضافه و ویرایش کردن IPهای دیباگ بدون تغییر کد HDL و ویرایش و ایجاد IPهای دیباگ بعد از سنتز اشاره کرد. هدف از انجام این آزمایش، آشنایی کامل دانشجو با جزئیات مربوط به استفاده از این روش می‌باشد. پروژه‌ای که در این آزمایش در نظر گرفته شده است، روی سخت‌افزار نیز تست خواهد شد.

آزمایش 12: Debug2: (HDL Insertion: ILA)

در آزمایش قبلی از روش Netlist برای اضافه کردن ILA به پروژه استفاده شد. یکی از روش‌های اولیه استفاده از ابزارهای دیباگ، استفاده مستقیم از IPهای مربوط به دیباگ نظیر ILA و VIO در کد HDL است. در این آزمایش یک پروژه که در آن یک IP ILA به صورت مستقیم در پروژه استفاده شده است، مورد بررسی قرار می‌گیرد. پروژه‌ای که برای این آزمایش در نظر گرفته شده، روی سخت‌افزار نیز تست خواهد شد. در این آزمایش دانشجو می‌تواند روش فعال‌سازی قابلیت‌های پیشرفته مربوط به ILA نظیر Advanced Control و Capture Control که در ورکشاپ در مورد آن‌ها صحبت شد، بررسی کند.

آزمایش 13: Debug3 (VIO Core)

این آزمایش در واقع تکمیل آزمایش قبل است و در آن از یک VIO برای کارهای کنترلی در پروژه استفاده می‌شود. دانشجو ضمن ایجاد یک IP VIO و تکمیل پروژه، آن را سنتز و پیاده‌سازی کرده و در نهایت bitfile خروجی را طبق طراحی انجام شده در سخت افزار تست خواهد کرد.

آزمایش 14: Debug4 (Debugging in the Hardware with YE-E15Z Board)

در این آزمایش، bitfileهای تولید شده از آزمایش‌های قبلی در سخت‌افزار مورد تست قرار می‌گیرند و دانشجو ضمن کار با محیط دیباگ و آشنایی با Dashboard، پنجره Waveform، پنجره Trigger، پنجره Hardware و برنامه‌ریزی و دیباگ سخت‌افزار، می‌تواند تمام جزئیات پیشرفته مربوط به دیباگ نظیر پنجره‌گذاری، Capture Control، Advanced Control و ... را که در ورکشاپ توضیح داده شده تست کند.

آزمایش 15: Debug5 (Post-Implementation Netlist and Debug Core modification)

یکی از قابلیت‌های مهم Vivado امکان اصلاح Netlist بعد از مرحله Implementation است. کاربر می‌تواند با استفاده از این قابلیت تغییراتی در منطق پروژه ایجاد کرده و یا اینکه IPهای دیباگ را ویرایش و یا ایجاد کند. خصوصاً در FPGAهای بزرگ و همچنین در پروژه‌های بزرگ این قابلیت باعث کاهش قابل ملاحظه‌ای در زمان سنتز و پیاده‌سازی پروژه می‌شود. در این آزمایش ابتدا یک پروژه پیاده‌سازی شده و سپس در Netlist خروجی حاصل از Implementation در دو پروژه جداگانه دو نوع تغییر ایجاد می‌شود. تغییر اول شامل اصلاح Netlist برای پیاده‌سازی یک تغییر در منطق پروژه است و تغییر دوم شامل اصلاح IP دیباگ است. سپس مراحل پیاده‌سازی، تولید Bitfile اصلاح شده بیان می‌شود. در نهایت با استفاده از بورد E15Z پروژه اصلی و پروژه‌های اصلاح شده روی سخت‌افزار تست می‌شوند.