16-02-2010, 21:22
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
VHDL - הבדל בין signal ל-variable
קראתי בהרבה מקומות על ההבדל בין signal ל-variable אבל זה פשוט לא התאים לקוד ולסימולציה התואמת שלו שבקישורים הבאים:
הקוד
הסימולציה (בכל השאלות אתייחס לחצי השמאלי של צורות הגלים שבתמונה)
1. נדמה מהסימולציה שהתהליך מתבצע\רץ רק בעליית השעונים, ולא מתבצע בכלל כשהשעונים יורדים. זה הגיוני? אני זוכר שתהליך חייב להתבצע בכל פעם שיש שינוי באחד מהאותות שהוצהרו כמדרבני אירוע:
קוד:
process ( clk1, clk2, ... )
בדוגמה הנ"ל, התהליך חייב לרוץ בכל פעם שיש שינוי ב-clk2 או ב-clk1 (אלא אם הריצה האחרונה של התהליך לא הסתיימה).
2. אם משתנה מתעדכן מייד, ואות (signal) מתעדכן בסוף התהליך, אז למה האות sig_s1 מקבל '1' בדיוק כשהתנאי d1 and d2 מתקיים? האם הוא לא אמור להתעדכן טיפה מאוחר יותר, או בשינוי הבא של d1 ?
3. למה האות res2 מתעדכן ל-'1' בעלייה הבאה של d1, במקום בירידה המוקדמת של d1?
4. כל הזמן כתוב שאות\signal מתעדכן תוך זמן delta אחרי שהתהליך התחיל לרוץ. האם הזמן delta קשור אך ורק למהירות רכיבי החומרה שמרכיבים את התהליך?
תודה רבה!
דור.
נערך לאחרונה ע"י dorM בתאריך 16-02-2010 בשעה 21:24.
|