میکروبلیز چسست؟
میکروبلیز و NIOS هسته های میکروکنترلری هستند که به صورت تمام سفارشی به ترتیب بر روی FPGA های شرکت XILINX و Altera قابل پیاده سازی هستند
در این قسمت آموزش پیاده سازی میکروبلیز داده می شود. این آموزش در ورژن ise 14.2 به بالا درست عمل میکند. حداقل تراشه برای پیاده سازی میکروبلیز xc3s400 میباشد.
لازم به ذکر است که به دلیل پیاده سازی میکروبلیز با گیت ها سرعت آن خیلی بالا نیست و در حد یک avr به خوبی کار میکند
با بکار گیری FPGA های مدل بالاتر سرعت میکروبلیز به دلیل کاهش تاخیر گیت ها بالاتر میرود.
برای اضافه کردن Embeded Processor یا همان MicroBlaze پس از ساخت پروژه، یک فایل جدید ایجاد نمایید و Embeded Processor را انتخاب کنید.
با زدن finish در تصویر زیر نرم افزار xps باز میشود.
در نرم افزار ise با کلیک روی manage processor drsign نیز میتوان xps را اجرا کرد
در سوال کلید yes را بزنید تا اگر xps قبلا باز بوده بسته شود و مجددا باز شود
با زدن کلید yes در صفحه بعدی وارد محیط wizard میشویم
ار بین دو باس ارتباطی cpu باس plb را انتخاب میکنیم. باس axi در سری های گران قیمت مانند virtex وجود دارد
قطبیت پایه ریست را تعیین کنید که تراشه با صفر ریست شود یا با یک
تعیین می کنیم که تراشه ی ایجاد شده تک هسته ای باشد
فرکانس تراشه و مقدار حافظه میکروبلیز را تعیین می کنیم. در مدل های virtex5 هسته ی سخت افزاری power pc هم وجود دارد (یعنی یک CPU واقعی داخل FPGA قرار دارد) و یا در مدل های ZynQ تراشه ی ARM وجود دارد. اما در spartan3 فقط میکروبلیز داریم (در قسمت processor type)
در این صفحه از نرم افزار xps تنظیم میکنیم که میکروبلیز چه امکاناتی داشته باشد. مثلا مقدار RAM و ROM را تعیین میکنیم یا تعداد تایمر و UART و غیره را تعیین می کنیم
با انتخاب add device میتوان به میکرو بلیز امکانات جانبی مختلف مانند تایمر و پورت سریال را اضافه نمود
بعد از کلیک روی add device در قسمت IO پورت سریال یا همان UART را انتخاب می کنیم
در قسمت RS232 گزینه xuart lite را انتخاب می کنیم و نرخ ارسال را برابر 9600 تنظیم می کنیم
مجددا با انتخاب add device در قسمت IO گزینه GPIO را انتخاب کرده و Device را LEDS انتخاب میکنیم
تعداد LED را در صفحه باز شده روی 8 تنظیم میکنیم
هدف ما این است که میکروبلیز چند LED و یک پورت سریال داشته باشد
با زدن کلید finish صفحه ای باز میشود که میگوید فایل ucf را برای اختصاص پایه های led و uart به fpga تنظیم کنیم. این فایل در محل ذخیره ی پروژه قرار دارد. در این فایل پایه های LED و UART را تنظیم می کنیم که چه پایه هایی از FPGA هستند؟
بر روی OK کلیک کنید تا وارد مرحله ی بعدی شوید
در صفحه ی باز شده آدرس مربوط به led و uart را به خاطر میسپاریم. برای LED مقدار 0x81400000 را بخاطر میسپاریم.
سپس با زدن گزینه ی Generate Netlist کد سنتز میشود تا فایل bit خام برای برنامه ریزی FPGA ساخته شود. این عمل کمی طول میکشد. حدود 10 دقیقه
در مرحله ی آخر باید سخت افزار تولید شده را به محیط 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 تولید شده شبیه به شکل بالا است که شما می توانید کد خودتان را هم به آن اضافه نمایید
سلام خسته نباشید اگر بخواهیم برنامه اضافه کنیم مثلا برنامه lcdباید ب کدوم قسمت اضافه کنیم ؟ممنون
سلام
باید GPIO قرار بدید و کد کنترل LCD را برای آن بنویسید
سلام
تفاوت میکروبلیز و نایوس چیه؟
سلام اولی برای FPGA خانواده XILINX هست و دومی برای Altera
سلام .خیلی خوب بود. واقعا لطف کردید
سلام
ممنون بابت این مطلب مفید و ارزنده!
با سلام
بسیار بسیار مفید بود
خیلی تشکر می کنم از زحمات شما
یا علی
سلام
ممنون خیلی خوب بود!
توی سایتای ایرانی کمتر پیدا میشه!