יום שני, 9 במאי 2011

מ-MATLAB ל-HDL

"הרשו לי לפנות את הבמה בפוסט הזה לטובת בלוגר אורח – יגאל ירוסלבסקי, אשר עובד יחד עמי בחברת סיסטמטיקס. יגאל מתמחה בכלי MathWorks המיועדים לעולם התקשורת, עיבוד אות, יצירה אוטומטית של קוד HDL ואימות (Verification) שלו, וכן בתהליכי פיתוח של אלגוריתמים המתוכננים לפעול על FPGA-ים. וכפי שתגלו – יגאל הוא גם תאולוג לא קטן..."


שלום,
אני יגאל, ומבחינתי הנדסת אלקטרוניקה היא סוג של דת.


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


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


ובמקרה שלי, אני משתמש ב-MATLAB על מנת לעצב ולבצע סימולציות למערכות חומרה ספרתית.


איך זה אפשרי? המאמר המפורט להלן יתן לכם הצצה ראשונה לשימוש ב-MATLAB עבור מערכות חומרה ספרתית. 



כנגד ארבעה System Toolboxes דיברה תורה

בפוסט הקודם סקרתי "ממעוף הציפור" את החידושים בגרסת 2011a של כלי MathWorks והבטחתי להתמקד בחלק מהם. החידוש המשמעותי הראשון שבו אעסוק הינו השקתם של ה-System Toolboxes, שנועדו להקל על פיתוח מערכות עיבוד אות ותמונה, מערכות Phased Array ומערכות תקשורת.

למי שדואג, ה-Image Processing Toolbox ו- Signal Processing Toolbox ממשיכים להתקיים, ובגרסה החדשה פשוט הצטרפו אליהם מספר כלים המהווים את משפחת ה- System Toolboxes, שנועדה להקל על פיתוח מערכות עם MATLAB ו-Simulink בהיבטים של:

• מהירות הסימולציות,
• יכולת עבודה עם טיפוסי מידע מסוג Fixed-Point,
• כמות האלגוריתמים האמינים המוכנים לשימוש,
• יצירה אוטומטית של קוד C++/C מתוך האלגוריתמים,
• שימוש חוזר ב-IP בעת מעבר בין MATLAB ו-Simulink.

מדובר למעשה בצעד שלישי בנתיב שבו MathWorks החלה לצעוד בו בגרסת 2010a, עם השקת טכנולוגיית ה-System Objects , כאשר החל מגרסת 2011a כבר אין אפילו צורך לקנות Blocksets על מנת לעבוד עם ה-System Objects, שממילא עובדים איתם רק מתוך סביבת MATLAB, (למי שלא יודע Blocksets הם כלי עזר לסביבת Simulink).

הכלים החדשים הינם:

1. DSP System Toolbox – הכלי משמש לתכנון וסימולציה של מערכות עיבוד אות, והוא איחוד של שלושה מרכיבים מוכרים –
• Filter Design Toolbox
• Signal Processing Blockset
• Signal Processing System Objects
הכלי דורש את ה-Signal Processing Toolbox לשם פעולתו.

2. Communications System Toolbox – הכלי משמש לתכנון, סימולציה וניתוח השכבה הפיזית (Physical Layer) של מערכות תקשורת, והוא איחוד של שלושה מרכיבים מוכרים –
• Communication Toolbox
• Communication Blockset
• Communication System Objects
הכלי דורש את ה-DSP System Toolbox לשם פעולתו.

3. Computer Vision System Toolbox – הכלי משמש לתכנון וסימלציה של מערכות ראיה ממוחשבת ועיבוד וידאו. הכלי הינו איחוד של שני מרכיבים מוכרים ומרכיב חדש –
• Video & Image Processing Blockset
• Video & Image Processing System Objects
אלגוריתמים יעודיים לראייה ממוחשבת ב-MATLAB ו-Simulink.
הכלי דורש את ה-DSP System Toolbox וה-Image Processing Toolbox לשם פעולתו.

4. Phased Array System Toolbox – כלי חדש
למי שלא מכיר, Array Signal Processing פירושו שימוש במערך גלאים הנמצאים במקומות שונים, על מנת לגלות אותות תלויי זמן ומקום ולחלץ מידע לגביהם (למשל – מאיזה כיוון הגיע האות). הכלי יכול להיות שימושי למפתחי מערכות מכ"מ, מערכות Ultrasound, מערכות תקשורת מרובות-אנטנות, מערכות חיפוש גז ונפט ומערכות לבדיקות לא-הורסות.

לסיכום, הנה תרשים שמתאר את המעברים השונים ואת ה-Dependencies השונים:

האם יצא לכם להשתמש ב-System Toolboxes החדשים? אילו פונקציות חסרות לכם לצורך פיתוח אלגוריתמי ראיה ממוחשבת? על אילו חידושים ב-R2011a תרצו שארחיב בפוסטים הבאים?