إسناد حاجز
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 49 من 90.
يحتوي Verilog على نوعين من الإسنادات الإجرائية: الحاجبة (=) وغير الحاجبة (<=). في هذا الدرس، نركّز على الإسناد الحاجب.
يستخدم Blocking assignment عامل =. ويُسمّى «الحجب» لأنه يمنع تنفيذ التعليمة التالية حتى يكتمل assignment الحالي. يُنفَّذ الكود step by step، بالترتيب.
البنية النحوية:
variable = expression;متى تستخدم عملية الإسناد Blocking
تُستخدم عملية الإسناد Blocking (=) في المنطق التوافقي: وهي دوائر تتغير مخرجاتها فورًا عند تغير المدخلات، من دون ساعة ومن دون ذاكرة.
أمثلة على المنطق التوافقي:
- بوابات AND / OR / XOR
- دوائر الجمع والطرح
- المُبدِّلات
- فكّاك الشيفرة
مثال على Verilog:
always @(*) begin
sum = a + b; // تعيين حاجز
carry = a & b; // تعيين حاجز
endBlocking في كتل always (المنطق التوافقي)
always @(*) begin
temp = a & b; // الخطوة 1
out = temp | c; // الخطوة 2 (تستخدم temp من الخطوة 1)
endالترتيب مهم. هذا مناسب للمنطق التوافقي.
Blocking مقابل غير حاجب
Blocking (=) | غير حاجب (<=) | |
|---|---|---|
| التنفيذ | واحدًا تلو الآخر | كلها في الوقت نفسه |
| هل ينتظر السطر التالي؟ | نعم | لا |
| Uses | المنطق التوافقي | المنطق التسلسلي (القلابات) |
مهم: لا تستخدم Blocking مع القلابات
التحدي
أضف تعيينات blocking المفقودة لمبادلة قيم x وy باستخدام متغير مؤقت.
ما يجب فعله:
- Assign قيمة
xإلىtemp(احفظ x في temp) - Assign قيمة
yإلىx(انقل y إلى x) - Assign قيمة
tempإلىy(انقل قيمة x المحفوظة إلى y)
جرّب بنفسك
module swap;
reg x, y;
reg temp;
initial begin
x = 1;
y = 0;
$display("Before swap: x=%d, y=%d", x, y);
// TODO: الخطوة 1 - أسند x إلى temp
// TODO: الخطوة 2 - أسند y إلى x
// TODO: الخطوة 3 - أسند temp إلى y
$display("After swap: x=%d, y=%d", x, y);
$finish;
end
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل الجزء 1
العوامل الحسابيةعامل باقي القسمةعوامل المقارنةمراجعة - الرياضيات البسيطةالعوامل على مستوى البتات7التعيين والبوابات
التعيين المستمرالتعيين باستخدام العواملالعناصر الأساسية المدمجة للبواباتبوابات AND وOR وNOTبوابات XOR وXNORمراجعة - دائرة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الربطالمعامل الشرطيمراجعة - تحدي المعاملات11الحلقات التكرارية
حلقة Forحلقة Whileحلقة التكرارحلقة لا نهائيةتعليمة التعطيلمراجعة - أنماط الحلقات التكرارية3نظام الأعداد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ الإدخال والإخراج ثنائية الاتجاهإنشاء مثيل للوحدةربط المنافذ حسب الاسمربط المنافذ حسب الترتيبمراجعة - بناء وحدة9الكتل الإجرائية
كتلة Alwaysكتلة Initialقائمة الحساسيةإسناد حاجزإسناد غير حاجزمراجعة - Always مقابل Initial15متحكّم إشارات المرور
تعريف الحالاتمنطق آلة الحالاتتدرّب بنفسك: مترجم Verilog عبر الإنترنت