دوره آموزشی Vivado 1B
Vivado Design Suit Part1B (R05)
پیش نیازها:
امکانات آزمایشگاهی:
مواردی که در اختیار دانشجویان قرار داده میشود:
نکته: امکان تغییر تعداد و عنوان آزمایشها وجود دارد.
روش ارزیابی:
نمرهای که در مدرک دانشجو قید میشود، براساس ارزیابیهایی است که در طول دوره انجام میشود. این ارزیابیها عبارتند از:
به دلیل زیاد بودن مطالب، عدم حضور دانشجو و عدم مطالعه باعث فاصله گرفتن از ساختار ورکشاپ و فراگرفتن مطالب خواهد شد. به همین دلیل حضور دانشجو و عدم غیبت در ارزیابی تأثیر مستقیمی دارد.
به صورت تصادفی در بعضی از جلسهها آزمونهای کوتاه یک تا 5 سؤالی برای ارزیابی و همچنین تکرار و تمرین مطالب ارائه شده، از دانشجویان گرفته میشود.
انجام دادن کامل و صحیح آزمایشها و گرفتن نتیجه مطلوب نیز در ارزیابی تأثیر دارد. هدف انجام دادن تمام آزمایشها نیست و در صورت نیاز و کمبود زمان ممکن است یک یا چند آزمایش به صورت کار در منزل ارائه شود. هدف تمرین و تکرار مطالب آموزش داده شده، تلسط بر آنها و یادگیری نکتههای جدید میباشد. بنابراین کیفیت انجام آزمایشها از اهمیت بالایی برخوردار است.
نسخه نرمافزار مورد استفاده:
Vivado Design Suit 2017.3
مکان دوره:
شرکت فنی و مهندسی محققان یاسین
سرفصل مطالب:
Latin:
فارسی:
توضیح تفصیلی مطالب ارائه شده در ورکشاپ:
1) مطالبی که در بخش TTCL بیان میشود.
نرمافزار Vivado ابزار گرافیکی برای ایجاد IP در اختیار کاربر قرار میدهد. اما ابزار گرافیکی محدودیتهای بسیار زیادی دارد و فقط با استفاده از ابزار گرافیکی نمیتوان IPهای حرفهای ایجاد کرد. TTCL در واقع زبان برنامهنویسی مبتنی بر TCL است که بسیاری از محدودیتهای گرافیکی را رفع میکند. به عنوان اگر بخواهید یک IP را ایجاد کنید که در تراشههای مختلف قابل استفاده باشد، فایل xdc مربوط به IP وابسته به پارامترهای IP باشد و بسیاری از موارد دیگر، به ناچار باید از TTCL استفاده کرد و ابزار گرافیکی چنین قابلیتهایی در اختیار کاربر قرار نمیدهد. البته باید ذکر شود که آنچه در این ورکشاپ توضیح داده میشود، به همراه ابزار گرافیکی در Vivado استفاده میشود. در این بخش ابتدا TTCL به صورت مستقل معرفی میشود و سپس در بخشهای بعدی روشهای استفاده از آن بیان میشود.
2) مطالبی که در بخش Interfaces بیان میشود.
Interfaceها در واقع یک گروه از سیگنالهایی هستند که عملکرد مشخصی دارند. Interfaceها مزایای مختلفی دارند، که عبارتند از: اینکه باسهای یک IP به صورت گروهی نشان داده میشود که اگر در IPهایی با باسهای زیاد از Interface استفاده نشود، نمایش پایهها به صورت پورتها زیاد خواهد بود، در محیطهایی مانند IP Integrator اتصال Interfaceها به صورت اتوماتیک انجام میشود. در مواردی که در یک پروژه تداخلی در پارامترهای یک Interface در اتصال دو یا چند IP به یکدیگر رخ دهد، نرمافزار گزارش مربوط را تولید میکند و مزایای دیگر. از Interfaceهای معروف میتوان به AXI4، Clock و Reset اشاره کرد. در این بخش جزئیات Interface خاصی مورد بحث نیست اما موارد مشترک مربوط به Interfaceها نظیر Interface های موجود در نرمافزار Vivado، پارامترهای Interfaceها و روشهای شناسایی اتوماتیک آنها در IP Package که مبحث بعدی است، توضیح داده میشود.
3) مطالبی که در بخش Packaging Custom IP بیان میشود.
ابتدا ابزار ایجاد IP و مفاهیم مربط به آن معرفی میشوند و سپس دو روش ایجاد IP که شامل ایجاد IP از یک پروژه و ایجاد IP از یک فولدر به همراه بیان مفهوم IP کتابخانه توضیح داده خواهد شد. در اینجا روش استفاده از TTCL و Interfaceها بیان میشود و موارد پیشرفته در ایحاد IPهای حرفهای مورد بحث قرار میگیرد.
4) مطالبی که در بخش Revision Control بیان میشود.
کنترل نسخه یکی از مهمترین مواردی که باید در هر پروژهای مد نظر قرار گیرد. کنترل نسخه باعث کاهش حجم پروژهها، کنترل بسیار ساده تغییرات در یک پروژه، مدیریت گرافیلی تمام نسخههای مربوط به یک پروژه و مشاهده گرافیکی تغییرات آنها، کنترل پروژهها در مقیاسهای بسیار بزرگ، امکان ایجاد کار گروهی روی یک پروژه و بسیاری از موارد دیگر میشود. در این بخش ابتدا نرمافزار Git معرفی شده و انوع دستورهای مورد استفاده در این نرمافزار توضیح داده خواهند شد. سپس انوع ابزارهای جانبی گیت معرفی خواهند شد. سپس روش استفاده از گیت برای کنترل نسخه در پروژههای ایجاد شده با نرمافزار Vivado بیان خواهند شد و در انتها مفاهیم بیشتری از مخزن در کنترل نسخه، مزایا و معایب استفاده از یک یا چند مخزن برای پروژههای مختلف توضیح داده میشود.
5) مطالبی که در بخش Revision Control On The Server (Remote Repository) بیان میشود.
کنترل نسخه یکی از مهمترین مواردی که باید در هر پروژهای مد نظر قرار گیرد. اما یکی علاوه بر مزایایی که برای استفاده از ابزارهای کنترل نسخه در بخش بعدی بیان شد، یکی دیگر از مهمترین مزایای ابزارهای کنترل نسخه است که یک گروه میتواند روی یک پروژه کار کنند و نتایج حاصل را با هم ترکیب کنند. به عنوان مثال فرض کنید که یک پروژه ماژولهای مختلفی دارد و هر فرد روی یک ماژول به صورت جداگانه کار میکند و در نهایت تمام اصلاحات با یکدیگر ترکیب شده و پروژه نهایی به روز میشود. لازمه چنین روشی این که یک مخزن به صورت Remote و در دسترس تمام افراد گروه ایجاد شود. به این نوع مخزن، Remote Repository گفته میشود. در این بخش، ضمن توضیح بیشتر در مورد مزایای این روش، دستورات لازم برای کار با مخزن Remote معرفی شده و تمام جزئیات مربوط به ایجاد مخزن Remote، روش ایجاد نسخه، انجام اصلاحات در مخزن محلی و ارسال آن به مخزن Remote، ترکیب اصلاحات انجام شده با یکدیگر و ... بیان میشود.
این ورکشاپ شامل 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 لینک شده و اصلاحات را انجام دهد، بیان میشود. در این آزمایش تمامی حالتهای ممکن در حین اصلاح پروژه نظیر اصلاح همزمان چند نفر روی یک پروژه مورد بررسی قرار گرفته و بیشتر دستورهایی که در این رابطه در ورکشاپ بیان شدهاند، بررسی میشوند.