Table of Contents
وتستلزم عملية تحديد هوية المهندسين المرخص لهم من طراز FPGA وأجهزة النظام الآلي للبيانات الجمركية اختبارا دقيقا والتحقق منه، كما أن اختبارات VHDL هي أدوات لا غنى عنها تمكن المهندسين من محاكاة التصاميم الرقمية والتحقق منها قبل الالتزام بالسليكون، وتلحق أخطاء وظيفية فعالة في الاختبارات، وانتهاكات للتوقيت، وأجهزة قياس في الزوايا في وقت مبكر من دورة التصميم، وتوفر هذه المادة دليلا شاملا لاستخدام بيئات اختبارات اختبارية قوية من أجل التثبت.
ما هو اختبار VHDL؟
اختبار VHDL هو جزء متخصص من مدونة VHDL مكتوبة فقط لأغراض المحاكاة، خلافاً لتوليف VHDL - الذي يجب أن يرسم على هيئة اختبارات حقيقية، لا توجد قيود على التوليفي، والغرض منه هو توليد مدخلات من أجل التصميم في الاختبارات التجريبية، وتطبيق تلك الاختبارات المتشابكة مع مرور الوقت، ورصد نواتج نظام DUT، والتحقق تلقائياً من أن هذه النواتج تتطابق مع النتائج المتوقعة.
والفرق الأساسي بين هيئة الاختبار ونموذج مركب هو أن الاختبارات لا تحتاج أبدا إلى التنفيذ على هيئة اختبارات أو نسيجية كجهاز تقييمي، وهي تجري بكاملها في محاكاة مثل شركة Siemens EDA ModelSim/Questa، أو Aldec Riviera-PRO، أو Vivado Simulator، وهذه الحرية تسمح للمهندسين باستخدام هياكل إنتاجية مثل الملفات I/O.
لماذا الاختبارات حرجة لـ FPGA و AIC Validation
ويقضي الكثير من مهندسي التحقق 60-80% من وقت المشروع في الاختبار، فبدون اختبار، يتطلب التحقق من التصميم إجراء تفتيش يدوي على الموجات، وهو أمر معرّض للخطأ وبطيء، وتعجل الاختبارات الآلية بالعملية وتحسن الموثوقية، وهي ضرورية لما يلي:
- Early Bug Detection:] Bugs found during simulation cost a fraction of those found after fabrication in ASICs or after board bring-up in FPGAs.
- Regression Testing:] When design changes are made, testbenches can be rerun to ensure existing functionity is not broken.
- Coverage:] Testbenches can generate many more input combinations than manual waveform editing can achieve.
- Documentation:] A well-written testbench serves as a reference for how the DUT is intended to operate.
وبالنسبة لتصميمات نظام تقييم الأداء، كثيرا ما تكون أول قطعة من الرموز مكتوبة بعد الانتهاء من المواصفات، قبل أن تكتمل في بعض الأحيان، وهذه الممارسة، المعروفة باسم التطوير القائم على الاختبار، تكفل التحقق من التصميم منذ البداية.
العناصر الرئيسية لاختبار فعال في القانون الإنساني الدولي
وكل اختبار، بغض النظر عن التعقيد، يتضمن عدة لبنات أساسية للبناء، فهم هذه المكونات هو الخطوة الأولى نحو كتابة اختبارات فعالة.
1 - الاختناق وإعادة التكوين
وتتطلب معظم التصميمات الرقمية المتزامنة ساعة وإعادة تشغيل، وتشمل الاختبارات عادة عملية تُنظّف إشارة ساعة على تردد محدد، وينبغي أن يؤكد تجديد الموقع على بضع دورات ثم يطلقه.
- المؤخرة تختفي لـ 100 نون
- إعادة ضبط الأمن بينما يمضي الوقت
- السماح بـ بضع دورات ساعات قبل تطبيق أجهزة الاختبار
2 - جيل الحوافز
This component creates input signals that represent real-world conditions. Stimulus can be directed (each test vector explicitly defined) or random (using pseudo-random number generation). Stimulus is often organized into one or more ]processes or ]procedures that drive.
3- الأدلة المقدمة من دون محاكمة
ويتم التصاميم تحت الاختبار في إطار هيكل الاختبارات، وترتبط موانئه بالإشارات المحلية التي تدفع أو ترصدها، وتساعد اتفاقيات تسمية الإشارات (مثلاً، ، ) على التمييز بين إشارات الاختبارات من الناموسيات الداخلية DUT.
4 - الرصد والتحقق
ويراقب المرصدون نواتج نظام السحب والتدقيق في قيمهم في أوقات محاكاة محددة، ويقارنون المتحققون النواتج الفعلية بالقيم المتوقعة إما فوراً أو بعد تأخير معروف، ويستخدم اختبارات التحقق الذاتي بيانات التأكيد () على أخطاء العلم تلقائياً.
5- تصفية الاختبار
وبالنسبة للسيناريوهات الاختبارية المتعددة، يتحكم المتعاقب في ترتيب التنفيذ، ويطبق المكشوف في مراحل محددة، وقد يشمل حواجز التزامن (مثلاً، في انتظار استجابة محددة قبل إرسال المدخلات التالية).
6- التقرير والتسجيل
وينبغي أن تُنتج الشهادات رسائل مرحلية ونتائج نهائية إلى القنصل أو ملف سجل، مما يسمح بإجراء محاكاة دفعة دون حاجة إلى رؤية صور الموجات يدوياً، ويشمل قطع الأشجار الجيد طوابع زمنية، ومحددات للاختبارات، وحالة المرور/الوفاة.
خطوات لإنشاء اختبار فيدرالي
ويتبع بناء اختبار من الصفر نهجا منهجيا، وتنطبق الخطوات الواردة أدناه على البيئات البسيطة والمتقدمة على السواء.
الخطوة 1: فهم العلاقة بين أوجه ومواصفات الـ دي.
قبل كتابة خط واحد، استعراض قائمة ميناء DUT، متطلبات البروتوكول، مخططات التوقيت، والمواصفات الوظيفية، تحديد جميع مدخلات ومنتجات، واسلاك بياناتها، والمصافحة اليدوية، على سبيل المثال، إذا كان جهاز التدوين المدمج هو جهاز تسجيل إطلاق النار،
الخطوة 2: كتابة الاختبارات
إنشاء ملف VHDL مع كيان فارغ (لا موانئ) وهيكل، وإشارة رمزية تربط بين موانئ DUT، وإثبات الـ DUT كعنصر، على سبيل المثال:
entity tb_fifo is
end entity tb_fifo;
architecture sim of tb_fifo is
signal clk : std_logic := '0';
signal rst_n : std_logic := '0';
signal data_in : std_logic_vector(7 downto 0);
signal wr_en : std_logic;
signal full : std_logic;
-- ... other signals
begin
DUT: entity work.fifo
port map (
clk => clk,
rst_n => rst_n,
data_in => data_in,
wr_en => wr_en,
full => full
);
-- Clock generation process
clk <= not clk after 5 ns;
end architecture sim;
الخطوة 3: عمليات التحفيز
إضافة عملية أو أكثر لدفع الـ دي تي، و بالنسبة لـ FIFO بسيطة، يمكنك كتابة عملية تكتب البيانات إلى نظام المعلومات المالية حتى يصبح كاملا، ثم تقرأها.
الخطوة 4: تنفيذ نظام الرصد والتحقق
تشمل العمليات التي تراقب مؤشرات النواتج وتقارنها بالقيم المتوقعة، وتستخدم اختبارات التحقق الذاتي التأكيدات، على سبيل المثال:
assert dout = expected_data
report "Data mismatch at time " & time'image(now)
severity error;
بالنسبة لـ "دي أو تي" المعقدة، النظر في بناء نموذج مرجعي... وصف سلوكي يتوقّع السلوك الصحيح... ومقارنة ناتجه بدورة إنتاج "دي أوت" حسب الدورة.
الخطوة 5: إجراء عمليات المحاكاة وتحليل النتائج
اجمعي جهاز الفحص وجهاز التتبع في محاكاتك المختاره اجري المحاكاة وفحصي النص الخاص بفشل التأكيدات واستخدمي المشاهدين المزودين بالوجات لتحلل السلوكات الغير متوقعة
أنواع استراتيجيات الاختبار في اختبارات VHDL
وتستدعي أهداف التحقق المختلفة من التصميم منهجيات اختبار مختلفة، وتتمثل أكثر الاستراتيجيات شيوعا فيما يلي:
الاختبارات المباشرة
وفي الاختبارات الموجهة، يتم تصميم كل حالة اختبار يدوياً للتحقق من سمة محددة، ومن السهل كتابة هذا الاختبار وحذفه، ولكنه لا يمتد إلى التصميمات المعقدة، والاختبارات المباشرة هي الأفضل بالنسبة لعمليات التفتيش الأولية للمكانية وبذلات الانحدار حيثما توجد حالات زاوية معروفة.
اختبارات الرفات
ويستخدم اختبار الرفات المولدات الكهربائية من حيث عدد المبادلات في إنتاج عدد كبير من المداخلات، ويتحقق هذا الاختبار تلقائيا من النواتج، التي كثيرا ما تكون متعارضة مع نموذج مرجعي، ويكتشف هذا النهج حالات الزوايا التي قد يفتقدها المواصفات البشرية، ويوفر القانون الإنساني وظيفة ] لتوليد أعداد عشوائية، ويمكن الجمع بين اختبارات الرشوة والتقنيات العشوائية المحدودة للتحيزات المتحركة إلى المناطق المثيرة للاهتمام.
اختبارات التغطية
وتوضح مقاييس التغطية (التغطية الشاملة، والتغطية العملية، والتغطية الوظيفية) الأجزاء التي تم تنفيذها من التصميم، ويمكن للعديد من المحاكاة الإبلاغ عن التغطية، ويمكن تنفيذ التغطية الوظيفية باستخدام مجموعات تغطية VHDL (مثلا، OSVM أو UVM). والهدف هو تحقيق تغطية بنسبة 90-10 في المائة على المسارات الحرجة.
اختبار التراجع
ومع تطور التصميم، تجري مجموعة من التراجعات جميع الاختبارات التي كانت تجتازها في السابق لضمان عدم إدخال أي تراجع، وهذا يتطلب أداة اختبار آلية، باستخدام نصوص Tcl مع نماذج " ModelSim " أو " Python " التي يمكن أن تساعد عمليات المحاكاة على تشغيل البخار الآلي ومقارنة النتائج مع قطع الأشجار الذهبية.
التقنيات المتقدمة للاختبارات الآلية
وبالإضافة إلى الحوافز الأساسية والتحقق، يستخدم مهندسو التحقق الموسَّمون عدة تقنيات متطورة لتحسين الإنتاجية والنوعية الاختبارية.
استخدام الإجراءات والمهام
(ج) أن يُعاد استخدام أنماط التحفيز المتكررة في الإجراءات أو المهام، مثلاً، إجراء يكتب كلمة واحدة إلى واجهة AXI Stream يمكن إعادة استخدامه في العديد من الاختبارات، وهذا النموذج يقلل من الازدواجية في الرموز ويسهل الحفاظ على الاختبار.
الكيان المثبت ضد العنصر
Direct entity immediateiation] (VHDL-93 and later) is recommended because it avoids separate component declarations. Use ] directly in the structure. This is less error-prone and keeps the testbench code clean.
VHDL-2008 Features
VHDL-2008 introduced several constructs that enhance testbench development:
- Enhanced general types:] Allows general parameters to be more flexible.
- Boolean expressions in ports:] Simplify connection of unresolved signals.
- Conditional and selected signal assignments:] Reduce the need for process blocks.
- Standard ] package:] Provides and ]] procedures to end simulation cleanly.
- Asertion improvements:] ] statements can include to stop simulation.
واعتماد القانون الإنساني الدولي لعام 2008 في اختبارات (حتى إذا كان يجب كتابة الـ (DUT) في معايير أقدم) يؤدي إلى تحسين إمكانية القراءة ويقلل من حجم المدونة.
الملف الأول/الأول لمفاتيح الاختبار
بالنسبة للتصميمات التي تجهز مجموعات بيانات كبيرة (مثلاً، مرشحات الصور أو مجهزات التعبئة)، وأجهزة اختبار القراءة من الرسائل النصية أو الملفات الثنائية ضرورية، وحزمة VHDL توفر و إجراءات، وتغلق دائما ملفات بعد القراءة لتجنب تسرب الموارد.
الشاشة والتنبؤ
ويعد سجل النتائج هيكل بيانات يتتبع المعاملات التي لم يُبت فيها ويتحقق منها عند وصول الردود، وهذا أمر شائع في نماذج تشغيل الحافلات، مثلاً في اختبار لمراقبي إدارة الشؤون الإنسانية، يمكن لجهاز تسجيل النتائج أن يتتبع كل طلب كتابي ويتحقق من أن البيانات تظهر في موقع الذاكرة الصحيح.
أفضل الممارسات للاختبارات القابلة للاستمرار في القانون الإنساني الدولي
وتُدفع ممارسات الاختبار الجيدة مع نمو التصميم، وتساعد المبادئ التوجيهية التالية على الحفاظ على قوة الاختبارات وإمكانية التكيف معها.
الوحدات وإعادة الاستخدام
:: كسر الاختبار في ملفات منفصلة: واحدة لجيل التوقيت وساعة/إعادة تحديد المسار، وثالث للإجراءات المشتركة، وثالث للتسلسل الاختباري، واستخدام الطرود لتقاسم الثوابت والأنواع، وهذا النموذج يسمح بإعادة استخدام الإجراءات عبر اختبارات متعددة.
اتفاقيات تسمية
استخدموا تسمية واضحة ومتسقة، على سبيل المثال:
- prefix for testbench signals.
- للمولدات الكهربائية.
- لأجهزة الشيكات.
- للثبات الخاصة بالاختبارات.
البارامترات من خلال المواد الجينية
(ب) أن ينتقل إلى الكيان الذي يُجري الاختبارات بواسطة خرائط عامة، مع مراعاة المعايير العامة لنظام " DUT " (مثلاً، قاعدة البيانات، عمق المنظمة) مما يتيح لنفس هيئة الاختبار التحقق من تشكيلات متعددة دون تغيير الرمزي.
الترقوة الذاتية وعدم التسامح
كل اختبار يجب أن يفشل تلقائياً إذا فشل أي تأكيد، استخدم للأخطاء الكارثية و للخطأ، وتجنب المحاكاة التي تنتهي برسالة "النجاحات" إذا لم تحدث أي فشل، بل إن الاختبار طباعة واضحة "اختبار" فقط بعد مرور جميع الشيكات.
الوثائق والتعليقات
توثيق الغرض من كل اختبار، والسلوك المتوقع، وأي متطلبات خاصة للتوقيت، وتساعد التعليقات الجيدة المهندسين في المستقبل (بما في ذلك نفسك بعد ستة أشهر) على فهم نوايا الاختبار.
إدماج اختبارات VHDL مع أدوات محاكاة حديثة
واستخدام جهاز اختبار يتطلب فهماً فعالاً لطريقة التفاعل مع المحفز.
أجهزة التبسيط
ومعظم أدوات المحاكاة تدعم كتابة النصوص (موديل سيم، فيفادو، ريفيرا - نون) وتكتب نصاً تجميعياً يجمع جميع ملفات المصادر حسب الترتيب الصحيح، وينشئ مكتبات محاكاة، ويدير هيئة الاختبارات، على سبيل المثال، ملف نموذجي :
vlib work
vcom -2008 dut.vhd
vcom -2008 tb_fifo.vhd
vsim -voptargs=+acc work.tb_fifo
run -all
حركة و تراجع
لاختبار التراجع، تجري محاكاة في طريقة الدفع (لا يوجد دليل على ذلك) لإنقاذ الوقت، وينبغي أن يُنتج فريق الاختبار رسالة واضحة عن طريق الرفض/الخطأ يمكن أن يُصاغ بها نص خارجي، والنظر في استخدام ماكفيلز أو بيتسون لتأسيس عمليات اختبار متعددة.
التعبئة وتعبئة الحشود
وأثناء التطوير، يمكن قطع الأشجار الموجية من أجل إشارات الديوغ، استخدام في النموذج لسجل جميع الإشارات الهرمية، وإزالة قطع الأشجار المفرط من أجل الإنتاج إلى سرعة المحاكاة.
جمع التغطية
(ب) خيارات التغطية الرمزية في المحفز: في النموذج، استخدام ثم ] لكتابة تقارير التغطية، وتحليل الخطوط غير الموصّلة أو لطرح نقاط الاختبار الإضافية.
الشلالات المشتركة وكيفية تجنبها
إغفال إعادة التعاقب
ويتطلب العديد من التصميمات إعادة تأكيدها لعدد محدد من دورات الساعة، وتتبع دائماً مواصفات نظام السحب؛ وتفشل الاختبارات العامة في كثير من الأحيان لأن إعادة ضبطها قد تم التخلي عنها في وقت مبكر جداً.
التسلسل غير السليم
وتشكل إشارات السحب في دورة الساعة الخاطئة مصدراً متكرراً لضغوط المحاكاة، إذ تدفع المدخلات مباشرة بعد ارتفاع حافة الساعة (الاستعمال )، وليس أثناء الحافة.
التغطية غير الكاملة
ومن السهل اختبار التشغيل العادي ولكن عدم وجود ظروف للخطأ (مثلاً، التشغيل الكامل للقوى العاملة، والقمع، والإسهامات غير الصحيحة) - حالات اختبار الخطة التي تغطي جميع الدول وعمليات الانتقال.
التوقيت المُشعِر
وعادة ما يكون محاكاة نظام RTL ذي الصلة دقيقاً من حيث الدورة، ولكن الاختبارات يمكن أن تكون سهلة المنال المختلط النموذجي بطريقة غير صحيحة.
التأخيرات المرتجلة
تجنب ما لم يُظهر سلوكاً غير متناهي، وهذا التأخير يجعل الاختبارات حساسة للتغييرات في تردد الساعة، ويستخدم دورات الساعة بدلاً من ذلك.
الأدوات والموارد الخارجية
لتعميق خبرتك في مجال الاختبار، استكشاف الموارد التالية:
- UVM: Universal VHDL Verification Methodology] - إطار للتحقق من VHDL مفتوح المصدر يوفر إجراءات لمعالجة الوصلات البينية المشتركة مثل AXI، وSPI، وUART.
- OSVM: Open Source VHDL Verification Methodology] - Offers randomization, coverage, and scoreboarding features to increase standard VHDL testbenches.
- VHDL-2008 Designers Guide] - Reference comprehensive for language features that are particularly useful in testbenches.
خاتمة
ومن خلال تحديد العناصر الأساسية - الحفز، والرصد، والتحقق الذاتي، والتغطية - يمكن أن تخلق بيئات اختبارية تلتقط الحشرات في وقت مبكر، وتضمن التصميمات المواصفات قبل بناء المعدات.