مصفوفة البوابات المنطقية القابلة للبرمجة

مقدمة

نظرا للتطور الكبير الذي يشهده العالم. أدت الحاجة إلى اختصار أحجام الأجهزة الحاسوبية والمنطقية من معالجات وذواكر وغيرها... بالإضافة إلى الحاجة استخدام شريحة واحدة لتقوم بعدة عمليات ومهام تم اختراع ما يسمى FPGA.

هذه الفقرة تعطينا نظرة عامة عن كيف ومتى تستخدم الأجهزة المنطقية القابلة للبرمجة.إنها تعطينا تاريخ موجز عن استخدام الأجهزة المنطقية القابلة للبرمجة - كان هناك في البداية رغبة في أن يستطيع المصمم أن يحقق ترابط بين جميع العناصر المنطقية وذلك في عنصر واحد. فجاءت فكرة استخدام البوابات المنطقية (AND و OR).

و بتحقيق ترابط معين بين هذه البوابات تم تشكيل بلوك وبتجميع هذه البلوكات تشكل مصفوفة بلوكات تدعى بـ PLD.

و بتطوير الـ PLD بطريقة معينة تم تشكيل FPGA : إن FPGA هي في النهاية شريحة تحتوي على مداخل ومخارج حيث نحدد المداخل ونعطي أمر الخرج فيظهر الخرج. وهذه العملية تتم عن طريق برمجة جهاز الـ FPGA بواسطة لغة برمجة خاصة هي VHDL.

-كما أننا من الممكن على شريحة FPGA واحدة تشكيل عدة دارات أو (أجهزة) فيمكن استخدام FPGA كمعالج أو ذاكرة و Micro Controller بنفس الوقت.

ما هي الـ PLD

هي عبارة عن مصفوفات من بوابات AND وبوابات OR و هذه المصفوفة هي مصفوفة من البلوكات المنطقية حيث كل بلوك يحتوي مجموعة من هذه البوابات. وبترابط عناصر المصفوفة (البلوكات) مع بعضها البعض يتشكل لدينا ما يسمى بـ PLD بتحقيق ترابط معين بين هذه البلوكات بحيث يتشكل لدينا دارة تحقق التابع المطلوب. ويتم ترابط هذه البلوكات عن طريق فواصم منصهرة Buses حيث تنصهر هذه الفواصم لتحقق الـ interconnect بين هذه البلوكات.

CPLD: دعت الحاجة في برمجة الـ PLD إلى وجود ذاكرة لتحقيق المنطق التتابعي فتم ربط ذاكرة (BIT واحد) مع كل بلوك منطقي وتم ربط هذه الذواكر مع بعضها البعض (أيضا عن طريق الفواصم). و هذه الذاكرة هي باستخدام التغذية العكسية للـ FLIP-FLOP (FeedBack) كما يربط معه دخل نبضات ساعة.

ما هو الـ FPGA:هو Field Programmable Gate Array

هي عبارة عن دارة متكاملة تحتوي على مصفوفة من الخلايا المنطقية المتطابقة مع روابط بينية بين هذه الخلايا القابلة للبرمجة.

يمكن للمستخدم أن يبرمج التوابع المحققة بكل خلية منطقية والروابط بين هذه الخلايا.

- سير العمل في FPGA: vاستخدام الكمبيوتر لوصف "التابع المنطقي" المطلوب:

    إما برسم مخطط الدارة (Schematic) 
    أو بإنشاء ملف نصي يصف التابع (VHDL) 

v Compile التابع المنطقي على الكمبيوتر باستخدام برامج مدعمة من قبل المنتج، هذه البرامج تقوم بإنشاء ملف Binary يتم تحميله على FPGA. v وصل الـ FPGA مع الكمبيوتر بواسطة كبل لتحميل برنامج الـ Software. v الآن الـFPGA جاهز ليعمل وفق التابع المنطقي المطلوب.

الشركات المصنعة للـ FPGA: يوجد على الأقل خمس شركات في العالم تصنع الـ FPGA : v Xilinx: هي أكبر اسم في عالم الـ FPGA. v Altera: هي ثاني أكبر اسم في عالم الـ FPGA. v Latlice,Actel,QuickLogic وبعض الشركات الصغيرة.

FPGA's Pins: هناك نوعان من Pins : 1) Dedicated (تخصصية) أي محجوزة من قبل الشركة المصنعة. 2) User Pins. Dedicates Pins: حوالي 20-30% من الـ Pins للـ FPGA محجوزة لتنفيذ توابع خاصة وتصنف إلى ثلاثة أنواع: 1) Pins للطاقة (أرضي، تغذية) 2) Pins للتهيئة (تستخدم لتحميل برنامج الـ Software على الشريحة. 3) Pins مداخل نبضات ساعة. User Pins: هي تصنف إلى Pins تحكم و Pins وظيفية بالنسبة لتوابع معينة.

بنية FPGA

يتألف من مجموعة من البلوكات المنطقية التي تترابط مع بعضها كما في CPLD ولكن هنا تكون مترابطة بشكل أعقد والفارق الهام بين CPLD و FPGA هو أن FPGA قابلة للبرمجة أكثر من مرة، حيث في CPLD كان يتم برمجتها عن طريق صهر الفواصم بين هذه البلوكات وفق طريقة وترتيب معين، أما في FPGA فتم استبدال الفواصم بقواطع إلكترونية (SWITCHES) وهذه القواطع هي ترانزستورات تترابط مع بعضها ومع البلوكات المنطقية بشكل معقد جدا وبالتالي تشكل مع بعضها أيضا مصفوفة من السويتشات (SWITCHES) وبالتالي أصبحت تدعى البلوكات المنطقية القابلة للتهيئة : CLB Confugrable Logic Block حيث هذه الترانزستورات تصمم بحيث: • تقوم بتطبيقات متعددة. • تقوم بربط البلوكات بين بعضها. • تخصص للعمل بشكل منطقي (0,1). - بارتباط الذواكر المنطقية وتنظيمها وجدولتها ينتج لدينا ذواكر مثل (SRAM-DRAM) و يتم التعامل معها بشكل نظامي من استجابة واسترجاع بيانات وتخزين وغيرها. يمكن ربط هذه الذواكر مع بعضها ومع أجزاء أخرى من FPGA كالمعالجات كما يمكن ربطها مع الوسط الخارجي.

كيف تتم برمجة FPGA يستخدم نوعين من لغات البرمجة: 1) بواسطة لغة الـ VHDL. 2) بواسطة لغات منخفضة المستوى. إن لغة VHDL لها بعض المشاكل حيث أن برمجة FPGA بطيئة من أجل التصميمات الضخمة المعقدة. سنتوسع فيما بعد لشرح لغة VHDL. ملاحظات: • يمكن برمجة FPGA في أي وقت، فعند تحميل برنامج Software ظهر لدينا أخطاء يمكن إعادة تحميلها وعمل Re-Compile لها من جديد. • عند "تحميل" (Download) برنامج الـ Software يفقد الـ FPGA وظيفته بانقطاع التيار، أما عند "برمجة" (Programming) الـ FPGA لا يفقد الـ FPGA وظيفته بانقطاع التيار.

المراجع

FPGA]]