در پست قبلی به معرفی محیط توسعه‌ی محبوب DesignLab پرداختیم و بطور خلاصه با برخی از ویژگی‌ها و قابلیت‌های آن آشنا شدیم. در ادامه‌ی بحث قبل، در این پست قصد دارم تا مراحل نصب نرم‌افزار و شروع اولین پروژه در محیط DesignLab و اجرای آن روی برد پازج-۱ را بصورت گام به گام تشریح کنم. سخت افزار لازم برای انجام این پروژه، برد پازج-۱ و بال LED و کلید است.

گام اول: نصب DesignLab

برای شروع آخرین نسخه نرم افزار DesignLab را از لینک روبرو دریافت و نصب کنید (دانلود DesignLab)

(در زمان نگارش این نوشته آخرین نسخه نرم‌افزار، نسخه‌ی ۱.۰.۸ است).

در هنگام نصب سعی کنید حتی المقدور برنامه را در مسیری نصب کنید که آدرس آن حاوی فاصله و یا کاراکترهای خاص نباشد.

گام دوم: نصب patch پازج

اکنون بایستی patch مخصوص اضافه کردن برد پازج-۱ را روی Designlab نصب کنیم. با این کار برد پازج-۱ به لیست بردهای موجود در این نرم افزار اضافه خواهد شد.بدین منظور

  • ابتدا آخرین نسخه پچ را از لینک مقابل دانلود کنید: (دانلود Patch)
  • فایل دانلود شده را که یک فایل فشرده به فرمت Zip می‌باشد درون پوشه‌ی محل نصب DesignLab اکسترکت نمایید و بر روی فایلهای قبلی overwrite نمایید.

نکته: این patch همواره در حال بروزرسانی است و به مرور تکمیل میشود. اخبار مربوط به تکمیل این patch از طریق کانال تلگرامی پازج اطلاع رسانی میشود.

گام سوم: اجرای اولین پروژه در محیط DesignLab.

انتخاب برد:

اکنون شما آماده هستید تا اولین پروژه خود با DesignLab را روی برد پازج-۱ اجرا کنید. بدین منظور DesignLab را اجرا کنید و از منوی  Tools -> Board -> Papilio FPGA Boards گزینه‌ی  Posedge One FPGA – Zpuinoرا انتخاب نمایید.

انتخاب برد پازج-۱ در نرم‌افزار DesignLab

انتخاب پورت Serial:

این بار از منوی Tools -> Port  شماره پورت COM مربوط به برد پازج-۱ را که باعبارت (Papilio FPGA) مشخص شده است را انتخاب نمایید. در صورتی که دو مورد با این عنوان وجود داشت، مورد دوم (با شماره پورت بالاتر) را انتخاب کنید.

انتخاب پورت سریال

اجرای پروژه نمونه

اکنون از منوی File -> Examples پروژه‌ی نمونه‌ی Papilio_Quickstart را انتخاب نمایید و صبر کنید تا پروژه‌ی مذکور در پنجره‌ی جدید باز شود. سپس از نوار ابزار بالای نرم‌افزار روی آیکن   (Edit Circuit) کلیک کنید تا بخش سخت افزاری مربوط به این پروژه در نرم افزار ISE باز شود. توجه داشته باشید که جهت ادامه ی کار، نرم افزار از شما میخواهد تا پروژه را در محلی روی کامپیوترتان ذخیره کنید. مسیر پیش فرض پیشنهادی نرم افزار را بپذیرید و صبر کنید تا ISE باز شود.

قسمت سخت‌افزاری پروژه در نرم‌افزار ISE

همانطور که در تصویر ملاحظه میکنید، Top module این پروژه در محیط شماتیک نرم افزار ISE رسم شده است. سخت افزار این پروژه متشکل از یک هسته‌ی ZPUino (بخوانید زی.پی.یو.اینو!)سفارشی شده برای برد پازج-۱ است که شامل حداقل سخت افزار لازم جهت عملکرد ZPUino است که متشکل از واحدهای UART (متصل به مبدل USB به سریال روی برد)، SPI (متصل به حافظه‌ی Flash روی برد)، کنترلر SRAM (متصل به SRAM روی برد) و GPIO (متصل به کانکتورهای روی برد) میباشد. در آینده خواهیم دید که چگونه میتوانیم به سادگی و با استفاده از کتابخانه‌ی پربار Designlab، رنج وسیعی از پریفرالها را به طرح سخت افزاری خود اضافه کنیم و یا حتی از کورهای رایگان سایت opencores.org (که غالبا دارای اینترفیس wishbone هستند) استفاده کنیم.

در هر صورت، برای این آموزش لازم نیست تغییر خاصی در طرح سخت افزاری اعمال کنید و صرفا کافی است با دابل کلیک روی گزینه‌ی Generate Programming File، صبر کنید تا مراحل ساخت فایل پیکره بندی سخت افزار به اتمام رسد. اکنون به سادگی نرم افزار ISE را ببندید و به DesignLab برگردید!

آپلود فایل پیکره بندی سخت افزار  (Upload Circuit)

اکنون قصدا داریم فایل پیکره بندی سخت افزار (یا همان Circuit) ساخته شده در مرحله‌ی قبل را روی FPGA بارگذاری کنیم. برای این کار کافی است بر روی آیکن  (Load Circuit) در نوار ابزار بالای DesignLab کلیک کنید تا این کار به سادگی هر چه تمام‌تر انجام شود!

پس از اتمام موفقیت آمیز این مرحله پیغامی شبیه به تصویر زیر در قسمت پایینی محیط DesignLab نمایش داده میشود و چراغ آبی رنگ روی برد (DONE LED) یک بار خاموش و روشن میشود که نشان از اجرای موفقیت آمیز این مرحله دارد. بهتر است بدانید که این فایل بر روی حافظه‌ی Flash روی برد بارگذاری میشود و با خاموش شدن برد از بین نمیرود.

اکنون یک ZPUino ی ۳۲ بیتی با فرکانس ۹۶ مگاهرتز روی FPGA آماده‌ی دریافت و اجرای اوامر شما است!

آپلود موفقیت‌آمیز فایل پیکره‌بندی FPGA بر روی برد

بررسی و اصلاح Sketch

حالا نوبت به آپلود قسمت نرم افزاری طرح (یا همان sketch در ادبیات آردوینو!) روی برد است. قبل از انجام این کار بد نیست نگاهی به کد بیندازیم. با نگاهی به کد مشخص میشود که چه کاری قرار است انجام شود:

این برنامه متشکل از دو قسمت است:

قسمت اول مربوط به ایجاد یک ارتباط سریال با نرخ ۹۶۰۰ و ارسال یک متن نمونه (در این مورد جدول اسکی) است.

در قسمت دیگری از این برنامه پین‌های GPIO ی موجود روی کانکتورها تست می‌شوند. همانطور که میدانید برد پازج-۱ دارای ۴۸ پین ورودی/خروجی است که روی کانکتورها آورده شده‌اند. در نرم افزار DesignLab به منظور دسترسی به این پین‌ها و خواندن/نوشتن آنها به هر کدام از آنها شماره‌ای بین ۰ تا ۴۷ اختصاص یافته است که در جدول زیر میتوانید نحوه‌ی اختصاص این شماره‌ها را ملاحظه نمایید.

اسامی پین‌های برد پازج-۱ در DesignLab

در این برنامه‌ی نمونه، پین های با شماره زوج (۲,۰,…,۴۶) در وضعیت خروجی تنظیم شده‌اند و در حالت چشمک زن قرار گرفته‌اند. پین‌های با شماره فرد (۳,۱,…,۴۷) نیز در حالت ورودی تنظیم شده اند. با فشردن هر کلید، LED کناری آن از چشمک زدن باز می‌ایستد و روشن می‌ماند. در این برنامه فرض بر این بود که کلیدها بصورت Active-High هستند، یعنی بصورت پیش فرض مقدارشان ۰ است با با فشردن آنها مقدارشان به ۱ تغییر می‌یابد. اما از آنجا که قصد ما اجرای این مثال روی برد پازج-۱ با استفاده از بال LED و کلید است، و نوع طراحی کلید‌ها در این بال بصورت Active-Low است (یعنی بصورت پیش فرض مقدارشان ۱ است و با فشردن آنها مقدارشان به ۰ تغییر پیدا میکند)، لازم است اصلاح کوچکی در کد انجام دهیم تا نتیجه مطابق انتظار شود. بدین منظور کافی است تا عبارت

if (buttonState == HIGH) {

در قسمت انتهایی برنامه  را به صورت زیر تغییر دهیم:

if (buttonState == LOW) {

با این توضیحات به سراغ آپلود کد روی برد می‌رویم.

آپلود Sketch

برای تست این قسمت از برنامه شما نیاز به یک بال LED و کلید دارید. بال LED و کلید را در یکی از ۶ مکان موجود روی کانکتورهای برد قرار دهید و با کلیک بر روی آیکن  (Upload) در نوار ابزار بالای نرم‌افزار کد نرم‌افزاری خود را روی برد آپلود کنید. در صورتی که این مرحله ازعملیات نیز موفقیت آمیز باشد، پیغامی شبیه تصویر زیر در قسمت پایین نرم افزار نمایش داده خواهد شد و چراغ LED آبی رنگ روی برد (DONE) نیز یک بار خاموش و روشن می‌شود.

آپلود کد sketch روی برد پازج-۱

اکنون میتوانید نتیجه را روی بال LED و کلید مشاهده کنید. همچنین با کلیک بر روی آیکن  در گوشه‌ی سمت راست نوار ابزار بالای نرم‌افزار، ارتباط سریال با برد برقرار شده و جدول اسکی در خروجی کنسول سریال نمایش داده خواهد شد.

چاپ جدول اسکی روی پورت سریال

در پست‌های آتی سعی خواهیم کرد با انجام پروژه‌های جذاب‌تر و کاربردی‌تر، با قابلیت‌های این IDE زیبا و دوست‌داشتنی بیشتر آشنا شویم.

آموزش ویدئویی نصب و اجرای اولین پروژه در DesignLab (بروز رسانی: ۸ فروردین ۹۶)

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

 

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