محاكاة الأجهزة

مُسرِّع محاكاة الأجهزة Ikos NSIM-64.

في تصميم الدوائر المتكاملة ، تُعرف محاكاة الأجهزة بأنها عملية تقليد سلوك قطعة أو أكثر من قطع الأجهزة (عادةً ما تكون نظامًا قيد التصميم) باستخدام قطعة أخرى من الأجهزة، وعادةً ما تكون نظام محاكاة مُخصص. يعتمد نموذج المحاكاة عادةً على شفرة مصدرية بلغة وصف الأجهزة (مثل Verilog )، والتي تُترجم إلى التنسيق الذي يستخدمه نظام المحاكاة. الهدف عادةً هو تصحيح الأخطاء والتحقق من وظائف النظام قيد التصميم. غالبًا ما يكون المُحاكي سريعًا بما يكفي لتوصيله بنظام مُستهدف عامل بدلًا من شريحة لم تُبنَ بعد، بحيث يُمكن تصحيح أخطاء النظام بأكمله باستخدام بيانات حية. هذه حالة خاصة من المحاكاة داخل الدائرة .

في بعض الأحيان يمكن الخلط بين محاكاة الأجهزة والأجهزة المادية مثل بطاقات التوسعة المزودة بمعالجات الأجهزة التي تساعد في وظائف محاكاة البرامج، مثل اللوحات الفرعية القديمة المزودة برقائق x86 للسماح بتشغيل أنظمة التشغيل x86 على اللوحات الأم من عائلات المعالجات المختلفة.

مقدمة

يعود الجزء الأكبر من عمليات إعادة تصميم الدوائر المتكاملة المصنوعة من السيليكون ، جزئيًا على الأقل، إلى أخطاء وظيفية ومشاكل برمجية تُدخل سهوًا في مرحلة RTL من عملية التصميم. لذا، يُعد التحقق الوظيفي الشامل أساسيًا لخفض تكاليف التطوير وتسليم المنتج في الوقت المحدد. غالبًا ما يُجرى التحقق الوظيفي للتصميم باستخدام محاكاة منطقية و/أو نماذج أولية على مصفوفات البوابات المنطقية القابلة للبرمجة الميدانية (FPGAs). لكل منهما مزايا وعيوب، وكثيرًا ما يُستخدم كلاهما. تتميز المحاكاة المنطقية بسهولتها ودقتها ومرونتها وانخفاض تكلفتها. مع ذلك، غالبًا ما تكون المحاكاة غير سريعة بما يكفي للتصاميم الكبيرة، ودائمًا ما تكون بطيئة جدًا لتشغيل برامج التطبيقات على تصميم الأجهزة. أما النماذج الأولية القائمة على FPGAs فهي سريعة وغير مكلفة، لكن الوقت اللازم لتنفيذ تصميم كبير على عدة FPGAs قد يكون طويلًا جدًا وعرضة للأخطاء. كما أن إجراء تغييرات لإصلاح عيوب التصميم يستغرق وقتًا طويلًا، وقد يتطلب تغييرات في توصيلات اللوحة. باستخدام أدوات الموردين التقليدية، تفتقر نماذج FPGA الأولية إلى إمكانيات تصحيح الأخطاء، كما أن فحص الإشارات داخلها في الوقت الفعلي أمر بالغ الصعوبة، وتستغرق إعادة تجميعها لنقل المجسات وقتًا طويلاً. لكن هذا الوضع يتغير مع ظهور أدوات تصحيح أخطاء نماذج FPGA الأولية الأكثر تطورًا [ 1 ] التي تزيل القيود المفروضة على رؤية الإشارات. ويتمثل الحل الوسط المعتاد في استخدام المحاكاة في المراحل المبكرة من عملية التحقق عندما تكثر الأخطاء والإصلاحات، ثم استخدام النماذج الأولية في نهاية دورة التطوير عندما يكون التصميم شبه مكتمل وتكون السرعة ضرورية لإجراء اختبارات كافية للكشف عن أي أخطاء متبقية على مستوى النظام. كما أن استخدام نماذج FPGA الأولية شائع لاختبار البرمجيات.

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

يُحسّن المحاكاة داخل الدائرة أوقات تنفيذ نماذج FPGA الأولية إلى حدٍ ما، ويوفر إمكانية تصحيح أخطاء شاملة وفعّالة. لكن هذا يأتي على حساب سرعة التشغيل والتكلفة العالية (أكثر من مليون دولار) مقارنةً بنماذج FPGA الأولية (75 ألف دولار). وبالنظر إلى المحاكاة من منظور آخر، فإنها تُحسّن أداء التسريع من خلال استبدال بيئة الاختبار المُحاكاة بمحفزات "حقيقية". يمكن أن تأتي هذه المحفزات من النظام المستهدف (المنتج قيد التطوير)، أو من معدات الاختبار. وبسرعة تتراوح بين 10,000 و100,000 ضعف سرعة المحاكاة، تُتيح المحاكاة اختبار برامج التطبيقات مع توفير بيئة شاملة لتصحيح أخطاء الأجهزة.

تصحيح أخطاء المحاكاة مقابل المحاكاة/النماذج الأولية

تتضمن المحاكاة والنمذجة أسلوبين مختلفين للتنفيذ. تُنفذ المحاكاة كود RTL بشكل تسلسلي، بينما تُنفذ النمذجة بشكل متوازٍ تمامًا. يؤدي هذا إلى اختلافات في تصحيح الأخطاء. في المحاكاة:

  • يمكن للمستخدم تحديد نقطة توقف وإيقاف المحاكاة لفحص حالة التصميم، والتفاعل مع التصميم، واستئناف المحاكاة.
  • يمكن للمستخدم إيقاف التنفيذ "في منتصف الدورة" كما لو كان ذلك بتنفيذ جزء فقط من التعليمات البرمجية.
  • يمكن للمستخدم رؤية أي إشارة في التصميم ومحتويات أي موقع ذاكرة في أي وقت.
  • بل ويمكن للمستخدم حتى استعادة الوقت (إذا قام بحفظ نقطة (نقاط ) حفظ وإعادة التشغيل.

مع نموذج أولي:

  • يستخدم المستخدم محللًا منطقيًا للرؤية، وبالتالي لا يمكنه رؤية سوى عدد محدود من الإشارات التي حددها مسبقًا (عن طريق توصيل المجسات). لكن هذا الوضع يتغير مع ظهور أدوات النماذج الأولية لـ FPGA التي توفر رؤية كاملة لعشرات الآلاف من الإشارات الداخلية، مثل Certus. [ 2 ]
  • لا يتوقف الهدف عند تشغيل محلل المنطق، لذلك في كل مرة يقوم المستخدم بتغيير المجسات أو شرط التشغيل، يتعين عليه إعادة ضبط البيئة والبدء من جديد.
  • تُضاف المجسات مباشرةً إلى تصميم RTL لتوفير إشارات محددة للمراقبة. عند تشغيل النظام، يقوم المجس المُعتمد على RTL والمتصل بكل إشارة من الإشارات المُقاسة بجمع قيمة الإشارة في كل دورة ساعة. تُخزن البيانات في مخزن مؤقت للتتبع في ذاكرة الوصول العشوائي (RAM) الخاصة بوحدة FPGA. يقوم محلل متصل بالنموذج الأولي بتنزيل المعلومات، مما يتيح للمستخدم رؤية النظام دون اتصال بالإنترنت لتصحيح الأخطاء بكفاءة. [ 3 ]

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

توفر محاكيات الأجهزة المتطورة بيئة تصحيح أخطاء مزودة بالعديد من الميزات التي يمكن العثور عليها في محاكيات المنطق، وفي بعض الحالات تتجاوز قدراتها في تصحيح الأخطاء:

  • يمكن للمستخدم تحديد نقطة توقف وإيقاف المحاكاة لفحص حالة التصميم، والتفاعل معه، ثم استئناف المحاكاة. ويتوقف المحاكي دائمًا عند حدود الدورة.
  • يتمتع المستخدم بإمكانية الوصول إلى أي إشارة أو محتويات ذاكرة في التصميم دون الحاجة إلى إعداد مجسات قبل التشغيل. وبينما تتوفر إمكانية الوصول إلى البيانات في الماضي، قد يكون نطاق البيانات المعروضة محدودًا في بعض الحالات بعمق ذاكرة التتبع الخاصة بالمحاكي.
  • بل ويمكن للمستخدم حتى استعادة الوقت (إذا قام بحفظ نقطة (نقاط ) حفظ وإعادة التشغيل.
  • بسبب تكلفتها العالية، أصبحت أجهزة المحاكاة بعيدة المنال بالنسبة للعديد من المطورين، مما أدى إلى ظهور منصات النماذج الأولية المتقدمة لـ FPGA وأدوات تصحيح الأخطاء.

المحاكاة والمنطق ثنائي الحالة

ثمة فرق آخر بين المحاكاة والتسريع والمحاكاة، وهو نتيجة استخدام المسرعات للأجهزة المادية في التنفيذ  - إذ لا تملك سوى حالتين منطقيتين  - تعملان بالطريقة التي تعمل بها شريحة السيليكون عند تصنيعها. وهذا يعني:

  • إنها غير مفيدة لتحليل تهيئة الحالة X.
  • لا يمكنهم تحليل دقة القوة، أو على الأقل يجب القيام بذلك بشكل ثابت في وقت الترجمة.
  • لا تقوم برامج المحاكاة بنمذجة توقيت الدائرة بدقة، وبالتالي فمن المحتمل ألا تجد أي ظروف سباق أو انتهاكات وقت الإعداد والتثبيت.

يتم تنفيذ هذه المهام بشكل صحيح أثناء محاكاة المنطق أو باستخدام أداة تحليل التوقيت الثابت .

المحاكاة مقابل النمذجة الأولية

يتمثل أحد الفروق التقليدية الرئيسية بين المحاكي ونظام النماذج الأولية FPGA في أن المحاكي يوفر بيئة تصحيح أخطاء غنية، بينما يفتقر نظام النماذج الأولية إلى إمكانيات تصحيح الأخطاء أو يمتلكها بشكل محدود، ويُستخدم في المقام الأول بعد تصحيح أخطاء التصميم لإنشاء نسخ متعددة لتحليل النظام وتطوير البرمجيات. وتظهر حاليًا أدوات جديدة تُمكّن من رؤية إشارات RTL بالكامل مع تأثير ضئيل على جداول البحث FPGA، وتتيح عمق التقاط عالٍ، وتوفر تحليلًا متعدد الرقاقات ونطاق الساعة، مما يسمح بتصحيح أخطاء فعال يُضاهي المحاكي. [ 2 ]

انظر أيضاً

مراجع

  1. موريس، كيفن (30 أكتوبر 2012). "تيكترونيكس تُحدث ثورة في مجال النماذج الأولية، والأجهزة المدمجة تُعزز مكانة اللوحات لتصبح بمثابة محاكيات" . مجلة الهندسة الإلكترونية . تم الاطلاع عليه في 30 أكتوبر 2012 .
  2. ١ ٢ "شركة تيكترونيكس تأمل في إحداث ثورة في مجال تصميم نماذج الدوائر المتكاملة الخاصة بالتطبيقات" . مجلة إي إي تايمز. ٣٠ أكتوبر ٢٠١٢. تم الاطلاع عليه بتاريخ ٣٠ أكتوبر ٢٠١٢ .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  3. "تجاوز معوقات تصميم نماذج الدوائر المتكاملة الخاصة بالتطبيقات" . 23 أكتوبر 2012. تم الاطلاع عليه في 30 أكتوبر 2012 .
  • دليل أتمتة التصميم الإلكتروني للدوائر المتكاملة ، من تأليف لافاجنو ومارتن وشيفر، رقم ISBN 0-8493-3096-3تم إجراء مسح للمجال، والذي استُخلص منه الملخص أعلاه، بإذن.

للمزيد من القراءة