advanced-manufacturing-techniques
כיצד להשתמש ב-Fpga Development Boards for Rapid Prototyping
Table of Contents
מחסני שער חסכוניים (FPGAs) הפכו הכרחיים עבור מהנדסים, חוקרים וסטודנטים אשר צריכים לבדוק ולחדד עיצובים דיגיטליים במהירות לפני ביצוע ייצור יקר ושעה מצטבר של ASIC. FPGA לוחות פיתוח גשר הפער בין תיאור חומרה מופשט ומימוש פיזי, המאפשר לך להסתנן על עיצוב שעות ולא שבועות.
FPGA Development Boards
לוח פיתוח FPGA הוא לוח מעגלים מודפס הכולל שבב FPGA, רגולציה כוח, מקורות שעון, זיכרון, ומגוון של I / O מחברים. לוחות אלה נועדו להיות פלטפורמה מלאה לניסוי עם לוגיקה דיגיטלית.בניגוד מותאם אישית PCB, לוח פיתוח נותן לך גישה מיידית ליכולות של FPGA ללא ראש של תכנון, ייצור, או אימות.
תפקידים מרכזיים ותפקידיהם
לוחות FPGA מודרניים כוללים בדרך כלל:
- (FLT:0) מכשיר FGA (FLT:1) - לב הלוח, המכיל בלוקים לוגיים הניתנים להגדרה (CLBs), לחסום RAM, פרוסות DSP, ולעתים קרובות מכווצים מעבדים (למשל, ARM Cortex-A סדרה ב Xilinx Zynq או Intelx Agile SoC FPGAs).
- (FLT:0) מזכרים (MemoryofLT:1) - DDR3/DDR4 SDRAM, SRAM או פלאש לאחסון תצורה ונתונים במהלך המבצע.
- מקורות:0Clock מקורות FLT:1 - קריסטל oscillators או גנרטורי שעונים שניתן לתכנת המספקים קלטי שעון יציבים ל-FPGA.
- (FLT:0I / O peripheralsFLT:1) - Ethernet, USB, HDMI, ראשי GPIO, PMOD מחברים, ולפעמים ממירים אנלוגיים-לספרטיים (ADCs) או ממירים דיגיטליים-לנאולוג (DACs).
- (FLT:0) ממשק ההנצחה 1FLT (JTAG, USB או SPI פלאש שמטען את bitstream על FPGA ב Power-up או במהלך תכנות.
- (FLT:0) Power ManagementveFLT:1) - הרגולטורים של וולטאז' מספקים את הליבה מרובות ואת I / O המעקה הנדרשת על ידי FPGA.
קטגוריות של FPGA Boards
בחירת לוח הנכון הוא קריטי עבור מהירות prototyping. Boards טווח מפלטפורמות בעלות נמוכה לדרגות הערכה מראש. קטגוריות נפוצות כוללות:
- (FLT:0) לוחות ברמתEntry ההרחבה 1 (כגון Digilent Arty S7 (Xilinx Spartan-7) או Terasic DE0-Nano (אינטל קיקלון IV) הם סבירים מספיקים ללמידה של עיצוב דיגיטלי בסיסי, יישום מכונות ממשלתיות פשוטות, ובדיקה של מודולים קטנים.
- (FLT:0Mid-range BoardsFLT:1) כמו Xilinx Artix-7 מבוסס Nexys וידאו או Intel Cyclo V GX Starter Kit. הם מציעים יותר תאים לוגיים, טרנזירים מהירים יותר, ו ערכות היקפיות עשירות יותר, מתאים לפרוטוקולים מתקדמים או יישומי וידאו.
- (FLT:0) ,SoC FPGA לוחות 1FLT: שילוב של בד FPGA עם מערכת מעבד קשה, למשל, Xilinx Zynq-7000 (Pynq-Z2) או אינטל Arria 10 SoC. אלה הם אידיאליים עבור מערכות פרוטוטו-מחייבות הדורשות תוכנה וחומרה, ומאפשרות לך לאחזר מערכת שלמה על לוח אחד.
- (FLT:0) ערכות הערכה מתקדמות של הערכה גבוהה , 1 (FPGAs גדול כמו Xilinx Virtex UltraScale + או Intel Stratix 10, לעתים קרובות עם מספר רב של תחזיות מהירות גבוהה, FMC מחברים, ואת חריצים PCIe. אלה משמשים עבור אבטיפוס מורכבים כמו מתגי רשת, מכ"ם או AI inference accelerators.
בעת בחירת לוח עבור הסתברות מהירה, לשקול את היכולת הלוגיקה הנדרשת, ממשקי I / O, רוחב פס זיכרון, ואת היכרותך עם שרשרת הכלים של המוכר. החל עם לוח נתמך היטב של היצרן גדול (Xilinx /AMD או Intel / אלטרה) מבטיח גישה לתיעוד, עיצובים, ופורומים קהילתיים.
הגדרת סביבת הפיתוח של FPGA
תהליך התקנה חלק הוא הבסיס של הסתברות מהירה.כל דקה שבילה היאבקות עם נהגים או בעיות שרשרת כלי הוא זמן אבוד כי ניתן להשתמש עבור עיצוב ההצתה.עקוב אחר גישה זו מובנים כדי לקבל את הסביבה שלך מוכן.
בחר את תוכנת הפיתוח
כל מוכר FPGA מספק חבילה של כלים עבור כניסה עיצוב, סינתזה, יישום, ו debugging. השניים הנפוצים ביותר הם:
- (FLT:0)Xilinx Vivado Design SuiteFirLT:1) - מכסה את כל משפחות Xilinx FPGA מספרטה 7 ל-Vsal. Vivado כולל ניהול פרויקטים, סינתזה RTL, יישום (מקום ותוואי), וניתוח לוגיקה משולב (ILA). עבור עיצובים SoC, Vitis משמש לפיתוח תוכנה.
- (FLT:0)Intel Quartus PrimeFLT:1 - מציע יכולות דומות עבור Intel FPGAs, עם הגירסה Pro Quartus עבור מכשירים מתקדמים.
שני הכלים חופשיים לתמיכה במכשיר מוגבל (Vivado WebPACK, Quartus Prime Lite) וניתן לשדרג עם רישיונות בתשלום עבור FPGAs גדול יותר.עבור כוונון מהיר, המהדורות החינמיות הן לעתים קרובות מספיקות.
נהגי סודיות וכלי
רוב הדירקטוריון המודרני מתחבר באמצעות USB עבור תכנות ותקשורת סידורית. במהלך ההתקנה, להבטיח את הנהגים הכבלים של הלוח מותקנים.עבור לוחות שיינס, Digilent Adept לרוץ זמן או נהגי כבל Vivado נדרשים בדרך כלל.עבור לוחות אינטל, כבל Quartus USB Blaster חייב להיות מוגדר כראוי.לאחר ההתקנה, פתח את כלי התכנות (Vivado Hardware Manager או Quatus Program) ולוודא כי הנהג כבל ההפעלה כבל, בדיקה כבל, התקן כבל, התקן USB לא מוגדר כראוי.
לוחות פיתוח רבים מגיעים גם עם בקר ניהול לוח (BMC) או ממיר סדרתי-to-USB המספק נמל וירטואלי COM. השתמש בחיקוי מסוף כמו סי או טרטה ב 115200 baud (או כמפורט) כדי אינטראקציה עם כל UART רך אתה יכול ליישם.
יצירת פרויקט מבחן מינימלי
לפני צלילה לתוך אב הטיפוס הראשי שלך, ליצור פרויקט קטן "blinky" כי ללגום LED באמצעות נגד.זה מאמת את זרימת הכלי כולה: מקידוד ב Verilog או VHDL, באמצעות סינתזות ומימוש, כדי לתכנת את המכשיר. בהצלחה לראות את LED ממצמץ כי הסביבה שלך מתפקדת כראוי.
Core FPGA Design Flow for Rapid Prototyping
הבנת זרימת העיצוב מסייעת לך לזהות היכן לייעל את המהירות.זרימת עיצוב FPGA טיפוסית עבור prototyping מורכבת של שלבים אלה:
- (FLT:0)Design entryFLT:1) - לכתוב קוד RTL ב Verilog (עדיף C-like syntax) או VHDL. עבור הסתברות מהירה, מהנדסים רבים משתמשים ב-block דיאגרמות או סינתזה ברמה גבוהה (HLS) כמו Vivado HLS (כיום חלק של Vitis) כדי להמיר C / C + C ++C קוד לתוך RTL.
- (FLT:0) ,SimulationFLT:1 - לבדוק את ההתנהגות התפקודית של העיצוב שלך באמצעות סימולטור לוגיקה (למשל, Vivado Simulator, ModelSim, או GHDL). סימול תופס שגיאות לוגיות ארוכות לפני בדיקות חומרה, חיסכון זמן רב.
- (FLT:0)SynthesisFLT:1 - להמיר קוד RTL לתוך רשימה ברמת שער המפות למשאבים הלוגיים של FPGA.
- (FLT:0)Implementation (translate, מפה, מקום ואמפ; מסלול)FIRLT:1 - הכלי מתאים את הרשתית על הבד FPGA הספציפי, הצבת אלמנטים לוגיים וחיבורים מתפתלים.
- (FLT:0) ייצור הדור הבאיסטרים 1 (FLT:1) - מפיק את הקובץ בינארי שהגדרתו את ה-FPGA.
טיפים להבטחת כל שלב
- (FLT:0)Modular designphFLT:1 - לשבור את המערכת שלך לתוך מודולים קטנים, באופן עצמאי, סימול כל מודול בנפרד לפני שילוב.
- (FLT:0)Use incremental הפקה: הן Vivado והן Quartus תמיכה באוסף מצטבר, אשר מחזר חלקים ללא שינוי של העיצוב כדי להפחית את מקום ואת זמן המסלול.
- (FLT:0) להגביר את שעון ה-FLT:1 - השתמש בקלט השעון ייעודי של הלוח ואת פרימיטיבי PLL או MMCM כדי ליצור תדרים הנדרשים.
- (FLT:0)Pre-constrain I/OsscioFLT:1) - לכתוב XDC מקיף (Xilinx) או קובץ SDC (Intel) מסדיר מוקדם, כולל מיקומים, רמות מתח, ויוצאי דופן תזמון.
עבור השקיה מהירה באמת, לשקול באמצעות זרימת סינתזה ברמה גבוהה שבו אתה מתאר אלגוריתמים ב C++ ומאפשר הכלי לייצר RTL. בעוד HLS לא יכול לייצר את החומרה הממוטבת ביותר, זה מפחית באופן דרמטי זמן עיצוב עבור יישומים מורכבים של נתונים כגון מסננים תמונה או ארבעה יותר הופך.
שילוב של Cores ומודולים מעוצבים מראש
אחת הדרכים החזקות ביותר להאיץ את ה- Prototyping היא להשתמש ב-Pre-verified Intellectual Property (IP) ליבות של ליבתים של Xilinx ו- Intel לספק קטלוגים נרחבים של בקרי זיכרון בחינם ו- IP מורשים, פרוטוקולי ממשק, פונקציות מתמטיות ואפילו תת-מערכת מעבד שלמה.לדוגמה, שיlinx Vivado IP integrator יכול מיד לזרז מעבד רך מיקרו-Bze, DDR, ואפילו מעבדי פחות מ-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C-C- פחות מ-DDR, לדוגמה, לדוגמה, פחות מ- פחות מ- פחות מ- פחות מ- פחות מ-DDR, כדי לקחת פחות משבוע-C.
מעבר ל- IP המוכר, מערכת אקולוגית קוד פתוח עשירה קיימת. Libraries כגון:0Ultrabedded של אוסף הליבה של קוד פתוח FLT:1 מציעים מודולים Verilog הניתנים ל-UARTs, SPI, I2C, ו debuing ממשקים במקום מודולים סטנדרטיים של FLT:2 OpenesFLT 3 מארח מאות ליבות חינם החל מ-UPUS, כדי להרכיב מחדש של פורמטים סטנדרטיים של מערכת ההפעלה פשוטה של CVi.
בעת שילוב ליבות IP, שימו לב לתנאי הרישיון ולהתאמה עם מכשיר היעד שלכם. ליבות IP רבות של ספק מנעול למשפחת ה-FPGA הספציפית, אלא אם כן יש לכם רישיון מלא.עבור ליבות קוד פתוח הן לעתים קרובות בחירה טובה יותר כי הם ניידים וניתן לשנות אותם כנדרש.
טכניקת גינוי ופירוק
שום אב טיפוס לא עובד בצורה מושלמת בפעם הראשונה.התדה יעילה היא מה שמפריד בין תסכולים יעילים לבין תסכול אינסופי. FPGA לוחות פיתוח מציעים כמה יכולות מבוללות בנויות:
ניתוח לוגיקה שלChip
לוגיית Integrated Logic Analyzer (ILA) ו- Intel's Signal Tap מאפשרים לך ללכוד אותות פנימיים בזמן אמת ללא בדיקה חיצונית.You מיידי ליבה ILA בעיצוב שלך, לחבר אותו לאות של עניין, ולהגדיר תנאים מעוררים.כאשר המצב הוא פגש, הנתונים השבויים מועלים למחשב שלך לבדיקה.
טיפים לשימוש יעיל ILA:
- השתמש במספר קטן של אותות (8-16) כדי לשמור על צריכת משאבים נמוכה ו debug היררציות מהר.
- הגדר את עומק הדגימה כדי להתאים את זמן העסקה הצפוי שלך; 1024-4096 דגימות הוא בדרך כלל מספיק.
- השתמש בדלפק חופשי כנקודת זמן אם עליך לתאם אירועים.
Input/Output (VIO)
הן Vivado ו Quartus מציעים ליבות וירטואליות I / O המאפשר לך לנהוג או לצפות ⁇ FPGA מהמחשב המארח.לדוגמה, אתה יכול ליצור כפתור וירטואלי כדי לאפס מכונה מדינה או שקופיות וירטואליות כדי להתאים את מחזור חובה PWM. זה מבטל את הצורך מתגים פיזיים או קופצים במהלך בדיקות מוקדמות.
כלי וויכוח חיצוני
לפעמים אתה צריך לבדוק אותות במהירות גבוהה או אותות שאינם נתפסים על ידי מנתח ההיגיון הפנימי. מנתח לוגיקה USB 4 ערוצים (למשל, סאלי או דומה) יכול להיות יקר ערך עבור ממשקי פיזור כמו SPI, I2C, או UART במהירויות מתון. עבור ממשקים מהירים גבוהים (למשל, HDMI, Ethernet, Ethernet), להשתמש oscscope מתאים עם רוחב פסים מספיק, אבל זה יכול לשמור על רוחב פסים עם זה יכול להיות מספיק.
טכניקה נפוצה נוספת היא לנתב אותות פנימיים קריטיים ל- GPIO שאינם בשימוש ולהתבונן בהם עם היקף חיצוני או מנתח לוגיקה.אסטרטגיה זו "נקודת מבחן" היא פשוטה ולעתים קרובות הדרך המהירה ביותר לאמת את רמות התזמון או ההגיון.
אסטרטגיות יעילות
מעבר לזרם הטכני, מערכת של שיטות משמעת עוזרת לך לנוע מהר יותר ולהימנע ממכשולים נפוצים.
פיתוח עם בקרת גרסאות
תמיד להשתמש במערכת בקרת גרסאות (Git) עבור הפרויקטים של FPGA שלך.אפילו אבטיפוס אחד היתרונות של מעקב שינויים, במיוחד כאשר שינוי "קטן" שובר את העיצוב. Commit לאחר כל צעד מוצלח: סימולציה עובר, נתיבים מסונתזים ונתיבי מבחן לוח להשלים, וזה מאפשר לך לגלגל בחזרה בביטחון ולשמור היסטוריה נקייה.
Hardware-in-the-Loop (HIL) Simulation
כאשר אב הטיפוס שלך חייב אינטראקציה עם חומרה חיצונית (רגישים, מתאמים, לוחות אחרים), לשקול באמצעות סימולציה HIL. לדוגמה, אתה יכול לחבר את לוח ה-FPGA למחשב באמצעות UART או Ethernet ולהפעיל תסריט פייתון המדמה את הסביבה החיצונית.זה מאפשר לך לבחון תרחישים אינטראקציה מורכבים ללא בניית תיקונים פיזיים.
מודולרי Prototyping with Mezzanine Boards
לוחות פיתוח FPGA רבים תומכים PMOD, FMC, או Arduino כותרות. השתמש אלה כדי לחבר לוחות המכילים חיישנים, ADCs, או מודולי תקשורת. לשמור על לוח FPGA קבוע תוך החלפת mezzanine מודולים מאפשר לך להשתמש עיצוב הבסיס עבור אבטיפוס שונים. לדוגמה, מערכת האקולוגית Digilent Pmod מציעה מגוון רחב של מודולים של Plug-andplay שניתן להשתמש עם HPx.
מסמך כמו שאתה הולך
עם זאת, קידוד מהיר מוביל לעתים קרובות לתיעוד לא שלם.עם זאת, דיאגרמת בלוק פשוטה של העיצוב שלך, רשימת משימות סיכות, ותיאור קצר של התנהגות של כל מודול יכול לחסוך לך שעות כאשר אתה חוזר לפרויקט לאחר שבוע. השתמש בהערות בנספח שלך או מחברת מעבדה. אפילו 10 דקות של תיעוד לאחר כל פגישה משלמת.
דוגמה: Prototyping a PWM Generator ו LED Dimmer
כדי להמחיש את התהליך כולו, שקול לבנות גנרטור PWM פשוט שמניע LED.דוגמה זו משתמשת בצעדים הנפוצים וניתן להשלים תוך שעה על רוב הדירקטוריון.
- (ב) [ה]: [ה], [ה], [ה], [ה], [ה],] [ה],] [ה],] [ה],]]], [ה], [ה], [ה], [ה],], [ה],], [ה],], [הה'],], [ה'], [ה']']']']'[ה']']']'[ה']'[ה'[ה'[ה'[ה'[ה'[ה']'[ה']']'[ה']']'[ה']']']']']']']'[ה'[ה']'[ה']']'[ה']']']'[ה']']']'[ה'[ה'[ה']']']'[ה']']']'[ה'[ה']'[ה']'[ה']']'[ה'[ה']'[ה'[ה'
- (ב) ויקרא י"א): "תכתבו השגחה המשתנה את קלט מחזור החובה ואמתה את גל הפלט.
- (ב) ,0)Add LimitsFLT:1: אסיים את הפלט PWM ל- LED pin ואת הזנת מחזור החובה להחלפת או הליבה VIO. הגדר את שעון ההנעה ל- 100 MHz של הלוח (או איזה תדירות).
- (FLT:0) גודל ומימוש של 1FLT: Run סינתזה והמסלול-והמיקום-ו-and-course. Check that the design Meetתזמון (שעון הנגד צריך להיסגר בקלות ב -100 MHz).
- (FLT:0)Program and TestofLT:1: לטעון את bitstream על הלוח.תאים את מחזור החובה על ידי מתגים מתעמלים או באמצעות VIO והתבונן בשינוי בהירות LED אם LED לא מתנהג כפי צפוי, להוסיף ILA כדי ללכוד את ערך הנגד ואת הפלט.
דוגמה זו מציגה את מחזור האבטיפוס המינימלי של ה-Atype לאחר שאתה שולט בו, אתה יכול להגיע עד עיצובים מורכבים יותר על ידי הוספת בלוקים נוספים, כגון ממשק UART כדי לקבל פקודות מהמחשב או מכונה מדינה המיישם פרוטוקול מותאם אישית.
מסקנה
לוחות פיתוח FPGA הם נכס חזק עבור prototyping מהיר, המאפשר לך ללכת מהרעיון כדי לתפקד חומרה בתוך עניין של שעות. על ידי בחירת הלוח הנכון, הקמת שרשרת הכלים שלך כראוי, לאחר זרימת עיצוב יעילה, ושימוש בנוי-in debuing יכולות, אתה יכול להאיץ את מחזורי הפיתוח שלך ולהקטין את הסיכון של עיצובים יקרים.
(ב) לעיין בתיעוד הרשמי של ה-FLT:0Xilinx/AMDigph 1: ו-FLT:2IntelcioFLT 3: מקורות קהילתיים כמו FLT:4Digilent Forums EvolutionFLT:5 ו-FLT 6FPGA4FunFLT 7 מספקים דוגמאות ופתרון בעיות.