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

مستويات تجريد التصميم

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

في التصميم الرقمي، يمكننا وصف الدائرة نفسها بمستويات مختلفة من التفصيل. Verilog هي لغة يمكنها وصف الدوائر في أي من مستويات التجريد هذه. هذا ما يجعلها قوية!

هذه هي المستويات:

المستوى 1: السلوكي (Behavioral)

يصف هذا المستوى ما تفعله الدائرة، وليس كيفية قيامها بذلك. فهو يركز على الوظيفة أو السلوك، مثل "العد التصاعدي" أو "جمع رقمين".

لا تظهر التفاصيل الداخلية لكيفية حدوث العد أو الإضافة. هذا المستوى هو الأقرب إلى التفكير البشري وأسهل في الكتابة.

المستوى 2: RTL

يوضح هذا المستوى كيفية انتقال البيانات بين السجلات والعمليات التي تُجرى على تلك البيانات. يمكنك رؤية مسار البيانات: تنتقل البيانات من سجل إلى جامع (adder)، ثم تعود إلى السجل.

هذا هو المستوى الذي يعمل عنده معظم المصممين الرقميين لأنه يوفر توازناً جيداً بين كونه قابلاً للفهم وبين كونه مفصلاً بما يكفي لإنشاء الأجهزة.

المستوى 3: مستوى البوابات

يصف هذا المستوى الدائرة باستخدام بوابات منطقية أساسية مثل AND و OR و XOR. يتم عرض كل اتصال بشكل صريح.

هذا المستوى مفصل للغاية ويصعب كتابته يدوياً. وعادة ما يتم إنتاجه بواسطة أدوات من أوصاف عالية المستوى، وليس كتابته يدوياً.
 

لماذا يهم هذا

- **المستوى الأعلى** = أسهل في الكتابة، تحكم أقل
- **المستوى الأدنى** = أصعب في الكتابة، تحكم أكبر
- **RTL** هو الخيار الأمثل لمعظم أعمال التصميم

challenge icon

التحدي

ماذا تفعل:

  1. قم بتشغيل هذا الكود وشاهد كيف يتم وصف نفس العملية في ثلاثة مستويات مختلفة:

ورقة مرجعية

يمكن لـ Verilog وصف الدوائر في مستويات تجريد مختلفة:

  • السلوكي (Behavioral) – يصف ماذا تفعل الدائرة (مثلاً، "جمع رقمين"). الأسهل في الكتابة، والأقل تحكماً.
  • مستوى نقل السجلات (RTL - Register Transfer Level) – يصف كيفية انتقال البيانات بين السجلات وما هي العمليات التي تحدث. المستوى القياسي لمعظم أعمال التصميم الرقمي.
  • مستوى البوابات (Gate Level) – يصف الدائرة باستخدام بوابات منطقية صريحة (AND، OR، XOR). الأكثر تفصيلاً، والأصعب في الكتابة؛ يتم إنشاؤه عادةً بواسطة الأدوات.

المقايضة: مستوى أعلى = أسهل في الكتابة، تحكم أقل. مستوى أدنى = أصعب في الكتابة، تحكم أكبر. RTL هو الخيار الأمثل.

جرّب بنفسك

module abstraction_demo;
  
  initial begin
    $display("=== Design Abstraction Levels ===");
    $display("");
    
    $display("Level 1 (Behavioral):");
    $display("  'Add a and b' - no details how");
    $display("");
    
    $display("Level 2 (RTL):");
    $display("  'On clock edge, result <= a + b' - shows data flow");
    $display("");
    
    $display("Level 3 (Gate Level):");
    $display("  'XOR gates for sum, AND gates for carry' - actual gates");
    $display("");
    
    $finish;
  end
  
endmodule
quiz iconاختبر نفسك

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

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