שאלות מחברות CIVA DSP & SANDISK - חומרה , ווריפיקציה
ע"י: erezkal
סיוה ד.ס.פ. לצוות פיתוח:
1. נתון משתנה בעל 8 סיביות, יש לכתוב פונקציה בשפת סי
שתקבל את המשתנה ותחזיר את ההשתקפות של אותו משתנה. דוגמא:
עבור קלט של:
001011001
הפלט יהיה:
100110100
פתרון:
דרך1 :
בעזרת לולאה לאפס כל פעם 7 ביטים ולהשאיר רק 1, כאשר אנחנו כבר יודעים מה ערכו- ליצור משתנה חדש.
דרך 2:
בעזרת מערך קבוע של 256 ערכים, כל פעם שמקבלים משתנה ניגשים למערך שמסודר כך שבמקום ה- X יש השתקפות של X
SANDISK, וריפיקציה :
נתון רכיב בעל 2 כניסות: טמפרטורת הסביבה ו טמפרטורת סף שנקבעת על ידי המשתמש
ו 2 יציאות: אם
Tin>Tsaf ----> output :H=0,L=1;
Tin<Tsaf-----> output :H=1,L=0;
Tin=Tsaf ----> output :H=0,L=0;
יש לכתוב פונקציה ב C, בעלת 4 משתנים:Tin,Tsaf,H,L, (כתיבה ל Tin, Tsaf- כותבת לרכיב, קריאה מ H,L- קוראת מהרכיב.) הפונקציה צריכה לבדוק כמה שיותר אפשרויות ולהחזיר אמת או שקר לגבי נכונות הרכיב.
ע"י: 1_אורח_כללי
אפשר גם לעשות בדרך אחרת:
אפשר לעשות Rotate Left לקלט, כך שה-MSB ייכנס לתא כלשהוא. עכשיו פשוט אפשר לעשות Shift Right לפלט, כך שהביט הגבוה, בסוף התהליך על כל 8 הביטים, ייכנס בביט הנמוך של הפלט.
ע"י: 1_אורח_כללי
אתה יכול טיפה לפרט לגבי הדרך הראשונה?
לגבי השאלה השניה, אתה אמור להכניס לו ערכים מסוימים ופשוט לבדוק אם התוצאות המתקבלות הן גם הצפויות?
לגבי השאל הראשונה, למה לא לאתחל מערך של CHAR בגודל 8
לרוץ על הקלט כך שאת האיבר הראשון נכניס לתא האחרון
ואת האיבר השני לתא לפני האחרון.
אחר כך אפשר לשנות כל ביט בקלט לביט המתאים לו במערך.
ע"י: 1_אורח_כללי
אתה יכול טיפה לפרט לגבי הדרך הראשונה?
לגבי השאלה השניה, אתה אמור להכניס לו ערכים מסוימים ופשוט לבדוק אם התוצאות המתקבלות הן גם הצפויות?