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

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

 Vivado Design Suit Part1B (R05)

پیش نیازها:

  1. آشنایی با یکی از زبان‌های برنامه‌نویسی VHDL یا Verilog
  2. گذراندن ورکشاپ Vivado Design Suit: Part1A

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

  1. بوردهای YE-E15Z با تراشه Artix
  2. پروگرامرهای USB به صورت On-board
  3. مستندهای مورد نیاز بورد YE-E15Z برای ورکشاپ شامل معرفی بود، تعریف پایه‌ها و ...

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

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

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

روش ارزیابی:

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

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

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

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

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

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

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

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

Vivado Design Suit 2017.3

مکان دوره:

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

سرفصل مطالب:

Latin:

  1. TTCL
  2. Interfaces
  3. Packaging Custom IP
  4. Revision Control
  5. Revision Control On The Server (Remote Repository)

فارسی:

  1. زبان TTCL
  2. Interfaces
  3. روش ایجاد یک IP
  4. کنترل نسخه با استفاده از نرم‌افزار Git
  5. کنترل نسخه در حالتی که مخزن به صورت Remote باشد.

 

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

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

نرم‌افزار Vivado ابزار گرافیکی برای ایجاد IP در اختیار کاربر قرار می‌دهد. اما ابزار گرافیکی محدودیت‌های بسیار زیادی دارد و فقط با استفاده از ابزار گرافیکی نمی‌توان IPهای حرفه‌ای ایجاد کرد. TTCL در واقع زبان برنامه‌نویسی مبتنی بر TCL است که بسیاری از محدودیت‌های گرافیکی را رفع می‌کند. به عنوان اگر بخواهید یک IP را ایجاد کنید که در تراشه‌های مختلف قابل استفاده باشد، فایل xdc مربوط به IP وابسته به پارامترهای IP باشد و بسیاری از موارد دیگر، به ناچار باید از TTCL استفاده کرد و ابزار گرافیکی چنین قابلیت‌هایی در اختیار کاربر قرار نمی‌دهد. البته باید ذکر شود که آنچه در این ورکشاپ توضیح داده می‌شود، به همراه ابزار گرافیکی در Vivado استفاده می‌شود. در این بخش ابتدا TTCL به صورت مستقل معرفی می‌شود و سپس در بخش‌های بعدی روش‌های استفاده از آن بیان می‌شود.

  1. Introduction of TTCL
  2. Basics of TTCL
  3. TTCL Examples
  4. TTCL Language

 

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

Interfaceها در واقع یک گروه از سیگنال‌هایی هستند که عملکرد مشخصی دارند. Interfaceها مزایای مختلفی دارند، که عبارتند از: اینکه باس‌های یک IP به صورت گروهی نشان داده می‌شود که اگر در IPهایی با باس‌های زیاد از Interface استفاده نشود، نمایش پایه‌ها به صورت پورت‌ها زیاد خواهد بود، در محیط‌هایی مانند IP Integrator اتصال Interfaceها به صورت اتوماتیک انجام می‌شود. در مواردی که در یک پروژه تداخلی در پارامترهای یک Interface در اتصال دو یا چند IP به یکدیگر رخ دهد، نرم‌افزار گزارش مربوط را تولید می‌کند و مزایای دیگر. از Interfaceهای معروف می‌توان به AXI4، Clock و Reset اشاره کرد. در این بخش جزئیات  Interface خاصی مورد بحث نیست اما موارد مشترک مربوط به Interfaceها نظیر Interface های موجود در نرم‌افزار Vivado، پارامترهای Interfaceها و روش‌های شناسایی اتوماتیک آن‌ها در IP Package که مبحث بعدی است، توضیح داده می‌شود.

  1. Introduction
  2. Interface Parameters
  3. Interface Parameters
    1. Interface Parameters
    2. Interface Parameters

3) مطالبی که در بخش Packaging Custom IP بیان می‌شود.

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

  1. Introduction
  2. Key Steps before packaging
  3. Outputs from IP Packager
  4. Packager Settings
  5. IP Packaging Basics
  6. Package IP Wizard:
    1. Package Current Project
    2. Identification
    3. Compatibility
    4. File Groups
    5. Customization Parameters
    6. Ports and Interfaces
    7. Addressing and Memory Mapping
    8. Customization GUI
    9. Review and Package
  7. Packaging a Specified Directory
  8. Packaging Library cores
  9. Adding Generated IP to the IP Catalog
  10. Editing Your IP
  11. Creating a New Interface Definition

4) مطالبی که در بخش Revision Control بیان می‌شود.

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

 

  1. Why Version Control?
  2. Git Overview (Git Bash, Git GUI, Git Extensions and TortoiseGit)
  3. Git Commands
  4. Installing Git Software's
  5. First Step: Validate the Basic Settings
  6. Git: Dealing with Line Endings
  7. Versioning Flow
  8. Creating A Repository + First Version
  9. Creating Second and Higher Versions
  10. Creating Backup from Repository
  11. Git Extension Options
  12. Vivado Project Revision Control
  13. Vivado Project Repository Structure
  14. Creating Project TCL
  15. Git Advanced Options
  16. Branching in the Git
  17. One repository vs. several repository for projects

5) مطالبی که در بخش Revision Control On The Server (Remote Repository) بیان می‌شود.

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

 

  1. Why Remote Repository?
  2. Introduction to Remote Repository
  3. Necessary Git Commands for Remote Revision Control
  4. Note About Fast-Forwards Push
  5. Tracking Branch (upstream branch)
  6. First Version Remote Revision Control
  7. Copy Local Repo to Remote
  8. Copy Remote Repo to Local
  9.   How Creating New Version
  10. Download Changes From Remote Repo
  11. Push Latest Version to The Remote Repository
  12. آزمایش‌ها:

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

Lab_1b_01: IP Package1 (Analyzing an IP)

Lab_1b_02: IP Package2 (Project)

Lab_1b_03: IP Package3 (TTCL)

Lab_1b_04: IP Package4 (Directory)

Lab_1b_05: IP Package5 (Library Concept)

Lab_1b_06: Revision Control1 (Project)

Lab_1b_07: Revision Control2 (IP Project)

Lab_1b_08: Revision Control3 (Custom IP)

Lab_1b_09: Revision Control4 (Remote Revision Control)

 

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

آزمایش 1: (IP Package1 (Analyzing an IP

هدف اصلی این آزمایش، آشنایی دانشجو با ساختار IPهای موجود و بررسی آن به صورت فنی است. در این آزمایش یکی از IPهای موجود در نرم‌افزار Vivado از لحاظ ساختاری و مسائل فنی داخلی مورد بررسی قرار می‌گیرد. دانشجود بسیاری از مباحث بیان شده را مشاهده و بررسی می‌کند تا زمینه برای ایجاد IP در آزمایش بعدی فراهم شود.

آزمایش 2: (IP Package2 (Project

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

آزمایش 3: (IP Package3 (TTCL

این آزمایش مشابه آزمایش قبل است و یک پروژه تبدیل به IP می‌شود با این تفاوت که از TTCL برای پیاده‌سازی مواردی که در حالت عادی قابل پیاده‌سازی نیست، استفاده می‌شود. در این آزمایش تقریباً بسیاری از دستورهای TTCL  مورد ارزیابی قرار گرفته و کاربر با نحوه استفاده از TTCL در IP Package آشنا می‌شود.

آزمایش 4: (IP Package4 (Directory

یکی دیگر از روش‌های ایجاد IP، تبدیل یک پوشه با ساختار خاص به IP است. در این آزمایش با استفاده از این روش یک IP تولید می‌شود.

آزمایش 5: (IP Package5 (Library Concept

مفهوم کتابخانه در IPها از اهمیت بسیار بالایی برخوردار است. استفاده از کتابخانه باعث می‌شود که به روز رسانی IPها ساده‌تر شده و همچنین حجم IPها کاهش پیدا کند. در این آزمایش دانشجو با مفهوم ایجاد یک IP به عنوان کتابخانه IP آشنا می‌شود. سپس در پروژه‌های ایجاد IP می‌توان به این IPهای کتابخانه ارجاع داد که در این آزمایش این نیز مسئله در یک پروژه بررسی می‌شود.

آزمایش 6: (Revision Control1 (Project

هدف اصلی این آزمایش آشنایی دانشجو با کنترل نسخه است. در این آزمایش کنترل نسخه روی یک پروژه ساده انجام می‌شود و کاربر ضمن آشنایی با نرم‌افزار Git مفاهیمی نظیر مخزن، نسخه، Commit کردن و tag زدن در پروژه‌های مبتنی بر Vivado مورد بررسی قرار داده و تمام مسائل فنی بیان شده نظیر روش کاهش مخزن و ساختار مخزن را پیاده‌سازی و تست می‌کند.

آزمایش 7: (Revision Control2 (Project

وقتی در یک پروژه از IP استفاده شده باشد، برای کنترل نسخه باید مواردی در نظر گرفته شوند که اهمیت بسیار بالایی دارند. زیرا این مسائل تأثیر مستقیمی بر حجم مخزن و همچنین دنبال کردن تغییرات دارند. در این آزمایش یک پروژه مبتنی بر IP تحت نرم‌افزار کنترل نسخه قرار می‌گیرد.

آزمایش 8: (Revision Control3 (Project

پروژه‌های IP Package را نیز می‌توان تحت کنترل نسخه قرار داد. بدین ترتیب می‌توان تغییراتی که در یک IP ایجاد می‌شود را با جزئیات کامل تحت نظارت قرار داد. در این آزمایش دانشجو ابتدا یک پروژه IP Package ایجاد کرده و آن را تحت نرم‌افزار کنترل نسخه قرار می‌دهد و با روش اعمال تغییرات جدید در مخزن و ذخیره این تغییرات و دنبال کردن آن آشنا می‌شود.

آزمایش 9: (Revision Control4 (Remote Revision Control

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