لغة سي و متحكماتمقالات

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

في الأعوام القليلة السابقة تزايد استخدام FPGA بشكل كبير ودخلت في العديد من التطبيقات وأصبحت موضع اهتمام العديد من الشركات وهذا ما دفع شركة بحجم شركة Intel في عام 2015 للاستحواذ على شركة ALTERA أحد أبرز اللاعبين في مجال صناعة شرائح الـ FPGA والتي بدأت بدمج تقنية FPGA مع معالجات Xenon المستخدمة في الحواسيب عالية الأداء.

شريحة intel xeon

ستكون هذه المقالة بداية لمجموعة من المقالات سوف نتعرف فيها على تقنية FPGA وأهم تطبيقاتها ثم كيفية عملها ومراحل التصميم باستخدام FPGA وماهي أهم الشركات المصنعة وأهم الاختلافات بين أنواع FPGA وأيضاً معايير اختيار FPGA ومقارنة بين أشهر لوحات تطوير الـFPGA وختاماً بناء مجموعة من المشاريع المختلفة باستخدام لوحة التطوير  Altera DE1 Board Altera DE1 Board .

والآن لنبدأ رحلتنا في عالم FPGA

 

ما هي تقنية الـFPGA؟

 

هي اختصار لعبارة Field programmable Gate Array أحد أنواع الدارات المتكاملة IC وتتميز بأنها قابلة لإعادة التشكيل على مستوى الهاردوير بواسطة كتل منطقية قابلة لاعادة التشكيل (البرمجة) ومجموعة من الوصلات المنطقية القابلة للبرمجة أيضاً وهذا ما يمكّن المهندسين من تصميم دارتهم الرقمية الخاصة على مستوى الهاردوير.

 

ما الذي يميز الـ FPGA عن المعالجات الصغرية؟

 

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

أما المعالجات الصغرية فهي لها تصميم ثابت على مستوى الهاردوير فهي تتكون من وحدة معالجة مركزية ووحدة تحكم ويتم برمجتها بواسطة لغات برمجة كـلغة C أوC++ ويتم ترجمة البرامج إلى ملف hex وتخزينها بذاكرة flash.

باختصار يتم التحكم بالمعالج الصغري بواسطة البرامج بوجود تصميم داخلي ثابت وأما الـFPGA فيتم التحكم بها عبر تهيئة الكتل المنطقية لتقوم بالتصميم المطلوب على مستوى الهاردوير.

 

ماهي القطاعات الرئيسية التي تستخدم فيها الـFPGA؟

 

تتميز الFPGA بأنها تجمع ما بين القدرة الحسابية العالية والمرونة إذا ما قورنت بالتقنيات الأخرى كالمعالجات الرسومية GPU والمعالجات متعددة النوى Multiprocessor ولذلك بدأت تدخل في مجالات وتطبيقات مختلفة كالاتصالات ومعالجة الإشارة الرقمية الرؤية الحاسوبة والتعلم العميق وتعلم الآلة الحواسب الخارقة ووانترنت الأشياء IOT.

 

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

 

لماذا أتعلم التصميم باستخدام الـFPGA؟

 

تعد FPGA أحد منصات تطوير الحوسبة القابلة لإعادة التشكيل Reconfigurable computing ،كما أن سوق FPGA ينمو بسرعة فبحسب marketandmarkets تقدر قيمة سوق الـFPGA  بـ 9.5 بليون دولار أمريكي في عام 2023

فإذا كنت ترغب بالدخول في هذا المجال فهذه بعض المهارات المطلوبة لمصممي الـFPGA :

  • لغات توصيف العتاد Verilog/VHDL .
  • لغات البرمجة C/C++.
  • أطر العمل  OpenCL and OpenCV.
  • Tcl Scripting & Bash Scripting.
  • تطوير Linux Driver.
  • معرفة واجهات النقل عالية السرعة (PCIe, AXI and  Avalon.)
  • معرفة بروتوكولات الاتصال (UART,  CAN, I2C and SPI ).
  • معرفة برتوكولات الشاشات والفيديو (VGA  & HDMI).

 

مما تكون الـFPGA؟

 

تتكون الـFPGA بشكل أساسي من ثلاث عناصر رئيسية:

  • الكتل  المنطقية القابلة للبرمجة : Configurable Logic Blocks (CLB) تقوم بتنفيذ التابع المنطقي
  • الوصلات المنطقية: تقوم بوصل CLB مع بعضها لتنجيز التابع المنطقي
  • وحدات الدخل والخرج : تستخدم لربط الFPGA بالعالم الفيزيائي (الحساسات والمحركات )

مكونات FPGA

 

تتكون الكتل المنطقية القابلة للبرمجة من عدد من وحدات المنطقية logic module المحاطة بمجموعة من الوصلات المحلية local connection والتي تقوم بوصل logic module مع بعضها البعض ومجموعة من الوصلات العالمية Global connection والتي تقوم بوصل الـ CLB مع بعضها.

 

 

وتعد logic module وحدة البناء الأساسية والتي تحتوي على عناصر الحوسبة والتخزين الأساسية المستخدمة في الأنظمة الرقمية.

أما تجهيزات FPGA الحديثة فهي تحتوي على خليط غير متجانس من الكتل المختلفة مثل ذواكر مخصصة دارات ضرب عتادي DSP وحتى وحدات معالجة مركزية MPU

تقوم الوصلات المنطقية القابلة للبرمجة بإنشاء اتصال بين الكتل المنطقية ووحدات الدخل الخرج لإكمال التصميم المنفذ من قبل المستخدم. وهي تتكون بشكل أساسي من مجموعة من pass transistor و tri-state buffers. بينما تستخدم وحدات الدخل والخرج I/O Block القابلة للبرمجة لربط الكتل المنطقية والوصلات المنطقية بالمكونات الفيزيائية، وتتميز بأنها أكثر تعقيداً من تلك الموجودة لدى MCU حيث أنها تدعم العديد من جهود التغذية والجهود المرجعية كما أنها تدعم العديد من سرعات النقل.

 

ماهي SoC-FPGA و SoMC-FPGA ؟

 

SoC-FPGA :هي دمج معمارية كلا من المعالج وFPGA بنفس الرقاقة السيليكونية، أي دمج وظائف الإدارة عالية المستوى للمعالجات والعمليات الدقيقة في الزمن الحقيقي أو معالجة البيانات على التوازي للـFPGA في جهاز واحد.مما يشكل منصة حوسبة مضمنة أكثر قوة ومرونة. ويؤدي دمج كلا التقنيتين إلى تحقيق  تكامل أعلى ، واستهلاك طاقة أقل ، وحجم أصغر PCB ، واتصال أعلى بين النطاق الترددي المعالج و FPGA.

 

SoMC-FPGA : وهي تقنية مشابهة لتقنية SoC-FPGA إلا أن الاختلاف الوحيد هو أن المعالج والـ FPGA لا يكونوا على نفس الرقاقة السيليكونية وإنما تستخدم  FPGA Card (تشبه إلى حد ما البطاقات الرسومية GPU’s) كمسرعات تربط مع المعالج عبر PCIe وتستخدم هذه التقنية في مجال الحوسبة عالية الأداء وتهدف إلى تسريع عمل الـ Datacenter ومعالجة البيانات بشكل متوازي.

 

 

المصادر وقراءة المزيد

 

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

تم الاستفادة من محتوى مجموعة من الدورات على الإنترنت والكتب وهي:

يمكن الاطلاع أيضاً على اللقاء وجلسة الأسئلة والأجوبة لعتاديات مع المهندس سراج محمد حول تقنية الـFPGA

Khldun Said

مهندس حواسيب من جامعة دمشق مهتم بتقنيات FPGA و SoC و high performance computing

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

This site uses Akismet to reduce spam. Learn how your comment data is processed.