افشین رشید
اُستادیار ؛ عضو هیات علمی دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران
456 یادداشت منتشر شدهتفاوت میکرو پروسسور ها با میکروکنترلر های FPGA

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

در یک FPGA بر خلاف میکروکنترلر قابلیت اجرای پردازش های موازی وجود دارد و این امر باعث بالا رفتن سرعت عملیات در یک FPGA می شود. همچنین یک FPGA به دلیل استفاده مستقیم از گیت ها و بلوک های منطقی و عملیاتی دیگر خیلی سریع تر از میکروکنترلر هست. به همین دلیل از FPGA ها برای ساخت سیستم های پرسرعت و حساس که دارای پیچیدگی های خاص هم می باشند استفاده می شود. تفاوت میکرو پروسسورها در عملکرد برعکس FPGA در سیستم است.برای طراحی یک مدار با یک FPGA ما نیاز به یک زبان توصیف سخت افزار داریم که کدهای نوشته شده ی ما را به مدار مد نظر ما تبدیل کند. در واقع ما در یک FPGA با نوشتن برنامه مدار مورد نظرمان را طراحی می کنیم. تعداد زبان های توصیف سخت افزار زیاد است اما دو زبان VHDL و Verilog از همه مشهورتر هستند.FPGA مانند بوم سفید است ، می تواند هر عملکرد دیجیتالی را که تصور کنید انجام دهد ، از قابلیت انعطاف پذیری و انعطاف پذیری برخوردار است که در هیچ جای دیگری وجود ندارد.با روشن شدن ، FPGA کد خود را از یک حافظه خارجی بارگیری می کند و سپس براساس عملکرد جدید شروع به رفتار می کند. FPGA مبتنی بر SRAM است. بنابراین ، هر بار کد باید بارگیری شود. FPGA امروزه در طیف وسیعی از برنامه ها استفاده می شود. FPGA را می توان در برنامه های زیر یافت: مرکز داده ، محاسبات با کارایی بالا ، محصولات صنعتی ، پزشکی ، ابزار اندازه گیری ، پردازش ویدئو و تصویر ، ارتباطات سیمی ، ارتباطات بی سیم ، هوا فضا و دفاع ، نمونه سازی ASIC ، خودرو و سایر موارد میکروکنترلر ها را شامل میشود.FPGA از مجموعه ای از بلوک ها به نام بلوک های منطقی قابل برنامه ریزی تشکیل شده است ، این بلوک ها توسط ماتریس اتصال قابل تنظیم قابل اتصال هستند. این بدان معنی است که هم رفتار منطقی و هم مسیریابی داخلی می تواند توسط طراح برنامه ریزی شود و به این وسیله انعطاف پذیری لازم را به دستگاه می دهد.ساختار و معماری Gate Array یا FPGA Field Programableable Field یک مدار مجتمع است که می تواند میلیون ها دروازه منطقی را در خود داشته باشد که می توانند برای انجام یک کار خاص پیکربندی شوند.

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

ریزپردازنده یا میکروپروسسور قطعه ای است که توان پردازش محاسبه و منطق را دارد. ریزپردازنده ها ففقط میتوانند اطلاعات باینری(0 و 1) را دریافت کنند و بر روی آن ها پردازش انجام دهند.در مرحله بعد اطلاعات پردازش شده را داخل حافظه موقت بارگذاری کرده و اطلاعات پردازش شده را به خروجی جهت نمایش میدهد.هر چه سرعت پردازنده یا میکروپروسسور (بر حسب کیلوهرتز،مگاهرتز،گیگاهرتز و...) بیشتر باشد میکروپروسسور با سرعت بیشتری نسبت به داده ها ورودی واکنش نشان میدهد.میکروپرسسور به طور کلی یک پردازنده است و برای کار باید به آن چیپ های حافظه و چیز های دیگری را به آن اضافه کرد این امکان کاربردی دارد که بر حسب کارمان حافظه مناسب و دیگر قطعات را مانند تایمرها و غیره به صورت بیشتری استفاده کنیم ولی مدار خیلی پیچیده می شود و از لحاظ هزینه هم هزینه بیشتر می شود به همین دلیل امروزه از میکروپرسسورها کمتر استفاده میشود.در میکروپرسسورها فقط واحد پردازش به صورت مجزا به صورت یک آیسی IC (مدارمجتمع) وجود دارد که مدارهایی مانند RAM ،آنها در آیسی های مجزا به ریزپردازنده متصل میشوند و با ROM ،واحد ورودی/ خروجی، تایمرها تشکیل یک رایانه را میدهند.توانایی تولید وسایل میکروالکترونیک با صدها کارکرد از جمله کنترل، تنظیم، هدایت و حافظه که میکروپرسسورها به اجرا در می آورند. در آغاز هر تراشه ۴ کیلو بایت حافظه داشت که بعد ها به ۸، ۱۶، ۳۲، ۶۴ کیلو بایت افزایش یافت و امروزه سازندگان میکرو پروسسور تراشه هایی تولید می کنند که ظرفیت ذخیره سازی آنها چندین مگابایت یا حتی گیگا (میلیارد) بایت است.امروزه یک تراشه ی ریز سیلیکنی(میکرو پروسسور) حاوی مدار های الکترونیکی دارای صدها هزار ترانزیستور و همه ی اتصالات لازم و مدار بندی روی این تراشه می تواند خود میکرو کامپیوتری باشد با ظرفیت پردازش ورودی / خروجی و حافظه ی دستیابی تصادفی و… .