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

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

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

بسم‌الله‌الرحمن‌الرحیم

در این سری از آموزش‌ها می‌خواهیم شما را (البته مخاطبان مبحث FPGA) با میکروبلیز و همینطور نحوه اصولی برنامه‌نویسی زبان C آشنا کنیم. دلیل آماده سازی این مقاله و مقالات بعدی در این زمینه این است که تقریبا می‌توان گفت هیچ منبع متن باز فارسی در این زمینه وجود ندارد و اگر هم در سایت‌های خارجی سرچ کنید مطالب بسیار اندکی در این زمینه پیدا خواهید کرد. حال هدفی که در این آموزش داریم، توضیح کامل و جامع میکروبلیز به همراه زبان C است.

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

همانطور که از اسم مقاله مشخص شده قصد داریم ابتدا به توضیح کلی میکروبلیز با یک مثال بپردازیم و بعد از این توضیح به آموزش زبان قدرتمند C و در نهایت توضیح میکروبلیز به همراه سوالات متفاوتی که امکان دارد برای شما تا کنون ایجاد شده باشد بپردازیم.

 

طرح یک مثال کاربردی جهت درک بهتر موضوع میکروبلیز در FPGA  

فرض کنید پروژه‌ای تحت عنوان “خواندن عکس‌های متعدد از SD CARD را با FPGA” به شما پیشنهاد کرده‌اند. و می‌خواهند شما را به عنوان یک مهندس محک بزنند، ماجرا اینگونه است که شما باید برای کارفرما مدت زمان انجام پروژه را به همراه راه‌حل ارائه کنید. در اینجا پاسخ افراد را به صورت کلی می‌توان به سه دسته تقسیم کرد.

دسته اول: پاسخی که خواهند داد این است که، این پروژه شدنی نیست و یا اگر هم شدنی است بسیار وقت زیادی را خواهد گرفت و نمی‌توانند زمان مشخصی به همراه راه‌حل برای این کار تعیین کنند.

دسته دوم: پاسخی که خواهند داد این است که، پروژه کاملا شدنی است اما راه‌حل آن‌ها استفاده از یک میکروکنترلر جانبی واسط (AVR، ARM و …) کنار FPGA است و مدت زمان تعیین شده را هم حدودا 2 هفته تا 1 ماه تعیین می‌کنند. که در اینجا کارفرما می‌گوید این کار باید بدون دستگاهی واسط صورت گیرد چون از لحاظ هزینه‌ای برای تولید انبوه مقرون به صرفه نخواهد بود. و در این لحظه دسته دوم هم پاسخ دسته اول را به کارفرما می‌دهند.

دسته سوم: پاسخی که خواهند داد این است که، پروژه کاملا با خود FPGA شدنی است و مدت زمان تعیین شده را هم حدودا 2 هفته الی 3 هفته ( البته این مقدار بستگی به برنامه‌نویسی فرد دارد) تعیین می‌کنند و راه‌حلی را که ارائه می‌دهند استفاده از میکروبلیز است که دقیقا نیاز کارفرما را هم برآورده می‌کند.

اگر به مثال دقت کرده باشید باید به یک نتیجه کلی برسید. “برای انجام کار‌های متوسط که سرعت بالایی نیاز ندارند، نیازی نیست که حتما و حتما خودتان را ملزم به نوشتن و پیاده سازی آن روی FPGA بدون استفاده از میکروبلیز کنید.”

حال سوالی که پیش خواهد آمد این است که، کار‌های متوسط شامل چه چیز‌هایی می‌شوند؟ کار های متوسط یعنی پیاده سازی کار‌هایی که به راحتی بتوانیم با یک میکروکنترلر انجام دهیم. دقیقا مثال بالا نمونه‌ای از انجام کار‌های متوسط است.

پس با این توضیحات کار‌های سطح بالا شامل چه چیز‌هایی می‌شوند؟ کار‌های سطح بالا شامل کار‌های پردازشی از جمله پیاده‌سازی الگوریتم‌های بسیار پیچیده به همراه عملکرد کاملا موازی است و یا کار‌هایی از این قبیل.

پس با این توضیحات فکر میکنیم متوجه این موضوع شده باشید که برای کار کردن با میکروبلیز نیاز است که زبان C را هم یاد بگیریم. بله دقیقا همینطوری است که حدس زدید.

خب سوال دیگری که شاید ذهن شما را مشغول به خود کند این است که، اگر یک پروژه تلفیقی سطح متوسط و سطح بالا به پیشنهاد داده شد راه‌حل چیست؟ آیا این‌کار شدنی است یا خیر؟ خوشبختانه این کار کاملا شدنی است و راه‌حل این سوال با انجام یک پروژه عملی، در قسمت‌های بعد توضیح داده خواهد شد.

به این نکته هم توجه داشته باشید، همانطوری که در ابتدای مقاله گفته شد ابتدا به توضیح مفصل زبان C خواهیم پرداخت و سپس وارد مبحث میکروبلیز خواهیم شد.

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

اگر بخواهید این سری از آموزش‌ها را دنبال کنید به احتمال زیاد به سوالاتی که در ادامه قرار خواهیم داد، برخورد خواهید کرد.

از چه نوع FPGA در این سری از آموزش‌ها استفاده می‌کنید؟ در این سری از آموزش ها از”XILINX_SPARTAN 6_XC6SLX 9” استفاده خواهد شد.

آیا از برد آموزشی خاصی در این سری از آموزش‌ها استفاده می‌کنید؟ بله از برد آموزشی ALINX در این سری از آموزش‌ها استفاده خواهد شد که تصویر آن را در ادامه می‌توانید مشاهد کنید. (البته نگران نبودن مستندات برد نباشید چون زمانیکه خواستیم اولین پروژه را انجام دهیم فایل UCF آن‌را برای شما قرار خواهیم داد).

بردآموزشی FPGA

آیا نیاز به یادگیری زبان HDL است؟ اگر صرفا یادگیری و پیاده‌سازی میکروبلیز باشد. خیر نیاز چندانی ندارید و به راحتی می‌توانید کار خود را انجام دهید اما مسله اینجا است کسی که به صورت کلی سمت یادگیری FPGA می‌آید تسلط بر این زبان‌ها یعنی یکی از زبان‌های VHDL یا Verilog دارد. اگر هم برای کار خودمان بخواهیم مثالی بزنیم. انجام پروژه‌های تلفیقی است که بدون تسلط به HDL امکان پذیر نخواهد بود.

توصیه ای که ما به شما داریم حتما و حتما به یکی از زبان‌های VHDL یا Verilog تسلط داشته باشید.( برای یادگیری این مباحث هم به سری آموزش‌های FPGA سایت مراجعه کنید.)

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

در قسمت‌ بعد به معرفی و توضیح زبان C خواهیم پرداخت.

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

حمایت از BLO OM

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

BLO OM
BLO OM

«السَّلَامُ عَلَیْکَ یَا أَبَا عَبْدِ اللَّهِ، السَّلَامُ عَلَیْکَ وَ رَحْمَهُ اللَّهِ وَ بَرَکَاتُهُ».

دیدگاه ها

6 دیدگاه

  • مهدی
    ۱۹ بهمن ۱۳۹۸

    سلام وقت بخیر خدا قوت این cهمانcخودمونه یا با رویکردfpgaهست؟یعنی بدرد arm و avrهم میخوره،دوم که من نمیدونم میکرو بلیز یعنی چه،ممنون

    • Phoenix
      ۱۹ بهمن ۱۳۹۸

      سلام نازنینم.

      اره این C که می‌گن همون C است.

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

      پس میکروبلیز هم یه پردازنده هست مثل ARM، AVR و یا هر چیز دیگری و کد C که ما برای آن می‌نویسیم همان کد C است و تفاوت دیگری ندارد.

      فقط این پردازنده در بدو امر در FPGA وجود ندارد و باید با استفاده از روند خاصی این پردازنده را اضافه کنید تا بتونید با آن کار کنید.

      • مهدی
        ۲۲ بهمن ۱۳۹۸

        سلام ممنون از شما،سلامت باشین

        • Phoenix
          ۲۳ بهمن ۱۳۹۸

          درود بر شما. پیروز و پاینده باشید.

  • Pofa10
    ۱۳ مرداد ۱۳۹۸

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

    • BLO OM
      BLO OM
      ۱۳ مرداد ۱۳۹۸

      سلام دوست عزیزم
      خواهش میکنم
      امیدوارم که تمامی قسمت هایی که منتشر می‌شود مورد رضایت شما و مخاطبین این مبحث قرار بگیرد
      فقط توصیه ای که دارم حتما و حتما به یکی از زبان های Verilog یا VHDL تسلط داشته باشید
      ترجیحا اگر با اموزش‌ها می‌خواهید کار کنید زبان توصیف سخت‌افزار VHDL را یاد بگیرید(به اموزش‌هایی FPGA سایت مراجعه کنید که توسط PHONIX نوشته شده است).

      موفق باشید.

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

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

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک