آی سی های برنامه پذیر پیچیده
Complex Programmable Logic Devices
CPLDها یا Complex Programmable Logic Devices (مدارهای مجتمع قابل برنامهریزی پیچیده)، نسل پیشرفتهتری از آیسیهای منطقی قابل برنامهریزی هستند . اگر میکروکنترلرها را به عنوان «مغز» قابل برنامهریزی یک دستگاه در نظر بگیرید، CPLDها را باید به عنوان «چسب منطقی» (Glue Logic) بسیار سریع و انعطافپذیر در نظر گرفت که کارهای خاص و تکراری سختافزاری را با کمترین تأخیر انجام میدهند .
ساختار آی سی های برنامه پذیر پیچیده CPLD
برخلاف میکروکنترلرها که برنامه را به صورت دنبالهای اجرا میکنند، CPLDها از چندین بلوک منطقی آرایهای (Logic Array Blocks) تشکیل شدهاند که با یکدیگر و با پایههای ورودی/خروجی توسط یک ماتریس سوئیچینگ قابل برنامهریزی (Interconnect Switch Matrix) به هم متصل میشوند .
بلوک منطقی (Macrocell): هر بلوک شامل اجزایی مثل گیتهای AND/OR برای پیادهسازی توابع بولی، یک فلیپفلاپ (Flip-Flop) برای حافظه و مدارات توالی، و یک مالتیپلکسر برای انتخاب خروجی است .
مقیاس: یک CPLD معمولی میتواند معادل چند هزار تا دهها هزار گیت منطقی را در خود جای دهد و تعداد ماکروسلهای آن معمولاً بین ۳۲ تا بیش از ۵۰۰ است .
مزایای آی سی های برنامه پذیر پیچیده CPLD
مهمترین ویژگیهایی که CPLDها را از سایر آیسیهای امبدد یا توکار متمایز میکند، عبارتند از:
غیرفرار بودن (Non-Volatile) و راهاندازی فوری: CPLDها از حافظههای EEPROM یا فلش برای ذخیرهسازی پیکربندی خود استفاده میکنند . این یعنی به محض وصل شدن ولتاژ تغذیه، بدون هیچ تأخیری و در عرض چند نانوثانیه آماده به کار هستند و نیازی به بارگذاری برنامه از یک حافظه خارجی ندارند . این ویژگی برای کاربردهایی مثل کنترل توالی روشن شدن ولتاژها (Power Sequencing) حیاتی است .
سرعت بالا و تأخیر قطعی (Deterministic Timing): به دلیل معماری سختافزاری خاص خود، زمان پاسخدهی پایههای CPLD بسیار سریع و قابل پیشبینی است . این ویژگی آنها را برای کارهایی که نیاز به واکنش در کسری از ثانیه دارند، ایدهآل میکند.
مصرف توان پایین و اشغال فضای کم: نسبت به FPGAها، CPLDها معماری سادهتر، مصرف توان کمتر و ابعاد فیزیکی کوچکتری دارند و گزینهای عالی برای دستگاههای قابل حمل و با محدودیت فضا هستند .
یکپارچهسازی و هزینه مؤثر: میتوانند چندین آیسی مجزا (مثل Decoderها، بافرها و...) را در یک تراشه واحد جمع کنند که هم هزینه را کاهش میدهد و هم طراحی برد را سادهتر میکند .
کاربرد آی سی های برنامه پذیر پیچیده CPLD
با توجه به ویژگیهای ذکر شده، CPLDها در نقشهای خاصی میدرخشند که میکروکنترلرها برای آنها کند یا نامناسب هستند:
چسب منطقی (Glue Logic): اتصال و تطبیق قطعات مختلف با پروتکلهای متفاوت، مثل تبدیل یک رابط موازی به یک رابط سریال یا ایجاد سیگنالهای کنترل برای حافظهها .
کنترل توالی روشنشدن (Power Sequencing) و سیستم ریست: در سیستمهای پیچیده مثل بردهای حاوی FPGA، یک CPLD وظیفه دارد تا ولتاژهای مختلف را به ترتیب و با زمانبندی دقیق روشن کند و سیگنال Reset را مدیریت نماید تا از عملکرد صحیح سیستم اطمینان حاصل شود .
بارگذاری پیکربندی FPGA: یکی از کاربردهای بسیار رایج، استفاده از CPLD برای خواندن فایل پیکربندی از یک حافظه فلش و بارگذاری آن در یک FPGA در لحظه روشن شدن است .
دستگاههای قابل حمل: در تلفنهای همراه، تبلتها و سایر وسایل کوچک که به منطق کممصرف و سریع نیاز دارند .
سیستمهای کنترل صنعتی و خودرو: در کاربردهایی که نیاز به قابلیت اطمینان بالا و پاسخدهی لحظهای دارند، مانند کنترلکنندههای موتور یا سیستمهای جرقهزنی .