Integer و Real
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 8 من 90.
بالإضافة إلى wire و reg، تحتوي Verilog على أنواع بيانات أخرى لـ numbers لأغراض مختلفة.
Integer
integer هو variable عام الأغراض للعد والحسابات.
- الحجم الافتراضي هو 32 bit
- signed (can store negative numbers)
- يُستخدم بشكل أساسي في testbenches وحلقات for
التصريح عن integer:
integer i; // متغير موقّع 32-بت
integer count; // يمكنه تخزين الأرقام السالبةاستخدام integer:
integer i;
initial begin
i = 0; // ابدأ من 0
i = i + 1; // عد للأعلى
i = -5; // يمكنه تخزين قيم سالبة
$display("i = %d", i); // يطبع: i = -5
endReal
real مخصص للأعداد ذات الفاصلة العائمة (الأرقام التي تحتوي على كسور عشرية).
- يخزن القيم الكسرية
- يُستخدم في بيئات الاختبار (testbenches) للحسابات
- لا يمكن تصنيعه إلى عتاد برمجي (hardware)
الإعلان عن real:
real pi; // متغير نقطة عائمة
real voltage;باستخدام real:
real pi;
initial begin
pi = 3.14159; // قيمة عشرية
pi = 22.0 / 7.0; // نتيجة القسمة
$display("pi = %f", pi); // يطبع: pi = 3.142857
endأين تُستخدم
في بيئات الاختبار (testbenches): يُستخدم integer و real بشكل شائع لعدادات الحلقات (loop counters)، والحسابات، والتحقق من القيم المتوقعة. فهي تجعل كتابة كود الاختبار وفهمه أكثر سهولة.
في العتاد: هذه الأنواع عادةً غير قابلة للتصنيع (synthesizable)—ما يعني أنه لا يمكن تحويلها إلى دوائر فعلية. بالنسبة للعتاد الذي سيوضع على FPGA أو شريحة، استخدم reg و wire بدلاً من ذلك.
التحدي
أكمل الكود ليعمل testbench.
ما يجب فعله:
- قم بـ Declare `integer` باسم `i` (من أجل loop `counter`)
- قم بـ Declare `real` باسم `value` (من أجل الحساب)
جرّب بنفسك
module test;
// أعلن عن integer يسمى i
// أعلن عن real يسمى value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة