عداد البتات
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 87 من 90.
التحدي
في هذا الفصل، ستصمّم جهاز إرسال UART خطوة بخطوة. كلمة UART هي اختصار لـ Universal Asynchronous Receiver-Transmitter (المستقبل/المرسل العام غير المتزامن). وهو بروتوكول أجهزة بسيط يتيح لجهازين التواصل باستخدام سلك واحد فقط (للإرسال) وسلك آخر (للاستقبال).
تخيل الأمر كشخصين يتحدثان عبر الهاتف — أحدهما يتحدث (يرسل)، والآخر يستمع (يستقبل). يرسل UART البيانات بت واحد في كل مرة، مع بتات للبدء والتوقف لتحديد بداية ونهاية كل بايت.
يرسل جهاز إرسال UART 10 بتات: بت البدء (1)، بتات البيانات (8)، بت التوقف (1). لتتبع البت الذي نرسله، نحتاج إلى عداد بتات يعد من 0 إلى 10.
كيف يعمل عداد البتات
- ابدأ من 0
- في كل دورة ساعة، أضف 1
- عندما يصل إلى 10، ارجع إلى 0
- كرر ذلك باستمرار
في هذه المهمة، لن نقوم بإعادة ضبطه بعد: سنكتفي بزيادته فقط.
ما يجب عليك فعله:
- أنشئ وحدة باسم
uart_txتحتوي على:- إدخال واحد:
clk - إخراج واحد:
cnt(4bits، من النوعreg)
- إدخال واحد:
- داخل الوحدة:
- اضبط
cntعلى 0 في البداية داخل كتلةinitial - أضف كتلة
always @(posedge clk) - اجعل
cntيزداد بمقدار 1 عند كل حافة ساعة
- اضبط
جرّب بنفسك
// TODO: أنشئ الوحدة uart_tx مع المدخل clk والمخرج cnt (4 بت)
// TODO: عيّن cnt إلى 0 في البداية داخل كتلة initial
// TODO: أضف كتلة always @(posedge clk)
// TODO: زد cntجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة