1 / 31

Line Work

הטכניון - מכון טכנולוגי לישראל המעבדה למערכות ספרתיות מהירות הפקולטה להנדסת חשמל. Line Work. מגישים : נעם ארנוב : 029675113 סימון עמר : 033108390 מנחה : ארז סבג. תוכן:. רקע כללי מבואות מוצאים ומה שבניהם שעונים ... מטרת הפרוייקט הבעייתיות של קוד Huffman

dextra
Download Presentation

Line Work

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. הטכניון - מכון טכנולוגי לישראל המעבדה למערכות ספרתיות מהירות הפקולטה להנדסת חשמל LineWork מגישים :נעםארנוב : 029675113סימוןעמר : 033108390 מנחה :ארזסבג

  2. תוכן: • רקע כללי • מבואות מוצאים ומה שבניהם • שעונים ... • מטרת הפרוייקט • הבעייתיות של קודHuffman • הפתרון • דיאגרמת בלוקים כללית • פרוט קצר לגבי הבלוקים העיקריים • סיכום ומסקנות

  3. רקע כללי • הפרוייקט הוא פרוייקט המשך של פרוייקט במעבדה לעיבוד אותות. • מה זה Line Work? • מהו קוד Huffman?

  4. מטרות הפרוייקט • מימוש בחומרה של אלגוריתם פריסה ללא עיוות של תמונות Line Work . • פענוח רצף של ביטים דחוסים בקוד Huffman בקצב גבוה – 70 Mpxl/sec. • פתרון בעיית המקום הרב וזמן הגישה הארוך הנדרשים בד”כ במימוש מפענח Huffman . • מציאת חומרה מתאימה לדרישות

  5. Color Pixel B PUSH ME!!! C Clk_140 RESET מבואות מוצאים ומה שבניהם

  6. מבואות מוצאים ומה שבניהם(2) • בכניסה מתקבל זרם נתונים המורכב משלושה שדות: • Color - ערך הפיקסל בקובץ שגיאות החיזוי. • C - אורך הרצף של הפיקסל המתקבל. • B - מספר הסיביות של אורך הרצף. • השדות Color ו- B דחוסים בקוד Huffman ושדה C לא דחוס. • הכניסות מוכנסות לתוך FIFO לאחסון עד שיגיע זמן הטיפול בהם

  7. מבואות מוצאים ומה שבניהם(3) • מוצא המערכת הוא רצף של פיקסלים אמיתיים המתקבלים באופן טורי. ניתן לבנות ממשק חיצוני שיהפוך את המוצא למקבילי (למשל עבור מדפסת) • קצב יציאת הנתונים קבוע – 70 Mpxl/sec

  8. שעונים... • השעון שנכנס למערכת הוא שעון של 140 MHz אותו אנו גוזרים להפקת שעונים של 70 ו- 35 מגה הרץ. • קצב יחידת החיזוי כמו גם קצב המוצא – 70 MHz. • קצב מכונת ה- Huffman הוא 35 MHz.

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

  10. הפתרון • במהלך הפרוייקט בחנו מספר פתרונות והחלטנו שהדרך המהירה ביותר עבור הפענוח היא ע" שימוש בטבלאות תרגום שישבו בזיכרון בתוך ה- FPGA. • כמן כן החלטנו שהקלט צריך להגיע בפורמט הבא: • Color – דחוס ומוגבל לאורך של 16 סיביות • B – דחוס ומוגבל לאורך של 8 סיביות • C – אינו דחוס כל אחד מהקלטים הנ"ל מגיע בנפרד!! הערה: הגבלת האורך מביאה לפגיעה מסוימת ביחס הדחיסה אבל באורכי המילים הנ”ל הפגיעה מינימלית.

  11. הפתרון(2) • איך התמודדנו עם אורך הקוד המשתנה? • ניהול זיכרון חכם (פרטים יבואו...) • תכנון Barrel-Shifter לבניית כתובת גישה לזיכרון • פתרון בעיית הקצבים ע"י שימוש ב- FIFO-ים לתאום קצבים והגדלת התפוקה. • הנחנו הנחת יסוד חשובה – "הסבירות לקבלת רצף באורך קטן מ- 2 שואפת ל- 0”אנו הנחנו שהיא אפס ממש.

  12. B UnDecoded דיאגרמת מלבנים של הפרויקט RAM Neighbors PREDICTOR Color InStreamFIFOs HUFFMAN Prediction B Enable ANALYZER C “Color” Translated True Color Inputs Encoded

  13. Over_Flow Color_FIFO Color Color_From_InStream B_FIFO B B_Over_Flow B_From_InStream C_From_InStream B_unDecoded C_FIFO C B_Ready InStreamFifos

  14. (InStreamFifos (cont. • זרם הנתונים בכניסה נשמר ב- FIFO עבור כל אחד מהשדות בקלט. • רוחב C ו Color הוא 16 סיביות ו- B 8 סיביות. • רוחב המוצא מה FIFO-ים בהתאמה. • השדות B ו Color מועברים ליחידות ה- Huffman לפענוחע"פ בקשה של המפענחים והשדה C מועבר לשמירה ביחידת RegForHuffman (לא עובר תרגום – רק מיסוך באפסים)

  15. InStreamFifos (cont.) • ע"מ שנוכל לדעת כמה סיביות יש לקרוא מתוך C יש צורך ראשית לפענח את B ולכן נעשה שימוש בסיגנל bUnDecoded שהוא בעצם תוצאת התרגום של B וערכו הוא מס' הסיביות המדויק שאורךC.

  16. ColorFromInStream TrsnsColor ColorHuffUnit ColorFromHuffman TransFifo Clk_140 CFromHuffman Clk_35 load bHuffUnit bReady cFromInStream bFromInStram bUnDecoded Huffman Unit Clk_70 enHuff

  17. Length Translation Huffman Unit (cont.) • שימוש בזיכרון RAM לאחסון מילות הקוד. • שימוש ב- Barrel Shifter לבניית כתובת עדכנית לזכרון. • מבנה שורת זכרון (עבור Color Huffman): • אורך מילות הקוד הוגבל ל – 10 סיביות עבור Color ו-8 סיביות עבור B. • C אינו דחוס ואורכו נקבע ע”י B. 4 bit 8 bit

  18. Huffman Unit (cont.) • יש יחידת Huffman נפרדת ל- Color ול-B העובדות במקביל. • במוצא המפענח יש זכרון FIFO ל- Color ו- Bשמאפשר אחסון תוצאות הפענוח בזמן שיחידת החיזוי עסוקה בפענוחים קודמים. • קצב עבודה של יח' ה- Huffman- 35 MHz • קצב עבודה של יח' ה- Trans_FIFO- 70 MHz • ההנחה היא שצבע נשאר זהה על פני שני פיקסלים לפחות וכך נקבל שהקצב במוצא יהיה בכ”ז 70MHz

  19. Predictor & Line RAM • חוזה את צבע הפיקסל הבא ע”פ שלושת שכניו. • על השכנים להיות צבעים אמיתיים  ניתן לחזות רק ערך אחד בכל פעם וע"פ הערך האחרון שתורגם. • ב- RAM נשמר התרגום של שורה מהתמונה כך שתמיד יהיו לנו את כל השכנים לחיזוי הבא. • כל נתון חדש שמתורגם נכתב במקום הנתון האחרון שנקרא – הזיכרון בעצם ציקלי.

  20. C_in B_in A_in Reg_out Predictor & Line RAM (cont.) • פונקצית החיזוי: • כאשר תמונת השכנים:

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

  22. Signal_gen

  23. Sniffer

  24. 1 1 1 1 • 1 1 1 1 • 1 1 1 1 • 1 1 1 1 • 2 2 2 2 • 2 2 2 2 • 2 2 2 2 • 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Example • תמונה לדוגמא:

  25. 1 1 1 0 • 1 1 1 1 • 1 1 1 1 • 1 1 1 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 Example (cont.) • חיזוי התמונה:

  26. 0 0 0 1 • 0 0 0 0 • 0 0 0 0 • 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Example (cont.) • תמונת שגיאת החזאי:

  27. '0' – 60/64 0 11 10 '2' – 1/64 '1' – 3/64 Example (cont.) • עץ Huffman של השגיאות:

  28. Example (cont.) • מסקנות מהקידוד – תמונת הזיכרון- Color: • כתובות 0-32767 : אורך מילה – 1 , תוכן – 0 • כתובות 32768-49151: אורך מילה – 2 , תוכן – 10 • כתובות 49152-65336: אורך מילה – 2 , תוכן - 11 • מסקנות מהקידוד – תמונת הזיכרון- B: • כתובות 1-127: אורך מילה – 1, תוכן – 0 • כתובות 128-191: אורך מילה – 2, תוכן 10 • כתובות 192-255: אורך מילה – 2, תוכן 11

  29. Example (cont.) • פלט ריצה:

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

  31. מה כבר נגמר??

More Related