Menu
Coddy logo textTech

מונה סיביות

חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 87 מתוך 90.

challenge icon

אתגר

בפרק הזה תבנו משדר UART צעד אחר צעד. UART הוא ראשי תיבות של Universal Asynchronous Receiver-Transmitter (מקלט-משדר אסינכרוני אוניברסלי). זהו פרוטוקול חומרה פשוט שמאפשר לשני התקנים לתקשר באמצעות חוט אחד בלבד (לשידור) וחוט נוסף (לקליטה).

חשבו על זה כמו על שיחה טלפונית בין שני אנשים: אחד מדבר (משדר), והשני מקשיב (קולט). UART שולח נתונים ביט אחד בכל פעם, עם ביטי התחלה ועצירה שמציינים את ההתחלה והסוף של כל בית.

משדר UART שולח 10 ביטים: ביט התחלה (1), ביטי נתונים (8), ביט עצירה (1). כדי לעקוב אחר הביט שאנחנו שולחים, אנחנו צריכים מונה ביטים שסופר מ-0 עד 10.
איך מונה הביטים עובד

  • מתחילים ב-0
  • בכל מחזור שעון, מוסיפים 1
  • כשמגיעים ל-10, חוזרים ל-0
  • חוזרים על הפעולה לנצח

במשימה הזאת עדיין לא נאפס אותו: רק נגדיל אותו.

מה לעשות:

  1. צרו מודול בשם 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 ב-1

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Verilog אונליין