الأعداد محددة الحجم
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 14 من 90.
توجد طريقة لتعريف عدد بحجم محدد في Verilog. يُسمّى عددًا محدد الحجم. وهذا مفيد لأنه يمنع الالتباس بشأن عدد البتات التي يتكوّن منها العدد، ويضمن أن تتصرّف أجهزتك كما هو متوقّع تمامًا.
يتبع الرقم المحدد الحجم هذا التنسيق: [bits]'[format][value]
<strong>bits</strong>: عدد البتات (على سبيل المثال،8)<strong>'</strong>: فاصلة عليا تفصل الحجم عن التنسيق (مطلوبة)
<strong>format</strong>: أساس العدد:bللنظام الثنائي، وdللنظام العشري، وhللنظام السداسي عشري، أوoللنظام الثماني<strong>value</strong>: العدد الفعلي (على سبيل المثال،1010)
على سبيل المثال:
4'b1010: 4 bits، binary 1010 (decimal 10)8'd255: 8 bits، decimal 255 (binary 11111111)16'hFF: 16 bits، hex FF (binary 0000000011111111)3'b1: 3 bits، binary 001 (تُملأ bits الموجودة على اليسار بالأصفار)
مثال على الكود:
reg [7:0] data;
data = 8'b10101010; // 8 bits, binary 10101010
data = 8'd170; // 8 بت، عشري 170
data = 8'hAA; // 8 bits, hex AAتُسنِد all three أمثلة القيمة نفسها إلى data.
لماذا يهم الحجم
من دون تحديد الحجم:
reg [7:0] data;
data = 1; // ماذا يعني هذا؟ 1 بت؟ 8 بتات؟يفترض Verilog أن الأعداد الصغيرة تتكون من 32 بتًا افتراضيًا، مما قد يسبب مشكلات.
مع تحديد الحجم:
reg [7:0] data;
data = 8'b00000001; // Clear: 8-bit value 1الحشو بالأصفار
عندما تُسنِد قيمة أصغر إلى متجه أكبر، يملأ Verilog البتات الموجودة على اليسار بالأصفار:
reg [7:0] data;
data = 4'b1010; // Becomes 8'b00001010التحدي
أكمل الكود بكتابة الأرقام ذات الأحجام الصحيحة.
What يجب فعله:
- عيّن
aإلى رقم binary بحجم 8-bit للقيمة decimal 170 (binary 10101010) - عيّن
bإلى رقم binary بحجم 4-bit للقيمة decimal 12 (binary 1100) - عيّن
cإلى رقم hex بحجم 16-bit للقيمة decimal 255 (hex FF)
جرّب بنفسك
module sized_challenge;
reg [7:0] a;
reg [3:0] b;
reg [15:0] c;
initial begin
a = ______; // ثنائي 8 بت لـ 170 (10101010)
b = ______; // ثنائي 4 بت لـ 12 (1100)
c = ______; // سداسي عشري 16 بت لـ 255 (FF)
$display("a = %b", a);
$display("b = %b", b);
$display("c = %h", c);
$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 عبر الإنترنت