Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Integer و Real

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 8 من 90.

بالإضافة إلى wire و reg، تمتلك Verilog أنواع بيانات أخرى للأرقام لأغراض مختلفة.

Integer

integer هو متغير للأغراض العامة للعد والحسابات.

  • الحجم الافتراضي هو 32 بت
  • موقّع (يمكنه تخزين الأرقام السالبة)
  • يُستخدم بشكل أساسي في منصات الاختبار (testbenches) وحلقات for

التصريح عن عدد صحيح:

integer i;        // متغير ذو إشارة بطول 32 بت
integer count;    // يمكنه تخزين أرقام سالبة

استخدام integer:

integer i;

initial begin
  i = 0;           // البدء من 0
  i = i + 1;       // العد التصاعدي
  i = -5;          // يمكنه تخزين قيم سالبة
  $display("i = %d", i);  // يطبع: i = -5
end

Real

real تُستخدم لأرقام الفاصلة العائمة (الأرقام ذات الكسور العشرية).

  • يخزن القيم الكسرية
  • يُستخدم في منصات الاختبار (testbenches) لإجراء الحسابات
  • لا يمكن تحويله برمجياً (synthesized) إلى عتاد

التصريح عن متغير 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): تُستخدم الأعداد الصحيحة (integers) والأعداد الحقيقية (reals) بشكل شائع لعدادات الحلقات، والحسابات، والتحقق من القيم المتوقعة. فهي تجعل كود الاختبار أسهل في الكتابة والفهم.

في العتاد (Hardware): هذه الأنواع عادةً ما تكون غير قابلة للتصنيع (non-synthesizable)—مما يعني أنه لا يمكن تحويلها إلى دوائر فعلية. بالنسبة للعتاد الذي سيوضع على FPGA أو شريحة، استخدم reg و wire بدلاً من ذلك.

challenge icon

التحدي

أكمل الكود لجعل منصة الاختبار (testbench) تعمل.

ما يجب القيام به:

  1. قم بالتصريح عن integer يسمى i (لعداد الحلقة)
  2. قم بالتصريح عن real يسمى value (للحساب)

ورقة مرجعية

integer – متغير موقع بـ 32 بت للعد/الحسابات (منصات الاختبار "testbenches"، الحلقات "loops"):

integer i;
integer count;

initial begin
  i = 0;
  i = i + 1;
  i = -5;  // can store negatives
end

real – متغير بنقطة عائمة (floating-point) للقيم الكسرية (منصات الاختبار فقط، غير قابل للتصنيع "not synthesizable"):

real pi;

initial begin
  pi = 3.14159;
  pi = 22.0 / 7.0;
  $display("pi = %f", pi);
end

كلا النوعين integer و real يُستخدمان في منصات الاختبار (testbenches) فقط. بالنسبة للأجهزة القابلة للتصنيع (synthesizable hardware)، استخدم reg و wire.

جرّب بنفسك

module test;
  
  // التصريح عن عدد صحيح يسمى i

  
  // التصريح عن عدد حقيقي يسمى value

  
  initial begin
    i = 7;
    value = i * 0.5;
    $display("i = %0d, value = %f", i, value);
    
    $finish;
  end
  
endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات