النبضة ج

إمبلس سي هي لغة برمجة عالية المستوى تُستخدم في التصميم المشترك للبرمجيات والأجهزة. [ 1 ] وهي مجموعة فرعية من لغة البرمجة سي ، مُدمجة مع مكتبة دوال متوافقة مع سي، تدعم البرمجة المتوازية ، وخاصةً لبرمجة التطبيقات التي تستهدف أجهزة FPGA . وقد طُوّرت بواسطة شركة إمبلس أكسيليريتد تكنولوجيز في كيركلاند، واشنطن.

ملخص

تتضمن أداة CoDeveloper، وهي أداة توليف عالية المستوى ، مُصرّف Impulse C ومكتبة وظائف مُرتبطة به، مُصممة لتطوير التطبيقات القائمة على FPGA. يتوافق Impulse C مع معيار ANSI C ، مما يسمح باستخدام أدوات C القياسية لتصميم وتصحيح التطبيقات التي تستهدف FPGA. يقبل مُصرّف Impulse C مجموعة فرعية من لغة C ويُنشئ مكونات FPGA على شكل ملفات لغة وصف الأجهزة (HDL) . يُمكّن Impulse C مُصممي الأنظمة المُدمجة ومُبرمجي البرامج من استهداف أجهزة FPGA لتسريع تطبيقات لغة C.

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

تتضمن أدوات Impulse C أدوات المحاكاة المشتركة للأجهزة والبرامج بالإضافة إلى تقنية جدولة/تحسين C-to- RTL المستخدمة لربط عناصر التطبيق بالأجهزة عبر أدوات توليف منطق FPGA.

نموذج البرمجة

يدعم Impulse C نموذجًا مُعدَّلًا من نموذج برمجة العمليات المتسلسلة المتصلة (CSP)، مع الحفاظ على توافقه مع أدوات لغة C القياسية مثل أدوات تصحيح الأخطاء وأدوات تحليل الأداء. صُمِّم Impulse C خصيصًا لتطبيقات تدفق البيانات، ولكنه يدعم أيضًا نماذج برمجة بديلة، بما في ذلك استخدام الذاكرة المشتركة كآلية اتصال.

في تطبيقات البث المباشر المكتوبة بلغة Impulse C، تتواصل عمليات الأجهزة والبرامج بشكل أساسي عبر تدفقات بيانات مخزنة مؤقتًا تُنفذ مباشرةً في الأجهزة. يتيح هذا التخزين المؤقت للبيانات، الذي يُنفذ باستخدام مخازن FIFO ثنائية الساعة يُولدها المُترجم، كتابة تطبيقات متوازية بمستوى تجريد عالٍ نسبيًا، دون الحاجة إلى التزامن دورةً بدورة الذي كان سيُطلب لولا ذلك.

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

على مستوى البرمجيات في التطبيق، كما هو الحال في معالج FPGA المدمج، تُستخدم وظائف مكتبة Impulse C لفتح وإغلاق تدفقات البيانات، وقراءة البيانات وكتابتها في هذه التدفقات، وإرسال رسائل الحالة أو استطلاع النتائج عند الحاجة. أما بالنسبة للاتصالات بين المعالج وFPGA، فيمكن تحديد عمليات قراءة وكتابة التدفقات كعمليات تستفيد من واجهات ناقل البيانات الداخلية أو الخارجية الخاصة بـ FPGA.

على مستوى الأجهزة في التطبيق، تُجمَّع دوال مكتبة Impulse C وغيرها من تعليمات C لإنشاء تطبيقات أجهزة مكافئة ومتوازية على شكل ملفات HDL قابلة للتصنيع. تُعالَج هذه الملفات بواسطة أدوات FPGA لإنشاء خرائط بتية لأجهزة FPGA.

تُعدّ العمليات والتدفقات جوهر نموذج برمجة التدفق في Impulse C. تُنفّذ العمليات، بشكل متزامن ومتزامن، أجزاءً من التطبيق. تُكتب عمليات الأجهزة باستخدام مجموعة فرعية من لغة C القياسية، وتؤدي مهام التطبيق من خلال استقبال البيانات، وإجراء العمليات الحسابية، وإنتاج المخرجات. في التطبيقات النموذجية، تتدفق البيانات من عملية إلى أخرى عبر تدفقات مُخزّنة مؤقتًا، أو في بعض الحالات عبر الرسائل و/أو الذاكرة المشتركة. يمكن تحديد خصائص كل تدفق، بما في ذلك عرض وعمق قوائم الانتظار المُولّدة (FIFOs)، في تطبيق C.

التطبيقات

يستخدم Impulse C في تطبيقات تشمل معالجة الصور ومعالجة الإشارات الرقمية على الأنظمة المدمجة ، وكذلك لتسريع تطبيقات الحوسبة عالية الأداء بما في ذلك التحليلات المالية والمعلوماتية الحيوية والحوسبة العلمية .

المنصات المستهدفة

يدعم Impulse C معالجات FPGA من Xilinx و Altera، بما في ذلك معالجات النواة البرمجية والصلبة المتاحة Altera Nios II و MicroBlaze و PowerPC من Xilinx .

مراجع

  1. "تحسين أداء اتصال الذاكرة المشتركة في Impulse C". رسائل أنظمة IEEE المدمجة . 2 (3): 49-52 . 1 سبتمبر 2010. doi : 10.1109/LES.2010.204801 (غير نشط في 1 يوليو 2025).{{cite journal}}: صيانة CS1: رقم التعريف الرقمي غير نشط اعتبارًا من يوليو 2025 ( رابط )
  • تراخيص بدء التشغيل - التدفقات ج
  • تقنيات التسارع النبضي