Menu
Coddy logo textTech

זיהוי קצוות שנדגמו

חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 19 מתוך 38.

רמה יכולה להישאר גבוהה במשך מחזורים רבים, בעוד שפולס של אירוע אמור להימשך מחזור אחד. יש לשמור את הרמה שנדגמה במחזור הקודם ולהשוות אותה לרמה הנוכחית. גלאי הקצה הזה מניח שהקלט כבר מסונכרן לשעון הזה; הוא אינו מסנכרן לחציית תחומי שעון.

קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.

previous <= sig;
rising <= sig & ~previous;

הרמה הישנה שנשמרה יוצרת דופק יחיד במעבר שנדגם.

השווה בין הרמות הנדגמות הנוכחיות והקודמות; השתמש בגלאי הזה רק עם קלט סינכרוני.

challenge icon

אתגר

בינוני

עבור אות sig שכבר מסונכרן ל־clk, הפק פעימה רשומה של מחזור שעון אחד בכל מעבר נדגם מ־0 ל־1. rst סינכרוני מאפס את הרמה הקודמת השמורה ואת הפעימה. לכן, sig ברמה גבוהה בקצה הראשון שאינו קצה איפוס מפיק פעימה. עמודות הפלט: pulse. כל אותות הבקרה והנתונים יציבים לפני כל קצה שעון עולה; התוצאות נצפות לאחר מכן.

השלם את design.v ושמור על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויי קלט ומדפיס את הפלטים לאחר שהם מתייצבים. הוא בוחר תרחיש באמצעות ארגומנט של סימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיף להדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בתו שורה חדשה.

נסו בעצמכם

module dut (input clk, input rst, input sig, output reg pulse);
    // החליפו את מציין המקום הזה בתכנון שלכם.
    initial pulse = 0;
endmodule
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנון RTL ואימות

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