تفسیر یک (میکرو تراشه FPGA) مخفف Field-Programmable Gate Array

15 خرداد 1402 - خواندن 15 دقیقه - 502 بازدید



 FPGA مخفف Field-Programmable Gate Array است و می تواند به عنوان یک تراشه سخت افزاری تعریف شود که برای انجام عملیات منطقی استفاده می شود. آنها از یک شبکه یکپارچه یا مجموعه ای از بلوک های منطقی که روی یک تراشه قرار گرفته اند، تشکیل شده اند. که در آن مدارها دروازه های منطقی قابل برنامه ریزی هستند.

FPGA ها از بلوک های منطقی قابل تنظیم جداگانه یا CLB تشکیل شده اند که از طریق اتصالات قابل برنامه ریزی به هم متصل می شوند. همانطور که از نام فن آوری نیمه هادی نشان داده شده است، مزایای FPGA به دلیل توانایی آنها برای برنامه ریزی در هنگام پیاده سازی در زمینه در مقابل انواع دیگر تراشه های نیمه هادی (مانند ASIC) که تا حد زیادی در طراحی و اجرای خود سفت و سخت هستند، شناخته شده است.یک FPGA از آرایه ای از بلوک ها به نام بلوک های منطقی قابل برنامه ریزی تشکیل شده است، این بلوک ها توسط ماتریس اتصال قابل تنظیم به هم متصل می شوند. این بدان معنی است که هم رفتار منطقی و هم مسیریابی داخلی را می توان توسط طراح برنامه ریزی کرد و به دستگاه انعطاف پذیری آن را داد. تعداد بلوک های منطقی به اندازه FPGA (و عملکرد) آن بستگی دارد. هرچه FPGA بزرگتر باشد، بلوک های منطقی بیشتری می توانید استفاده کنید. بلوک های منطقی بیشتر به شما این امکان را می دهد که از "دروازه ها" بیشتر و در نتیجه عملکرد بیشتر استفاده کنید.بلوک های منطقی عناصر اساسی در یک FPGA هستند که قابلیت های تابع منطقی را فراهم می کنند. یک FPGA شامل بسیاری از بلوک های منطقی است که با هم می توانند هر پیاده سازی منطقی ممکن را انجام دهند. یک بلوک منطقی قابل تنظیم است و به طور کلی از یک فلیپ فلاپ همراه با یک گروه نگاه و یک مولپکسر تشکیل شده است.بلوک های ورودی و خروجی در کنار هر پین ورودی یا خروجی فیزیکی قرار دارند. بلوک های IO به کاربر اجازه می دهند تا عملکرد هر پین را انتخاب کند: ورودی، خروجی یا سه حالته. و شامل برخی از بافرها و منطق است که وجود آنها در نزدیکی پین ورودی یا خروجی مفید است. در برخی موارد، کاربر می تواند نرخ حرکت سیگنال را برای عملکرد در حالت سریع یا آهسته کنترل کند.

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

میکرو (مدارهای مجتمع FPGA) سطح ورودی بر مصرف انرژی کم، چگالی منطقی کم و پیچیدگی کم در هر تراشه تاکید دارند. دستگاه های با عملکرد بالاتر بلوک های کاربردی را اضافه می کنند که به عملکرد های خاص اختصاص داده شده اند: به عنوان مثال می توان به اجزای مدیریت ساعت، حلقه های قفل شده فاز (PLL)، سریال سازها و سریا ل سازهای پرسرعت، MAC های اترنت، کنترل کننده های PCI express و فرستنده گیرنده های سرعت بالا اشاره کرد. این بلوک ها را می توان با CLBها (که IP نرم نامیده می شوند) پیاده سازی کرد یا به عنوان مدارهای جداگانه طراحی کرد. یعنی IP سخت. بلوک های IP سخت به قیمت پیکربندی مجدد، کارایی را به دست می آورند.در بالاترین سطح، خانواده میکرو (مدارهای مجتمع FPGA) شامل قطعات پیچیده سیستم روی تراشه (SoC) است که معماری FPGA، IP سخت و یک هسته CPU ریزپردازنده را در یک جزء واحد یکپارچه می کند. در مقایسه با دستگاه های جداگانه، یک SoC FPGA یکپارچگی بالاتر، قدرت کمتر، اندازه برد کوچک تر و ارتباط با پهنای باند بالاتر بین هسته و سایر بلوک ها را فراهم می کندیک طراحی مبتنی بر میکرو (مدارهای مجتمع FPGA) با تعریف وظایف محاسباتی مورد نیاز در ابزار توسعه شروع می شود، سپس آنها را در یک فایل پیکربندی که حاوی اطلاعاتی در مورد نحوه اتصال CLB و سایر ماژول ها است، کامپایل می کند. این فرآیند شبیه چرخه توسعه نرم افزار است با این تفاوت که هدف، معماری خود سخت افزار است نه مجموعه ای از دستورالعمل ها برای اجرا بر روی یک پلت فرم سخت افزاری از پیش تعریف شده است. یک  میکروپروسسور CPLD از سه جزء اصلی تشکیل شده است: یک بلوک منطقی ، یک کانال اتصال قابل برنامه ریزی و یک بلوک I/O .بلوک منطقی درمیکروپروسسور CPLD شبیه یک PLD در مقیاس کوچک است. معمولا یک بلوک منطقی شامل 4 تا 20 ماکروسل است که هر کدام از آنها به طور کلی از یک آرایه اصطلاح محصول، تخصیص عبارت محصول و ثبات های قابل برنامه ریزی تشکیل شده است. هر ماکروسل دارای تنظیمات متعددی است و هر ماکروسل را می توان به صورت آبشاری استفاده کرد، به طوری که منطق ترکیبی پیچیده تر و توابع منطق زمان بندی را می توان تحقق بخشید. برای CPLD های بسیار یکپارچه، بلوک های آرایه جاسازی شده با RAM/ROM روی تراشه معمولا ارائه می شود.کانال های اتصال قابل برنامه ریزی شبکه های ارتباطی بین بلوک های منطقی، ماکروسل ها و پین های ورودی/خروجی را فراهم می کنند. بلوک های ورودی/خروجی (بلوک های I/O) رابط بین منطق داخلی به پین ​​های ورودی/خروجی دستگاه را فراهم می کنند.



میکروپروسسور CPLD در ساختار ماتریس چند آرایه ای، هر ماکروسل دارای یک آرایه قابل برنامه ریزی و یک آرایه ثابت و همچنین یک فلیپ فلاپ قابل تنظیم با عملکردهای ساعت، فعال کردن ساعت، پاک کردن و بازنشانی مستقل قابل برنامه ریزی است. چندین قسمت همزمان از طریق PIA آرایه اتصال قابل برنامه ریزی و گذرگاه سراسری متصل می شوند. هر قسمت همچنین به ماژول کنترل I/O مربوطه متصل است تا کانال های ورودی و خروجی مستقیم را ارائه دهد.میکروپروسسور CPLD یک دستگاه منطقی قابل برنامه ریزی پیچیده (CPLD) یک دستگاه منطقی با آرایه های AND/OR و ماکروسل های کاملا قابل برنامه ریزی است. ماکروسل ها بلوک های اصلی یک CPLD هستند که شامل عملیات منطقی پیچیده و منطق برای پیاده سازی عبارات (فرم نرمال منفک) یا به اصلاح قابل انفکاک هستند. آرایه های AND/OR کاملا قابل برنامه ریزی مجدد هستند و وظیفه انجام توابع منطقی مختلف را بر عهده دارند. ماکروسل ها را همچنین می توان به عنوان بلوک های عملکردی که مسئول اجرای منطق ترتیبی یا ترکیبی هستند تعریف کرد.

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

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



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

انجام دستورات طبقه بندی شده در (میکرو تراشه FPGA) بر اساس تجزیه و تحلیل زمان بندی استاتیک  انجام می شود و شواهدی در مورد مسیرهای بحرانی و عملکرد کلی یک میکرو تراشه هوشمند ارائه می دهد.به طور کلی تراشه آرایه دروازه ای با قابلیت برنامه ریزی میدانی (FPGA) یک تراشه/IC نیمه رسانا خاص صنعتی است که بدون نیاز به برنامه ریزی نهایی راه اندازی می شود. مدارها/منطق سخت افزار آن (ماتریس عظیمی از ترانزیستورها، بلوک های منطقی، حافظه ها، ماتریس های اتصال و غیره) قابل برنامه ریزی و تنظیم مجدد توسط "کاربر" با برنامه نهایی مورد نظر است که توسط نرم افزار HDL (زبان توصیف سخت افزار) تعریف شده است.



قابلیت برنامه ریزی مجدد (میکرو تراشه FPGA) باعث می شود که مزایای (پارادایم نرم افزار و پارادایم سخت افزار) در یک تراشه واحد برآورده شوند. فناوری FPGA امکان توسعه عملکردهای پیچیده منطق دیجیتال در سطح مدار / سخت افزار (با قابلیت اطمینان، موازی سازی غیرقابل شمارش، قدرت، سرعت، تاخیر و جبر سخت افزاری) اما با انعطاف پذیری، زمان سریع انجام عملیات دیجیتال، به روز رسانی و تکامل پارادایم نرم افزار را به کاربر می دهد. به عنوان یک توسعه نرم افزار حرفه ای، پیشرفت های FPGA کار آسانی نیست و نیازمند متدولوژی های توسعه کافی و همچنین مهارت ها و دانش قوی در مورد: محاسبات سطح پایین، الکترونیک، برنامه نویسی و وضعیت فن آوری (میکرو تراشه FPGA)  است که همچنان ادامه دارد.دامنه کاربرد های (میکرو تراشه FPGA) به دلیل تطبیق پذیری و انعطاف پذیری این دستگاه ها بسیار گسترده است. که کاربرد اصلی پردازش سیگنال دیجیتال FPGA (DSP)، ارتباطات، پردازش داده و غیره است.انتخاب (میکرو تراشه FPGA)  برای کاربرد های پردازش سیگنال به دلیل فرکانس کاری بالا، ظرفیت پردازش موازی آن و غملکرد نسبتا پایین آن در مقایسه با ASIC ها است. به طور کلی، منطق یک CPLD برای انجام چنین پردازشی کافی نیست. توانایی پیاده سازی کنترل کننده مبتنی بر FPGA به عنوان یک سیستم Real-Time سخت که می تواند در یک زمان قطعی محاسبه شده به هر زمان تغییر حیاتی در محیط کنترل واکنش نشان دهد. جنبه دیگر امکان پیکربندی مجدد (میکرو تراشه FPGA) در طول زمان اجرا است که با انتخاب بهترین الگوریتم کنترل کننده مناسب، سازگاری با یک محیط در حال تغییر را امکان پذیر می کند، در حالی که منابع منطقی لازم و زمان استقرار را کاهش می دهد.

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

از نظر فنی در (میکرو تراشه FPGA)، یک MCU با اجرای دستورالعمل های برنامه ذخیره شده در ماژول حافظه غیر فرار خود عمل می کند. MCU ها قبلا مبتنی بر ROM بودند، بنابراین پاک کردن داده های برنامه اگر غیرممکن نباشد دشوار بود. هنگامی که فناوری فلاش انقلابی در فناوری های نیمه هادی (میکرو تراشه FPGA) ایجاد می کند، MCU ها شروع به ذخیره دستورالعمل های برنامه در حافظه فلش داخلی می کنند.اکثر MCU های مدرن از معماری دستورالعمل RISC (Reduced Instruction Set Computer) برای پردازش دستورالعمل های اساسی خود استفاده می کنند. RISC چرخه اجرای دستورات کوتاه تری را در مقایسه با نسخه قبلی خود، CISC ارائه می دهد. برای توسعه برنامه و برنامه ریزی برای MCU،  از اسمبلر یا زبان برنامه نویسی C استفاده می کنند. سپس برنامه تمام شده با یک ابزار برنامه نویسی در MCU بارگذاری می شود.



هنگامی که دستگاه حاوی یک آیسی حافظه هارد در (میکرو تراشه FPGA) روشن می شود، حافظه MCU شروع به اجرای دستورالعمل بارگذاری شده به عنوان داده برنامه می کند. این به طور کامل از RAM برای ذخیره متغیرهای زمان اجرا همانطور که توسط برنامه نشان داده شده است استفاده می کند. همانطور که گفته شد،در (میکرو تراشه FPGA) ic آیسی حافظه MCU برای ارتباط با دنیای فیزیکی طراحی شده اند. در ساده ترین شکل، یک MCU ورودی ها را حس می کند و خروجی ها را مطابق منطقی که برنامه ریزی کرده است هدایت می کند.مهم است که در انتخاب یک MCU برای طراحی خود دقت زیادی شود. انتخاب MCU اشتباه می تواند منجر به یک تجربه طراحی بسیار دردناک شود. هنگام انتخاب MCU باید عوامل متعددی را در نظر گرفت.شما باید پیچیدگی برنامه را در نظر بگیرید. اگر طراحی شامل یک خروجی فعال تایمر ساده باشد، یک میکروکنترلر ساده با فلاش 1 کیلوبایت و یک پورت I/O کافی است. با این حال، اگر طراحی شامل منطق پیچیده ای مانند دستگاه تشخیص چهره مبتنی بر WIFI باشد.

نانو _ میکرو الکترونیکمیکرو پروسِسور هامیکرو الکترونیکافزاره های نانو و میکرو الکترونیک Field-Programmable Gate Array