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

عداد البتات

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

challenge icon

التحدي

في هذا الفصل، ستقوم ببناء مرسل UART خطوة بخطوة. UART ترمز إلى Universal Asynchronous Receiver-Transmitter (المستقبل والمرسل غير المتزامن العام). وهو بروتوكول أجهزة بسيط يسمح لجهازين بالتواصل باستخدام سلك واحد فقط (للإرسال) وسلك آخر (للاستقبال).

تخيل الأمر مثل شخصين يتحدثان عبر الهاتف — أحدهما يتحدث (يرسل)، والآخر يستمع (يستقبل). يقوم UART بإرسال البيانات بتًا واحدًا في كل مرة، مع وجود بتات بدء وتوقف لتمييز بداية ونهاية كل بايت.

يرسل مرسل UART عدد 10 بتات: بت البدء (1)، بتات البيانات (8)، وبت التوقف (1). لتتبع أي بت نقوم بإرساله، نحتاج إلى عداد بتات (bit counter) يعد من 0 إلى 10.
كيف يعمل عداد البتات

  • يبدأ من 0
  • في كل دورة ساعة، يضيف 1
  • عندما يصل إلى 10، يعود إلى 0
  • يكرر ذلك للأبد

في هذه المهمة، لن نقوم بتصفيره بعد: سنقوم فقط بزيادته.

ما يجب فعله:

  1. قم بإنشاء وحدة (module) تسمى uart_tx تحتوي على:
    • مدخل واحد: clk
    • مخرج واحد: cnt (4 بتات، من النوع reg)
  2. داخل الوحدة:
    • اضبط cnt على 0 في البداية داخل بلوك initial
    • أضف بلوك always @(posedge clk)
    • اجعل cnt يزداد بمقدار 1 عند كل حافة ساعة

جرّب بنفسك

// TODO: قم بإنشاء وحدة uart_tx بمدخل clk ومخرج cnt (4 بت)

// TODO: قم بتعيين cnt إلى 0 في البداية داخل كتلة initial

// TODO: أضف كتلة always @(posedge clk)

// TODO: قم بزيادة cnt

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