شعار زيفيرنت

أساسيات AXI 4 - استخدام AXI VIP كمدقق بروتوكول لواجهة AXI4 Master

التاريخ:


المُقدّمة

في مجلة أساسيات AXI 2 في المقالة ، ذكرت أنه يمكن استخدام Xilinx Verification IP (AXI VIP) كمدقق بروتوكول AXI. في هذه المقالة سنرى كيف يمكننا استخدامه للتحقق من صحة (والعثور على الأخطاء) في واجهة AXI4 (كاملة) Master.


استخدام AXI VIP كمدقق بروتوكول AXI4 (برنامج تعليمي)

  1. قم بتنزيل ملفات التصميم مرفق بهذه المقالة
  2. افتح Vivado 2019.2
  3. في وحدة تحكم Tcl ، اضغط على القرص المضغوط في الدليل الذي تم فك ضغطه (القرص المضغوط AXI_Basics_4)
  4. في وحدة تحكم Tcl ، مصدر البرنامج النصي تى سى ال (المصدر ./create_proj.tcl)

    سيؤدي ذلك إلى إنشاء مشروع Vivado بتصميم Block (BD) بما في ذلك عنوان IP مخصص بواجهة Master AXI4 التي نريد التحقق منها

    1.png
    يمكننا الآن توصيل AXI VIP بالواجهة الرئيسية لعنوان IP المخصص للتحقق منه.

  5. انقر بزر الماوس الأيمن على BD ، وانقر فوق Add IP وأضف AXI Verification IP (AXI VIP) إلى BD
  6. انقر نقرًا مزدوجًا على AXI VIP لفتح واجهة المستخدم الرسومية للتكوين
  7. قم بتغيير وضع الواجهة إلى Slave وانقر فوق OK

    2.png

  8. قم بتوصيل واجهة إدخال S_AXI الخاصة بـ AXI VIP بواجهة إخراج m00_axi لعنوان IP المخصص ومنافذ الإدخال aclk و aresetn لـ AXI VIP بمنافذ الإدخال المقابلة لـ BD

    3.png

  9. افتح علامة التبويب محرر العنوان وانقر على زر التعيين التلقائي للعنوان. تأكد من أن العنوان المعين تلقائيًا لـ AXI VIP هو 0x44A0_0000 ، إذا لم يكن كذلك ، فقم بتعيين هذا العنوان يدويًا

    4.png

  10. تحقق من صحة BD. يجب ألا يكون لديك مشكلة أو تحذير خطير.
  11. احفظ BD
  12. أدخل الأمر التالي في وحدة التحكم Tcl للعثور على اسم المكون الكامل لمثيل AXI VIP:

    get_ips * vip *

    بشكل افتراضي ، يجب أن يكون اسم المكون الذي تم إرجاعه هو design_1_axi_vip_0_0

  13. انقر نقرًا مزدوجًا فوق ملف مقعد الاختبار AXI_tb من نافذة المصادر لفتحه في محرر النصوص

    5.png
    يحتوي ملف مقعد الاختبار AXI_tb بالفعل على الكود المطلوب لتشغيل IP المخصص. نحتاج فقط إلى إضافة الرمز المطلوب لـ AXI VIP. وفقا ل أساسيات AXI 3، يمكننا فقط اتباع إرشادات وأمثلة مفيدة حول الترميز PG267 (الإصدار 1.1 ، 30 أكتوبر 2019) ص 46

    أولاً ، قم باستيراد حزمتين مطلوبتين: axi_vip_pkg و _pkg. اسم المكون هو الاسم الذي تم إرجاعه من get_ips في الخطوة 12

  14. أضف الأسطر التالية حول السطر 58

    // استيراد حزمتين مطلوبتين: axi_vip_pkg و _pkg.
    استيراد axi_vip_pkg :: * ؛ استيراد design_1_axi_vip_0_0_pkg :: *؛

    الخطوة التالية هي التصريح عن وكيل من نوع slave VIP.

  15. أضف السطر التالي حول السطر 91

    // أعلن الوكيل
    design_1_axi_vip_0_0_slv_mem_t slv_agent ؛

    بعد ذلك نحتاج إلى إنشاء وكيل الرقيق.

  16. أضف السطر التالي حول السطر 96
    // إنشاء وكيل
    slv_agent = جديد ("وكيل VIP رئيسي" ، UUT.design_1_i.axi_vip_0.inst.IF) ؛
  17. في هذا البرنامج التعليمي ، نحتاج إلى AXI VIP لإخراج الخطأ في وحدة التحكم ، لذلك نحتاج إلى تمكين الوضع المطول باستخدام السطر التالي (حول السطر 99)

    // تعيين مستوى الإسهاب في الطباعة
    slv_agent.set_verbosity (400) ،
  18. أخيرًا ، يمكننا بدء وكيل الرقيق بالسطر التالي:

    // ابدأ الوكيل
    slv_agent.start_slave () ،
  19. احفظ ملف مقعد الاختبار وابدأ تشغيل المحاكاة وتشغيلها مقابل 200 دولار أمريكي
  20. انظر إلى وحدة التحكم Tcl وابحث عن الكلمة الأساسية "Fatal". يجب أن ترى السطر التالي:

    فادح: AXI4_ERRM_AWADDR_BOUNDARY: يجب ألا تتجاوز الرشقة حد 4 بايت. المواصفات: القسم A3.4.1.

    6.png

    لفهم هذا الخطأ ، يمكننا إلقاء نظرة على القسم A3.4.1. (كما هو مذكور في رسالة الخطأ) في مواصفات بروتوكول AMBA® AXI ™ و ACE ™ المتاحة من موقع ARM (حلقة الوصل)

    في المواصفات يمكننا أن نرى الجملة التالية:

    "يجب ألا يتجاوز الاندفاع حد عنوان 4 كيلوبايت".

  21.  أغلق المحاكاة وانقر نقرًا مزدوجًا على عنوان IP المخصص axi_master_0 لفتح واجهة المستخدم الرسومية للتكوين.

    7.png
    يمكننا أن نرى أنه تم تكوين IP المخصص لإرسال رشقات من 16 كلمة 32 بت تبدأ من العنوان 0x44A00FC8. هذا يعني أن رشقات الكتابة ستبدأ عند العنوان 0x44A00FC8 وتنتهي عند العنوان 0x44A01004. هذا خطأ لأن الرشقات تعبر حد 4k وهو العنوان 0x44A01000 (4K = 4 * 1024 = 4096 = 0x1000).

  22. قم بتغيير M00 Axi Target Slave Base Address إلى 0x44A00000 ، وأغلق واجهة المستخدم الرسومية لتكوين IP بالنقر فوق موافق ، واحفظ تصميم الكتلة.
  23. أعد تشغيل المحاكاة لـ 200 دولار أمريكي.
  24. ابحث عن الكلمة الأساسية قاتلة مرة أخرى. يمكننا أن نرى أن رسالة الخطأ قد تغيرت (والتي ينبغي أن تشير إلى أن المشكلة الأولى قد تم حلها).
    يجب أن تشاهد الآن الخطأ التالي:

    جسيم: AXI4_ERRM_WDATA_STABLE: يجب أن يظل WDATA ثابتًا عند تأكيد WVALID وانخفاض WREADY. المواصفات: القسم A3.2.1.
  25. في نافذة شكل الموجة ، قم بتوسيع قناة بيانات الكتابة لواجهة m00_axi. سترى أن wvalid يتغير بالفعل بينما يكون السعر منخفضًا وهو ما يتعارض مع مواصفات AXI.

    8.png

  26. أغلق المحاكاة وافتح الملف AXI_Master_v1_0_M00_AXI.v أسفل تصميم الكتلة في نافذة المصادر

    9.png

  27. قم بتحديث الجزء التالي حول الأسطر 506/518. سيؤدي هذا إلى منع تغيير البيانات عندما يكون الماء منخفضًا.

    / * كتابة نمط بيانات مولد البيانات هو مجرد عدد متزايد بسيط من 0 لكل رشقة * / دائمًا @ (posedge M_AXI_ACLK) يبدأ إذا (M_AXI_ARESETN == 0 || init_txn_pulse == 1'b1) axi_wdata <= 'b1؛ // else if (wnext && axi_wlast) // axi_wdata <= 'b0 ؛ وإلا إذا (wnext) axi_wdata <= axi_wdata + 1 ؛ آخر axi_wdata <= axi_wdata ؛  النهاية 
  28. حفظ الملف. أ تحديث الوحدات المتغيرة يجب أن يظهر الخيار. انقر عليه.

    10.png

  29. أعد تشغيل المحاكاة لـ 200 دولار أمريكي.

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

الخروج PrimeXBT
تداول مع شركاء CFD الرسميين لشركة AC Milan
أسهل طريقة لتداول العملات المشفرة.
المصدر: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/AXI-Basics-4-Using-the-AXI-VIP-as-protocol-checker-for-an-AXI4/ بكالوريوس - ع / 1062002

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة