انتقل إلى المحتوى

ملاحظات حول قواعد النمط 🚧

ملف النمط الرقمي يتضمن عادة 3 أقسام رئيسية: البيان الرأسي (Header Statement)، البيان التكويني (Setup Statement)، ووحدة النمط (Pattern Module). (البيانات الأولية للمعالجة (Preprocessing statements) والتعليقات (Comments) اختيارية).

أدناه نموذج لملف النمط المستخدم عادةً بصيغة .atp:

// example.atp
digital_inst = HSDMQ;
opcode_mode = single;
pinmap_workbook = "..\xx.igxl";
import tset tset1 ;
instruments = {
        (TIC_DATABUS):DigCap 32:format=twos_complement:auto_trig_enable;
}
vm_vector cpr_test($tset TIC_CLK, TIC_ACK, TIC_REQ_A, TIC_DATABUS)
{
cpr_test:
 > tset1 0 X 0 0 .d000000 ;
repeat 100
 > tset1 0 X 1 1 .rFFFFFF ;
 > tset1 0 X 0 0    .X    ;
 ((TIC_DATABUS):DigCap = Store)
 > tset1 0 X 0 0    .V    ; // capture
HALT
 > tset1 0 X 0 0  d000000 ; // end
}

البيان الرأسي

البيان الرأسي (Header Statement) يتضمن هذه البيانات: الأداة الرقمية، خريطة الأسنان، تحكم المترجم، استيراد الأوقات أو العلامة. فيما يلي مثال:

digital_inst = HSDMQ;           // بيان الأداة الرقمية
opcode_mode = single;           // بيان الترجمة
import tset tset1, tset1;       // استيراد الأوقات
import subr xxx;                // استيراد الإجراءات الفرعية

المعلمات المستخدمة بشكل متكرر:

Here is the translated text in Arabic:

- عبارات أداة رقمية
  - **digital_inst**: `hsdm` (HSD1000, UltraPin800)، `hsdmq` (UltraPin1600)، `hsdp` (UltraPin2200) ...
- مواصفات خريطة الأوصال:
  - **pinmap_workbook**: اسم دفتر IG‑XL، مثل `"xxx.igxl"`
  - **sheetname**: اسم ورقة خريطة الأوصال، مثل `"pinmap"`
- عبارات التحكم في المترجم
  - **compressed**: `نعم` أو `لا`
  - **opcode_mode**: `واحدة` أو `مزدوجة` أو `رباعية` (UltraPin1600)، يمكن أن تتضمن كل 1/2/4 من الأوصال أوصالًا للتعليمات.
  - **save_comments**: `نعم` أو `لا`
  - **version**: مثل `V1.0`
- اختبار وتسمية
  - **Tset**: `استيراد tset tset1، tset2، ... ;`
  - **Label**: `استيراد label label1، label2، ... ;`

## عبارة الإعداد

**عبارة الإعداد** تحتوي على إعداد الأوصال، الأدوات، وأوصال الفحص.
إعداد الأوصال = { gpio_1 2x; // إعداد الأوصال: تم تعيين gpio_1 إلى وضع 2X } الأدوات = { vcc:DCVS 1; // أداة DCVS tdo:DigCap 32:format=twos_complement:auto_trig_enable; // أداة DigCap } أوصال الفحص = { tdi, tdo; // tdi - إدخال الفحص، tdo - إخراج الفحص }
المعلمات المستخدمة بشكل متكرر:
- الأحرف لحالة الأوصاف والشيفرات الدقيقة
  - **أحرف حالة الأوصاف**: `0`(تنفيذ منخفض), `1`(تنفيذ عالي), `2`(تنفيذ عالي للجهد فقط لـ UP800), `L`(توقع منخفض), `H`(توقع عالي), `M`(توقع منتصفي), `V`(توقع صالح), `X`(قناع), `W`(مؤشر النافذة), `D`(تنفيذ ADS (DigSrc/MTO)), `I`(تنفيذ ADS العكسي (DigSrc/MTO)), `E`(توقع ADS (DigSrc/MTO)), `C`(توقع ADS العكسي (DigSrc/MTO)), `-`(تكرار الحالة السابقة).
  - **شيفرات DigCap**: `Trig`(بدء التقاط البيانات), `Store`(تخزين عينة من البيانات), `Trig, Store`(مزيج من بدء التقاط البيانات وتخزينها), `Store, Inst_Cond_Strobe`(تخزينها وبوابة الإشارة المتولدة داخليًا `condition` للاستجابة).

## وحدة النمط

تحتوي **وحدة النمط** على قائمة دبابيس ومجموعة من النواقل. هناك نوعين منها: ذاكرة النواقل (VM) والذاكرة (SRM):
vm_vector [اسم الوحدة] (قائمة الدبابيس)

srm_vector [اسم الوحدة] (قائمة الدبابيس) { نواقل } ```

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

المعلمات المستخدمة بشكل شائع:

  • قائمة الدبابيس
    • بنود الدبابيس: الدبوس أو المجموعة[.المعدل][:النظام]، حيث يمكن أن يكون النظام :S(رمزي، الافتراضي)، :B(ثنائي)، :D(عشري)، :O(ثماني)، :H(سداسي عشر).
  • العلامة: تحت التطوير

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