مصفوفة البوابات المنطقية القابلة للبرمجة
مصفوفة البوابات المنطقية القابلة للبرمجة هي دائرة متكاملة صممت لكي يتم تعديل أو تصميم أنظمة متكاملة حتى بعد عملية التصنيع دون الحاجة لإعادة تجميع النظام أو المنتج, لذلك أخذت التسمية القابلة للبرمجة في الميدان أو Field-Programmable. بشكل عام يتم التصميم في الـ FPGA باستخدام ما يسمى بلغة وصف العتاد Hardware Description Language و هي مشابهة جداً لتلك التي يتم استخدامها في تصميم الدوائر المتكاملة ذات التطبيق المحدد (Application-Specific Integrated Circuit) أو ASIC و هي دوائر متكاملة صممت لغرض معين و لا يمكن استخدامها إلا للتطبيق الذي صممت من أجله مثل دوائر ترميز الصوت و الصورة, أو دوائر التحويل التناظري-الرقمي (ADC).
تحتوي شرائح الـ FPGA على مجموعة من الواحدات المنطقية المبرمجة (Configurable Logic Blocks) بالإضافة إلى تسلسل هرمي من التوصيلات فيما بينها بحيث يتم توصيل هذه الوحدات بحسب ما يتطلب التصميم. هذه الوحدات المنطقية يمكن ربطتها و برمجتها لإنشاء بوابات منطقية أساسية مثل الـ AND و XOR إلى تنفيذ مهام معقدة في المنطق المدمج (Combinational Logic), أو يمكن استخدام عناصر الذاكرة المتواجدة في معظم أنواع الـ FPGA من عناصر Flip-Flop أساسية إلى وحدات ذاكرة متكاملة لتكوين أنظمة معقدة في المنطق التتابعي (Sequential Logic).
شرائح الـ FPGA الحديثة تحتوي على عدد كبير من البوابات المنطقية و وحدات الذاكرة من نوع (RAM) لتصميم و تنفيذ حسابات و أنظمة رقمية معقدة. لأن معظم تصاميم الـ FPGA توظف منافذ إدخال و إخراج سريعة بالإضافة إلى نواقل بيانات ثنائية الاتجاه سريعة فإن التحقق من توقيت البيانات خلال وقت الإعداد Setup Time و وقت الاحتفاظ Hold Time يصبح نوعاً من التحدي في عملية التصميم. عملية تخطيط أرضية الدائرة المتكاملة Floor Planning تتيح تخصيص الموارد المتاحة في شريحة الـ FPGA بحيث يتم تحقيق القيود الزمنية الخاصة بالتصميم. يمكن استخدام الـ FPGA لتصميم أي نظام يمكن تصميمه باستخدام الـ ASIC, ولكن القدرة على تحديث وظيفة النظام أي إعادة تركيب ولو بشكل جزئي لها تعطي ميزات في عدة تطبيقات.
نشأت صناعة الـ FPGA من نوعين من الوحدات المبرمجة, ذاكرة القراءة فقط المبرمجة Programmable Read-Only Memory (PROM) و الأداة المنطقية المبرمجة Programmable Logic Device (PLD). كلتا الوحدتين كانت تتم برمجتهما على دفعات خلال التصنيع أو في الميدان (Field-Programmable).
في أواخر الثمانينات, قام مركز Naval Surface Warfare Center بتمويل تجربة اقترحها Steve Casselman لتطوير حاسوب يحتوي على 600,000 بوابة منطقية مبرمجة. نجح Casselman في التجربة و تم اصدار براءة احتراع خاصة بالتجربة في عام 1992.
بعض مبادئ التصنيع و التكنولوجيا الخاصة بالبوابات المنطقية المبرمجة (Programmable Logic Arrays) و البوابات و الوحدات المنطقية (Logic Blocks) تم إنشاءها من خلال براءات اختراع منحت لـ David W. Page و LuVerne R. Peterson في عام 1985.
تم إنشاء شركة Altera في عام 1983 حيث قامت بتصنيع أول PLD في عام 1984 - EP300 - حيث احتوت على نافذة من الكوارتز يتم تسليط ضوء فوق بنفسجي من خلالها على الدائرة الداخلية لمسح خلايا ذاكرة EPROM التي تحتوي على معلومات تصميم الـ PLD.
مؤسسو شركة Xilinx و هما Ross Freeman و Bernard Vonderschmitt قاما باختراع أول شريحة FPGA متاحة تجارياً و هي XC2064 حيث كانت بداية تطور تكنولوجيا و سوق صناعة الـ FPGA كما نعرفها الآن. احتوت شريحة XC2064 على 64 CLB بالإضافة إلى وحدات LUT ذات 3 مداخل. بعد أكثر من 20 سنة تم وضع اسم Freeman في قائمة National Inventors Hall of Fame لأجل اختراعه.
استمرت شركتا Altera و Xilinx بالنمو من 1985 إلى منتصف التسعينات 1990, حيث ظهرتا بشكل سريع في الصناعة مع احتواء نسبة عالية من حصة سوق صناعة الـ FPGA. في عام 1993 كانت شركة Actel (الآن تعرف بـ Microsemi) تملك 18% من سوق صناعة الـ FPGA. بحلول عام 2010 شركة Altera بنسبة 31% و شركة Actel بنسبة 10% و شركة Xilinx بنسبة 36% مجتمعات قد امتلكوا ما نسبته 77% من سوق الـ FPGA.
فترة التسعينات 1990 كانت فترة نشطة لأنظمة الـ FPGA حيث في بداية العقد كانت تطبيقات الـ FPGA بشكل أساسي في أنظمة الاتصالات و الشبكات و مع نهاية العقد امتدت تطبيقات الـ FPGA إلى الإلكترونيات,السيارات و مختلف التطبيقات الصناعية.
يتألف من مجموعة من البلوكات المنطقية التي تترابط مع بعضها كما في CPLD ولكن هنا تكون مترابطة بشكل أعقد والفارق الهام بين CPLD و FPGA هو أن FPGA قابلة للبرمجة أكثر من مرة، حيث في CPLD كان يتم برمجتها عن طريق صهر الفواصم بين هذه البلوكات وفق طريقة وترتيب معين، أما في FPGA فتم استبدال الفواصم بقواطع إلكترونية (SWITCHES) وهذه القواطع هي ترانزستورات تترابط مع بعضها ومع البلوكات المنطقية بشكل معقد جدا وبالتالي تشكل مع بعضها أيضا مصفوفة من السويتشات (SWITCHES)
وبالتالي أصبحت تدعى البلوكات المنطقية القابلة للتهيئة : CLB
Confugrable Logic Block
حيث هذه الترانزستورات تصمم بحيث:
- بارتباط الذواكر المنطقية وتنظيمها وجدولتها ينتج لدينا ذواكر مثل (SRAM-DRAM)
و يتم التعامل معها بشكل نظامي من استجابة واسترجاع بيانات وتخزين وغيرها.
يمكن ربط هذه الذواكر مع بعضها ومع أجزاء أخرى من FPGA كالمعالجات كما يمكن ربطها مع الوسط الخارجي.
يستخدم نوعين من لغات البرمجة:
إن لغة VHDL لها بعض المشاكل حيث أن برمجة FPGA بطيئة من أجل التصميمات الضخمة المعقدة.
سنتوسع فيما بعد لشرح لغة في إتش دي إل.