Table of Contents
הבנת טכנולוגיית FPGA ותפקידה במערכות Embedded
משפחות סטנדרטיות שער Arrays (FPGAs) הפכו אבן הפינה של עיצוב מערכת משובצ מודרני, המציע שילוב ייחודי של גמישות חומרה, עיבוד במקביל, ופעולה של שקיפות נמוכה.בניגוד לתפקוד קבוע של מחזורי יישומים משולבים (ASICs), FPGAs הם שוב ניתנים להתאמה של דרישות לוגיקה שלהם ללא זמן ניהול זמן קבוע ולהוביל של שבבים מאובטחים מאובטחים דיגיטליים (pSD) באמצעות טבלאות אבטחה מאובטחות מאובטחות של אבטחה מלאה של אבטחה)
בחירת FPGA ו- Development Toolchain
הצעד הראשון בכל פרויקט מוטבע מבוסס FPGA הוא בחירת מכשיר והתאמה של סביבת הפיתוח.מנהיגי השוק מציעים מערכות אקולוגיות נפרדות:
- (FLT:0)AMD שיינסקסFLT:1 - פלטפורמת התוכנה של Vivado Design Suite ו-Vitis מאוחדת תומך במגוון רחב של מכשירים ממשפחות בעלות נמוכה ומשפחות ספרטה ועד ל-ACAPsal ACAPs.Vdo של IP Integrator ו-block design Flow up system, בעוד Vitis HLS מאפשר C / C ל-GVL עבור RTL עבור האלגוריתם של Valdo: VLT2F2F.
- (ב) [[1924]]]] [[1924]]]]]] [[1924]]]]]]]] [[1924]]]]]]]] [[1924]]]]]]]] [[1924]]]]]]]]]]]]]]]] [[1924]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]] ו[[1924]], [[1924]], [[1924]]]]]]]]]]]]]]]] [[1924]]]]]]]]]]]]]]]]]]]] [[1924]]]]]]]]]]]] [[1924]]]]]] [[[[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] [[[[1924]]]]]]]] [[[[1924]]]]]]]] [[[[1924]]]]]] [[[[1924]]]]]]]] [[[[1924]]]]]] [[[[1924]]]]]] [[[[1924]]]]]]]] [[[[1924]]]]]]]] [[[[[[[[[[1924]]
- (ב) [ה]כלים הרדינטים והיהלומים מכוונים למשפחות FPGA בעלות כוח נמוך כגון iCE40, Certus-NX ו- CrossLink-NX.
- (FLT:0MicrochipFLT:1) - The Libero SoC Toolchain תומכת ב- PolarFire ו- SmartFusion2 FPGAs, אשר ידועים בעוצמת נמוכה ואבטחה גבוהה.ליברו כולל סביבה מטבולית מקיפה וזרימת עיצוב FPGA / SoC משולבת.
בעת בחירת, שקול גורמים כמו צפיפות המכשיר, I / O סטנדרטים, יכולות מעבד מוטבע (הרדד לעומת רכות), זמינות IP, עלות, ואת עקומת הלמידה של השרשרת. החל עם לוח פיתוח יישומי הספק הכולל את מתאם התכנות ואת עיצובים ההתייחסות מומלץ מאוד עבור כוונון מהיר.
עיצוב מובנה עבור FPGAs
זרימת עיצוב מוגדרת היטב מבטיחה תוצאות אמינות, להפחית מחזורי debug, ומסייעת לעמוד בלוח זמנים של הפרויקט.השלבים האופייניים מתוארים להלן, עם דגש על שיקולים מעשיים עבור מהנדסי מערכת משובצים.
1. עיצוב מפרט כניסה וכניסה
המסע העיצובי מתחיל על ידי לכידת ההתנהגות של המערכת באמצעות אלגוריתם של תיאור חומרה (HDL) כגון VHDL, Verilog, או SystemVerilog. המודרנית Toolchains לספק עורכי קוד עשירים עם הדגשה של syntax, אוטומטי שילוב של כלי CTL באופן אוטומטי כדי למנוע שגיאות נפוצות. עבור מערכות מורכבות, מהנדסים רבים לאמץ IP מבוסס בלוקים ב-HLGate (למשל, מעבד זיכרון RAM) באופן אוטומטי, פורמט CTP (IX) מאפשר ממשק עם ממשק אוטומטי, ממשק עם ממשק CPU של Intel.
2.סימפוציה תפקודית ואימות
לפני ביצוע סימולציה, כל עיצוב חייב להיות מאומת ביסודיות באמצעות סימולציה. Toolchains כוללים סימולטורים משולבים (למשל, Vivado Simulator, Questa for Quartus) המאפשר צפייה גלים ובדיקות מבוססות קביעה. Testbenches כתובים ב HDL או SystemVerilog ליישם תבניות באגונאליות ולכידת תגובות כדי להבטיח את הלוגיקה המיועדת לעיצובים גדולים, באמצעות שיטת Verification-R) אשר מספקת אימות ברמת אבטחה מלאה (RVerilog).
סינתזה: מ HDL ל- Netlist
(Synthesis ממיר את תיאור HDL לפרופיל של אלמנטים לוגיים פרימיטיביים כי המטרה FPGA יכול ליישם: LUTs, טבלאות, חסימות, DSP48 פרוסות, ו בלוקים חומרה ייעודיים.מנוע הסינתזה מתייחס אופטימיזציה כדי לענות על מגבלות המשתמש על שטח, מהירות, או מהנדסים יכולים להנחות סינתזזזציות באמצעות תכונות ב- HDL (g, LT) באופן משמעותי, לאחר פתורים קריטי, לאחר לנטרל את התכונות של שימוש.
יישום: מקום ואומץ
יישום הוא השלב האינטנסיבי ביותר, שבו השלבים נטויים המסתונתז ממופים על גבי הבד הפיזי של FPGA.התהליך כולל תרגום הרשת לפרימיטיביים הילידים של המכשיר, הצבת כל אלמנט לוגי לאתר ספציפי על שבב, וחיבורי תזמון בלתי חוקיים באמצעות רשת הפעלה מוגדרת מראש (pcouting) לאחר תזמון מפורט (pcoutex) או תזמון מפורט (poutextextex) של כל מגבלות הפעלה שלילית (pcouts) לאחר כל תזמון (poutextexer)
3. Bitstream Generation and Device Programming
ברגע שהתזמון מסופק וכל המגבלות מסופקות, ה- Toolchain מפיצה את העיצוב המוצב והמסלול לתוך bitstream בינארית.קובץ זה מכיל את כל נתוני התצורה הדרושים כדי להגדיר את התאים הלוגיים ואת הקישור.ה bitstream הוא טעון לתוך FPGA באמצעות ממשק עומס תצורה - באופן זמני JTAG, SPI פלאש, או כרטיס SD Development Boards כוללים USB-JTAG מתאים באופן אוטומטי עבור פונקציות הפעלה מיידי.
שילוב של מעבדים Embedded עם FPGA
משפחות FPGA מודרניות משלבות מערכות מעבד קשיחות (HPS) ישירות לתוך השבב.לדוגמה, AMD Zynq-7000 ו- MPSoC מכשירים כוללים מעבדים מרובים של לינוקס לינוקס לינוקס, בעוד Intel Agilex SoCs משלבת את המעבדים Cortex-A53 או A55 מקבצי CTM (באמצעות רכיבי פיתוח משולבים ב-ARM) באופן קבוע, כמו מעבדי תיבות של Microsoft-DIX-DI-D.
המונחים: Intellectual Property Cores
ליבות קניין רוחני (IP) הן pre-designed ו-Pre-verified בלוקים אשר מאיצים את הפיתוח ולהפחית את הסיכון. FPGA ספקים מציעים קטלוגים נרחבים של IP חינם ו- מורשה: בקרים זיכרון (DDR4, LPD5), ממשקים מהירים מאוד (PCIe Gen5, USB 3.2, Macs), קוד וידאו, מנועי הצפנה (AES, RSA), ו-DSP מאובטחים, תצורה של ציוד IPIX, כמו תקנים סטנדרטיים, אופציונליים, אופציונליים, אופציונליים, אופציונליים, אופציונליים, אופציונליים, אופציונליים, אופציונליים, גירסאות IP.
טכניקות דיון וניתוח מתקדמות
עיצובים FPGA מתאימים מציג אתגרים ייחודיים כי אותות פנימיים אינם ניתנים ישירות עם oscilloscopes או ניתוח לוגיקה מתאים (כלי סימולציה) לספק ליבות debug ייעודיים בתוך FPGA במהלך יישום: ®Volvos של ®rections Integrated Power Analyzer (ILA) ו- ChipScope, ואת אותות הליבה של משתמשים אלה.
Best Practices for Efficient FPGA Development
- (FLT:0)Version שולט בכל דבר אחר: חנות HDL, מגבלות, תסריטים, קבצי תצורה IP ו- Testbenches ב- Git repository.Build, Reproducibility היא קריטית לשיתוף פעולה ולבדיקה מחדש.
- (FLT:0)Script כל זרימת ה-FLT:1: השתמש במצב לא-פרופורה מבוסס Tcl (Vivado) או זרמי פיקוד (Quartus) כדי לסנתזת, יישום ודיווח.זה מאפשר שילוב רציף (CI) ולהבטיח בנייה עקבית על פני מכונות.
- (FLT:0) ניהול מוקדם ו יסודי: Define all the clock Fres, I/Oעיכובים, ודרכים כוזבות בתחילת העיצוב.In Complete Limits לכפות את הכלי לעשות הנחות הגרועות ביותר, מה שמוביל ללוגיקה מוגזמת שמבזבזת משאבים ועדיין נכשלת בתזמון.
- (FLT:0) Adopt a Modular, Hierarchical DesignFLT) 1:1: לשבור את המערכת לבלוקים מלוכדים היטב עם ממשקים מוגדרים בבירור.כל בלוק ניתן לאמת באופן עצמאי, ולהשתמש בהם מחדש בפרויקטים עם שינוי מינימלי.
- ניתוח תזמון סטטי (STA) לאחר כל יישום FLT:1: לעולם אל תירה עיצוב עם slack שלילי תזמון דוחות כדי לזהות את הנתיבים הקריטיים המובילים ולהחליט איפה להוסיף צינורות או אופטימיזציה לוגיקה.
- (FLT:0) אנליז צריכת החשמל מוקדם יותרFLT:1: השתמש בספק estimators (למשל, Xilinx Power Estimator XPE, Intel Early Power Estimator) כדי להנחות את בחירת הרכיב, עיצוב מתח רגולטורי ותכנון כיור חום.חשב אפשרויות אופטימיזציה דינמיות של חשמל במהלך סינתזה ותוואי מקום.
- (FLT:0)Plan for Board Bring-upFLT:1: Include UART, סטטוס LEDs, ומחבר ייעודי JTAG על ה- PCB. עיצוב מבחן פשוט הקורא בחזרה נתונים חיישן וממצמץ LEDs יכול לאמת פעולה בסיסית לפני העיצוב המלא טעון.
- (FLT:0) ביצוע האדריכלות של ה-FLT:1: שמור על תרשים בלוק ברמת מערכת, מפה מפורטת, תיאור עץ השעון, ורשימה של מגבלות. תיעוד טוב הוא הכרחי עבור בניית חברי צוות חדשים ולבעיות פיזור חודשים מאוחר יותר.
אופטימיזציה וביצוע ניהול משאבים
משאבי FPGA הם סופיים, ותזמון המפגש בעוד צמצום כוח ואזור דורש הנדסה זהירה אסטרטגיות פרובנס כוללים:
- (FLT:0)PipeliningFLT:1: הכנס נרשם כדי לשבור נתיבים ארוכים בשילוב, הגדלת תדירות השעון המקסימלי עלות של שקיפות וספירת פלסלופ. מטרה טיפוסית היא לשמור על עיכובים במסלול מתחת ל 80% מתקופת השעון כדי לאפשר שולי עבור וריאציות תהליך.
- (FLT:0) Resource SharingFLT:1: יחידות זמן-multiplex ⁇ (למשל, מכפיל אחד המשמש במחזורי שעונים מרובים) כדי להפחית את השימוש ב-DSP כאשר דרישות באמצעות חישוב הם בינוניים.
- (FLT:0) FloorplanningFLT:1: באופן ידני להקצות מודולים קריטיים לאזורים ספציפיים של FPGA למות כדי למזער עיכובים מתפתלים ולהימנע מעומס.עורך ההקצנה הפיזי של הכלי (למשל, רצפה של Vivado) מאפשר זאת באמצעות מחסומים.
- (FLT:0)Proper איפוס אסטרטגיה FLT:1: איפוס סינכרוני מראש כדי להימנע רשתות איפוס מסונכרנות גבוהה שיכולה לפענוח תזמון.חשב הסרת איפוס מנתיבים נתונים מצנרת שבו היתרי בטיחות פונקציונליים, שכן זה יכול לשפר את הביצועים.
- (FLT:0)Exploit ייעודי בלוקים חומרה FLT:1: השתמש בלוקים RAM (BRAMs) עבור זיכרונות גדולים במקום להפיץ LUT מבוסס RAM, ולהשתמש DSP48 פרוסות עבור פעולות רב-תכליתיות.מיפוי פונקציות בלוקים אלה גם מקטין צריכת חשמל בהשוואה ללוגיקה רופפת.
רוב השרשרת מציעה יישום אסטרטגיה presets (למשל, "Performance Explore", "שטח Optimized", "Power Opt"), אשר לרוץ מספר רב של עוברים עם אלגוריתמים שונים ולבחור את התוצאה הטובה ביותר. אוסף ועיצובי Incremental מאפשרים סגירה תזמון יציבה על חלקים ללא שינוי של העיצוב תוך כדי יישום מחדש לוגיקה משתנה. עבור עיצובים גדולים, באמצעות איסוף היררכימי (Detchistalcasticide) לתוך תזמון קצר יותר, לאחר מכן, לאחר מכן, יכול להפחית את התזמון באופן דרמטי יותר, לאחר מכן, כדי קצר יותר, לאחר מכן, כדי קצר יותר, לאחר מכן, כדי קצר יותר, כדי צמצום תזמון, כדי קצר יותר, כדי להפחתת תזמון, באופן דרמטי, באופן דרמטי, כדי קצר יותר, יכול להרכיב תזמון, באופן קבוע, באופן קבוע, כדי קצר יותר, על חלקים של זמן קצר יותר, כדי קצר יותר, יכול להרכיב תזמון, כדי להגדרה, באופן קבוע, באופן קבוע, יכול להפחתת תזמון, באופן קבוע, באופן קבוע, על חלקים של זמן קצר יותר, על חלקים של זמן קצר יותר, על חלקים של זמן קצר יותר, לאחר מכן, יכול להיות מסוגל לפשטות, כדי להגדיר מחדש של זמן קצר
High-Level Synthesis: Bridging Software ו-Hardware
בעוד ש-Level Synthesis (HLS) מעלה את רמת הפשטות העיצובית על ידי המרת אלגוריתמים שנכתבו ב- C, C++ או SystemC ל- RTL יעילה, AMD Vitis HLS ו- Intel HLS Compiler הם כלים בוגרים המאפשרים מהנדסי תוכנה לכוון FPGAs מבלי צורך ב- CLSD אלגוריתם פתוח של מערכת הפעלה (RLSD) ו-HLSD (המחשבה) של מערכת הפעלה יעילה של אבטחה של אבטחה של אבטחה (R.
דוגמאות ליישומים אמיתיים
מערכות משובצות מבוססות FPGA משתרעות על מגוון רחב של תעשיות.בדמיה רפואית, Zynq SoC עשוי להפעיל לולאה של בקרת זמן אמת על הליבה ARM שלה בעוד הבד FPGA מיישם צינור תמונה מותאם אישית הממסנן את הנתונים אולטרסאונד ב -100 מסגרות לשנייה.במערכת ניהול מנועים מקבילה C.
מלכודות נפוצות וכיצד להימנע מהם
- (FLT:0) הערכת מאמצי התזמון סגירת המאמץ 1: מתחילים רבים משאירים מגבלות תזמון עד סוף מחזור העיצוב.זה מוביל לעתים קרובות לסגירה של תרחישים בלתי אפשריים אשר מכריחים עיצוב מחדש גדול.
- (FLT:0) אבחון השפעות פיזיותרפיות (FLT:1): נביחות של נביחות, דיבור חוצה, ו ⁇ תרמי יכול לגרום לכישלונות שלאחר-ההגדרה שסימולציה לעולם לא תופסת.
- (FLT:0) בהגדרות ברירת מחדל FIRLT:1: כלים FPGA חדלות לשמש גישה מאוזנת, אבל עבור עיצובים ביצועים גבוהים ייתכן שיהיה צורך בתכנון ריצוף ידני, אסטרטגיות יישום מותאם אישית, ולהוביל סינתזה.
- (FLT:0) ניהול IP של ניהול IPREFLT:1: שימוש בליבות IP מיושנות או פרמטר שגוי יכול להציג באגים עדינים.
- (FLT:0) חומרים על יכולת פיזור של יכולת מינוף של יכולת 1FLT:1: החל רק על מנתחים לוגיים חיצוניים איטי ולעתים קרובות לא מספיק.
מגמות עתידיות ב-FPGA Development Tools
הנוף לפיתוח FPGA מתפתח במהירות. Vendors משלבים מאיצים למידת מכונה ישירות לתוך השרשרת הכלים שלהם, המאפשר אופטימיזציה אוטומטית של כוח וביצועים באמצעות מיקום מבוסס למידה עמוקה ו routing.העלייה של הקישור Compute Express (CXL) סטנדרטית מאפשרת שיתוף זיכרון גמיש יותר בין FPGAs ו- CPUs, פתיחת מקרים חדשים ב- AI ו- AIRORS.
מסקנה
מאסטרינג FPGA פיתוח כלים הוא המפתח לפתיחת הפוטנציאל המלא של ההיגיון ההסתברותי עבור עיצוב מערכת משובצת. על ידי ביצוע זרימת עיצוב מובנה - ממפרט וסימולציה באמצעות סינתזה, מקום ו- Pathway, דור bitstream, ו debug קפדני - גורמים יכולים להפוך שבב ריק למערכת הפעלה מותאמת ומוטבעת יותר.