FPGA basics
مصفوفة البوابات القابلة للبرمجة الميدانية (FPGA) هي دائرة متكاملة تتكون من كتل أجهزة داخلية مع وصلات بينية قابلة للبرمجة للمستخدم لتخصيص العملية لتطبيق معين.
ما هو FPGA ؟
مصفوفة البوابات القابلة للبرمجة الميدانية (FPGA) هي دائرة متكاملة تتكون من كتل أجهزة داخلية مع وصلات بينية قابلة للبرمجة للمستخدم لتخصيص العملية لتطبيق معين. يمكن إعادة برمجة الروابط البينية بسهولة، مما يسمح لـ FPGA باستيعاب التغييرات في التصميم أو حتى دعم تطبيق جديد خلال عمر الجزء.
تعود جذور FPGA إلى الأجهزة السابقة مثل ذكريات القراءة القابلة للبرمجة فقط (PROMs) والأجهزة المنطقية القابلة للبرمجة (PLDs). يمكن برمجة هذه الأجهزة إما في المصنع أو في الميدان، لكنها تستخدم تقنية الصمامات (وبالتالي، فإن عبارة «حرق ذاكرة استقبال») ولا يمكن تغييرها بمجرد برمجتها. في المقابل، تقوم FPGA بتخزين معلومات التكوين الخاصة بها في وسط قابل لإعادة البرمجة مثل ذاكرة الوصول العشوائي الثابتة (SRAM) أو ذاكرة الفلاش. FPGA تشمل الشركات المصنعة لـ Intel و Lattice Semiconductor و MicrosemiوMicrochip Technology .
الهيكلة الداخلية (FPGA Architecture)
تتكون بنية FPGA الأساسية (الشكل 1) من آلاف العناصر الأساسية التي تسمى الكتل المنطقية القابلة للتكوين (CLBs) محاطة بنظام من الروابط البينية القابلة للبرمجة، تسمى النسيج، والتي توجه الإشارات بين CLBs. يحظر المدخلات/المخرجات (I/O) واجهة بين FPGA والأجهزة الخارجية.
اعتمادًا على الشركة المصنعة، يمكن أيضًا الإشارة إلى CLB على أنه كتلة منطقية (LB) أو عنصر منطقي (LE) أو خلية منطقية (LC).
وتتكون قاعدة البيانات الفردية (الشكل 2) من عدة كتل منطقية. طاولة البحث (LUT) هي سمة مميزة لـ FPGA. يقوم LUT بتخزين قائمة محددة مسبقًا من المخرجات المنطقية لأي مزيج من المدخلات: يتم استخدام LUTs مع أربعة إلى ستة بت مدخلات على نطاق واسع. الوظائف المنطقية القياسية مثل multiplexers (mux) والمضافات الكاملة (FAs) و flip-flops شائعة أيضًا
الشكل 2: نظام CLB مبسط: يتكون نظام LUT المكون من أربعة مدخلات من وحدتين من ثلاثة مدخلات. (مصدر الصورة: ويكيبيديا)
يختلف عدد وترتيب المكونات في CLB حسب الجهاز ؛ يحتوي المثال المبسط في الشكل 2 على اثنين من LUTs ثلاثية المدخلات (1)، و FA (3) و flip-flop من النوع D (5)، بالإضافة إلى mux قياسي (2) ومكسين، (4) و (6)، يتم تكوينها أثناء برمجة FPGA.
هذا CLB المبسط له طريقتان للتشغيل. في الوضع العادي، يتم دمج LUTs مع Mux 2 لتشكيل LUT من أربعة مدخلات ؛ في النمط الحسابي، يتم تغذية مخرجات LUT كمدخلات إلى FA جنبًا إلى جنب مع مدخلات حمل من CLB آخر. يختار Mux 4 بين خرج FA أو خرج LUT. يحدد Mux 6 ما إذا كانت العملية غير متزامنة أو متزامنة مع ساعة FPGA عبر D flip-flop.
تشمل الجيل الحالي FPGAs أكثر تعقيدًا CLBs قادرة على عمليات متعددة مع كتلة واحدة ؛ يمكن أن تتحد CLBs لعمليات أكثر تعقيدًا مثل المضاعفات والسجلات والعدادات وحتى وظائف معالجة الإشارات الرقمية (DSP).
CPLD vs FPGA
SoC FPGAs
تصميم FPGA
الشكل 4: عينة من رمز VHDL لأداة موقعة (مصدر الصورة: ويكيبيديا)
بمجرد إنشاء تصميم FPGA والتحقق منه باستخدام HDL، يأخذ المترجم الملف القائم على النص وينشئ ملف تكوين يحتوي على معلومات حول كيفية توصيل المكونات معًا. حتى لو لم يكن لرمز HDL أخطاء، فإن اختيار FPGA الخطأ قد يتسبب في فشل التجميع - على سبيل المثال، ينفد FPGA من نوع مورد معين أو لا يستطيع المترجم إنشاء الطرق المطلوبة بين المكونات.
يتمثل أحد التحديات مع نهج HDL في أن تكوين FPGA يتطلب مهارات الترميز ومعرفة مفصلة بالأجهزة الأساسية، والخبرة المطلوبة غير متاحة على نطاق واسع.
نتيجة لذلك، يقدم البائعون مجموعات تطوير البرامج (SDKs) التي تسمح للمصممين بتطوير حلول FPGA بلغات شهيرة عالية المستوى مثل C/C + + و Python و OpenCL. كما تتوفر أدوات تصميم توليفية رفيعة المستوى ؛ تعمل هذه على إطار عمل مثل LabVIEW من National Instrument وتتميز بمخططات كتلة رسومية بدلاً من سطور الكود.
استخدامات FPGA: خيار جذاب لتطبيقات معينة
إن القدرة على تكوين أجهزة FPGA وإعادة تشكيلها عند الحاجة وتحسينها لمجموعة معينة من الوظائف تجعل FPGA خيارًا جذابًا في العديد من التطبيقات.
غالبًا ما تُستخدم FPGAs لتوفير حل مخصص في الحالات التي يكون فيها تطوير ASIC مكلفًا للغاية أو يستغرق وقتًا طويلاً. يمكن تكوين تطبيق FPGA في ساعات أو أيام بدلاً من أشهر. بالطبع، تأتي مرونة FPGA بسعر: من المرجح أن تكون FPGA أبطأ، وتتطلب مساحة PCB أكثر وتستهلك طاقة أكثر من ASIC المكافئ.
حتى عندما يتم تصميم ASIC للإنتاج بكميات كبيرة، يتم استخدام FPGAs على نطاق واسع للتحقق من صحة النظام، بما في ذلك التحقق من صحة ما قبل السيليكون والتحقق من صحة ما بعد السيليكون وتطوير البرامج الثابتة. يسمح هذا للمصنعين بالتحقق من صحة تصميمهم قبل إنتاج الشريحة في المصنع.
No comments:
New comments are not allowed.