הקמת הקרן: הבנה של VHDL ו- Verilog

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

הן VHDL (בעיקר מהירות גבוהה Integrated Hardware Description Language) ו- Verilog שמקורן בשנות ה-80 ומאוחר יותר סטנדרט על ידי IEEE VHDL, שנולדה מיוזמה של משרד ההגנה האמריקאי, מכוונת מאוד ופורוז, לאכוף הצהרות מפורשות שתופסות שגיאות רבות בהקמה של זמן. VerLlog, המיועדות בתחילה לדוגמת וסימולציה, מציעה C-like syny-C, כי לעתים קרובות יותר מתאים לתעשיות מסחריות, אם כי לעתים קרובות יותר, או ל-C.

(הופנה מהדף מערכת VVerilog for אימות תוך שמירה על העיצוב הסינתטי ב- VHDL או Verilog. SystemVerilog מוסיפה בדיקה אקראית מחוספסת, טענות ו- Covergroups אשר משפרים מאוד את אמון אימותים: ללא קשר לטכניקה הספציפית של FPGA שלך, הבנה הן VHDL והן בסיסמנטים של בנייה וריאולוגית חיונית: אתה נתקל ב- IP, צד שלישי, ללא קשר ל-R2, עם צוותים של LTF:

עיצוב Robust Design Flow

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

  • (FLT:0) specification ואדריכלות מודלים של FLT:1: יצירת דיאגרמות בלוק, הגדרות ממשק ותקציבי תזמון ראשוניים.צעד זה קובע את הבסיס לכל החלטות מטה הזרם.
  • (FLT:0)RTL codingFLT:1: כתוב תיאורים סינתזנטיים ב VHDL או Verilog, התחייבויות לקידוד קווים המבטיחים יכולת קריאה וכלי תאימות. השתמש במוסכמות שמות עקביות ולוגיקה נפרדת מלוגיקה קולקטיבית בבירור.
  • (FLT:0FunctionalסימולציהFLT:1): השתמש בסימולטורים מונעים אירוע כגון ModelSim, Questa, GHDL, או Icarus Verilog כדי לאמת את ההתאמה הלוגיקה ללא תזמון.זהו קו ההגנה הראשון נגד באגים פונקציונליים.
  • (FLT:0)SynthesisFLT:1: להמיר RTL לתוך רשימה ברמת שער המיועדת ארכיטקטורת FPGA מסוימת באמצעות כלים כגון AMD Vivado, Intel Quartus, או Lattice Radiant.צעד זה מכבד מגבלות ואופטימיזציה למהירות, אזור, או כוח על בסיס ההוראות שלך.
  • (FLT:0)Place ותוואי נתיב (FLT:1): כלי הספק ממפה את הרשימה על משאבים פיזיים, אותות ניתוק ומגבלות השעון.צעד זה לעתים קרובות מגלה בעיות תזמון לא גלויות בסנתזזה.
  • (FLT:0) ניתוח תזמון סטטי (STA)FIRLT:1: בדוק שכל נתיבי התזמון עומדים בקביעת דרישות והחזקת דרישות. התאמת מגבלות או קוד אם הפרות מתרחשות.
  • (FLT:0) ייצור ותוכנית תכנות 1LT: הפיק את קובץ התצורה ו לטעון אותו על FPGA.בדוק שהמכשיר מוגדר כראוי וכי כל הממשקים מתנהגים כפי שמצופה.

(ב) ,התאוששות, הנתמך על ידי תסריט ב-Tcl, Python, או ביצוע, מבטיחה אינטגרציה מהירה של שינויים.כלי כמו FLT:0AMD VivadophveFLT:1 ו-FLT:2Intel Quartus PrimeFLT:3 לספק סביבות שלמות, אך הידיעה על השלבים הבסיסיים עוזרת לך לפענח כאשר נכשלת את המסמך ב-ME או עיצוב מהיר כל כך יכול לבנות צוות חדש ללא בלבול.

שיטות טובות לכתיבה גבוהה-לשונית RTL

התחל עם אדריכלות מפורטת וספקטיבה

עומד על הדחף לקפוץ לתוך coding. a היטב כתובה מפרט לוכדת את תחומי השעון, אסטרטגיות איפוס, זרימת נתונים, דרך דרישות חישוב, ממשקים חיצוניים.צייר תרשים בלוק ברמה העליונה וחלוק את העיצוב ליחידות פונקציונליות עם יציאות מוגדרות בבירור. Document הפרוטוקול של כל אוטובוס - הוא AXI4-Lite, השקעה פשוטה / מנקה, או מקבילה אישית עם ממשק פעולה ברור, כמו ממשק פעולה אוטומטית, או תצורה של מכשיר הפעלה, אם זה חייב להפחית את הממשק אחד, אך ורק לאחר מכן, אם זה באופן שונה של מכשיר מחשב נייד, או תצורה של מכשיר מחשב נייד, אם זה, אם זה, אם זה יכול להיות מצמצם את הממשק זה, אם זה הוא לחץ על ידי מחשב נייד, או תצורה שונה.

2. Embrace Modularity and Reusability

FPGA קושחה חיה יותר מרוב מודולים עיצוב שניתן להשתמש בהם מחדש על ידי פרמטר רוחב, עומק ותכונות gating. in Verilog, להשתמש ב-FLT:0 הגדרות ו-FLT:1 הצהרות; ב-VHDL, ממינוף של רכיבי בדיקה ספציפיים, אך ורק תכונות סטנדרטיות של Microsoft-ALT 3.

3.אימוץ תקני קוגניציה עקביים ונקיים

(הופנה מהדף ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

4.כתבו מקיפים את Testbenches ו-Verification Environments

(סימול: סימולציות חושף באגים בעוד שהעיצוב נותר מוצהר.עבור מעבר למבחנים פשוטים.לבנה בדיקות עצמיות המשווה סימולציות נגד מודל זהב או תוצאות צפויות, וכוללות טענות למלכודת מצבים בלתי חוקיים.עבור מודולים מורכבים, לאמץ אימות אקראי באמצעות סיקור UVM של מערכת Verilog לפחות, או לפחות ליצור קלטות אקראיות בתוך מסגרת מובנית.

5. Master Timing Closure ו-Synthesis Optimization

(הסברי התזה והכלים המשתנים מבטיחים לעמוד במגבלות התזמון שלך, אך הם צריכים רשומות לספק מגבלות תזמון מקיפים המכסות את כל תחומי השעון, קלט/עיכובים, נתיבי מחזור ודרכים כוזבות. השתמש ב-FLT:13, ו-FLT:14 , ו-FLT לא מצליח לשמור על מהירות עיבוד של מעבדי זיכרון מתקדמים, אלא אם אתה מקבל תדרים גבוהים, להוסיף לאחר שילוב ארוך;

6. Handle Asynchronous Logic and Metastability

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

7.הפעלת מכונות ממשלתיות יעילות

(המכונה מבוססת פינט) מופיעה כמעט בכל עיצוב FPGA. השתמש בקידוד המדינה הסמלי עם סעיף 16 או FLT:17 או בהגדרה של קריאה, ולתת לכל כלי הסינתזה לבחור את הקידוד האופטימלי (אחת-חם, בינארית או אפור) אלא אם כן מגבלות ידניות חיוניות למהירויות.

8.Leverage Version Control and Collaboration

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

טכניקות מתקדמות לביצועים ולאחריות

(העיצוב דוחף את גבולות ה-FPGA, כמה אסטרטגיות מתקדמות יכולות לעשות את ההבדל:0) אלגוריתמים וירטואליים (RLT) ללא צורך באלגוריתמים מתקדמים) ולהפחית את האלגוריתם של מערכת ההפעלה (Ripal) של מערכת הפעלה מתקדמת של מערכת שמירה על סוללות (Dyperation) או צמצום של מערכת אחסון יעילה של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה (Rand-Furate) של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה) של מערכת הפעלה מחדש של מערכת הפעלה (DValconation) או LT) של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה: 4.

מלכודות נפוצות וכיצד להימנע מהם

(ב) ,המהנדסים המתועדים ב[[1924]], הם יכולים לנבא את ה[[המאה ה-20]], אך ורק ב[[1924]], [[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]

המלצות Toolchain ו-Valice

שרשרת כלי ממונעת היטב מאיצה את הפיתוח ומצמצמצמת את התסכול.עבור חלקי AMD/Xilinx, AMD Vivado מציעה סביבה מאוחדת עבור סינתזה, יישום ותכנות של אינטל, ראשי התיבות של Quartus של אינטל מכסה באופן דומה את חיידק ומשפחות סטרטקס, בעוד Lattice Radiant משרת את ה- ECP5 ו- CrossLink פלטפורמות. השתמש במשאבים החיצוניים הבאים להבנה שלך ופתרון בעיות ספציפיות:

  • (FLT:0)Vdo Synthesis Guide (UG901)FLT:1 - סגנונות מפורטים להקצאה ואופטימיזציה על פני משפחות המכשיר של שיlinx.
  • (FLT:0)Intel Quartus Prime Pro Edition HandbookveFLT:1) - שיטות הטובות ביותר עבור כניסה עיצוב, סינתזה וניתוח תזמון עבור Intel FPGAs.
  • (FLT:0)Yosys Open Synthesis SuiteFeloph:1) - מסגרת סינתזה בקוד פתוח התומכת ב- Verilog והיא תואמת לאדריכלות Lattice ו- AMD באמצעות תוספי הקהילה.Pair עם Nextpn עבור זרם קוד פתוח שלם.

עבור כלי קוד פתוח, את מסגרת הסינתזה של Yosys בשילוב עם Nextpnr עבור נתיב ו- Project IceStorm עבור Lattice iCE40 מספק זרימה חופשית לחלוטין מתאים ללמידה, prototyping, ואפילו ייצור עבור עיצובים בתדר נמוך, שילוב רציף יכול להיות בנוי סביב GitHub פעולות או GitLab כי קורא תסריטים כדי סימולציה מהירה, במיוחד עבור כל כלי סימולציה גבוהה של בדיקות הפעלה.

אסטרטגיות להפקה -Grade Firmware

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

מועצת המנהלים של Bring-Up and Hardware Actation

סימבול נותן אמון, אבל חומרה אמיתית מגלה בעיות כי אין השגחה יכול לחזות.תוכנית לוח התוצאות תהליך בקפידה: להתחיל עם תצורה מינימלית אשר תרגילים את תשתית השעונים, איפוס, ופלט פשוט להתגות כגון LED מבהב. לבדוק את אספקת החשמל, תדרי שעון, ותצורה FPGA לפני המעבר לבדיקות סימולציה פונקציונליות או ניתוח לוגיקה משולבת כמו Xixlin IxLA או Intel Quick לסימון פנימי כדי לעקוב אחר כל אחד של ממשק מיידי, כדי לשפר את הסימפטומים של בדיקות אבטחה באופן קבוע, או כדי לבצע את המתודולוגיה.

שיפור מתמיד ומחשבות אחרונות

פיתוח קושחה FPGA עם VHDL ו Verilog הוא כלי שיט המשלב אינטואיציה חומרה עם משמעת תוכנה. על ידי תכנון האדריכלות שלך, כתיבת קוד מודולרי ונקי, סימולטור exulating exhausly, ותשומת לב זהירה תזמון ותכניות איפוס, אתה יוצר עיצובים שעובדים באופן אמין מ-Acrotancesamsamss, כדי לשמור על תוכניות חדשות של IPGA, לא יבנה את האלגוריתם של עיצוב אישי.