GOWIN FPGA פיתוח לוח RISCV תכנות
זכויות יוצרים © 2022 Guangdong Gowin Semiconductor Corporation. כל הזכויות שמורות.
הוא סימן מסחרי של Guangdong Gowin Semiconductor Corporation והוא רשום בסין, משרד הפטנטים והסימנים המסחריים בארה"ב ובמדינות אחרות. כל המילים והלוגו האחרים המזוהים כסימנים מסחריים או כסימני שירות הם רכושם של בעליהם בהתאמה. אין לשכפל או לשדר שום חלק ממסמך זה בשום צורה או על ידי כל סימן, אלקטרוני, מכני, צילום, הקלטה או אחר, ללא הסכמה מראש ובכתב של GOWINSEMI.
כתב ויתור
GOWINSEMI אינה נושאת באחריות ואינה מספקת אחריות (אם מפורשת או משתמעת) ואינה אחראית לכל נזק שייגרם לחומרה, לתוכנה, לנתונים או לרכוש שלך הנובע משימוש בחומרים או בקניין הרוחני למעט כפי שמתואר בתנאים וההגבלות של GOWINSEMI של מכירה. יש להתייחס לכל המידע במסמך זה כאל מידע ראשוני. GOWINSEMI רשאית לבצע שינויים במסמך זה בכל עת ללא הודעה מוקדמת. כל מי שמסתמך על התיעוד הזה צריך ליצור קשר עם GOWINSEMI לקבלת התיעוד הנוכחי והשגיאות.
היסטוריית גרסאות
תַאֲרִיך | גִרְסָה | תֵאוּר |
04/29/2019 | 1.0E | פורסמה גרסה ראשונית. |
11/11/2022 |
1.1E |
|
מָבוֹא
AE250 מבוא
AE250 היא מערכת RISC-V MCU של 32 סיביות; המבנה שלו מוצג באיור 1-1.
איור 1-1 תרשים מבנה AE250
מבוסס על לוח הפיתוח של Gowin FPGA, מערכת הפיתוח והניפוי של MCU RISC-V AE250 מוצגת באיור 1-2.
איור 1-2 תרשים מבנה מערכת פיתוח ואיתור באגים
שבב ה-FPGA בלוח הפיתוח מוגדר כ-AE250 MCU באמצעות מתכנת Gowin במחשב, לאחר חיבור כבל Debug, ניתן לבצע את הפיתוח והניפוי של התוכנית המשובצת עם תוכנת AndeSight RDS v311.
הכנות
לפני השימוש ב-Gowin FPGA ו-AE250 לפיתוח וניפוי באגים, יש להכין את הכלים הבאים:
- סדרת Gowin GW2A של לוח פיתוח FPGA.
- חבילת התקנת תוכנת Gowin להגדרה והורדה של שבב FPGA.
- חבילת ההתקנה של AndeSight RDS v311 לפיתוח וניפוי באגים של התוכנית המשובצת.
- Debug Cable משמש להורדה וניפוי באגים של התוכנית המוטבעת, וברירת המחדל היא AICE-MINI+; המשתמשים צריכים לרכוש אותו בעצמם.
פֶּתֶק!
- אם הוא צריך להוציא מידע דרך UART, יש צורך בכבל UART ל-USB.
- יש צורך בציוד היקפי אחר לשימוש.
שלבי פיתוח וניפוי באגים
השלבים הבסיסיים לפיתוח וניפוי באגים של RISC-V AE250 MCU המבוסס על לוח הפיתוח GW2A-55C הם כדלקמן:
- התקנת תוכנות: תוכנת Gowin משמשת להגדרה ויצירת עיצוב AE250 RTL ויצירת ה- Bitstream file של העיצוב; תוכנת AndeSight RDS v311 משמשת לפיתוח וניפוי באגים בתוכנות משובצות; נדרשות גם תוכנות ומנהלי התקנים אחרים לניפוי באגים.
- הגדר את ספק הכוח וכבל ההורדה של לוח הפיתוח. ה-Bitstream file של AE250_chip מוריד לשבב FPGA בלוח הפיתוח באמצעות Gowin Programmer, ו-AE250 פועל בלוח הפיתוח.
- פתח תוכנת RDS ליצירת פרויקט מוטבע חדש או פתיחת פרויקט קיים לקידוד, קומפילציה ופעולות אחרות. חבר את כבל ניפוי הבאגים המשמש לאיפוי באגים AE250, הורד את תוצאת הידור הפרויקט לזיכרון ההוראות (ILM) ב-AE250, והתחל באגים בשבב.
- במהלך איתור באגים, אתה יכול להשתמש בכבל UART ל-USB כדי לחבר את ממשק UART של AE250 למחשב, השתמש במסוף הטורי המובנה ב-RDS כדי להפעיל את פעולות הקלט והפלט. אתה יכול להשתמש ב-GPIO כדי להתחבר למחווני LED, למקשים או לפינים חיצוניים לפעולות קלט/פלט; ניתן לבחור גם I2C, SPI, Ethernet וציוד היקפי אחר לשימוש.
- AE250 יכול להתחבר ל-Flash באמצעות SPI, להוריד את תוצאת הקומפילציה של תוכנית משובצת ל-Flash באמצעות מתכנת Gowin; כאשר השבב מופעל, AE250 יקרא אוטומטית את התוכנית המוטבעת ב-SPI Flash ויתחיל. אתה יכול לעשות שימוש חוזר ב-Flash ששומר את FPGA Bitstream; חלקם יכולים לשמור את זרם הסיביות של FPGA, ואחרים יכולים לשמור את תוצאות הקומפילציה של תוכניות משובצות. זוהי שיטה מעשית וחסכונית.
אתה יכול לראות את פרק 2 הוראות לחיבור כבל ניפוי, פרק
3 השתמש בהוראות עבור RDS, ובפרק 4 עיצוב עזר לשלבים מפורטים.
איתור באגים הוראות חיבור כבלים
RDS + AE250 משתמשים בכבל ניפוי באגים AICE-MINI+ כברירת מחדל; החלק החיצוני מוצג משמאל באיור 2-1, והפינים מוצגים מימין באיור 2-1. זה ממשק 12 פינים. יש לציין כי סיכה 1 ריקה באיור. כאשר הכבל מחובר כהלכה וה-RDS נפתח, נורית ה-LED האדומה המסומנת בתיבה צהובה באיור תכבה.
איור 2-1 כבל ניפוי באגים של AICE-MINI+ והפינים שלו
הגדרת הפינים של כבל ניפוי באגים AICE-MINI+ היא כפי שמוצג בטבלה 2-1. יש לציין שפין 1 מוגדר כ-No Connection (NC), המתאים לריק. VREF צריך לחבר פין מתח של 3.3V, ו-GND צריך לחבר רק את פין 3 או פין 5.
טבלה 2-1 הגדרת כבלים לניפוי באגים של AICE-MINI+
מספר PIN | פין כבל AICE-MINI+ Debug |
1 | NC |
2 | TSRST_N |
3 | GND |
4 | TTMS |
5 | GND |
6 | TCK |
7 | VREF |
8 | NC |
9 | NC |
10 | TTRST_N |
11 | TTDO |
12 | TTDI |
שימוש בהוראות עבור RDS
התקנת RDS
פתח את חבילת ההתקנה והזן את Windows/Disk1; לחץ פעמיים על setup.exe כדי להתקין אותו. אין צורך בהגדרות מיוחדות במהלך ההתקנה. במהלך ההתקנה תופיע תיבת דו-שיח ששואלת אם להתקין את מנהל ההתקן, אנא בחר כן. לשלבי התקנה, ראה
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, אותו ניתן למצוא בחבילת ההתקנה.
- בעת הגדרת נתיב ההתקנה ונתיב סביבת העבודה, אל תכלול תווים סיניים או רווח, אחרת זה יקבל שגיאת זמן ריצה.
- הגרסה הנוכחית של RDS תומכת בכבל AICE-MINI+ כברירת מחדל.
- ייתכן שמתכנת GOWIN לא יוכל להתחבר ללוח הפיתוח לאחר התקנת RDS, אשר ניתן לתקן על ידי התקנה מחדש של מנהל ההתקן של Gowin Programmer.
- למספר סידורי ותעודה files, אנא צור קשר עם Gowin Semiconductor Corp.
צור פרויקט חדש
נְקִישָׁה File > חדש > פרוייקט > פרוייקט Andes C > הבא בממשק RDS כדי להיכנס לממשק התצורה של New C Project, כפי שמוצג באיור 3-1.
איור 3-1 צור פרויקט חדש
עבור פרויקט C החדש, יש להגדיר את הפרמטרים הבאים:
- שם הפרויקט
- מיקום: מיקום ברירת המחדל הוא סביבת העבודה הנוכחית.
- תצורת החיבור מוגדרת ל-ICE, מה שמציין שלוח הפיתוח מחובר באמצעות כבל ניפוי באגים של ICE. אם האמולטור משמש כפלטפורמת בדיקה, אנא בחר SID.
- עבור Chip Profile, בחר ADP-AE250-N25-GOWIN, אשר מותאם לפי Gowin FPGA.
- סוג הפרויקט כולל פרויקט ריק ופרויקט Hello World ANSI C.
- עבור Toolchains, nds32le-elf-mculib-v5m הוא ברירת המחדל.
לאחר יצירת פרויקט חדש, לחץ באמצעות לחצן העכבר הימני על שם הפרויקט בסייר הפרויקטים, בחר Build Project מהתפריט הנפתח או לחץ על " " בסרגל הכלים כדי לקמפל ולקשר את הפרויקט; בחר Clean Project מהתפריט הנפתח כדי להפוך את הפרויקט לנקי.
ייבוא וייצוא פרויקט
לחץ לחיצה ימנית על החלל של Project Explorer כדי לבחור "ייבוא" או "ייצוא", כפי שמוצג באיור 3-2.
איור 3-2 ייבוא/ייצוא פרויקט
לחץ על "ייבוא > כללי > פרויקט קיים לסביבת העבודה" כדי לייבא פרויקט, והממשק הוא כפי שמוצג באיור 3-3. בעת בחירת "בחר ספריית שורש", ייבא את הפרויקט לתיקיה; בעת בחירת "בחר קובץ ארכיון", ייבא את הפרויקט ב-zip.
איור 3-3 ייבוא פרויקט
בחר "ייצוא... > ארכיון File" כדי לפתוח את ממשק פרויקט הייצוא, כפי שמוצג באיור 3-4. לאחר בחירת הפרויקט לייצוא, פורמט הדחיסה, נתיב השמירה וכו' ניתן להשלים את הייצוא.
איור 3-4 ייצוא פרויקט
הורד תוכניות ל-Flash
AE250 תומך בהתחלה מ-Flash, לאחר מכן קורא את התוכנית המוטבעת מ-Flash דרך ממשק SPI ומאחסן אותה ב-ILM, ולאחר מכן התוכנית המוטבעת מבוצעת. השיטה המומלצת היא לעשות שימוש חוזר ב-SPI Flash שחוסך FPGA Bitstream; השתמש בחצי הראשון של Flash כדי לשמור את ה-FPGA Bitstream, ובשאר כדי לשמור את הבינארי files של תוכניות משובצות.
- פתח את מחולל ליבת ה-IP בתוכנת Gowin וקרא לפרמטרים של AE250 RTL. לחץ פעמיים על ה-SMU כדי לפתוח את ממשק SMU והגדר את "System Reset Vector Default" ל-0x80400000, כפי שמוצג באיור 3-5. הגדר את המרחב של SPI Flash 0~0x400000 עם סך של 4M בתים ככתובת השמירה של Bitstream; החל מ-0x400000 משמש ככתובת השמירה של בינארי files של תוכניות משובצות.
איור 3-5 מערכת איפוס וקטור ברירת מחדל
- לחץ פעמיים על SPI1 כדי לפתוח את ממשק SPI1, סמן את "SPI1 Support" והגדר את "SPI1 Memory Map Space Base Address" ל-0x80400000, כפי שמוצג באיור 3 6.
איור 3-6 תצורת SPI1
- באילוצים הפיזיים של עיצוב RTL, יש לחבר את ממשק SPI1 ל-SPI Flash, ואת ממשק SPI1 צריך להיות מוגבל פיזית לפי הטבלה הבאה. עבור שבבי FPGA שונים, גם המיקום של ממשק MSPI שונה, והאילוץ צריך להיות ספציפי למצב הספציפי.
טבלה 3-1 מגבלות פיזיות של ממשק SPI1ממשק AE250 SPI1 ממשק FPGA MSPI CSN MCSN CLK MCLK מיסו MSO MOSI MSI - השתמש מחדש בממשק MSPI כ-IO רגיל. בחלון "תהליך" של תוכנת Gowin, לחץ לחיצה ימנית על "מקום ומסלול", בחר "תצורה" בתפריט המוקפץ; בחר בכרטיסייה "PIN תכליתי כפול", וסמן "השתמש ב-MSPI כ-IO רגיל" ולחץ על "אישור" כדי לסיים את המיקום והניתוב.
איור 3-7 הגדר את ממשק MSPI ל-IO רגיל
- שנה הגדרות פרמטרים של תוכנית משובצת. ראשית, שנה את הפרמטרים של Bootloader בסקריפט המקשר. מכיוון שסקריפט המקשר בתוכנית המשובצת AE250 נוצר באופן אוטומטי על ידי SAG file, יש לשנותו ב-SAG file. פתח את ae250.sag, מצא את BOOTLOADER ושנה אותו לערך של System Reset Vector Default בעיצוב RTL, כפי שמוצג באיור 3-8. לאחר מכן שנה את config.h. פתח את src/bsp/config/config.h ומצא את הגדרת המאקרו
"BUILD_MODE" ושנה אותו ל-"BUILD_BURN".
איור 3-8 הגדרת פרמטרים של bootloader ae250.sag
פֶּתֶק!
-
- הפרמטר צריך להיות עקבי עם הערך של System Reset Vector Default של הפרמטר RTL.
- שנה את הגדרות ההידור; לחץ באמצעות לחצן העכבר הימני על שם הפרויקט המוטבע, בחר הגדרות בנייה; בחר בכרטיסייה "Objcopy > General", ובטל את הסימון של "השבת". (אל תיצור פלט אוטומטי file.)
הידור מחדש של התוכנית המוטבעת כדי ליצור בינארי files של הפרויקט המוטבע, והורד את files ל-SPI Flash 0x400000 כתובת באמצעות Gowin Programmer חיצוני Flash C Bin במצב.
סנתז והצב ונתב את עיצוב ה-RTL שהשתנה שוב, והורד אותו לכתובת SPI Flash 0x000000 באמצעות מצב פלאש חיצוני של Gowin Programmer.
איתור באגים על-שבב
לאחר הקומפילציה, ניתן להוריד את תוצאות הקומפילציה של הפרויקט המוטמע ללוח הפיתוח לצורך ניפוי באגים בשבב.
שנה config.h; פתח את src/bsp/config/config.h, ומצא את הגדרת המאקרו BUILD_MODE; שנה אותו ל- BUILD_LOAD, והידור מחדש של התוכנית המוטבעת.
לחץ באמצעות לחצן העכבר הימני על שם הפרויקט בסייר הפרויקטים ובחר "ניפוי באגים בשם > תוכנית MCU" מהתפריט הנפתח. בפעם הראשונה, תופיע תיבת דו-שיח להגדרת "תצורת איתור באגים", כפי שמוצג באיור 3-9.
איור 3-9 תצורות ניפוי באגים
בכרטיסייה "אתחול", סמן את אפשרות "איפוס והחזק" כדי לעצור את התוכנית לפני ביצוע ההוראה הראשונה. הזן load בתיבת הפרמטרים מתחת לאפשרות זו כדי להוריד את תוצאות הקומפילציה של הפרויקט המוטבע לתוך ILM לפני ניפוי באגים על השבב.
ב"אפשרויות זמן ריצה", סמן "הגדר נקודת עצירה ב". הזן תווית, כגון main בתיבת הקלט. זה יכול להגדיר נקודת שבירה בתחילת הפונקציה הראשית. סמן את "המשך", והוא יתחיל את הפעולה הרציפה ישירות לאחר כניסה לניפוי באגים בשבב.
כאשר נכנסים לניפוי באגים בשבב, הוא עובר אוטומטית לניפוי הבאגים view ואזור יוצג, כפי שמוצג באיור 3-10. אזור זה הוא אזור הפעולה עבור ניפוי באגים על-שבב. כמה לחצני קיצור לניפוי באגים מוצגים בתיבה האדומה. משמאל לימין, הם מתכוונים להפעיל מחדש את DEBUG, להמשיך להפעיל, להשעות, לסיים, להתנתק, לקשר לתהליך אחד, להיכנס למצב, לעבור, להחזיר שלב ולשלב הוראות; במצב זה, בכל פעם שהוא מריץ הוראת הרכבה risc – v, אחרת בכל פעם שהוא מריץ הצהרת C.
פֶּתֶק!
הסמלים האפורים אומרים שהם אינם זמינים בשלב זה.
לחץ פעמיים על השמאל על מספר השורה בטקסט הקוד כדי להגדיר במהירות נקודות עצירה או לבטל נקודות עצירה, ולחץ לחיצה ימנית בטקסט הקוד כדי לבחור "הפעל לקו" מהתפריט המוקפץ.
איור 3-10 מבוא לחצני ניפוי באגים
איור 3-11 הוא חלון הצהרות הרכבה המציג את התוכן של הוראות הרכבה הפועלות בזמן אמת ב-ILM.
איור 3-11 חלון קוד הוראות הרכבה
שימוש במסוף טורי מובנה RDS
איור 3-12 מציג את מסוף UART המובנה בממשק RDS. אם אתה צריך להשתמש, לחץ על "חלון > הצג View > מסוף" בתפריט העליון כדי לפתוח את חלון "טרמינל", ולאחר מכן לחץ על "פתח מסוף" כדי ליצור מסוף טורי חדש. לאחר הגדרת מספר היציאה (שיכול להיות viewed במנהל החומרה), קצב ה-baud ופרמטרים אחרים, לחץ על "אישור" כדי להתחיל להשתמש.
איור 3-12 מסוף טורי מובנה RDS
לפרטים, עיין במסמך
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, אותו ניתן למצוא בנתיב המסמך של ספריית ההתקנה.
עיצוב עזר
קוד פרויקט
המפתח files בתבנית הפרויקט המשובץ AE250 הם כדלקמן:
- src/bsp/ae250/ae250.h: זה file מכיל את הגדרת שעון המערכת, הגדרת אוגר היקפי, הגדרת מיפוי כתובות אוגר היקפי, וקוטע את הגדרת מספר המקור. הגדרת השעון חייבת להיות עקבית עם תצורת הפרמטרים של AE250.
- src/bsp/ae250/ae250.c: הפונקציה reset_handler היא הערך להפעלת התוכנית המוטבעת. בערך, אתחול UART מתבצע לפני ביצוע הפונקציה הראשית. יציאת ה-UART הנדרשת נבחרה וקצב ה-baud הנדרש מוגדר בהתאם לתצורת הפרמטר של AE250.
- src/bsp/ae250/interrupt.c: זה file היא ההגדרה של פונקציות מטפל בפסיקה של AE250
- src/bsp/config/config.h: זה file מכיל את הגדרת המאקרו השולטת בשיטת ההידור. #define ניתן להגדיר את BUILD_MODE בתור BUILD_LOAD או BUILD_BURN. BUILD_LOAD פירושו שהתוכנית נטענת ישירות לתוך ILM, והיא משמשת בדרך כלל בעת איתור באגים. BUILD_BURN פירושו שהתוכנית יורדת ל-SPI Flash, והתוכנית נקראת מ-SPI Flash ל-ILM תחילה לאחר ההפעלה, ולאחר מכן הפעלה, אשר חלה על גירסת תוכנית שחרור.
- Start.S: המתנע file כתוב בשפת הרכבה.
- src/bsp/loader.c: טוען אתחול file, המשמש כדי להתחיל מ-SPI Flash.
- ae250.sag: Sag הוא התסריט בפורמט הפיזור והאיסוף. הוא משמש ליצירת סקריפט מקשר. יש לציין שהפרמטרים של מפת הזיכרון ב-ae250.sag צריכים להיות עקביים עם אלה שב-AE250.
- src/bsp/driver: ספרייה זו מכילה שתי תיקיות, ae250 הוא קוד מנהל ההתקן AE250, include הוא ממשק הקריאה של פונקציות מנהל ההתקן.
- src/bsp/lib: הוא מכיל שניים fileס. ב-printf.c, צורת המשנה בספרייה סטנדרטית C מוגדרת מחדש כדי להוציא מידע printf דרך UART. ב-read.c, יש פונקציה פשוטה לקריאת מידע קלט דרך UART.
עיצוב עזר
לאחר ההתקנה, ניתן למצוא מספר עיצובי עזר בסיסיים בתיקיית ההדגמה של ספריית ההתקנה או ב-zip עיצוב העזר ב- webאֲתַר; ניתן לטעון את עיצוב ההתייחסות ל-RDS לצורך ניסיון, איתור באגים ופיתוח מחדש בדרך של ייבוא. עיצובי ההתייחסות מוצגים כדלקמן:
- ae250_demo: מדגים קלט/פלט UART ופלט GPIO של ה-AE250.
- ae250_plic: מדגים את התגובה של בקר הפסיקות לפסיקות, ומספק הדגמות של טיימר המכונה וטיימר הבור.
- ae250_freertos: מדגים שיציאות AE250 מוטמעות
מערכת הפעלה בזמן אמת FreeRTOS ריצה תוכנית ריצת השחלה. - ae250_ucosiii: מדגים שיציאות ה-AE250 משובצות מערכת הפעלה בזמן אמת uC/OS-III תוכנית ריצת ריבוי השחלות.
מסמכים / משאבים
![]() |
GOWIN FPGA פיתוח לוח RISCV תכנות [pdfמדריך למשתמש FPGA פיתוח לוח RISCV תכנות, לוח RISCV תכנות, FPGA פיתוח RISCV תכנות, RISCV תכנות, לוח RISCV |