מדוע וכיצד להשתמש ברכיבי Efinix FPGA‏ עבור דימות AI/ML‏, חלק 2: צילום ועיבוד

מאת ‎Adam Taylor

באדיבות ‎העורכים האירופיים של DigiKey

הערת העורך: גישות חדשות לארכיטקטורות FPGA מביאות בקרה עדינה יותר וגמישות גדולה יותר כדי לענות על הצרכים של למידת מכונה (ML) ובינה מלאכותית (AI). חלק 1 של סדרת שני חלקים זו מציג ארכיטקטורה אחת כזאת מבית Efinix וכיצד להתחיל לעבוד איתה תוך שימוש בלוח פיתוח. כאן, חלק 2 דן בחיבור לוח הפיתוח להתקנים חיצוניים והיקפיים, כגון מצלמה, וכיצד למנף את ה-FPGA כדי להסיר צווארי-בקבוק של עיבוד תמונה.

רכיבי FPGA‏ משחקים תפקיד קריטי ביישומים רבים, מבקרה תעשייתית ובטיחות עד רובוטיקה, תעופה וחלל ורכב. הודות לאופי הגמיש של הליבה הלוגית הניתנת לתכנות ויכולות ההתממשקות הרחבות שלה, אחד השימושים ההולכים וגדלים ברכיבי FPGA‏ הוא עיבוד תמונה, במקום שמשתמשים בלמידת מכונה (ML). רכיבי FPGA‏ הם אידיאליים עבור מימוש פתרונות שהם בעלי מספר ממשקי מצלמה מהירות-גבוהה בשל המבנה הלוגי המקבילי שלהם. נוסף לכך, רכיבי FPGA‏ גם מאפשרים את השימוש בצנרת עיבוד נתונים (processing pipeline) ייעודית בלוגיקה, ובכך להסיר צווארי בקבוק המשויכים לפתרונות מבוססי CPU או GPU.

מבט שני זה על רכיבי FPGA ‏Titanium של Efinix יבחן את יישום הייחוס של עיבוד תמונה הבא עם לוח הפיתוח Ti180 M484 של ה-FPGA. המטרה היא להבין את החלקים המרכיבים של התכן, ולזהות היכן טכנולוגיית FPGA‏ מאפשרת את הסרת צווארי הבקבוק או מאפשרת למפתחים יתרונות אחרים.

תכן הייחוס המבוסס על ה-Ti180 M484

מבחינה קונספטואלית, תכן הייחוס (איור 1‏) מקבל תמונות ממספר מצלמות Mobile Industry Processor Interface‏ (MIPI), מבצע אגירת מסגרות (frame buffering) ב-LPDDR4x‏, ואחר כך מוציא כפלט את התמונות לתצוגת‏ ממשק מולטימדיה רזולוציה גבוהה (HDMI‏) . משתמשים בכרטיס FPGA Mezzanine‏ (FMC) וארבעה ממשקי Samtec QSE על הלוח כדי לספק את כניסות המצלמה ויציאת HDMI.

תמונה של תכן ייחוס Efinix Ti180 M484איור 1: מבחינה קונצפטואלית, תכן הייחוס Ti180 M484 מקבל תמונות ממספר מצלמות MIPI, מבצע אגירת מסגרות (frame buffering) ב-LPDDR4x, ואחר כך מוציא כפלט את התמונות לתצוגת‏ HDMI. (מקור תמונה: Efinix)

משתמשים בכרטיס ההרחבה FMC‏ ל-QSE בשיתוף עם כרטיס הבת HDMI‏ כדי לספק את נתיב וידאו היציאה, בעוד ששלושה מחברי QSE משמשים להתחברות עם מצלמות ה-MIPI‏ DFRobot SEN0494. אם אין מצלמות MIPI‏ מרובות, ניתן להשתמש במצלמה יחידה תוך ניתוב חזרה למקור של ערוץ המצלמה היחידה כדי לבצע סימולציה של מצלמות נוספות.

ברמה גבוהה, יישום זה עשוי להיראות פשוט. עם זאת, קליטת תזרימי MIPI‏ רזולוציה גבוהה (HD)‏ בקצב מסגרות (frame rate‏) גבוה היא מאתגרת. כאן נמצא היתרון של טכנולוגיית FPGA, כי היא מאפשרת למתכננים להשתמש בתזרימי MIPI‏ מרובים במקביל.

הארכיטקטורה של תכן הייחוס ממנפת מבני עיבוד מקבילי כמו גם עוקב באמצעות ה-FPGA‏. המבנים המקביליים משמשים למימוש צנרת עיבוד התמונה (image processing pipeline), בעוד מעבד RISC-V‏ מספק את העיבוד העוקב המשמש עבור טבלאות החיפוש (LUTs) ‏FPGA‏.

במערכות עיבוד תמונה מבוססות-FPGA‏ רבות ניתן לפצל את צנרת עיבוד התמונה (image processing pipeline) לשני אלמנטים, כלומר תזרימי הכניסה והיציאה. תזרים הכניסה מחובר לממשק המצלמה/החיישן, ופונקציות עיבוד מיושמות על יציאת החיישן. פונקציות אלו יכולות לכלול המרת Bayer, איזון לבן (white balance) אוטומטי ושיפורים אחרים. בתזרים היציאה, מכינים את התמונה לתצוגה. זה כולל שינוי מרחבי צבע (color spaces) (לדוגמה, RGB‏ ל-YUV) ועיבוד-נוסף לפורמט היציאה המבוקש, כמו HDMI‏.

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

מאגר‏ מסגרות (frame buffer‏) משמש לחבר את הכניסה לצנרת עיבוד (processing pipeline) היציאה, שלרוב מאוחסן בזיכרון ביצועים-עיליים חיצוני, כמו LPDDR4x‏. מאגר‏ מסגרות (frame buffer) זה חוצץ בין קווי צינורות הכניסה והיציאה, מאפשר גישה למאגר המסגרות באמצעות גישה ישירה לזיכרון בתדר שעון מתאים.

תכן הייחוס Ti180 משתמש בגישה דומה לעיקרון המתואר לעיל. קו צינורות עיבוד התמונה (image processing pipeline) כניסה מישם ליבת קניין רוחני (IP) מקלט MIPI Camera Serial Interface 2‏ (CSI-2), הבנויה על הכניסה/היציאה (I/O) בעלת יכולת שכבה פיזית ‏MIPI‏ (MIPI D-PHY) של ה-Titanium FPGA‏. ה-MIPI הוא ממשק מאתגר כי הוא משתמש באותות קצה-יחיד (single-ended) כמו גם הפרשיים על אותו זוג הפרשי, בנוסף לתקשורות מהירות-נמוכה ומהירות-גבוהה. שילוב ה-MIPI D-PHY‏ בתוך ה-FPGA I/O‏ מקטין את המורכבות של תכנון כרטיס המעגל תוך כדי הקטנת גם מפרט החומרים (BOM).

עם קבלת תזרים התמונה מהמצלמה, תכן הייחוס ממיר אחר כך את היציאה של ה-MIPI CSI-2 RX לתזרים Advanced eXtensible Interface‏ (AXI). תזרים AXI‏ הוא ממשק מהירות-גבוהה חד-כיווני המספק תזרים של נתונים מ-‏Master ל-Slave‏. אותות Handshaking להעברה בין Master‏ ו-Slave‏ מסופקים ביחד עם אותות Sideband. אותות Sideband אלו ניתנים לשימוש כדי להעביר מידע של תזמון תמונה כגון תחילת מסגרת (Frame‏) וסיום שורה (Line‏).

תזרים AXI‏ הוא אידיאלי עבור יישומי עיבוד תמונה ומאפשר ל-Efinix לספק מגוון של IP עיבוד תמונה, ‏שניתן אחר כך לשלב בקלות בשרשרת העיבוד כנדרש על ידי היישום.

לאחר קליטה, נתוני התמונה MIPI CSI-2 ואותות תזמון מומרים ל-AXI Stream ומועברים ככניסה למודול גישה ישירה לזיכרון (DMA), שכותב את מסגרת התמונה (image frame) ל-LPDDR4x‏ ועובד כמאגר המסגרות (frame buffer‏).

מודול ה-DMA עובד תחת הבקרה של ליבת ה-RISC-V‏ ב-FPGA‏ בתוך מערכת-על-שבב (SoC‏) ‏Sapphire. מערכת-על-שבב (SoC‏) זו מספקת בקרה, כמו עצירה והתחלה של מחזורי כתיבה DMA, בנוסף לאספקת המידע הנחוץ לערוץ כתיבה DMA לכתוב נכון את נתוני התמונה ל-LPDDR4x‏. זה כולל מידע על מיקום הזיכרון ורוחב וגובה התמונה מוגדרים בבייטים.

ערוץ היציאה בתכן הייחוס קורא את מידע התמונה ממאגר המסגרות (frame buffer)‏ תחת הבקרה של ה-RISC-V SoC. הנתונים נפלטים מה-DMA IP‏ כתזרים ‏AXI, שמומר אחר כך מפורמט RAW המסופק על ידי החיישן לפורמט RGB‏ (איור 2‏), ועובר הכנה ליציאה על ידי משדר ה-HDMI ‏ADV7511 של Analog Devices שנמצא על הלוח‏.

תמונה של יציאת תמונות דוגמה מתכן הייחוסאיור 2‏: יציאת תמונות דוגמה מתכן הייחוס. (מקור תמונה: Adam Taylor)

השימוש ב-DMA גם מאפשר ל-Sapphire SoC RISC-V‏ לגשת אל התמונות הנשמרות במאגר המסגרות (frame buffer‏), ואל הסטטיסטיקה המופשטת והמידע על התמונה. ה-Sapphire SoC גם מסוגל לכתוב רבדים (overlays) אל תוך ה-LPDDR4x כך שהם ניתנים למיזוג עם תזרים וידאו היציאה.

חיישני תמונה CMOS‏ מודרניים (CISs‏) הם בעלי מספר אופני פעולה וניתנים להגדרת תצורה כך שיספקו עיבוד בשבב, ומספר פורמטים שונים של יציאה ותוכניות שעון. הגדרת תצורה זו מסופקת בדרך כלל דרך‏ ממשק I²C‏. בתכן הייחוס Efinix, תקשורת I²C‏ זו אל מצלמות ה-MIPI‏ מסופקת על ידי מעבד ה-Sapphire SoC RISC-V.

אינטגרציה של מעבד ה-RISC-V‏ בתוך ה-Titanium FPGA‏ מקטין את הגודל הכולל של הפתרון הסופי מאחר והיא מסירה את הצורך במימוש שתי מכונות מצבים FPGA‏ מורכבות המגדילות סיכון תכנון, כמו גם מעבדים חיצוניים המוסיפים למפרט החומרים (BOM).

הכללת המעבד גם מאפשרת תמיכה עם IP‏ נוסף לתקשורת עם כרטיס ה-MicroSD. זה מאפשר יישומים של העולם-האמיתי היכן שיש צורך לאחסן תמונות עבור ניתוח מאוחר יותר.

באופן כללי, הארכיטקטורה של תכן הייחוס Ti180 ממוטבת כדי לאפשר פתרון‏ קומפקטי, בעלות נמוכה, ועם זאת בעל ביצועים-עיליים המאפשר למפתחים להקטין עלות מפרט חומרים (BOM) באמצעות אינטגרציית מערכת .

אחד היתרונות העיקריים של תכני ייחוס הוא שניתן להשתמש בהם להתניע פיתוח יישומים על חומרה מותאמת-במיוחד, מאפשר למפתחים לקחת אלמנטים קריטיים של התכנון ולבנות בעזרתם פתרון עם ההתאמות המיוחדות הדרושות להם. זה כולל את היכולת להשתמש בתזרים TinyML של Efinix כדי לממש יישומי TinyML מבוססי-ראיה הרצים על ה-FPGA‏. זה יכול למנף את הטבע המקבילי של לוגיקת FPGA‏ כמו גם את היכולת להוסיף בקלות הוראות מותאמות-אישית במעבדי RISC-V‏, דבר המאפשר את היצירה של מאיצים בתוך לוגיקת ה-FPGA.

מימוש

כפי שנדון בחלק 1, ארכיטקטורת ה-Efinix היא ייחודית בכך שהיא משתמשת בתאי eXchangeable Logic and Routing‏ (XLR) כדי לספק ניתוב כמו גם פונקציונליות לוגית. מערכת וידאו כמו תכן הייחוס היא מעורבת, היא לוגית כמו גם כבדה בניתוב:‏ דרושה לוגיקה נרחבת כדי לממש את מאפייני עיבוד התמונה, ודרוש ניתוב נרחב לחיבור תאי ה-IP בתדרים הדרושים.

תכן הייחוס משתמש בערך ב-42% של תאי ה-XLR בתוך ההתקן, משאיר מספיק מקום לתוספות, כולל יישומים מותאמים-במיוחד כגון ML קצה‏.

שימוש בבלוק ה-RAM ובלוקים של עיבוד אותות דיגיטלי (DSP) הוא גם כן יעיל ביותר, משתמש ב-4 מתוך 640 בלוקים DSP ו-40% מבלוקים הזיכרון בלבד (איור 3‏).

משאבי ליבה
כניסות 3706 / 1264
יציאות 4655 / 1725
תאי XLR 172800 / 73587
בלוקים זיכרון 1280 / 508
בלוקים DSP 640 / 4

איור 3‏: הקצאת משאבים בארכיטקטורת ה-Efinix מראה שנעשה שימוש ב-42% מתאי ה-XLR בלבד, משאירה מספיק מקום לתהליכי עיבוד נוספים. (מקור תמונה: Adam Taylor)

ב-I/O של ההתקן‏, ממשק ה-DDR‏ עבור ה-LPDDR4x‏ משמש לספק את זיכרון היישום עבור ה-Sapphire SoC ומאגרי מסגרות התמונה (image frame buffers). כל משאבי ה-MIPI הייעודיים-להתקן ‏מנוצלים יחד עם 50% מהחוגים נעולי הפאזה (איור 4‏).

משאבים היקפיים
DDR 1 / 1
GPIO 27 / 22
HSIO 59 / 20.0
JTAG User TAP 4 / 1
MIPI RX 4 / 4
MIPI TX‏ 4 / 4
מתנד 1 / 0
PLL 8 / 4

איור 4‏: תמונת מצב של הממשק ומשאבי ה-I/O בהם משתמשים. (מקור תמונה: Adam Taylor)

ה-I/O למטרה כללית‏ (GPIO‏) משמש לספק את תקשורת ה-I²C‏ יחד עם חלק מהממשקים המחוברים ל-Sapphire SoC‏, כולל NOR FLASH‏, USB UART וכרטיס SD‏. ה-HSIO משמש לספק את יציאת הוידאו מהירות-גבוהה למשדר ה-ADC7511 HDMI.

אחד מהאלמנטים החיוניים כשמתכננים עם רכיבי FPGA‏ הוא לא רק מימוש והתאמת התכן בתוך ה-FPGA, אלא גם להיות מסוגלים למקם את התכן הלוגי בתוך ה-FPGA ולהשיג את ביצועי התזמון הדרושים כשמנותבים.

חלפו מזמן הימים של תכני FPGA בעלי תחום שעון יחיד. ישנם מספר שעונים שונים, כולם רצים בתדירויות גבוהות בתכן הייחוס Ti180. טבלת התזמון הסופית מראה את התדירויות המקסימליות שהושגו עבור השעונים בתוך המערכת. זהו היכן שביצועי התזמון המבוקשים יכולים גם להיראות באילוצים (איור 5‏), שהם ‏בעלי תדר שעון מקסימלי של 148.5 מגה-הרץ (MHz‏) עבור שעון היציאה HDMI‏.

תמונה של אילוצי שעון עבור תכן הייחוסאיור 5‏: אילוצי שעון עבור תכן הייחוס. (מקור תמונה: Adam Taylor)

מימוש תזמון לעומת האילוצים מראה את הפוטנציאל של מבנה ה-Titanium FPGA XLR כמקצר את השהיית הניתוב האפשרית, ובכך משפר ביצועי תכן (איור 6‏).

תזמון
Worst Negative Slack‏ (WNS) ‎0.182 ns
Worst Hold Slack‏ (WHS) ‎0.026 ns
i_pixel_clk ‎211.909 MHz
tx_escclk ‎261.370 MHz
i_pixel_clk_tx ‎210.881 MHz
i_sys_clk ‎755.858 MHz
i_axi0_mem_clk ‎130.429 MHz
i_sys_clk_25mhz ‎234.577 MHz
i_soc_clk ‎187.231 MHz
i_hdmi_clk ‎233.918 MHz
mipi_dphy_rx_inst1_WORD_CLKOUT_HS ‎273.973 MHz
mipi_dphy_rx_inst2_WORD_CLKOUT_HS ‎262.881 MHz
mipi_dphy_rx_inst3_WORD_CLKOUT_HS ‎204.290 MHz
mipi_dphy_rx_inst4_WORD_CLKOUT_HS ‎207.598 MHz
mipi_dphy_tx_inst1_SLOWCLK ‎201.979 MHz
mipi_dphy_tx_inst2_SLOWCLK ‎191.865 MHz
mipi_dphy_tx_inst3_SLOWCLK ‎165.235 MHz
mipi_dphy_tx_inst4_SLOWCLK ‎160.823 MHz
jtag_inst1_TCK ‎180.505 MHz

איור 6: מימוש תזמון לעומת האילוצים מראה את הפוטנציאל של מבנה ה-Titanium FPGA XLR לקצר את השהיית הניתוב האפשרית, ובכך לשפר ביצועי תכן. (מקור תמונה: Adam Taylor)

מסקנה

תכן הייחוס Ti180 M484 מציג בבירור את היכולות של רכיבי Efinix FPGA ובמיוחד ה-Ti180. התכנון ממנף חלק ממבני ה-I/O הייחודיים למימוש נתיב עיבוד תמונה מורכב התומך במספר תזרימי MIPI‏ נקלטים. מערכת עיבוד תמונה זו עובדת תחת הבקרה של Sapphire SoC ליבה-רכה‏, שמממש את האלמנטים של עיבוד עוקב הנחוצים של היישום.

DigiKey logo

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.

אודות כותב זה

Image of Adam Taylor

Adam Taylor

Adam Taylor is a world-recognized expert in the design and development of embedded systems and FPGAs for several end applications. Throughout his career, Adam has used FPGAs to implement a wide variety of solutions, from RADAR to safety critical control systems (SIL4) and satellite systems. He also had interesting stops in image processing and cryptography along the way.

Adam is a Chartered Engineer, Senior Member of the IEEE, Fellow of the Institute of Engineering and Technology, Arm Innovator, and Edge Impulse Ambassador. He is also the owner of the engineering and consultancy company Adiuvo Engineering and Training which develops embedded solutions for high-reliability, mission-critical, and space applications. Current projects include ESA Plato, Lunar Gateway, Generic Space Imager, UKSA TreeView, and several other clients across the world.

FPGAs are Adam’s first love: he is the author of numerous articles and papers on electronic design and FPGA design, including over 440 blogs and 30 million plus views on how to use the Zynq and Zynq MPSoC for Xilinx.

אודות מוציא לאור זה

העורכים האירופיים של DigiKey