آموزش FPGA قسمت سوم: نرم‌افزار ISE و زبان VHDL

0
843
نرم‌افزار ISE و زبان VHDL
نرم‌افزار ISE و زبان VHDL

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

نرم‌افزار ISE

نرم‌‌افزار ISE یا به‌طور کامل‌تر Xilinx ISE Design Suite یک مجموعه نرم‌‌افزاری است که خود شامل چندین نرم‌‌افزار می‌باشد و از این نرم‌افزار‌‌ها برای طراحی، شبیه‌سازی، برنامه‌ریزی و بسیاری‌از کار‌های دیگر استفاده می‌شود که در ادامه‌ی این مجموعه آموزشی بیشتر با آن‌ها آشنا خواهیم‌شد. همچنین پس‌از نسخه ۱۴.۷، نسخه جدیدی ارائه‌نشد و جای خود را به نرم‌افزار Vivado داد. البته ناگفته نماند، تراشه‌هایی که در ISE دردسترس هستند، در Vivado غیرقابل دسترس هستند و همینطور بالعکس. پس ما باتوجه‌به تراشه‌ای که قصد داریم با آن کارکنیم نرم‌افزار موردنظر را انتخاب خواهیم‌کرد. در این مجموعه آموزشی، چون مبنای آموزش براساس تراشه‌ی Spartan-6 خواهد بود، پس نرم‌افزار ISE را انتخاب‌کرده‌ایم.

ISE
ISE

 

نصب نرم‌افزار ISE

نرم‌افزار را می‌توانید از اینجا دانلود کنید. نصب این نرم‌افزار بسیارساده خواهد بود ولی اگر شما از ویندوز۱۰ استفاده می‌کنید ممکن‌است پس‌از اجرای نرم‌افزار با خطای pn.exe has stopped working_ مواجه شوید، در این صورت باید نرم‌افزار را بسته و مراحل زیر را به‌ترتیب انجام‌دهید.

  1. ابتدا وارد فولدر C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64 شوید و نام فایل libPortability.dll را به libPortability.dll.orig تغییر‌دهید.
  2. در فولدر مرحله۱ ، یک کپی از فایل libPortabilityNOSH.dll ایجاد کنید و نام آن را libPortability.dll بگذارید.
  3. حال وارد فولدر C:\Xilinx\14.7\ISE_DS\common\lib\nt64 شوید و فایل libPortabilityNOSH.dll را در این فولدر هم کپی کنید.
  4. در فولدر مرحله ۳، نام فایل libPortability.dll را به libPortability.dll.orig تغییر دهید.
  5. در آخر، نام فایل libPortabilityNOSH.dll در فولدر مرحله ۳ را به libPortability.dll تغییر دهید.

شروع اولین پروژه

ابتدا وارد نرم‌افزار شوید و سپس مانند تصویر زیر از منوی File گزینه‌ی New Project را انتخاب‌کنید.

New Project in ise
New Project in ise

 

از پنجره بازشده می‌توانید نام و محل ذخیره‌سازی پروژه را انتخاب‌کنید و با انتخاب Next به مرحله‌ی بعد بروید.

انتخاب نام و محل ذخیره‌سازی پروژه
انتخاب نام و محل ذخیره‌سازی پروژه

 

در پنجره بازشده باید تنظیمات مربوط‌به تراشه انتخابی را انجام‌دهیم. تراشه ما از خانواده Spartan-6 و از نوع XC65LX9 می‌باشد. و همچنین پکیج تراشه‌ای که ما از آن استفاده می‌کنیم TQG144 است. در همین پنجره مشاهده می‌کنید که ما Speed را ۲- انتخاب کردیم، در این رابطه باید ذکر گردد که این عدد مربوط‌به تکنولوژی تراشه است، که باید از دیتاشیت یا از روی خود تراشه خوانده‌شود. و درنهایت پس‌از انتخاب Next و Finish پروژه ساخته‌خواهد‌شد.

 

تا اینجا ما فقط پروژه را ساخته‌ایم ولی هنوز مشخص نکرده‌ایم که قرار‌است در این پروژه چه‌نوع فایلی را قراردهیم. در ابتدای‌کار ما قصد داریم که یک ماژول VHDL را به پروژه اضافه‌کنیم، به‌همین‌منظور در قسمت Hierarchy راست‌کلیک کرده و گزینه New Source را انتخاب می‌کنیم. اگر شما فایل از قبل آماده‌ای دارید می‌توانید بااستفاده‌از گزینه‌های Add Source یا Add Copy of Source آن‌را به پروژه اضافه کنید، ولی دقت کنید که فرق بین این دو گزینه این است که یکی از آن‌ها یک کپی از فایل اصلی گرفته و آن را به پروژه اضافه می‌کند و گزینه‌ی دیگر خود فایل اصلی را در پروژه قرار می‌دهد، حال اگر شما در حین‌کار تغییراتی در این فایل ایجاد کنید، این تغییرات در فایل‌اصلی نیز اعمال خواهد شد. پس بهتر این است که اگر فایل‌اصلی را نیاز داریم، از گزینه Add Copy of Source استفاده‌کنیم.

افزودن ماژول VHDL
افزودن ماژول VHDL

 

در پنجره ظاهرشده فایل‌های متفاوتی وجود دارد که بعدا به توضیح هرکدام خواهیم‌پرداخت اما فایل موردنظرما در اینجا یک ماژول VHDL می‌باشد که با انتخاب گزینه‌ی VHDL Module این فایل را به پروژه اضافه می‌کنیم.

دقت‌کنید که مانند تصویر زیر حتما هم اسم فایل و هم نوع فایل را انتخاب‌کنید چون درغیر این‌صورت خود نرم‌افزار یکی‌از گزینه‌های موجود را انتخاب می‌کند که ممکن‌است فایل موردنظرما نباشد.

انتخال نوع فایل
انتخال نوع فایل

 

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

افزودن پورت‌ها
افزودن پورت‌ها

 

در کد ایجادشده همانطورکه مشاهده می‌کنید پورت‌ها اضافه شده‌اند، علاوه‌بر پورت‌ها یک‌سری کامنت و الگوی‌اصلی کد نیز به‌صورت پیش‌فرض اضافه‌شده‌است. بهتر‌است که کامنت‌ها را حذف‌کنیم و بااستفاده‌از کلید Tab چینش کد را هم منظم‌کنیم تا کد ما زیباتر و شکیل‌تر به‌نظر برسد.

منظم‌کردن کدها
منظم‌کردن کدها

 

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

در این کد ساده، ما اول کد فقط دو خط زیر را اضافه میکنیم:

library IEEE;use 
IEEE.STD_LOGIC_1164.ALL;

بعداز begin مربوط به architecture کد موردنظرمان را می‌نویسیم، که البته ما در این پروژه به‌خاطر‌سادگی فقط یک خط کد نوشتیم. در این کد، ما در ابتدا A را با AND ،B و سپس نتیجه را با OR ،C کرده‌ایم.

حائز اهمیت است که در اینجا ذکر گردد نتیجه کد تولید‌شده، ایجاد یک سخت‌افزار خواهد‌بود که شامل یک گیت AND دو ورودی و یک گیت OR دو ورودی می‌باشد و نتیجه کاملا متفاوت با این می‌باشد که ما همین منطق کد را مثلا در زبان C نوشته‌باشیم، در زبان برنامه‌نویسی هیچ سخت‌افزاری تولید نمی‌شود بلکه کد‌ها پشت سرهم در CPU اجرا می‌شوند.

بااستفاده‌از مسیر زیر می‌توانید شماتیک سخت‌افزار ایجاد‌شده را مشاهده‌نمائید:

View RTL Schematic → OK → Add → Create Schematic

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

RTL Schematic
RTL Schematic

 

امیدوارم که تا‌اینجا فرق زبان VHDL با زبان‌های برنامه‌نویسی را به‌خوبی درک‌کرده‌باشید، البته در‌ادامه با توضیحات بیشتری که خواهیم‌داد مفهوم کاملا برای‌شما روشن‌خواهد شد. در قسمت چهارم با ساختار کد و مدارهای ترکیبی و ترتیبی در زبان VHDL آشنا خواهیم شد. پس با ما همراه باشید.

 

منبع: سیسوگ

مطلب قبلیمعرفی ماژول SC66 کویکتل(AI + IOT)
مطلب بعدیآموزش RTOS قسمت دوم : آشنایی با مفهوم چندوظیفگی

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید