میکروبلیز بر روی FPGA | طریقه راه اندازی MicroBlaze

میکروبلیز

میکروبلیز چسست؟

میکروبلیز و NIOS هسته های میکروکنترلری هستند که به صورت تمام سفارشی به ترتیب بر روی FPGA های شرکت XILINX و Altera قابل پیاده سازی هستند


در این قسمت آموزش پیاده سازی میکروبلیز داده می شود. این آموزش در ورژن ise 14.2 به بالا درست عمل میکند. حداقل تراشه برای پیاده سازی میکروبلیز xc3s400 میباشد.
لازم به ذکر است که به دلیل پیاده سازی میکروبلیز با گیت ها سرعت آن خیلی بالا نیست و در حد یک avr به خوبی کار میکند
با بکار گیری FPGA های مدل بالاتر سرعت میکروبلیز به دلیل کاهش تاخیر گیت ها بالاتر میرود.

برای اضافه کردن Embeded Processor یا همان MicroBlaze پس از ساخت پروژه، یک فایل جدید ایجاد نمایید و Embeded Processor را انتخاب کنید.

ساخت میکروبلیز

با زدن finish در تصویر زیر نرم افزار xps باز میشود.

صفحه ی پایانی ساخت پروژه

در نرم افزار ise با کلیک روی manage processor drsign نیز میتوان xps را اجرا کرد

صفحه  Manage

در سوال کلید yes را بزنید تا اگر xps قبلا باز بوده بسته شود و مجددا باز شود

clcik yes

با زدن کلید yes در صفحه بعدی وارد محیط wizard میشویم

BSB Wizard

ار بین دو باس ارتباطی cpu باس plb را انتخاب میکنیم. باس axi در سری های گران قیمت مانند virtex وجود دارد

select PLB BUS

 

ساخت طراحی جدید

قطبیت پایه ریست را تعیین کنید که تراشه با صفر ریست شود یا با یک

انتخاب نوع ریست

تعیین می کنیم که تراشه ی ایجاد شده تک هسته ای باشد

تراشه ی تک هسته ای

فرکانس تراشه و مقدار حافظه میکروبلیز را تعیین می کنیم. در مدل های virtex5 هسته ی سخت افزاری power pc هم وجود دارد (یعنی یک CPU واقعی داخل FPGA قرار دارد) و یا در مدل های ZynQ تراشه ی ARM وجود دارد. اما در spartan3 فقط میکروبلیز داریم (در قسمت processor type)

انتخاب فرکانس و مقدار حافظه

در این صفحه از نرم افزار xps تنظیم میکنیم که میکروبلیز چه امکاناتی داشته باشد. مثلا مقدار RAM و ROM را تعیین میکنیم یا تعداد تایمر و UART و غیره را تعیین می کنیم

با انتخاب add device میتوان به میکرو بلیز امکانات جانبی مختلف مانند تایمر و پورت سریال را اضافه نمود

اضافه کردن دستگاه جدید

بعد از کلیک روی add device در قسمت IO پورت سریال  یا همان UART را انتخاب می کنیم

انتخاب UART

در قسمت RS232 گزینه xuart lite را انتخاب می کنیم و نرخ ارسال را برابر 9600 تنظیم می  کنیم

انتخاب نرخ ارسال

مجددا با انتخاب add device در قسمت IO گزینه GPIO را انتخاب کرده و Device را LEDS انتخاب میکنیم

اضافه کردن LED

تعداد LED را در صفحه باز شده روی 8 تنظیم میکنیم

انتخاب تعداد LED

هدف ما این است که میکروبلیز چند LED و یک پورت سریال داشته باشد

با زدن کلید finish صفحه ای باز میشود که میگوید فایل ucf را برای اختصاص پایه های led و uart به fpga تنظیم کنیم. این فایل در محل ذخیره ی پروژه قرار دارد. در این فایل پایه های LED و UART را تنظیم می کنیم که چه پایه هایی از FPGA هستند؟

بر روی OK کلیک کنید تا وارد مرحله ی بعدی شوید

پنجره ی انتهایی

در صفحه ی باز شده آدرس مربوط به led و uart را به خاطر میسپاریم. برای LED مقدار 0x81400000 را بخاطر میسپاریم.

آدرس حافظه

سپس با زدن گزینه ی Generate Netlist کد سنتز میشود تا فایل bit خام برای برنامه ریزی FPGA ساخته شود. این عمل کمی طول میکشد. حدود 10 دقیقه

ساخت نهایی پروژه

در مرحله ی آخر باید سخت افزار تولید شده را به محیط SDK ببریم تا بتوان برای آن برنامه نوشت. مطابق شکل این کار انجام میشود

انتقال طراحی به SDK

SDK

پس از این مرحله نرم افزار SDK اجرا میشود که شکل اجرا شبیه شکل بالا است

SDK

بعد از باز شدن SDK باید مکان workspace را جهت ذخیره فایل های پروژه تعیین کنیم که بهترین مکان محل ذخیره ی پروژه میباشد

تنظیم محیط کاری

بعد از باز شدن SDK وارد منوی File شده و بعد از انتخاب New گزینه ی Xilinx C Project را انتخاب کنید

پروژه جدید می سازیم

می توانید یک کد نمونه به پروژه اضافه کنید تا آن کد نمونه راهنمایی برای استفاده از SDK باشد. ما Periphearl Tests را انتخاب کردیم

کد تست پایه ها

در سمت چپ نرم افزار می توانید Header File ها را مشاهده کنید

هدر فایل ها ی پروژه

فایل xgpio_l.h را پیدا کرده و آن را باز کنید. در این فایل آدرس رجیستر های مربوط به بخش IO یا همان LED ها وجود دارد

ورودی خروجی ها

حال از آدرس یاد داشت شده مرحله قبل و فایل xgpio_l.h استفاده میکنیم و در فایل testperiph.c سه خط زیر را اضافه میکنیم

رجیستر های مربوط به GPIO یا همان LED ها برای ورودی خروجی کردن آنها و روشن و خاموش کردن آنها

تعریف آدرس

با هر بار ذخیره ی پروژه، پروژه کامپایل می شود تا مشکلی نداشته باشد. در مرحله ی آخر باید کد را به FPGA منتقل کنیم

برنامه ریزی تراشه

 

باید فایل bit خام که قبلا توسط XPS ساخته شده بود را به همراه فایل bmm (نقشه ی بلاک رم ها) و فایل elf که خروجی کامپایل SDK است آدرس دهی کنید.

 

انتخاب فایل ها

در شکل بالا با زدن Program تراشه ی FPGA برنامه ریزی می شود ولی برای اینکه با قطع برق دیگر لازم نباشد مجددا تراشه ی FPGA برنامه ریزی شود، بای فایل bit ساخته شده نهایی را به فایل قابل برنامه ریزی برای PROM تبدیل کنید.

محل ذخیره ی فایل bit بعد از اتصال فایل bit خام، فایل bmm و فایل elf در شکل مشخص است

محل ذخیره فایل پروژه

در این قسمت میخواهیم علاوه بر میکرو بلیز از سایر گیت های باقیمانده FPGA هم استفاده نماییم. برای این کار مجددا به نرم افزار ISE بر می گردیم

با کلیک بر روی Generate Toop HDL Source از میکرو بلیز یک فایل VHDL یا Verilog ساخته میشود که بستگی به تنظیم پروژه دارد

ساخت کد

کد top تولید شده شبیه به شکل بالا است که شما می توانید کد خودتان را هم به آن اضافه نمایید

کد HDL

سایت سازنده ی نرم افزار ISE

8 thoughts on “میکروبلیز بر روی FPGA | طریقه راه اندازی MicroBlaze

  1. علیرضا says:

    سلام خسته نباشید اگر بخواهیم برنامه اضافه کنیم مثلا برنامه lcdباید ب کدوم قسمت اضافه کنیم ؟ممنون

  2. salam says:

    با سلام
    بسیار بسیار مفید بود
    خیلی تشکر می کنم از زحمات شما
    یا علی

  3. علی says:

    سلام
    ممنون خیلی خوب بود!
    توی سایتای ایرانی کمتر پیدا میشه!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *