intel - לוגוFPGA SDK עבור OpenCL
מדריך למשתמש

UG-OCL009
2017.05.08
עודכן לאחרונה עבור Intel® Quartus® Prime Design Suite: 17.0

RENPHO RF FM059HS WiFi חכם לעיסוי כף הרגל - סמל 5הירשם
סמארטפון SAMSUNG SM A136UZKZAIO Galaxy A13 5G - סמל 12שלח משוב

Intel® FPGA SDK עבור OpenCL™ Intel® Cyclone®V SoC Development Kit מדריך העברת פלטפורמות

V SoC Development Kit Reference Platform Porting Guide מתאר את עיצוב החומרה והתוכנה של Intel Cyclone V SoC Development Kit Reference Platform (c5soc) לשימוש עם ערכת פיתוח התוכנה של Intel (SDK) עבור OpenCL Intel ® FPGA SDK עבור OpenCL ™ Intel Cyclone ® . לפני שתתחיל, אינטל ממליצה לך בחום להכיר את התוכן של המסמכים הבאים:

  1. Intel FPGA SDK עבור OpenCLIntel Cyclone V SoC מדריך תחילת העבודה
  2. מדריך למשתמש של Intel FPGA SDK עבור OpenCL Custom Platform Toolkit
  3. מדריך התקן Cyclone V, כרך 3: מדריך עזר טכני של מערכת מעבד קשיח בנוסף, עיין בדף Cyclone V SoC Development Kit ו-SoC Embedded Design Suite של Altera webאתר למידע נוסף. 1 2

תְשׁוּמַת לֵב: אינטל מניחה שיש לך הבנה מעמיקה של Intel FPGA SDK for OpenCL Custom Platform Toolkit Guide. מדריך העברת הפלטפורמה של Cyclone V SoC Development Kit אינו מתאר את השימוש בערכת הכלים המותאמת לפלטפורמה של ה-SDK כדי ליישם פלטפורמה מותאמת אישית עבור ערכת הפיתוח של Cyclone V SoC. זה רק מתאר את ההבדלים בין תמיכת ה-SDK בערכת הפיתוח של Cyclone V SoC לבין SDK גנרי של Intel FPGA עבור OpenCL Custom Platform.

קישורים קשורים

  • Intel FPGA SDK עבור OpenCL Cyclone V SoC מדריך תחילת העבודה
  • מדריך למשתמש של Intel FPGA SDK עבור OpenCL Custom Platform Toolkit
  • מדריך התקן Cyclone V, כרך 3: מדריך עזר טכני של מערכת מעבד קשיח
  • Cyclone V SoC Development Kit ועמוד SoC Embedded Design Suite ב-Altera webאֲתַר
  1. OpenCL והלוגו של OpenCL הם סימנים מסחריים של Apple Inc. המשמשים בהרשאה של Khronos Group™.
  2. Intel FPGA SDK עבור OpenCL מבוסס על מפרט Khronos שפורסם, ועבר את תהליך בדיקת התאימות של Khronos. ניתן למצוא את סטטוס ההתאמה הנוכחי בכתובת www.khronos.org/conformance.

תאגיד אינטל. כל הזכויות שמורות. אינטל, הלוגו של Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus ו-Stratix מילים וסמלי לוגו הם סימנים מסחריים של Intel Corporation או של חברות הבנות שלה בארה"ב ו/או במדינות אחרות. אינטל מתחייבת לביצועים של מוצרי ה-FPGA והמוליכים למחצה שלה למפרטים הנוכחיים בהתאם לאחריות הסטנדרטית של אינטל, אך שומרת לעצמה את הזכות לבצע שינויים בכל מוצר ושירות בכל עת ללא הודעה מוקדמת. אינטל אינה נושאת באחריות או חבות הנובעת מהיישום או השימוש בכל מידע, מוצר או שירות המתוארים כאן, למעט כפי שהוסכם במפורש בכתב על ידי אינטל. ללקוחות אינטל מומלץ להשיג את הגרסה העדכנית ביותר של מפרטי המכשיר לפני הסתמכות על מידע שפורסם ולפני ביצוע הזמנות של מוצרים או שירותים.
*שמות ומותגים אחרים עשויים להיטען כרכושם של אחרים.

1.1.1 Cyclone V SoC Development Kit גרסאות לוח התייחסות לפלטפורמה
Intel FPGA SDK עבור OpenCL Cyclone V SoC Development Kit Platform כולל שתי גרסאות לוח.

  • לוח c5soc
    לוח ברירת מחדל זה מספק גישה לשני מאגר זיכרון DDR. ה-HPS DDR נגיש הן על ידי ה-FPGA והן על ידי המעבד. ה-FPGA DDR נגיש רק על ידי ה-FPGA.
  • לוח c5soc_sharedonly
    גרסת לוח זה מכילה רק קישוריות HPS DDR. ה-FPGA DDR אינו נגיש. גרסת הלוח הזו יעילה יותר בשטח מכיוון שיש צורך בפחות חומרה כדי לתמוך בבנק זיכרון DDR אחד. לוח c5soc_sharedonly הוא גם פלטפורמת אב טיפוס טובה ללוח ייצור סופי עם מאגר זיכרון DDR יחיד.
    כדי למקד את וריאנט הלוח הזה בעת הידור ליבת OpenCL שלך, כלול את האפשרות -board c5soc_sharedonly בפקודה aoc שלך.
    למידע נוסף על הלוח אפשרות של פקודת aoc, עיין במדריך Intel FPGA SDK עבור OpenCL Programming Guide.

קישורים קשורים
הידור ליבה עבור לוח FPGA ספציפי (-לוח )
1.1.2 תוכן פלטפורמת העזר של Cyclone V SoC Development Kit
פלטפורמת התייחסות Cyclone V SoC Development Kit מורכבת מהאפשרויות הבאות files וספריות:

File או ספרייה תֵאוּר
board_env.xml eXtensible Markup Language (XML) file המתאר את c5soc ל-Intel FPGA SDK עבור OpenCL.
linux_sd_card_image.tgz תמונת כרטיס פלאש SD דחוסה file שמכיל את כל מה שמשתמש SDK צריך כדי להשתמש בערכת הפיתוח של Cyclone V SoC עם ה-SDK.
arm32 ספרייה המכילה את הדברים הבאים:

1.1.3 תכונות רלוונטיות של ערכת הפיתוח של Cyclone V SoC

הרשימה הבאה מדגישה את הרכיבים והתכונות של ערכת פיתוח Cyclone V SoC הרלוונטיים ל- Intel FPGA SDK עבור OpenCL:

  • מעבד כפול ליבה ARM Cortex-A9 המריץ 32 סיביות לינוקס.
  • אפיק מתקדם eXtensible Interface (AXI) בין ה-HPS למארג הליבה של FPGA.
  • שני בקרי זיכרון DDR מוקשחים, כל אחד מתחבר ל-1 גיגה-בייט (GB) DDR3 SDRAM.
    - בקר DDR אחד נגיש לליבה של FPGA בלבד (כלומר, FPGA DDR).
    — בקר ה-DDR השני נגיש גם ל-HPS וגם ל-FPGA (כלומר, HPS DDR). בקר משותף זה מאפשר שיתוף זיכרון חופשי בין המעבד לליבת ה-FPGA.
  • המעבד יכול להגדיר מחדש את מארג הליבה של FPGA.

1.1.3.1 Cyclone V SoC Development Kit פלטפורמת עיצוב יעדים והחלטות אינטל מבססת את היישום של Cyclone V SoC Development Kit Reference Platform על מספר יעדי עיצוב והחלטות. אינטל ממליצה שתשקול את המטרות וההחלטות הללו כאשר תעביר את פלטפורמת ההתייחסות הזו ללוח ה-SoC FPGA שלך.
להלן יעדי העיצוב של c5soc:

  1. ספק את רוחב הפס הגבוה ביותר האפשרי בין הגרעינים ב-FPGA ומערכות הזיכרון DDR.
  2. ודא שחישובים ב-FPGA (כלומר, ליבות OpenCL) אינם מפריעים למשימות CPU אחרות שעשויות לכלול שירות ציוד היקפי.
  3. השאר משאבי FPGA רבים ככל האפשר עבור חישובי ליבה במקום רכיבי ממשק.

להלן החלטות העיצוב ברמה גבוהה שהן ההשלכות הישירות של יעדי העיצוב של אינטל:

  1. פלטפורמת העזר משתמשת רק בבקרי זיכרון DDR קשיחים עם התצורה הרחבה ביותר האפשרית (256 סיביות).
  2. ה-FPGA מתקשר ישירות עם בקר הזיכרון HPS DDR, מבלי לערב את אפיק AXI ומתג L3 בתוך ה-HPS. התקשורת הישירה מספקת את רוחב הפס הטוב ביותר ל-DDR, ומונעת מחישובי FPGA להפריע לתקשורת בין ה-CPU והפריפריה שלו.
  3. גישה ישירה לזיכרון עם פיזור (SG-DMA) אינה חלק מהלוגיקה של ממשק FPGA. במקום להעביר כמויות גדולות של נתונים בין מערכות זיכרון DDR, אחסן את הנתונים ב-HPS DDR המשותף. גישה ישירה לזיכרון המעבד על ידי ה-FPGA יעילה יותר מ-DMA. זה חוסך משאבי חומרה (כלומר, אזור FPGA) ומפשט את מנהל ההתקן של ליבת לינוקס.
    אַזהָרָה: העברת הזיכרון בין מערכת HPS DDR המשותפת למערכת DDR הנגישה רק ל-FPGA היא איטית מאוד. אם תבחר בכך
    העבר זיכרון באופן זה, השתמש בו עבור כמויות קטנות מאוד של נתונים בלבד.
  4. המארח וההתקן מבצעים העברת נתונים שאינם DMA ביניהם באמצעות גשר HPS-to-FPGA (H2F), תוך שימוש ביציאת 32 סיביות בודדת בלבד. הסיבה היא שללא DMA, ליבת לינוקס יכולה להנפיק רק בקשת קריאה או כתיבה בודדת של 32 סיביות, ולכן אין צורך בחיבור רחב יותר.
  5. המארח שולח אותות בקרה למכשיר באמצעות גשר H2F (LH2F) קל משקל.
    מכיוון שאותות בקרה מהמארח למכשיר הם אותות ברוחב פס נמוך, גשר LH2F הוא אידיאלי למשימה.

1.2 העברה של פלטפורמת הייחוס ללוח ה-SoC FPGA שלך
כדי להעביר את פלטפורמת העזרה של ערכת פיתוח Cyclone V SoC ללוח ה-SoC FPGA שלך, בצע את המשימות הבאות:

  1. בחר את זיכרון ה-DDR האחד או את שני זכרונות ה-DDR של פלטפורמת ה-c5soc Reference כנקודת ההתחלה של העיצוב שלך.
  2. עדכן את מיקומי הפינים ב-ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, כאשר ALTERAOCLSDKROOT הוא הנתיב למיקום של Intel FPGA SDK עבור התקנת OpenCL, וכן הוא שם הספרייה של גרסת הלוח. ספריית c5soc_sharedonly מיועדת לגרסת הלוח עם מערכת זיכרון DDR אחת. ספריית c5soc מיועדת לגרסת הלוח עם שתי מערכות זיכרון DDR.
  3.  עדכן את הגדרות ה-DDR עבור בלוקי HPS ו/או FPGA SDRAM ב-ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. כל Intel FPGA SDK עבור עיצובי לוח מועדפים של OpenCL חייבים להשיג סגירת תזמון מובטחת. ככזה, מיקום העיצוב חייב להיות נקי בתזמון. כדי להעביר את מחיצת לוח c5soc (acl_iface_partition.qxp) ללוח ה-SoC FPGA שלך, בצע את המשימות הבאות:
    להנחיות מפורטות על שינוי ושימור מחיצת הלוח, עיין ב- Quartus
    פרק פריים מצטבר לעיצוב היררכי ומבוסס צוות של המדריך של Quartus Prime Standard Edition.
    א. הסר את acl_iface_partition.qxp מהספרייה ALTERAOCLSDKROOT/board/c5soc/c5soc.
    ב. הפעל את האזור acl_iface_region LogicLock™ על ידי שינוי הפקודה Tcl set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region ל-set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
    ג. הרכיב ליבת OpenCL עבור הלוח שלך.
    ד. במידת הצורך, התאם את הגודל והמיקום של אזור LogicLock.
    ה. כאשר אתה מרוצה שמיקום העיצוב שלך נקי בתזמון, ייצא את המחיצה הזו כמחיצת acl_iface_partition.qxp Quartus Prime Exported Partition File.
    כמתואר בסעיף קביעת זרימת תזמון מובטחת במדריך למשתמש של AIntel FPGA SDK עבור OpenCL Custom Platform Toolkit, על ידי ייבוא ​​qxp זה  file לתוך העיצוב ברמה העליונה, אתה ממלא את הדרישה לספק עיצוב לוח עם זרימת סגירת תזמון מובטחת.
    לגורמים שעשויים להשפיע על איכות התוצאות (QoR) של המחיצה המיוצאת, עיין בסעיף שיקולי איכות התוצאות הכלליים עבור הסעיף מחיצת לוח מיוצא במדריך למשתמש של Intel FPGA SDK עבור OpenCL Custom Platform Toolkit.
    ו. השבת את אזור LogicLock acl_iface_region על ידי החזרת הפקודה בשלב 2 חזרה ל-set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region.
  4. אם לוח ה-SoC FPGA שלך משתמש בפינים והיקפיות שונים של בלוק HPS, צור מחדש את ה-preloader ואת מקור עץ ההתקן (DTS) file. אם תשנה את הגדרות בקר הזיכרון של HPS DDR, צור מחדש את המטען מראש.
  5. צור את תמונת כרטיס הבזק של SD.
  6. צור את הפלטפורמה המותאמת אישית שלך, הכוללת את תמונת כרטיס הבזק של SD.
  7. שקול ליצור גירסת סביבת ריצה של הפלטפורמה המותאמת אישית שלך לשימוש עם Intel FPGA Runtime Environment (RTE) עבור OpenCL. גרסת ה-RTE של הפלטפורמה המותאמת אישית שלך אינה כוללת ספריות חומרה ותמונת כרטיס הבזק של SD. פלטפורמה מותאמת אישית זו נטענת על מערכת ה-SoC FPGA כדי לאפשר ליישומים מארחים לפעול. לעומת זאת, גרסת ה-SDK של הפלטפורמה המותאמת אישית נחוצה עבור ה-SDK כדי להדר ליבות OpenCL.
    טיפ: אתה יכול להשתמש בגרסת ה-SDK של הפלטפורמה המותאמת אישית שלך עבור ה-RTE. לשמור
    מקום, הסר את תמונת כרטיס ה-SD מגרסת ה-RTE של הפלטפורמה המותאמת אישית שלך.
  8. בדוק את הפלטפורמה המותאמת אישית שלך.
    עיין בסעיף בדיקת עיצוב החומרה במדריך למשתמש של Intel FPGA SDK עבור OpenCL Custom Platform Toolkit למידע נוסף.

קישורים קשורים

  • בדיקת עיצוב החומרה
  • אוסף מצטבר של Quartus Prime לעיצוב היררכי ומבוסס צוות
  • קביעת זרימת תזמון מובטחת
  • שיקולי איכות כלליים של תוצאות עבור מחיצת הלוח המיוצאת

1.2.1 עדכון פלטפורמת התייחסות פורטת
בגרסה הנוכחית של Cyclone V SoC Development Kit Reference Platform, בלוק HPS נמצא בתוך המחיצה שמגדירה את כל ההיגיון הלא-קרנל. עם זאת, אינך יכול לייצא את ה-HPS כחלק מ-.qxp file. כדי לעדכן פלטפורמה מותאמת אישית קיימת ששינתם מגרסה קודמת של c5soc, הטמע את זרימת השימור של QXP, עדכן את תמונת כרטיס ה-SD כדי לקבל את סביבת זמן הריצה העדכנית, ועדכן את ה-board_spec.xml file כדי לאפשר הגירה אוטומטית.
Altera® SDK עבור OpenCL גרסה 14.1 ואילך בודקת את board_spec.xml file למידע על לוח, ומיישמת עדכונים אוטומטיים. כי אתה משנה את
עיצוב על ידי הטמעת זרימת שימור QXP, עליך לעדכן את ה-board_spec.xml file לפורמט שלו בגרסה הנוכחית. מעדכן את file מאפשר ל-SDK להבחין בין פלטפורמות מותאמות אישית שלא נשמרו לפלטפורמות מותאמות אישית מבוססות QXP הנוכחיות. עיין במדריך למשתמש של ערכת הכלים של פלטפורמה מותאמת אישית עבור תאימות קדימה ב- Intel FPGA SDK עבור OpenCL Custom Platform Toolkit למידע נוסף.

  1. כדי ליישם את זרימת שימור QXP בתכנון חומרה Cyclone V SoC FPGA שמועבר מגרסה קודמת של c5soc, בצע את השלבים הבאים כדי ליצור מחיצת משנה כדי לא לכלול את ה-HPS מ-.qxp file:
    א. לפני יצירת מחיצה סביב הלוגיקה הלא-קרנל, צור מחיצה סביב ה-HPS בהגדרות qsf Quartus Prime. File.
    למשלampעל:
    # חלק ידנית את המופע שמדגמן את ה-I/O set_instance_assignment הייעודי ל-HPS -name PARTITION_HIERARCHY borde_18261 -ל-"system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hpsio|system_acl_iface_hpsio| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border:border"
    # הגדר את המחיצה לסוג HPS_PARTITION שתעובד כהלכה על ידי שאר חברי Quartus
    set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
    quartus_cdb top -c top
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=on
    –incremental_compilation_export_post_fit=on
    –incremental_compilation_export_routing=on
    –incremental_compilation_export_flatten=כבוי
    לאחר שלא תכלול את ה-HPS מהמחיצה, תוכל לייבא את ה-.qxp file והרכב את העיצוב שלך.
  2. עדכן את תמונת כרטיס ה-SD עם הגרסה הנוכחית של Intel FPGA RTE עבור OpenCL על ידי ביצוע המשימות הבאות:
    א. הר את file טבלת ההקצאה (fat32) ומורחבת file מחיצות מערכת (ext3) בתמונה הקיימת כהתקני לולאה חזרה. להוראות מפורטות, עיין בשלב 2 בבניית תמונת כרטיס SD Flash.
    ב. בספריית /home/root/opencl_arm32_rte, הסר את files מהגרסה הקודמת של ה-RTE.
    ג. הורד ופרק את הגרסה הנוכחית של ה-RTE לספריית /home/root/opencl_arm32_rte.
    ד. בתוך ה /driver/version.h file של הפלטפורמה המותאמת אישית שלך, עדכן את ההקצאה של ACL_DRIVER_VERSION ל . (לדוגמהample, 16.1.x, כאשר 16.1 היא גרסת ה-SDK, ו-x היא גרסת מנהל ההתקן שהגדרת).
    ה. בנה מחדש את הדרייבר.
    ו. מחק את תיקיות החומרה של הפלטפורמה המותאמת אישית שלך. העתק את הפלטפורמה המותאמת אישית, יחד עם מנהל ההתקן המעודכן, לספריית /home/root/opencl_arm_rte/board.
    ז. העתק את ה- Altera.icd file מהספרייה /home/root/opencl_arm32_rte והוסיפו אותה לספריית /etc/OpenCL/vendors.
    ח. הסר ובדוק את התמונה החדשה. להנחיות מפורטות, עיין בשלבים 8 עד 11 בבניית תמונת כרטיס SD Flash.

קישורים קשורים

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

1.3 תמיכת תוכנה עבור זיכרון משותף
זיכרון פיזי משותף בין FPGA ו-CPU הוא הזיכרון המועדף עבור ליבות OpenCL הפועלות על SoC FPGAs. מכיוון שה-FPGA ניגש לזיכרון פיזי משותף, בניגוד לזיכרון וירטואלי משותף, אין לו גישה לטבלאות הדפים של ה-CPU הממפות כתובות וירטואליות של משתמשים לכתובות עמוד פיזיות.
ביחס לחומרה, ליבות OpenCL ניגשים לזיכרון פיזי משותף באמצעות חיבור ישיר לבקר הזיכרון הקשיח HPS DDR. ביחס לתוכנה, תמיכה בזיכרון פיזי משותף כרוכה בשיקולים הבאים:

  1. יישומי תוכנה אופייניים להקצאת זיכרון במעבד (למשלample, הפונקציה malloc() לא יכולה להקצות אזור זיכרון שה-FPGA עשוי להשתמש בו.
    זיכרון שהפונקציה malloc() מקצה הוא רציף במרחב הכתובות של הזיכרון הווירטואלי, אך אין סבירות שכל הדפים הפיזיים הבסיסיים יהיו רציפים פיזית. ככזה, המארח חייב להיות מסוגל להקצות אזורי זיכרון רציפים פיזית. עם זאת, יכולת זו אינה קיימת ביישומי מרחב משתמש בלינוקס. לכן, מנהל ההתקן של ליבת לינוקס חייב לבצע את ההקצאה.
  2. מנהל ההתקן של הליבה של OpenCL SoC FPGA Linux כולל את הפונקציה mmap() להקצאת זיכרון פיזי משותף ולמפות אותו למרחב המשתמש. הפונקציה mmap() משתמשת בקריאת ליבת לינוקס הסטנדרטית dma_alloc_coherent() כדי לבקש אזורי זיכרון רציפים פיזית לשיתוף עם מכשיר.
  3. בליבת לינוקס המוגדרת כברירת מחדל, dma_alloc_coherent() אינו מקצה זיכרון פיזי רציף בגודל של יותר מ-0.5 מגה-בייט (MB). כדי לאפשר ל-dma_alloc_coherent() להקצות כמויות גדולות של זיכרון רציף פיזית, הפעל את תכונת הקצאת הזיכרון הרציף (CMA) של ליבת לינוקס ולאחר מכן הידור מחדש של ליבת לינוקס.
    עבור פלטפורמת ההתייחסות Cyclone V SoC Development Kit, CMA מנהל 512 MB מתוך 1 GB של זיכרון פיזי. אתה יכול להגדיל או להקטין ערך זה, בהתאם לכמות הזיכרון המשותף שהיישום דורש. ייתכן שהקריאה dma_alloc_coherent() לא תוכל להקצות את מלוא 512 MB של זיכרון פיזי רציף; עם זאת, הוא יכול להשיג כ-450 מגה-בייט של זיכרון באופן שגרתי.
  4. ה-CPU יכול לשמור זיכרון במטמון שהקריאה dma_alloc_coherent() מקצה. בפרט, פעולות כתיבה מהיישום המארח אינן גלויות לליבת ה-OpenCL. הפונקציה mmap() במנהל ההתקן של ליבת Linux של OpenCL SoC FPGA מכילה גם קריאות לפונקציה pgprot_noncached() או remap_pf_range() כדי להשבית את האחסון במטמון עבור אזור זה בזיכרון באופן מפורש.
  5. לאחר שהפונקציה dma_alloc_coherent() מקצה את הזיכרון הפיזי-רציף, הפונקציה mmap() מחזירה את הכתובת הווירטואלית לתחילת הטווח, שהיא טווח הכתובות של הזיכרון שאתה מקצה. היישום המארח דורש כתובת וירטואלית זו כדי לגשת לזיכרון. מצד שני, ליבות OpenCL דורשות כתובות פיזיות. מנהל ההתקן של ליבת לינוקס עוקב אחר מיפוי הכתובות הווירטואלי לפיזי. אתה יכול למפות את הכתובות הפיזיות ש-mmap() מחזיר לכתובות פיזיות בפועל על ידי הוספת שאילתה למנהל ההתקן.
    הקריאה aocl_mmd_shared_mem_alloc() MMD לממשק תכנות יישומים (API) משלבת את השאילתות הבאות:
    א. הפונקציה mmap() המקצה זיכרון ומחזירה את הכתובת הוירטואלית.
    ב. השאילתה הנוספת שממפה את הכתובת הוירטואלית המוחזרת לכתובת פיזית.
    הקריאה aocl_mmd_shared_mem_alloc() MMD API לאחר מכן מחזירה שתי כתובות
    — הכתובת המוחזרת בפועל היא הכתובת הוירטואלית, והכתובת הפיזית עוברת ל-device_ptr_out.
    פֶּתֶק: מנהל ההתקן יכול למפות רק את הכתובות הווירטואליות שפונקציית mmap() מחזירה לכתובות פיזיות. אם אתה מבקש את הכתובת הפיזית של כל מצביע וירטואלי אחר, מנהל ההתקן מחזיר ערך NULL.

אַזהָרָה: ה-SDK של Intel FPGA עבור ספריות זמן ריצה OpenCL מניח שהזיכרון המשותף הוא הזיכרון הראשון הרשום ב-board_spec.xml file. במילים אחרות, הכתובת הפיזית שמנהל ההתקן של ליבת לינוקס משיג הופכת לכתובת Avalon® שלבבת OpenCL מעבירה ל-HPS SDRAM.
לגבי ספריית זמן הריצה, השתמש בקריאה clCreateBuffer() כדי להקצות את הזיכרון המשותף כמאגר התקן באופן הבא:

  • עבור גרסת לוח שני DDR עם זיכרון משותף ולא משותף, clCreateBuffer() מקצה זיכרון משותף אם אתה מציין את הדגל CL_MEM_USE_HOST_PTR. שימוש בדגלים אחרים גורם ל-clCreateBuffer() להקצות מאגר בזיכרון הלא משותף.
  • עבור גרסת לוח DDR אחד עם זיכרון משותף בלבד, clCreateBuffer() מקצה זיכרון משותף ללא קשר לאיזה דגל אתה מציין.
    נכון לעכשיו, תמיכת לינוקס ב-32 סיביות במעבד ARM שולטת במידת התמיכה בזיכרון משותף בספריות זמן הריצה של SDK. במילים אחרות, ספריות זמן ריצה שהוידורו לסביבות אחרות (למשלample, x86_64 Linux או 64-bit Windows) אינם תומכים בזיכרון משותף.
    C5soc לא יישם זיכרון הטרוגני כדי להבחין בין זיכרון משותף ללא משותף מהסיבות הבאות:
    1. היסטוריה - תמיכת זיכרון הטרוגני לא הייתה זמינה כאשר התמיכה בזיכרון משותף נוצרה במקור.
    2. ממשק אחיד — מכיוון ש-OpenCL הוא תקן פתוח, אינטל שומרת על עקביות בין ספקי פלטפורמות מחשוב הטרוגניות. לכן, אותו ממשק כמו ארכיטקטורות של ספקי לוח אחרים משמש להקצאה ושימוש בזיכרון משותף.

1.4 תצורה מחדש של FPGA
עבור SoC FPGAs, ה-CPU יכול להגדיר מחדש את מארג הליבה של FPGA מבלי להפריע לפעולת ה-CPU. בלוק החומרה של FPGA Manager העובר בין ה-HPS וה-FPGA הליבה מבצע את התצורה מחדש. ליבת לינוקס כוללת מנהל התקן המאפשר גישה נוחה למנהל FPGA.

  • אֶל view הסטטוס של ליבת FPGA, הפעל את פקודת cat /sys/class/fpga/fpga0/ status.
    תוכנית השירות Intel FPGA SDK for OpenCL הזמינה עם Cyclone V SoC Development Kit Reference Platform משתמשת בממשק זה כדי לתכנת את ה-FPGA. בעת תכנות מחדש של ליבת FPGA עם מעבד פועל, תוכנית השירות מבצעת את כל המשימות הבאות:
    1. לפני התכנות מחדש, השבת את כל גשרי התקשורת בין ה-FPGA ל-HPS, גם גשרי H2F וגם LH2F.
    הפעל מחדש את הגשרים האלה לאחר סיום התכנות מחדש.
    שים לב: מערכת OpenCL אינה משתמשת בגשר FPGA-to-HPS (F2H). עיין בסעיף ממשקי HPS-FPGA ב-Cyclone V Device Handbook, כרך 3: מדריך עזר טכני של מערכת מעבד קשיח למידע נוסף.
    2. ודא שהקישור בין ה-FPGA לבקר HPS DDR מושבת במהלך התכנות מחדש.
    3. ודא שפסיקות ה-FPGA ב-FPGA מושבתות במהלך התכנות מחדש.
    כמו כן, הודע למנהל ההתקן לדחות כל הפרעות מה-FPGA במהלך התכנות מחדש.

עיין בקוד המקור של תוכנית השירות לפרטים על היישום בפועל.

אַזהָרָה: אל תשנה את התצורה של בקר HPS DDR כאשר המעבד פועל.
פעולה זו עלולה לגרום לשגיאת מערכת קטלנית מכיוון שאתה עשוי לשנות את תצורת בקר ה-DDR כאשר יש עסקאות זיכרון יוצאות דופן מהמעבד. משמעות הדבר היא שכאשר ה-CPU פועל, אינך רשאי לתכנת מחדש את ליבת ה-FPGA עם תמונה המשתמשת ב-HPS DDR בתצורה אחרת.
זכור שמערכת OpenCL, ועיצוב ההתייחסות של חומרת הזהב הזמין עם Intel SoC FPGA Embedded Design Suite (EDS), מגדירים את HPS DDR למצב יחיד של 256 סיביות.
חלקי מערכת מעבד כגון מנבא הענפים או שולף טבלת הדפים עשויים להנפיק פקודות DDR גם כאשר נראה ששום דבר לא פועל במעבד.
לכן, זמן האתחול הוא הזמן הבטוח היחיד להגדרת תצורת בקר HPS DDR.
זה גם מרמז ש-U-boot חייב להיות בינארי גולמי file תמונה (.rbf) לטעינה לזיכרון. אחרת, ייתכן שאתה מפעיל את ה-HPS DDR עם יציאות שאינן בשימוש ב-FPGA ולאחר מכן יתכן שתשנה את תצורות היציאות לאחר מכן. מסיבה זו, מנהל ההתקן של ליבת OpenCL Linux אינו כולל עוד את ההיגיון הדרוש להגדרת תצורת בקר HPS DDR.
חבילת ה-SW3 הכפולה בשורה (DIP) בערכת הפיתוח של Cylone V SoC שולטים בצורה הצפויה של תמונת rbf (כלומר, האם file דחוס ו/או מוצפן). C5soc, ו- Golden Hardware Reference Design הזמין עם SoC EDS, כוללים תמונות rbf דחוסות אך לא מוצפנות. הגדרות מתג SW3 DIP המתוארות ב- Intel FPGA SDK עבור OpenCL Cyclone V SoC Getting Started Guide תואמות לתצורת תמונת rbf זו.

קישורים קשורים

  • ממשקי HPS-FPGA
  • הגדרת מתגי SW3

1.4.1 פרטי ארכיטקטורת מערכת FPGA
התמיכה בפלטפורמת ההתייחסות של ערכת הפיתוח של Cyclone V SoC מבוססת על Stratix® V Reference Platform (s5_ref), הזמינה עם Intel FPGA SDK עבור OpenCL.
הארגון הכולל של מערכת c5soc Qsys ומנהל ההתקן של הליבה דומים מאוד לאלה שב-s5_ref.
רכיבי הליבה הבאים של FPGA זהים גם ב-c5soc וגם ב-s5_ref:

  • חסימת VERSION_ID
  • מנגנון מנוחה
  • מחלק בנק זיכרון
  • ממשק סנופ של מטמון
  • שעון גרעין
  • בלוקים של גישה לרישום בקרת (CRA).

1.5 בניית תמונת כרטיס SD Flash
מכיוון שה-Cyclone V SoC FPGA הוא מערכת מלאה על שבב, אתה אחראי לספק את ההגדרה המלאה של המערכת. אינטל ממליצה לספק אותו בצורה של תמונת כרטיס הבזק מסוג SD. Intel FPGA SDK למשתמש OpenCL יכול פשוט לכתוב את התמונה לכרטיס ה-Micro SD Flash ולוח ה-SoC FPGA מוכן לשימוש.
שינוי תמונת כרטיס SD Flash קיימת בעמוד 13
אינטל ממליצה פשוט לשנות את התמונה הזמינה עם פלטפורמת העזרה של Cyclone V SoC Development Kit. יש לך גם אפשרות ליצור תמונת כרטיס פלאש SD חדשה.
יצירת תמונת כרטיס SD Flash בעמוד 14
יש לך גם אפשרות ליצור תמונת כרטיס פלאש SD חדשה.

1.5.1 שינוי תמונת כרטיס SD Flash קיים
אינטל ממליצה פשוט לשנות את התמונה הזמינה עם Cyclone V SoC
פלטפורמת התייחסות ערכת פיתוח. יש לך גם אפשרות ליצור תמונת כרטיס פלאש SD חדשה.
תמונת c5soc linux_sd_card_image.tgz file זמין בספריית ALTERAOCLSDKROOT/board/c5soc, כאשר ALTERAOCLSDKROOT מצביע על הנתיב של Intel FPGA SDK עבור ספריית ההתקנה של OpenCL.

תְשׁוּמַת לֵב: כדי לשנות את תמונת כרטיס הבזק של SD, אתה חייב להיות בעל הרשאות שורש או sudo.

  1. כדי לבטל את הדחיסה של $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, הפעל את הפקודה tar xvfzlinux_sd_card_image.tgz.
  2. קומפל את ה-hello_world OpenCL לשעברampעיצוב באמצעות תמיכת הפלטפורמה המותאמת אישית שלך. שנה את שם ה-.rbf file ש-Intel FPGA SDK for OpenCL Offline Compiler מייצר כ-opencl.rbf, וממקם אותו על מחיצת fat32 בתוך תמונת כרטיס הבזק של SD.
    אתה יכול להוריד את ה-hello_world לשעברample design מ-OpenCL Design Exampדף les על Altera webאֲתַר.
  3. הצב את ה-.rbf file לתוך מחיצת fat32 של תמונת כרטיס הפלאש.
    תְשׁוּמַת לֵב: מחיצת fat32 חייבת להכיל גם את zImage file ואת ה-.rbf file. ללא .rbf file, תתרחש שגיאה קטלנית בעת הכנסת מנהל ההתקן.
  4. לאחר שתיצור את תמונת כרטיס ה-SD, כתוב אותה לכרטיס מיקרו SD על ידי הפעלת הפקודה הבאה: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. כדי לבדוק את תמונת כרטיס ה-SD שלך, בצע את המשימות הבאות:
    א. הכנס את כרטיס הבזק מסוג מיקרו SD ללוח ה-SoC FPGA.
    ב. הפעל את הלוח.
    ג. הפעל את פקודת השירות aocl diagnose.

1.5.2 יצירת תמונת כרטיס SD Flash
יש לך גם אפשרות ליצור תמונת כרטיס פלאש SD חדשה. הוראות כלליות לבניית תמונת כרטיס פלאש SD חדשה ובנייה מחדש של תמונת כרטיס פלאש SD קיימת זמינות בדף GSRD v14.0.2 - כרטיס SD של RocketBoards.org webאֲתַר.
השלבים שלהלן מתארים את ההליך ליצירת תמונת linux_sd_card_image.tgz מתמונת כרטיס הבזק מסוג Golden System Reference Design (GSRD):
פֶּתֶק:
כדי ליצור את התמונה מתמונת c5soc, בצע את כל המשימות הרלוונטיות המפורטות בהליך זה.

  1. הורד ופרק את תמונת כרטיס ההבזק של GSRD SD גרסה 14.0 מ- Rocketboards.org.
  2. הר את file טבלת ההקצאה (fat32) ומורחבת file מחיצות מערכת (ext3) בתמונה זו כהתקני לולאה אחורה. כדי להרכיב מחיצה, בצע את השלבים הבאים:
    א. קבע את תחילת הבתים של המחיצה בתוך התמונה על ידי הפעלת ה-/sbin/fdisk -lu image_file פְּקוּדָה.
    למשלample, למחיצה מספר 1 מסוג W95 FAT יש היסט בלוק של 2121728. עם 512 בתים לבלוק, היסט הבתים הוא 512 בתים x 2121728 = 1086324736 בתים.
    ב. זהה התקן לולאה חופשי (לדוגמהample, /dev/loop0) על ידי הקלדת הפקודה losetup -f.
    ג. בהנחה ש-/dev/loop0 הוא התקן הלולאה החופשי, הקצה את תמונת כרטיס ההבזק שלך למכשיר בלוק הלולאה על ידי הפעלת ה-losetup /dev/loop0 image_file -0 1086324736 הפקודה.
    ד. הרכב את התקן הלולאה על ידי הפעלת הפקודה mount /dev/loop0 /media/disk1.
    בתוך התמונה file, /media/disk1 היא כעת מחיצת fat32 מותקנת.
    ה. חזור על שלבים a עד d עבור מחיצת ext3.
  3. הורד את גרסת Cyclone V SoC FPGA של חבילת Intel FPGA Runtime Environment for OpenCL ממרכז ההורדות ב-Altera webאֲתַר.
    א. לחץ על כפתור הורד לצד מהדורת תוכנת Quartus Prime.
    ב. ציין את גרסת הגרסה, מערכת ההפעלה ושיטת ההורדה.
    ג. לחץ על הכרטיסייה תוכנה נוספת ובחר להוריד את Intel FPGA
    סביבת זמן ריצה עבור OpenCL Linux Cyclone V SoC TGZ.
    ד. לאחר הורדת ה- aocl-rte- .arm32.tgz file, לפרק אותו ל
    ספרייה שבבעלותך.
  4. הנח את ה- aocl-rte- שנפרק ספריית .arm32 לתוך ספריית /home/root/opencl_arm32_rte במחיצת ext3 של התמונה file.
  5. מחק את תיקיות החומרה של הפלטפורמה המותאמת אישית שלך, ולאחר מכן הצב את הפלטפורמה המותאמת בספריית המשנה של הלוח של /home/root/ opencl_arm32_rte.
  6. צור את init_opencl.sh file בספריית /home/root עם התוכן הבא: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ ייצוא PATH=$ALTERAOCLSDKROOT/bin:$PATH ייצוא LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    משתמש ה-SDK מפעיל את הפקודה source ./init_opencl.sh כדי לטעון את משתני הסביבה ואת מנהל ההתקן של ליבת OpenCL Linux.
  7. אם אתה צריך לעדכן את המטען מראש, ה-DTS files, או ליבת לינוקס, אתה צריך את המהדר arm-linux-gnueabihf-gcc מה-SoC EDS. עקוב אחר ההוראות המפורטות במדריך למשתמש של Intel SoC FPGA Embedded Design Suite כדי לרכוש את התוכנה, להדר אותן מחדש ולעדכן את הרלוונטיות files על מחיצת fat32 המותקנת.
    תְשׁוּמַת לֵב: סביר להניח שתצטרך לעדכן את הטין מראש אם לפלטפורמה המותאמת אישית שלך יש שימושי פינים שונים מאלה שב-c5soc.
    זכור: אם אתה מהדר מחדש את ליבת לינוקס, הידור מחדש את מנהל ההתקן של ליבת לינוקס עם אותו מקור ליבת לינוקס fileס. אם יש חוסר התאמה בין מנהל ההתקן של ליבת לינוקס לליבת לינוקס, מנהל ההתקן לא ייטען. כמו כן, עליך להפעיל את ה-CMA.
    עיין בקומפילציה מחדש של ליבת לינוקס למידע נוסף.
  8. קומפל את ה-hello_world OpenCL לשעברampעיצוב באמצעות תמיכת הפלטפורמה המותאמת אישית שלך. שנה את שם ה-.rbf file ש-Intel FPGA SDK for OpenCL Offline Compiler מייצר כ-opencl.rbf, וממקם אותו על מחיצת fat32 בתוך תמונת כרטיס הבזק של SD.
    אתה יכול להוריד את ה-hello_world לשעברample design מ-OpenCL Design Exampדף les על Altera webאֲתַר.
    9. לאחר שתשמור את כל הדרוש fileעל גבי תמונת כרטיס הבזק, הפעל את הפקודות הבאות:
    א. סינכרון
    ב. הסר את /media/disk1
    ג. לפרק איפה הוא שם הספרייה שבו אתה משתמש להרכבת מחיצת ext3 ב-3 בעמוד 3 (לדוגמהample, /media/disk2).
    ד. losetup -d /dev/loop0
    ה. losetup -d /dev/loop1
  9. דחוס את תמונת כרטיס הבזק של SD על ידי הפעלת הפקודה הבאה: tar cvfz .tgz linux_sd_card_image
  10. לספק את .tgz file בתוך ספריית הבסיס של הפלטפורמה המותאמת אישית שלך.
  11. כדי לבדוק את תמונת כרטיס ה-SD שלך, בצע את המשימות הבאות:
    א. כתוב את התמונה הלא דחוסה שהתקבלה על גבי כרטיס פלאש מיקרו SD.
    ב. הכנס את כרטיס הבזק מסוג מיקרו SD ללוח ה-SoC FPGA.
    ג. הפעל את הלוח.
    ד. הפעל את פקודת השירות aocl diagnose.

קישורים קשורים

  • מדריך למשתמש של Intel SoC FPGA Embedded Design Suite
  • OpenCL Design Exampדף les על Altera webאֲתַר
  • קומפילציה מחדש של ליבת לינוקס בעמוד 16
    כדי להפעיל את ה-CMA, תחילה עליך לבצע קומפילציה מחדש של ליבת לינוקס.
  • שאילתת שם ההתקן של לוח ה-FPGA שלך (אבחון)

1.6 קומפילציה של ליבת לינוקס עבור Cyclone V SoC FPGA
לפני הפעלת יישומי OpenCL על לוח Cyclone V SoC FPGA, עליך להרכיב את מקור ליבת לינוקס, ולהדר ולהתקין את מנהל ההתקן של ליבת OpenCL Linux.

  1. קומפילציה מחדש של ליבת לינוקס בעמוד 16
    כדי להפעיל את ה-CMA, תחילה עליך לבצע קומפילציה מחדש של ליבת לינוקס.
  2. קומפילציה והתקנה של מנהל ההתקן של ליבת OpenCL Linux בעמוד 17 הידור את מנהל ההתקן של ליבת OpenCL Linux מול מקור ליבת ההידור.

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

  1. לחץ על הקישור GSRD v14.0 – Compiling Linux בדף המשאבים של RocketBoards.org webאתר כדי לגשת להוראות על הורדה ובנייה מחדש של קוד המקור של ליבת לינוקס.
    לשימוש עם ™Intel FPGA SDK עבור OpenCL, ציין socfpga-3.13-rel14.0 בתור .
  2. הערה: תהליך הבנייה יוצר את הקשת/זרוע/configs/socfpga_defconfig file. זֶה file מציין את ההגדרות עבור תצורת ברירת המחדל של socfpga.
    הוסף את השורות הבאות לתחתית הקשת/זרוע/configs/socfpga_defconfig file.
    CONFIG_MEMORY_ISOLATION=y
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    CONFIG_CMA_ALIGNMENT=8
    CONFIG_CMA_AREAS=7
    ערך התצורה CONFIG_CMA_SIZE_MBYTES מגדיר את הגבול העליון של המספר הכולל של זיכרון רציף פיזית זמין. אתה יכול להגדיל ערך זה אם אתה זקוק ליותר זיכרון.
  3. תְשׁוּמַת לֵב: הכמות הכוללת של זיכרון פיזי זמין למעבד ARM בלוח SoC FPGA היא 1 GB. אינטל לא ממליצה להגדיר את מנהל ה-CMA קרוב ל-1 GB.
  4. הפעל את הפקודה make mrproper כדי לנקות את התצורה הנוכחית.
  5. הפעל את הפקודה make ARCH=arm socfpga_deconfig.
    ARCH=arm מציין שברצונך להגדיר את ארכיטקטורת ARM.
    socfpga_defconfig מציין שאתה רוצה להשתמש בתצורת ברירת המחדל של socfpga.
  6. הפעל את פקודת הייצוא CROSS_COMPILE=arm-linux-gnueabihf-.
    פקודה זו מגדירה את משתנה הסביבה CROSS_COMPILE לציין את הקידומת של שרשרת הכלים הרצויה.
  7. הפעל את הפקודה make ARCH=arm zImage. התמונה המתקבלת זמינה ב-arch/arm/boot/zImage file.
  8. מקם את zImage file לתוך מחיצת fat32 של תמונת כרטיס הפלאש. להוראות מפורטות, עיין במדריך למשתמש GSRD הספציפי ל-Cyclone V SoC ל-FPGA באתר Rocketboards.org.
  9. הערה: כדי להכניס כהלכה את מנהל ההתקן של ליבת OpenCL Linux, טען תחילה SDKgenerated.rbf file על ה-FPGA.
    כדי ליצור את .rbf file, הרכיב עיצוב SDK לדוגמאampלי עם פלטפורמת העזרה של ערכת פיתוח Cyclone V SoC כפלטפורמת המותאמת הממוקדת.
    9. הנח את ה-.rbf file לתוך מחיצת fat32 של תמונת כרטיס הפלאש.
    שימו לב: מחיצת fat32 חייבת להכיל גם את zImage file ואת ה-.rbf file. ללא .rbf file, תתרחש שגיאה קטלנית בעת הכנסת מנהל ההתקן.
  10. הכנס את כרטיס ה-Micro SD המתוכנת, המכיל את תמונת כרטיס ה-SD ששינתם או יצרתם קודם לכן, לתוך ערכת הפיתוח של Cyclone V SoC ולאחר מכן הפעל את לוח ה-SoC FPGA.
  11. אמת את הגרסה של ליבת לינוקס המותקנת על ידי הפעלת הפקודה uname -r.
  12. כדי לוודא שאתה מפעיל את ה-CMA בהצלחה בליבה, כאשר לוח ה-SoC FPGA מופעל, הפעל את הפקודה grep init_cma /proc/kallsyms.
    CMA מופעל אם הפלט אינו ריק.
  13. כדי להשתמש בליבת לינוקס שהידור מחדש עם ה-SDK, הידור והתקן את מנהל ההתקן של ליבת לינוקס.

קישורים קשורים

  • מדריכים למשתמש של Golden System Reference Design (GSRD).
  • בניית תמונת כרטיס SD Flash בעמוד 13
    מכיוון שה-Cyclone V SoC FPGA הוא מערכת מלאה על שבב, אתה אחראי לספק את ההגדרה המלאה של המערכת.

1.6.2 קומפילציה והתקנה של מנהל ההתקן של OpenCL Linux Kernel
הידור את מנהל ההתקן של ליבת OpenCL Linux מול מקור הליבה המהודר.

מקור מנהל ההתקן זמין בגרסת Cyclone V SoC FPGA של Intel FPGA Runtime Environment עבור OpenCL. בנוסף, ודא שטעינת Intel FPGA SDK עבור rbf שנוצר על ידי OpenCL file לתוך ה-FPGA כדי למנוע התקנה לא נכונה של מודול ליבת לינוקס.

  1. הורד את גרסת Cyclone V SoC FPGA של חבילת Intel FPGA Runtime Environment for OpenCL ממרכז ההורדות ב-Altera webאֲתַר.
    א. לחץ על כפתור הורד לצד מהדורת תוכנת Quartus Prime.
    ב. ציין את גרסת הגרסה, מערכת ההפעלה ושיטת ההורדה.
    ג. לחץ על הכרטיסייה תוכנה נוספת ובחר להוריד את Intel FPGA
    סביבת זמן ריצה עבור OpenCL Linux Cyclone V SoC TGZ.
    ד. לאחר הורדת ה- aocl-rte- .arm32.tgz file, לפרק אותו ל
    ספרייה שבבעלותך.
    מקור הדרייבר נמצא ב-aocl-rte- ‎.arm32/board/c5soc/ ספריית מנהל ההתקן.
  2. כדי להדר מחדש את מנהל ההתקן של ליבת OpenCL Linux, הגדר את ערך KDIR ב-Make של מנהל ההתקןfile לספרייה המכילה את מקור ליבת לינוקס files.
  3. הפעל את הפקודה Export CROSS_COMPILE=arm-linux-gnueabihf- כדי לציין את הקידומת של שרשרת הכלים שלך.
  4. הפעל את הפקודה make clean.
  5. הפעל את הפקודה make כדי ליצור את aclsoc_drv.ko file.
  6. העבר את ספריית opencl_arm32_rte ללוח Cyclone V SoC FPGA.
    הפעלת ה-scp -r root@your-ipaddress: הפקודה ממקמת את סביבת זמן הריצה בספריית/home/root.
  7. הפעל את הסקריפט init_opencl.sh שיצרת כשבנית את תמונת כרטיס ה-SD.
  8.  הפעל את פקודת השירות aocl diagnose. כלי האבחון יחזיר תוצאה חולפת לאחר שתפעיל את init_opencl.sh בהצלחה.

1.7 בעיות ידועות
נכון לעכשיו, קיימות מגבלות מסוימות על השימוש ב- Intel FPGA SDK עבור OpenCL עם פלטפורמת Cyclone V SoC Development Kit Reference Platform.

  1. אינך יכול לעקוף את שמות הספקים והלוחים המדווחים על ידי המחרוזות CL_DEVICE_VENDOR ו-CL_DEVICE_NAME של הקריאה clGetDeviceInfo() .
  2. אם המארח מקצה זיכרון קבוע במערכת DDR משותפת (כלומר, HPS DDR) והוא משנה את הזיכרון הקבוע לאחר ביצוע ליבה, הנתונים בזיכרון עלולים להיות מיושנים. בעיה זו מתעוררת מכיוון שליבת FPGA אינה יכולה לחטט בעסקאות DDR של CPU ל-HPS.
    כדי למנוע מפעולות הליבה הבאות לגשת לנתונים מיושנים, יישם אחת מהדרכים הבאות לעקיפת הבעיה:
    • אל תשנה זיכרון קבוע לאחר האתחול שלו.
    • אם אתה דורש מערכי נתונים מרובים __קבועים, צור מספר מאגרי זיכרון קבועים.
    • אם זמין, הקצו זיכרון קבוע ב-FPGA DDR בלוח ההאצה שלכם.
  3. כלי השירות SDK ב-ARM תומך רק בתוכנית ובפקודות אבחון של כלי השירות.
    פקודות ההבזק, ההתקנה והסרת ההתקנה אינן חלות על ערכת הפיתוח של Cyclone V SoC מהסיבות הבאות:
    א. על כלי ההתקנה לקמפל את מנהל ההתקן של ליבת Linux aclsoc_drv ולאפשר אותו ב-SoC FPGA. מכונת הפיתוח צריכה לבצע את ההידור; עם זאת, הוא כבר מכיל מקורות ליבת לינוקס עבור ה-SoC FPGA. מקורות ליבת לינוקס עבור מכונת הפיתוח שונים מאלה של SoC FPGA. המיקום של מקורות ליבת לינוקס עבור ה-SoC FPGA כנראה לא ידוע למשתמש ה-SDK. באופן דומה, תוכנית השירות להסרת ההתקנה אינה זמינה גם לערכת הפיתוח של Cyclone V SoC.
    כמו כן, אספקת aclsoc_drv ללוח SoC היא מאתגרת מכיוון שהפצת ברירת המחדל של ערכת הפיתוח של Cyclone V SoC אינה מכילה את ליבת לינוקס כולל files או מהדר GNU Compiler Collection (GCC).
    ב. כלי ה-Flash דורש הצבת .rbf file של עיצוב OpenCL על מחיצת FAT32 של כרטיס הבזק מסוג Micro SD. נכון לעכשיו, מחיצה זו אינה מותקנת כאשר משתמש ה-SDK מפעיל את הלוח. לכן, הדרך הטובה ביותר לעדכן את המחיצה היא להשתמש בקורא כרטיסי פלאש ובמכונת הפיתוח.
  4. בעת מעבר בין Intel FPGA SDK עבור OpenCL Offline Compiler files (.aocx) שמתאימות לגרסאות לוח שונות (כלומר, c5soc ו-c5soc_sharedonly), עליך להשתמש בכלי השירות של ה-SDK כדי לטעון את ה-.aocx file לגרסה החדשה של הלוח בפעם הראשונה. אם אתה פשוט מפעיל את היישום המארח באמצעות גרסה חדשה של לוח אבל ה-FPGA מכיל את התמונה מגרסה אחרת של לוח, עלולה להתרחש שגיאה קטלנית.
  5. ה-.qxp file אינו כולל את הקצאות מחיצת הממשק מכיוון שתוכנת Quartus Prime עומדת בעקביות בדרישות התזמון של מחיצה זו.
  6. כאשר אתה מפעיל את הלוח, כתובת בקרת הגישה למדיה (MAC) שלו מוגדרת למספר אקראי. אם מדיניות ה-LAN שלך אינה מאפשרת התנהגות זו, הגדר את כתובת ה-MAC על ידי ביצוע המשימות הבאות:
    א. במהלך הפעלת U-Boot, הקש על מקש כלשהו כדי להיכנס לשורת הפקודה U-Boot.
    ב. הקלד setenv ethaddr 00:07:ed:00:00:03 בשורת הפקודה.
    אתה יכול לבחור כל כתובת MAC.
    ג. הקלד את הפקודה saveenv.
    ד. הפעל מחדש את הלוח.

1.8 היסטוריית תיקונים של מסמכים
טבלה 1.
מסמך היסטוריית תיקונים של Intel FPGA SDK עבור OpenCL Cyclone V SoC
מדריך להעברת פלטפורמת ערכת פיתוח

תַאֲרִיך גִרְסָה שינויים
מאי-17 2017.05.08 •שחרור תחזוקה.
אוקטובר 2016 2016.10.31 •מיתוג מחדש של Altera SDK עבור OpenCL ל-Intel FPGA SDK עבור OpenCL.
•מיתוג מחדש של Altera Offline Compiler ל-Intel FPGA SDK עבור OpenCL Offline Compiler.
מאי-16 2016.05.02 • הוראות ששונו על בנייה ושינוי של תמונת כרטיס פלאש SD.
• הוראות שונו על הידור מחדש של ליבת לינוקס ומנהל ההתקן של ליבת OpenCL Linux.
נובמבר 15 2015.11.02 • שחרור תחזוקה, ושינו מופעים של Quartus II ל- Quartus Prime.
מאי-15 15.0.0 •בתצורה מחדש של FPGA, הוסרה הוראה לתכנות מחדש את ליבת ה-FPGA
עם . תמונת rbf על ידי הפעלת החתול fileשם>. rbf
> הפקודה /dev/ fpga0 מכיוון ששיטה זו אינה מומלצת.
דצמבר -14 14.1.0 •שם המסמך שונה ל-Altera Cyclone V SoC Development Kit Reference Platform Porting Guide.
•עדכן את כלי התכנות מחדש לתוכנית aoclfilename>.aocx פקודת השירות.
•עדכן את כלי האבחון ל-aocl diagnose ו-aocl diagnose פקודת השירות.
•עדכן את הנוהל בסעיף העברה של פלטפורמת ההתייחסות ללוח ה-SoC שלך כדי לכלול הוראות על העברה ושינוי של מחיצת לוח c5soc כדי ליצור מחיצה נקייה בתזמון עבור זרימת סגירת התזמון המובטחת.
• הוכנסו את הנושא עדכון פלטפורמת התייחסות מועברת כדי לשרטט את הנהלים עבור המשימות הבאות:
1. לא כולל בלוק מערכת המעבד הקשיח (HPS) במחיצת הלוח
2.עדכון תמונת כרטיס הבזק SD
•עדכן את הקטע בניית כרטיס SD Flash Image. מומלץ להשתמש בגרסה 14.0 של תמונת Golden System Reference Design (GSRD) כנקודת ההתחלה במקום התמונה הזמינה עם SoC Embedded Design Suite (EDS).
•עדכן את הסעיף הידור מחדש של ליבת לינוקס ו-OpenCL Linux Linux Driver:
1.נוספה הוראה להגדרת המשתנה CROSS COMPILE.
2. שינית את הפקודה שאתה מפעיל כדי לוודא שה-CMA מופעל בהצלחה.
יולי-14 14.0.0 •שיחרור ראשוני.

מסמכים / משאבים

intel FPGA SDK עבור OpenCL [pdfמדריך למשתמש
FPGA SDK עבור OpenCL, FPGA SDK, SDK עבור OpenCL, SDK

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *