
شکل 1. نمای کلی FPGA در مقابل میکروکنترلر
یک FPGA (Field-Programmable Gate Array) نوعی مدار مجتمع است که به شما امکان می دهد منطق دیجیتال را پس از ساخت پیکربندی کنید.هنگامی که رفتار سخت افزاری سفارشی مورد نیاز است، مانند ایجاد مسیرهای پردازش سیگنال موازی یا منطق کنترل تخصصی، به طور گسترده در طراحی PCB استفاده می شود.به جای اجرای دستورالعمل های نرم افزاری، یک FPGA مدارهای سخت افزاری را بر اساس طراحی شما می سازد.این باعث می شود آن را برای کارهایی که به زمان بندی دقیق و انعطاف پذیری در سطح سخت افزار نیاز دارند، مناسب باشد.در یک سیستم PCB، به عنوان یک هسته منطقی قابل برنامه ریزی عمل می کند که به حافظه، حسگرها و رابط های ارتباطی متصل می شود.از دستگاه های FPGA برای پیاده سازی مستقیم سیستم های دیجیتال سفارشی روی برد استفاده کنید.
الف میکروکنترلر یک مدار مجتمع فشرده است که برای اجرای دستورالعمل های برنامه ریزی شده برای کنترل سیستم های الکترونیکی طراحی شده است.این معمولاً شامل یک پردازنده، حافظه، و رابط های ورودی/خروجی در یک تراشه است که آن را برای برنامه های PCB تعبیه شده ایده آل می کند.میکروکنترلرها معمولاً برای خواندن ورودی ها، پردازش داده ها و کنترل خروجی ها مانند LED ها، موتورها یا حسگرها استفاده می شوند.آنها به صورت متوالی و به دنبال مجموعه ای از دستورالعمل های نوشته شده در نرم افزار عمل می کنند.در طراحی PCB، آنها به عنوان واحد کنترل اصلی برای بسیاری از دستگاه ها، از ابزارهای ساده گرفته تا سیستم های پیچیده، عمل می کنند.سادگی و یکپارچگی آنها آنها را به انتخابی محبوب برای کارهای کنترل محور تبدیل می کند.
• بلوک های منطقی (بلوک های منطقی قابل تنظیم - CLB)
اینها واحدهای ساختمان اصلی یک FPGA هستند که عملیات دیجیتال را انجام می دهند.هر بلوک منطقی شامل جداول جستجو (LUTs)، فلیپ فلاپ ها و مالتی پلکسرها است.LUT ها برای پیاده سازی توابع منطق ترکیبی با ذخیره جداول حقیقت استفاده می شوند.فلیپ فلاپ ها فضای ذخیره سازی را برای منطق متوالی و کنترل زمان فراهم می کنند.این عناصر با هم به FPGA اجازه می دهند مدارهای دیجیتال سفارشی را تشکیل دهند.
• اتصالات قابل برنامه ریزی
Interconnects مسیرهای مسیریابی هستند که بلوک های منطقی مختلف را در FPGA به هم متصل می کنند.آنها به سیگنال ها اجازه می دهند بین عناصر منطقی بر اساس طراحی پیکربندی شده حرکت کنند.این اتصالات منعطف هستند و می توانند برای مطابقت با طرح بندی مدارهای مختلف مجددا برنامه ریزی شوند.شبکه مسیریابی اطمینان حاصل می کند که سیگنال ها به طور موثر به مقاصد صحیح می رسند.این ساختار امکان ایجاد مدار پیچیده بدون سیم کشی ثابت را فراهم می کند.
• بلوک های ورودی/خروجی (I/O).
بلوک های ورودی/خروجی FPGA را به اجزای خارجی روی PCB متصل می کنند.آنها ارتباط با دستگاه هایی مانند حسگرها، حافظه و پردازنده ها را مدیریت می کنند.این بلوک ها از سطوح مختلف ولتاژ و استانداردهای سیگنالینگ پشتیبانی می کنند.آنها را می توان به عنوان پورت های ورودی، خروجی یا دو طرفه پیکربندی کرد.این انعطاف پذیری امکان یکپارچه سازی یکپارچه با سیستم های مختلف خارجی را فراهم می کند.
• واحدهای مدیریت ساعت
واحدهای مدیریت ساعت زمان بندی و همگام سازی را در داخل FPGA کنترل می کنند.آنها سیگنال های ساعت را به قسمت های مختلف تراشه تولید و توزیع می کنند.این واحدها ممکن است شامل حلقههای قفلشده فاز (PLL) یا حلقههای قفلشده با تأخیر (DLL) باشند.آنها به حفظ زمان بندی پایدار برای عملکرد قابل اعتماد کمک می کنند.کنترل ساعت مناسب پردازش دقیق داده ها را در طراحی تضمین می کند.
• بلوک های حافظه جاسازی شده (BRAM)
اینها واحدهای حافظه داخلی هستند که برای ذخیره سازی موقت داده ها استفاده می شوند.آنها اجازه دسترسی سریع به داده های پرکاربرد در FPGA را می دهند.Block RAM را می توان در اندازه ها و حالت های مختلف پیکربندی کرد.از وظایف بافر، کش و مدیریت داده پشتیبانی می کند.این امر نیاز به حافظه خارجی را در برخی از طراحی ها کاهش می دهد.
• واحد پردازش مرکزی (CPU)
CPU واحد پردازش اصلی است که دستورالعمل ها را اجرا می کند.عملیات حسابی، منطقی و کنترلی را انجام می دهد.CPU دستورالعمل ها را از حافظه می خواند و آنها را مرحله به مرحله پردازش می کند.جریان داده ها را در داخل سیستم مدیریت می کند.این باعث می شود که کنترل کننده اصلی میکروکنترلر باشد.
• حافظه (فلش، رم، EEPROM)
میکروکنترلرها شامل انواع مختلفی از حافظه برای ذخیره کد و داده می شوند.فلش مموری برنامه را به طور دائم ذخیره می کند.RAM برای داده های موقت در حین اجرا استفاده می شود.EEPROM برای ذخیره مقادیر کمی از داده های غیر فرار استفاده می شود.هر نوع نقش خاصی در عملکرد سیستم ایفا می کند.آنها با هم از مدیریت داده های قابل اعتماد پشتیبانی می کنند.
• تایمر و شمارنده
تایمر و شمارنده برای عملیات مبتنی بر زمان استفاده می شود.آنها به ایجاد تاخیر، اندازه گیری فواصل زمانی و کنترل وظایف دوره ای کمک می کنند.این اجزا برای عملکردهایی مانند تولید سیگنال PWM مهم هستند.آنها همچنین از شمارش رویداد و زمانبندی پشتیبانی میکنند.این باعث می شود آنها در سیستم های کنترل و اتوماسیون مفید باشند.
• پورت های ورودی/خروجی (GPIO)
پین های GPIO به میکروکنترلر اجازه می دهد تا با دستگاه های خارجی تعامل داشته باشد.بسته به کاربرد، می توان آنها را به عنوان ورودی یا خروجی پیکربندی کرد.این پورت ها سیگنال های حسگرها را می خوانند یا سیگنال هایی را به محرک ها ارسال می کنند.آنها از ارتباط دیجیتال با سایر اجزا پشتیبانی می کنند.GPIO ها برای اتصال سیستم خوب هستند.
• رابط های ارتباطی
میکروکنترلرها شامل ماژول های ارتباطی داخلی مانند UART، SPI و I2C هستند.این رابط ها امکان تبادل داده با دستگاه های دیگر را فراهم می کنند.آنها از پروتکل های ارتباط سریال که معمولاً در سیستم های تعبیه شده استفاده می شوند پشتیبانی می کنند.این امکان اتصال به سنسورها، نمایشگرها و سایر کنترلرها را فراهم می کند.این رابط ها یکپارچه سازی سیستم را ساده می کنند.

شکل 2. نمودار بلوکی FPGA
بلوک دیاگرام FPGA یک دستگاه مرکزی قابل برنامه ریزی را نشان می دهد که از طریق رابط های انعطاف پذیر به چندین مؤلفه خارجی متصل است.معمولاً به ماژولهای حافظه مانند SDRAM و حافظه فلش برای مدیریت دادهها پیوند میخورد.رابط های ارتباطی مانند UART، RS-485 و JTAG امکان تعامل با سیستم های خارجی و ابزارهای اشکال زدایی را فراهم می کنند.این نمودار همچنین شامل اتصالات ورودی/خروجی برای سنسورها و سیگنال های کنترلی است.یک منبع ساعت سیگنالهای زمانبندی را برای اطمینان از عملکرد هماهنگ ارائه میکند.این ساختار نشان می دهد که چگونه FPGA به عنوان یک مرکز منطق مرکزی در سیستم عمل می کند.این جریان داده بین دستگاه های جانبی را بدون معماری داخلی ثابت مدیریت می کند.

شکل 3. نمودار بلوکی میکروکنترلر
بلوک دیاگرام میکروکنترلر یک واحد پردازش متمرکز را نشان می دهد که از طریق یک سیستم اتوبوس به حافظه داخلی و تجهیزات جانبی متصل است.CPU با ROM و RAM ارتباط برقرار می کند تا دستورالعمل ها را اجرا و ذخیره کند.پورت های ورودی/خروجی امکان تعامل با دستگاه های خارجی مانند سنسورها و نمایشگرها را فراهم می کند.تایمرها و شمارنده ها عملیات مربوط به زمان بندی را در سیستم مدیریت می کنند.یک نوسان ساز سیگنال ساعت را ارائه می دهد که کل عملیات را هدایت می کند.کنترل وقفه مدیریت رویدادهای خارجی و داخلی را مدیریت می کند.این ساختار یک سیستم فشرده و یکپارچه را نشان می دهد که برای کارهای کنترلی طراحی شده است.
|
مزایا |
معایب |
|
بسیار انعطاف پذیر است
پیکربندی سخت افزاری امکان طراحی مدار دیجیتال سفارشی را فراهم می کند. |
طراحی پیچیده
فرآیندی که به زبان های توصیف سخت افزاری نیاز دارد. |
|
درست را پشتیبانی می کند
پردازش موازی برای عملیات با سرعت بالا |
هزینه بالاتر
در مقایسه با راه حل های تعبیه شده ساده تر. |
|
قابل برنامه ریزی مجدد
چندین بار برای برنامه های مختلف |
طولانی تر
زمان توسعه به دلیل طراحی و آزمایش |
|
می تواند اداره کند
پردازش سیگنال و وظایف داده پیچیده |
نیاز دارد
ابزار تخصصی و تخصص. |
|
مقیاس پذیر
معماری مناسب برای سیستم های پیشرفته |
قدرت بالاتر
مصرف در برخی طرح ها |
|
مزایا |
معایب |
|
کم هزینه و
به طور گسترده برای بسیاری از برنامه ها در دسترس است. |
محدود
قدرت پردازش برای کارهای پیچیده |
|
برنامه نویسی آسان
با استفاده از زبان های رایج مانند C/C++. |
متوالی
اجرا، پردازش موازی را محدود می کند. |
|
یکپارچه شده است
قطعات نیاز به سخت افزار خارجی را کاهش می دهند. |
حافظه محدود
در مقایسه با سیستم های بزرگتر |
|
قدرت کم
مصرف مناسب برای دستگاه های قابل حمل |
کمتر انعطاف پذیر است
پیکربندی سخت افزاری |
|
توسعه سریع
چرخه برای سیستم های تعبیه شده |
عملکرد
به معماری ثابت بستگی دارد. |

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

مثال کد میکروکنترلر از یک زبان برنامه نویسی مانند C برای اجرای گام به گام دستورالعمل ها استفاده می کند.با تنظیم رجیسترهای سخت افزاری و تعریف تنظیمات پین شروع می شود.تابع اصلی به طور مداوم اجرا می شود و وظایف را در یک حلقه انجام می دهد.دستورالعمل ها خروجی هایی مانند روشن و خاموش کردن LED را کنترل می کنند.از توابع تاخیر برای ایجاد افکت های زمان بندی استفاده می شود.این رویکرد از یک مدل اجرای متوالی پیروی می کند.این ساده است و به طور گسترده برای برنامه نویسی سیستم های جاسازی شده استفاده می شود.
1. سیستم های اتوماسیون صنعتی
FPGA ها برای کنترل و پردازش سیگنال در ماشین های صنعتی استفاده می شوند.آنها داده های با سرعت بالا و نیازهای زمان بندی دقیق را مدیریت می کنند.میکروکنترلرها حسگرها، موتورها و منطق کنترل را در سیستم های اتوماسیون مدیریت می کنند.آنها با هم، عملیات قابل اعتماد و کارآمد را امکان پذیر می کنند.این ترکیب عملکرد و کنترل سیستم را بهبود می بخشد.
2. لوازم الکترونیکی مصرفی
میکروکنترلرها به طور گسترده در دستگاه هایی مانند ماشین لباسشویی، تلویزیون و کنترل از راه دور استفاده می شوند.آنها ورودی های کاربر و عملکردهای سیستم را به طور موثر مدیریت می کنند.FPGA ها در دستگاه های پیشرفته ای استفاده می شوند که به پردازش سریع داده ها نیاز دارند، مانند واحدهای پردازش ویدئو.این برنامه ها از طراحی های فشرده و کارآمد بهره می برند.هر دو فناوری از محصولات الکترونیکی مدرن پشتیبانی می کنند.
3. سیستم های ارتباطی
FPGA در تجهیزات شبکه برای مسیریابی داده و پردازش سیگنال استفاده می شود.آنها از پروتکل های ارتباطی پرسرعت پشتیبانی می کنند.میکروکنترلرها عملکردهای کنترل و نظارت را در دستگاه های ارتباطی انجام می دهند.این نقش ها انتقال داده های پایدار و کارآمد را تضمین می کنند.این مهم در زیرساخت های ارتباطی مدرن است.
4. تجهیزات پزشکی
میکروکنترلرها عملکردهای دستگاه هایی مانند مانیتور قلب و پمپ های تزریق را کنترل می کنند.آنها عملکرد قابل اعتماد و کم مصرف را تضمین می کنند.FPGA ها در سیستم های تصویربرداری برای پردازش سریع داده ها استفاده می شوند.این برنامه ها به دقت و قابلیت اطمینان نیاز دارند.هر دو فناوری از سیستم های مراقبت های بهداشتی پشتیبانی می کنند.
5. سیستم های خودرو
میکروکنترلرها واحدهای کنترل موتور، حسگرها و سیستم های ایمنی را مدیریت می کنند.آنها عملکرد کارآمد خودرو را تضمین می کنند.FPGA ها در سیستم های پیشرفته کمک راننده برای پردازش داده ها استفاده می شوند.این سیستم ها ایمنی و عملکرد را بهبود می بخشند.الکترونیک خودرو به شدت به هر دو فناوری متکی است.
6. هوافضا و دفاع
FPGA ها برای پردازش داده ها با سرعت بالا و سیستم های ارتباطی امن استفاده می شوند.آنها از تجزیه و تحلیل سیگنال و وظایف کنترلی پیچیده پشتیبانی می کنند.میکروکنترلرها عملکردهای نظارت و کنترل را در سیستم های تعبیه شده انجام می دهند.این برنامه ها به قابلیت اطمینان و دقت بالایی نیاز دارند.هر دو فناوری نقش های کلیدی را در سیستم های حیاتی ایفا می کنند.
|
ویژگی ها |
FPGA |
میکروکنترلر |
CPLD |
|
منابع منطقی |
~ 10 هزار تا 10 میلیون
گیت های منطقی (یا LUT) |
قابل اجرا نیست
(بر اساس CPU) |
~ 1 تا 100 هزار
دروازه ها |
|
سرعت ساعت |
~50 مگاهرتز تا 500+
مگاهرتز (وابسته به طراحی) |
~ 1 مگاهرتز تا 600
مگاهرتز (MCU های معمولی)
|
50 مگاهرتز تا 200
مگاهرتز |
|
سبک پردازش |
موازی واقعی
اجرای سخت افزاری |
متوالی
اجرای دستورالعمل |
موازی محدود
منطق |
|
پیکربندی
روش |
مبتنی بر SRAM/Flash
بیت استریم در هنگام راه اندازی بارگیری می شود |
سیستم عامل ذخیره شده
در حافظه فلش |
غیر فرار
پیکربندی (EEPROM/Flash) |
|
برنامه نویسی
زبان |
VHDL، Verilog
(HDL) |
C، C++، اسمبلی |
VHDL، Verilog |
|
حافظه داخلی |
بلوک رم: ~ 10
کیلوبایت تا چند مگابایت |
فلش: ~8 کیلوبایت – 2
مگابایت، RAM: ~ 2 KB–512 KB |
بسیار محدود
(معادل چند کیلوبایت) |
|
پین های ورودی/خروجی |
~50 تا 1000+
I/Oهای قابل تنظیم |
~6 تا 200 GPIO
پین ها |
30 تا 500 ورودی/خروجی |
|
قدرت
مصرف |
~1 وات تا 10+ وات
(بستگی به اندازه/طراحی دارد) |
~ 1 مگاوات تا 500 مگاوات |
~ 10 مگاوات تا 1 وات |
|
زمان راه اندازی |
میلی ثانیه به ثانیه
(نیاز به بار پیکربندی دارد) |
µs به ms
(فوری از فلش) |
فوری
(غیر فرار) |
|
ورودی طراحی |
مدار سخت افزاری
تعریف |
برنامه نرم افزاری
توسعه |
طراحی منطقی
(ساده تر از FPGA) |
|
خارجی
اجزاء |
اغلب نیاز دارد
حافظه خارجی (DDR، Flash) |
حداقل (معمولا
مستقل) |
حداقل خارجی
اجزاء |
|
پیکربندی مجدد |
به طور کامل
سیکل های قابل برنامه ریزی مجدد و نامحدود |
قابل برنامه ریزی مجدد
سیستم عامل |
قابل برنامه ریزی مجدد
اما اندازه محدود |
|
استفاده معمولی
مقیاس |
با پیچیدگی بالا
سیستم های دیجیتال |
کوچک تا متوسط
سیستم های تعبیه شده |
کنترل کوچک
و منطق رابط |
|
توسعه
چرخه |
هفته ها تا ماه ها |
روزها تا هفته ها |
روزها تا هفته ها |
FPGA ها و میکروکنترلرها عمدتاً در نحوه پردازش داده ها متفاوت هستند، به طوری که FPGA ها اجرای موازی مبتنی بر سخت افزار را ارائه می دهند و میکروکنترلرها به کنترل نرم افزار متوالی متکی هستند.اجزای داخلی، ساختارهای سیستم و روش های برنامه نویسی آنها منعکس کننده این تفاوت ها هستند و هر یک را برای کاربردهای خاص مناسب می کنند.FPGA ها در کارهای منطقی با سرعت بالا و قابل تنظیم عالی هستند، در حالی که میکروکنترلرها برای طراحی های کنترل محور و مقرون به صرفه ایده آل هستند.آنها با هم نقش مهمی در صنایعی مانند اتوماسیون، ارتباطات، خودرو و سیستم های مراقبت های بهداشتی ایفا می کنند.
لطفاً یک سؤال ارسال کنید ، ما بلافاصله پاسخ خواهیم داد.
بله، اما بستگی به برنامه دارد.یک FPGA می تواند توابع کنترل را تکرار کند، اما اغلب در مقایسه با یک میکروکنترلر برای کارهای ساده، پیچیده تر و پرهزینه تر است.
میکروکنترلرها برای عملکرد کم مصرف با اجزای یکپارچه و حالت های خواب بهینه شده اند.FPGA ها به دلیل منطق قابل تنظیم و پردازش موازی انرژی بیشتری مصرف می کنند.
خیر، FPGA ها به سیستم عامل نیاز ندارند زیرا منطق سخت افزاری را مستقیما پیاده سازی می کنند.میکروکنترلرها میتوانند بدون سیستمعامل اجرا شوند، اما ممکن است از آن برای برنامههای پیچیده استفاده کنند.
بله، بسیاری از سیستم ها هر دو را ترکیب می کنند.FPGA پردازش با سرعت بالا را انجام می دهد، در حالی که میکروکنترلر وظایف کنترل و ارتباطات را مدیریت می کند.
FPGA ها از زبان های توصیف سخت افزاری مانند VHDL یا Verilog استفاده می کنند، در حالی که میکروکنترلرها معمولاً با استفاده از C یا C++ برنامه ریزی می شوند.
در 2026/03/30
در 2026/03/27
در 8000/04/18 147776
در 2000/04/18 112022
در 1600/04/18 111351
در 0400/04/18 83777
در 1970/01/1 79575
در 1970/01/1 66964
در 1970/01/1 63104
در 1970/01/1 63041
در 1970/01/1 54097
در 1970/01/1 52189