שפות תיאור קשיחות (HDLs) יוצרות את עמוד השדרה של עיצוב מערכת דיגיטלית, המאפשר למהנדסים מודל, לדמות, לסנתז מעגלים מורכבים.בין ה-HDLs הנפוצים ביותר כיום הם VHDL ו- SystemVerilog. בעוד שתי השפות מאפשרות למעצבים לתאר התנהגות חומרה ברמות מופשטות שונות, הן שונות באופן משמעותי ב-VLLssssss, ומקרים טיפוסיים של שימוש.

סקירה של VHDL

VHDL (VHSIC Hardware Description Language) פותחה בשנות ה-80 תחת תוכנית ה-VHSIC של מחלקת ההגנה של מחלקת ההגנה של ארצות הברית (VHSIC) של מחלקת ההגנה של מחלקת ההגנה של ארצות הברית, היא הוקמה על ידי הצורך בשיטה סטנדרטית, קפדנית לתעד ולדמיין מערכות דיגיטליות. VHDL היה סטנדרטי רשמית כ- IEEE 1076 בשנת 1987, לאחר מכן (1993, 2002, ו-2008, כולל תכונות חדשות של VHDL.

  • (FLT:0) הקלדה: 1.FLT 1 VHDL לאכוף בדיקת סוג קפדנית בעת יצירת זמן, צמצום הסבירות של אי התאמה נתונים בלתי מאוישים.זה הופך אותו אידיאלי עבור יישומים קריטיים בטיחותיים שבהם שגיאות יכולות להיות השלכות חמורות.
  • (FLT:0) ו-Syntax:FLT:1 VHDL ידוע בסגנון מפורש, עצמי-דו-זמנית שלו.כל נמל, אות, ותהליך חייב להיות מוצה עם מידע מלא מסוג, אשר משפר את יכולת הדיבור ואת התחזוקה בקבוצות גדולות.
  • (FLT:0) תמיכה בספריה: FLT:1 ומנגנון החבילה של VHDL מאפשר למעצבים סוגים הקשורים לנתונים, קבועים, ו subprograms, קידום שימוש חוזר ומודולריות.
  • (ב) ⁇ :0) תכונות מוכווניות: FLT:1 ו- VHDL של שפת VHDL נועדו לתמוך בסימולציה מפורטת, כולל מחזורי דלה ומגוון רחב של סוגי נתונים (למשל, FLT:0,FLT:1,FLT:1, FLT:2, וסוגים המוגדרים למשתמש).

תכונות אלה הופכות את שפת הבחירה בתעשיות כגון אווירוקל, הגנה, מכשירים רפואיים, וסימן רכבת, שבו נכונות ועקביות הן חשובות. הרבה ממשלה וסטנדרטים בינלאומיים (למשל, DO-254 עבור מערכות אוויריות) דורשות במפורש או ממליץ בחום על השימוש של VHDL לפיתוח חומרה.

סקירה של SystemVerilog

המערכת הווטריולוגית התפתחה בתחילת שנות ה-2000 כסיומת של שפת Verilog (IEEE 1364), היא נוצרה כדי לטפל במורכבות הגוברת של עיצובים דיגיטליים והצורך ביכולות אימות חזקות יותר.השפה הותאמת תחת IEEE 1800 בשנת 2005, עם עדכונים שפורסמו בשנת 2009, ו-2017 מערכת Verilog מתבססת על רצף של ורמיולוג, C-like syntax ומוסיפה כמה תכונות מתקדמות:

  • (FLT:0) הונאת תכנות מוכוונת (OOP) תמיכה: כיתות 1:1, ירושה ופולימורפיזם מאפשרים יצירת רכיבים הניתנים להחלפה, דרוג רחב.
  • (FLT:0) אסרנסים: 1 PVerilog Assertions (SVA) מאפשר למעצבים לציין תכונות זמניות ולבדוק אותן במהלך סימולציה, מה שהופך את זה קל יותר לתפוס באגים פונקציונליים.
  • (FLT:0)Randomization ופתרון: ההרחבה:ראה פרק 1: השפה כוללת בנייה מבוססת-בבניה ליצירת גירוי אקראי עם מגבלות, אשר חיוני כדי לאמת פרוטוקולים מורכבים ומקרים פינה.
  • (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [13] מהדורות ו-[[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]

מערכתVerilog הפכה לשפה הדומיננטית עבור אימות בתעשיית המוליכים למחצה, במיוחד עבור עיצובים SoC הדורש אימות פונקציונלי נרחב.זה מס סינטקס ודמיון ה- C להפוך אותו מושך למעצבים עם רקע תוכנה, ואת התמיכה הישירה שלה עבור UVM (מתודולוגיה של האיחוד) הפך אותו תקן לסביבות אימות מתקדמות.

הבדלים מרכזיים בין VHDL ו- SystemVerilog

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

  • (ב) [ה]הסגנון הניאטי: [ה] [ה] [ה]] [ה]] [ה]][דרוש]] [ה]] [ה]]]]] [ה'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']']'[ה']']'[ה'[ה']']']'[ה']']'[ה'[ה']']'[ה'[ה'[ה'[ה']'[ה']']']'[ה'[ה'[ה'[ה']']']']'[ה']']'[ה'[ה'[ה']']']']']']'[ה'[ה']']'[ה'[ה'[ה']']']'[ה']']']'['[ה'[ה'[ה']']'[ה']']'[ה'['['['['[ה
  • (ב) ⁇ :0) מערכת ובטיחות: (FLT:1 VHDL הוא מאוד קליד - אתה לא יכול ישירות להקצות אינטגרטור ל-FLT:12 ללא תפקוד המרה.הנוקשות הזו תופסת שגיאות רבות בזמן המאגד, אך ניתן לספוג שינויים קלים עד כה; לדוגמה, ניתן להקצות סימולציה עד כה רבה יותר; לדוגמה, סימולציה של LT:13 יכול להיות מוקצה ישירות ל-FLT, אך ניתן ל- 14 מהירויות רבות, אך ניתן להתאמה, אך ניתן לבצע שינוי, אך ניתן למהירויות שונות.
  • (FLT:0)Verification Features:FLT:1 SystemVerilog מציע מבנים עשירים יותר באופן משמעותי עבור אימות, כולל שיעורים, אקראיות מוגבלת, כיסוי פונקציונלי, והצהרות. VHDL חסר מובנה תמיכה OOP - למרות שתיקון VHDL-2008 הוסיף כמה יכולות מוכוונות אובייקט באמצעות סוגים מוגנים ו alias, אלה אינם בוגרים כמו SystemVerilogs עבור פרויקטים מתקדמים, אשר בדרך כלל דורשות פיתוח.
  • (FLT:0) אימוץ והתמיכה בכלי: ההרחבה 1 (שתי השפות נתמכות על ידי כל ספקי EDA העיקריים (Siemens EDA, Synopsys, Cadence, Aldec וכו '), עם זאת, מערכותVerilog של אימות תשתיות - במיוחד UVM ו- קביעה - משולב יותר הדוק בסביבות סימולציה מודרניות.
  • (FLT:0) למד Curve: מהנדסים 1FLT עם רקע C או Java לעתים קרובות למצוא מערכתVerilog קל יותר להתחיל עם בשל הסינתזה המוכרת שלה. VHDL של הפועליות וטיפוס קפדני יכול להיות מאתגר בהתחלה, אבל תומכי לטעון כי הוא מטפח משמעת טובה יותר ומפחית שגיאות בעיצובים גדולים.

שימוש ב-VHDL וב- SystemVerilog בפרויקטים מעורבים

בעולם אידיאלי, כל עיצוב ישתמש במגבלות עולם אמתיות יחיד - IP, מומחיות צוות, הסמכה כלי דרישות אימות ספציפיות - לעתים קרובות לעשות עיצובים בשפה מעורבת הכרחי.לדוגמה, פרויקט עשוי לדרוש יחידת בקרה ביקורתית בטיחות שנכתבה ב VHDL כדי לספק רשויות הסמכה, בעוד שאר SoC משתמש במערכת ריאות עבור עיצוב ואימות לשתי שפות אלה.

תקשורת בין שפות

האתגר הבסיסי בעיצוב שפה מעורב הוא כיצד מודולי VHDL ו- SystemVerilog מתקשרים.כלי EDA מודרניים מספקים יכולת הדדית מובנה על ידי התאמה אוטומטית של סוגי הנמל וכיוונים, בהתבסס על המיידית רכיב VHDL או SystemVerilog מודול מודול מידיציה.עם זאת, יש לעקוב אחר כללים מסוימים:

  • (ב) ניתן למפות את סוגי הנתונים: (ב) 1 (VHDL) סוגים כמו (FLT:15 ו-FLT:16 ו-FLT:16 ו-FLT 18), בהתאמה, רוב הכלים להתמודד עם זה בצורה חלקה.
  • (ב) ,0) רגישות לכיוון: נמלי VHDL 1:1 הוכרזו עם נמלי VHDL (FLT:19 ,FLT:20 , או FLT:21 ; ; ⁇ ⁇ ⁇ ; ⁇ ⁇ ; ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (FLT:0)Time resolution andתזמון: FLT:1 VHDL משתמש במודל דלה-דפלי שיכול להיות שונה מתזמון האזור של מערכתVerilog. Simulators נועדו לפתור את ההבדלים האלה, אבל עיוותי תזמון עדינים יכולים להתרחש.

תקני יכולת פעולה

כדי לקדם שילוב חלק של VHDL ו- SystemVerilog, IEEE הגדיר מספר מנגנונים:

  • (FLT:0)VHDL-2008 Direct VHDL Imation (DVI): תכונה זו מאפשרת יחידת עיצוב VHDL כדי מיידית ישויות VHDL מ- SystemVerilog ללא קבצים עטיפה.המכשיר חייב לתמוך תקן IEEE 1076-2008.
  • (FLT:0SystemVerilog Direct Programming Interface (DPI): ההרחבה הראשונה של DPI היא בעיקר עבור C / C++ אינטגרציה, ניתן להשתמש בה גם כדי לקרוא לפונקציות זרות מ- SystemVerilog. חלק מהמהנדסים יוצרים VHDL-to-C עוטפים לממשק עם חבילות VHDL, אם כי גישה זו אינה נפוצה למודולציה מיידית.
  • (FLT:0Verilog-style VHDLייבוא: ⁇ FLT:1) כלים רבים של EDA תומכים בגישה פרגמטית: ניתן למתן ישות VHDL בתוך מודול מערכת וטריולוג באמצעות הנחיה של FLT:26 או מס מיוחד של הרגעה מיידית. לבדוק את התיעוד של הספק שלך - לדוגמה, Synopsys VCS ו- Cadence Xcelence X יש יכולות מעורבות.

אתגרים ושיקולים

שילוב VHDL ו- SystemVerilog אינו תמיד פשוט.מהנדסים צריכים להיות מודעים לבעיות המעשיות הבאות:

תמיכה בסיינט

כלים מודרניים סינתתזות (למשל, Synopsys Design Compiler, Cadence Genus) יכולים לסנתז עיצובים שמשלבים VHDL ו- SystemVerilog, אבל יש להם מגבלות.לא כל המבנים של מערכת ווריולוג הם סינתזנטיים (למשל, מודולים, סימולציות הן רק סימולציה) וגם סוגים צפים של VHDL וחלקם עשויים להיות לא להיות בשימוש חיוני של לוגי בלבד.

ביצועי Simulation

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

מיומנויות צוות ותיעוד

לא כל המהנדסים שוטים גם ב-VHDL וגם ב- SystemVerilog. פרויקט שפה מעורב צריך לשמור תיעוד ברור המתאר את גבולות המודול, את השפות המשמשות, ואת המוסכמות של הזיהוי.ייסד קווים מנחים שמטפלים בהם, למשל, שם מוסכמות לנמלים (כמה קבוצות שקדמו את VHDLFLT 27/FLT:28 כדי למנוע בלבול עם הנחיות מערכתיות או קווי תכנות).

שיטות טובות ביותר עבור עיצובים מעורבים-Language

בהתבסס על ניסיון מפרויקטים תעשייתיים מעורבים בשפה, הנה המלצות ניתנות לפעולה:

  1. (ב) [13] ,[[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
  2. (FLT:0) מרכיבים IP עוטפים.FLT:1 עבור בלוקים VHDL מורשת, לשקול עוטפים אותם במודולים ממשק מערכתVerilog אשר מטפלים בסוג המרות ולספק API פשוט לשאר העיצוב.זה מבודד את הטיפול בשפה המעורבת לכמה נקודות מוגדרות היטב.
  3. (FLT:0) עיצוב היררכיאלי של אנדרל 1 (Halve VHDL ו- SystemVerilog מודולים בספריות נפרדות או בספריות שונות. השתמש בעיצוב ברמה העליונה המשותף שמנחה את כל הרכיבים - הרמה העליונה הזאת יכולה להיות כתובה בשתי שפות, אבל רוב הכלים מעדיפים אותה בשפה "הבלתי מודעת" של הפרויקט.
  4. (FLT:0) השתמש באותו סימולטור עבור כל אימות.Build.ph.1 לפני תחילת הפרויקט, להבטיח כי סביבת הסימולציה שנבחרה שלך תומכת סימולציה בשפה מעורבת עם שתי השפות. רוב סימולטורים המסחריים עושים, אבל כלים חופשיים או אקדמיים עשויים להיות תמיכה מוגבלת.מבחן עיצוב שפה מעורבת קטן מוקדם מוקדם בפרויקט כדי לאמת כי זרימת העבודה מקצה לקצה.
  5. (ב) אם יש צורך בתיקון: "החלל" (ב) ב[[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]], [[[[1924]]]]]]]], [[[[1924]]]]]], [[[[1924]]]]]]]] [[[[1924]]]]]]
  6. (FLT:0) יש גישה אחת לבחינה.ReveFLT:1; זה בדרך כלל פשוט יותר לכתוב את כל הסימון בשפה אחת (מערכתVerilog מומלץ בשל תכונות אימות מתקדמות שלה) ולאחר מכן מיידית את יחידות העיצוב בשפה המעורבת בתוכה.זה נמנע ממורכבות של מרכיבי מבחן בשתי השפות.

מגמות עתידיות ותובנות קהילתיות

תעשיית העיצוב החומרה ממשיכה להתפתח.הההה האחרונה של VHDL (IEEE 1076-2019) ו- SystemVerilog (IEEE 1800-2017) הוסיפו תכונות לשיפור יכולת הדדית, כגון התמיכה של VHDL ברשומות חיצוניות ו-Villog של ו-VLlog, הן גם כלי הסמכה משופרים של מערכת VHDLLLL.

(ב) לעיין בתקני IEEE: FLT:0IEEE 1076-2019 VHDLigitalFLT:1 ו-FLT:2IEEE 1800-2017 SystemVerilogofLT 3: 3, בנוסף, ספקים רבים של EDA מספקים הערות יישום על סימולציה בשפה מעורבת, כגון FLT:4Siemen EDAFLT5:5 ו-FLT 7 LTSynopsi LT 7.

מסקנה

הבחירה בין VHDL ו- SystemVerilog אינה צריכה להיות החלטה או החלטה. VHDL הטיפ המחמיר של מערכת ההפעלה ו-Syntax של מערכת ההפעלה שלה להפוך אותו למועמד חזק עבור עיצובים קריטיים וגבוהים, בעוד שצוותי אימות מתקדמים של מערכת VVerilog עומדים בדרישות איכותיות וסטייל concise מתאימים היטב לפיתוח פרויקט מודרני של SoC.