Marvell – סטודנט מהנדס אלקטרוניקה 2
1. בחן את פקודת המאקרו הבאה ותגיד אם יש בה בעיות:
#define MULTIPLY(x,y) x*y.
2. נתון בית בעל 8 סיביות מה הדרך להפוך אותו בrealtime כך שמספר הבא:
X7 X6 X5 X4 X3 X2 X1 X0
יהיה כך:
X0 X1 X2 X3 X4 X5 X6 X7
(פתרון: צריך להבין שהבית מייצג מס' בין 0 ל256 ולכן יש לבנות בתוכנה מערך בן 256 תאים שבכל תא נמצא הערך שאמור להתקבל אחרי ההפיכה כך שהמערכת פשוט תקרא את המס' ותתרגם אותו לתא מסויים במערך והוא כבר יתן בדיוק את המס' ההפוך)
3. כעת המס' הנתון הוא בן 32 סיביות ולבנות מערך בגודל של 4 גיגה זה המון זיכרון אז איך אפשר עכשיו לעשות את זה ב realtime?
(פתרון: את המס' הזה נוכל לחלק ל4 מספרים בני 8 סיביות כל אחד ולהכניס אותו למערך שבנינו קודם ורק להחליף את הסדר של המערכים שנשלחו).
Marvell – סטודנט מהנדס אלקטרוניקה 1
1) מערכות ספרתיות:
נתונה מערכת בעלת שתי כניסות, בכניסה 1 ישנו X בעל 4 סיביות ובכניסה 2 ישנו X+2 גם כן בעל 4 סיביות.
המוצא של המערכת הוא X+1 בעל 4 סיביות.
צריך לממש את המערכת הנ"ל מבלי להשתמש במחברים או מחסרים.
פתרון: אם X הוא זוגי אז במוצא ניתן את X כאשר הסיבית הLSB שלו עם NOT.
אם X הוא אי זוגי אז במוצא ניתן את X+2 כאשר הסיבית ה-LSB שלו עם NOT.
מימוש עם MUX כאשר LSB של X היא הכתובת הבוחרת.
2) נתון מערך בגודל N של מספרים אי שליליים.
צריך למצוא 5 מספרים הכי גדולים אבל כך שהם לא יהו שכנים במערך. (כלומר אף זוג מחמשת המספרים האלה לא יכול להיות צמוד במערך המקורי)
הראה דרך פתרון.
פתרון: לוקחים מערך של אינדקסים מ-0 עד N-1 וממינים את המערך המקורי בסדר יורד.
המספר הכי גדול הוא המספר הראשון, ואז לפי זה בודקים את המספר השני במערך הממוין אם הוא השכן של הראשון, אם כן אז מדלגים למספר השלישי ומבצעים את
אותה הבדיקה אם לא אז מצאנו עוד מספר ועוברים למספר השלישי וכך הלאה עד שמגיעים ל5 מספרים הכי גדולים שהם לא שכנים.
3) (סיבוך של 2)
כעת בגלל אילוצי המערכת לא ניתן לרוץ על המערך המקורי יותר מפעם אחת.
השאלה נשארת זהה. רמז: ניתן להשתמש במערך עזר אך אסור להעתיק את כל המערך המקורי למערך עזר (ואז בעצם לפתור כמו מקודם)
פתרון: נקח מערך בגודל של 15 כך שבתא אחד נוכל לשמור גם את הערך של תא מסוים וגם את האינדקס שלו.
נמצא בריצה אחת על כל המערך המקורי 15 מספרים הכי גדולים, נשמור אותם ואת האינדקסים שלהם במערך העזר.
וכעת הגענו למצב שבמקרה הכי גרוע יש לנו 2 שכנים למספר אחד הכי גדול. ובגלל שיש לנו 15 הכי גדול אז נוכל למיין את מערך העזר ולבחןר על בטוח 5 מספרים הכי
גדולים שהם לא שכנים
4) המשך:
מערך עזר יכול להיות יותר קטן מ-15! מהו גודלו המינימלי כך שעדיין יעמוד בדרישות?
פתרון: 13
Marvell – כללי 1
ביקשו שאפרט על פרוייקט שעשיתי.
השאלות שהיו:
1. כתוב פונקציה המקבלת מספר המורכב משמונה ביטים. יש לבדוק האם כמה ביטים דלוקים במספר. לדוג' עבור 01001010 התשובה תהיה 3
2. כתוב פונקציה המקבלת מספר המורכב משמונה ביטים. להחזיר את המספר ההופכי . לדוג' עבור 01001010 התשובה תהיה 01010010
3. יש לתאר מכונת מצבים אשר מקבלת מחרוזת אשר מסתיימת ב "\N" ומורכבת ממספר מילים. המילים מופרדות באמצעות רווח אחד או יותר. יש להחזיר את מספר המילים.
פתרון:
עבור שאלות 1-2: הם רצו לראות שאני משתמש בטבלה צדדית ולא מבצע מכל מיני חישובים מסובכים
Marvell – ואלידציה
לכתוב פונקציה שמקבלת שני מערכים ממויינים ומחזירה מערך גדול ממויין שמכיל את שני הקטנים.
– שאלה מפגרת, אבל אז הם שואלים "בתור איש בדיקות, איך היית בודק את הפונקציה הזאת?"
צריך לראות שהבדיקות שלך מכסות כל שורה בקוד ושאתה מקפיד לבדוק גם מקרי קצה כגון: מערך בגודל 32^2 (גודל של אינט) ושאתה לא מעמיס על הסטאק של הפונקציה שקראת ממנה ועוד…
עוד שאלות ששאלו: 1. אם אני מכיר מעגלים שמעבירים מAC ל DC? איך ממשים אותם? באיזה גובה יהיה ה DC?
2. אם יש מכשיר שמקבל מתח מסויים ומוציא מתח קטן ממנו לעומס, ללא תלות בהתנגדות הכניסה של העומס?
3. יש מכשיר שמקבל 5V ומוציא V10? איך הוא עושה את זה?