مهندس موفق الکترونیک

آموزش FPGA

به طور کلی بلوک های داخلی FPGA  قابل برنامه ریزی هستند و با یک برنامه ریزی ساده می توان آن را به هر مدار دلخواه تغییر داد از این رو به این تراشه ها قابل برنامه ریزی می گویند. در ادامه با میکرو دیزاینر الکترونیک باشید تا با FPGA  ها بیشتر آشنا شوید و در آینده در پروژه های خود استفاده کنید.

  • آقا این FPGA  چیه کلا ؟
  • تفاوت FPGA  با میکروکنترلر ؟
  • زبان های برنامه نویسی FPGA ؟
  • برای کار با  FPGA  به چه نرم افزار هایی نیاز است ؟
  • مراحل طراحی تا پروگرام یک کد ساده FPGA  چیه ؟
  • شرکت های تولید کننده FPGA
  • چند نمونه از کاربرد های FPGA

آموزش FPGA

خب محکم بشینید میریم دنبال قطعات فرکانس بالا 🙂

آقا این FPGA  چیه کلا ؟

FPGA  مخفف Field Programmable Gate Arrays  یعنی آرایه های گیت قابل برنامه ریزی است. که با متصل کردن بلوک های داخلی آن به هم ، می توان هر مدار دیجیتالی دلخواه را به وجود آورد به عنوان مثال با یک FPGA  میتوان یک پردازنده یا Microproccessor  طراحی کرد یا از آن میتوان  برای پردازش تصویر ، صوت و سیگنال های دیگر بهره برد.

به طور کلی بلوک های داخلی FPGA  قابل برنامه ریزی هستند و با یک برنامه ریزی ساده می توان آن را به هر مدار دلخواه تغییر داد از این رو به این تراشه ها قابل برنامه ریزی می گویند. در ادامه با میکرو دیزاینر الکترونیک باشید تا با FPGA  ها بیشتر آشنا شوید و در آینده در پروژه های خود استفاده کنید.

تفاوت FPGA  با میکروکنترلر ؟

یک میکروکنترلر از  CPU  ، تایمر ها ، پورت ها و حافظه های مختلفف مانند  RAM  ، FLASH  و EEPROM  تشکیل شده است که با پروگرام کردن آن CPU  شروع به اجرای خط به خط برنامه نوشته شده می کند. در حالی که در FPGA  هیچ CPU  یی وجود ندارد و با نوشتن کد به یک FPGA  در واقع ما سخت افزار مدار را طراحی میکنیم.

مطلب پیشنهادی:  آموزش FPGA: بورد Mojo و مقدمات FPGA‌ها – قسمت دوم بخش دوم

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

زبان های برنامه نویسی FPGA ؟

برای طراحی یک مدار با یک FPGA  ما نیاز به یک زبان توصیف سخت افزار داریم که کدهای نوشته شده ی ما را به مدار مد نظر ما تبدیل کند. در واقع ما در یک FPGA  با نوشتن برنامه مدار مورد نظرمان را طراحی می کنیم.  تعداد زبان های توصیف سخت افزار زیاد است اما دو زبان VHDL  و Verilog  از همه مشهورتر هستند. مثلا VHDL  مخفف کلمات Very high speed integrated Hardware Description Language  میباشد که توسط شرکت IBM  و Texas Insturment  عرضه شده است.

آموزش FPGA

مراحل طراحی تا پروگرام یک کد ساده FPGA  چیه ؟

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

مطلب پیشنهادی:  آموزش نرم افزار Vivado

بعد از اتمام این مرحله نوبت به شبیه سازی برنامه میرسد و بعد از اطمینان از عملکرد صحیح مدار ، مرحله Synthesis  آغاز می شود که در این مرحله کد های نوشته شده به شماتیک مدار تبدیل می شود(در شماتیک از گیت ها و دیگر عناصر دیجیتال مانند مالتی پلکسر ، جمع کننده و غیره استفاده می شود ).سپس فایل خروجی که از ابزار سنتز گرفته می شود به ابزار Implement  داده می شود. در این مرحله شماتیکی که از مرحله سنتز به وجود آمده است به ترکیبی از المان های موجود در داخل FPGA  تبدیل شده و سپس در جای مناسب در داخل FPGA  قرار داده می شوند ، که به این مرحله Placement  می گویند.

و بعد از این المان ها عمل سیم کشی و اتصال آغاز می شود که به این مرحله ، مرحله ی Routing می گویند. و بعد از این مرحله فایلی با پسوند bit  تولید می شود که ما می توانیم توسط این فایل bit خود FPGA  ، و یا تبدیل آن به فایل های دیگر و ROM  متصل به FPGA  را پروگرام کنیم.

یادگیری fpga

برای کار با  FPGA  به چه نرم افزار هایی نیاز است ؟

نرم افزار هایی مانند LVD  ، Modelsim  برای شبیه سازی و نرم افزار هایی مانند Sinplify  ، FPGA Express  برای سنتز می توانند مورد استفاده قرار بگیرند. البته در طراحی با FPGA  نرم افزار های دیگری هم هستند که شرکت های تولید کننده FPGA  برای راحتی کار با محصولات خودشان ارائه می دهند که مورد استفاده کاربران قرار می گیرند.

شرکت های تولید کننده FPGA

شرکت های Xilinx  ، Altera  ، Actel  ، Lattice  ، Quick Logic  و غیره تولید کننده FPGA  هستند که بین آنها محصولات شرکت های Xilinx  و Altera  شهرت بیشتری دارند.

مطلب پیشنهادی:  آموزش FPGA و Verilog برای تازه کارها – سیستم‌‌های نهفته

چند نمونه از کاربرد های FPGA

همانطور که قبلا اشاره شد کاربرد FPGA  ها معمولا در مدارات پیچیده دیجیتالی که از پیچیدگی ، سرعت ، حساسیت و دقت بالایی برخوردار می باشند ، است . بنابراین عمده کاربرد های FPGA  بیشتر در شبکه ها ، مدارات مخابراتی ، پردازش صوت و تصویر ، انجام مراحل تست و راه اندازی ASIC ها و در جاهایی که تولید تراشه ASIC مقرون به صرفه نیست ، ار FPGA  استفاده می شود. همچنین سرعت ، دقت ، پایداری و امنیت FPGA  ها باعث شده که آنها به طور وسیعی در صنایع نظامی ، پزشکی و صنعتی برای خود پیدا کنند. در صنایع نظامی از FPGA  ها در سیستم های رادار ، رمزنگاری و در پزشکی در رادیولوژی ها و پردازش تصویر استفاده می شود.

چگونه FPGA  یاد بگیریم ؟

FPGA  ها بر خلاف میکروکنترلرها منبع فارسی چندانی ندارند و برای یادگیری آنها می توان از User Guide  های مخصوص هر FPGA  که توسط شرکت های تولید کننده ارائه می شود استفاده شود. که در سطح حرفه ای این هم خودش داستانی داره ^_^  ممنون که تا اینجای آموزش میکرو دیزاینر الکترونیک را دنبال کردید. در ادامه فایل های و فیلم های جالبی را برای یادگیری شما آماده کرده ایم که در نوشته های بعدی قابل دانلود خواهند بود.

لطفا اگر نظری داشتین در قسمت نظرات مطرح کنید و همچنین در ادامه توصیه ‌می‌کنیم آموزش FPGA و Verilog برای تازه کارها! را هم مطالعه کنید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

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

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

12 دیدگاه

  1. محمد رضایی شمس

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

  2. besiar ali
    website khubi darin
    enshala dar tak tak marahel zendegi movafagh bashin

  3. از مطلبای خوب وو بدر بخورتون واقعا ممنون واقعا هم اموزشی بوود هم اکادمیک

  4. سلام. بسیار ممنونم از کارتون
    خیلی کار ارزشمند انجام می دهید

  5. سلام ممنون از سایت و مطالب خوبتون
    یه سوال داشتم ، این دستگاههای antminer Asic که برای استخراج ارزهای دیجیتال ساخته می شوند از همین روشها استفاده می کنند ؟ اگه از این روش بهره می برند امکانش هست ما خودمون از این دستگاهها بسازیم ؟

  6. مطلبی که گذاشتید خیلی عالی و با جزئیات بود.
    تشکر از شما.

  7. سلام
    خیلی عالی بود
    ممنون

  8. ممنون بابت زحمات تون

  9. سلام کسانی که fpga کار می کنن فقط روی کد نویسی و الگوریتم های آن تمرکز می کنن و یا درگیر مسائل دیگری مثل طراحی پی سی بی و کار با آی سی های جانبی نیز می شوند؟

    • میلاد جهاندیده

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

      در لینک زیر یکسری آموزش خوب در مورد طراحی مدارهای فرکانس بالا هست که بنظرم مهمه بدونید:

      https://melec.ir/high-speed-circuit-board-pcb-design

      و در مورد خود مدارچاپی هم لینک زیر را ببنید:

      https://melec.ir/category/electronic-tutorial/pcb