Systematics
  • EN
  • אודות
    • על סיסטמטיקס
    • הורדת תעודות ISO
    • אירועים בסיסטמטיקס
    • קהילה
    • יצירת קשר
    • דרכי הגעה
    • לזכרו של יואב לבנטר ז"ל, מייסד ומנכ"ל משותף
  • פתרונות ומוצרים
    • תחום GIS
      • אודות
      • מוצרים
      • אירועים
      • קורסים
      • תמיכה
      • סיפורי לקוחות
    • תחום 3D CAD/PLM
      • אודות
      • מוצרים
      • אירועים
      • קורסים
      • תמיכה
      • סיפורי לקוחות
    • תחום MATLAB & Simulink
      • אודות
      • מוצרים
      • אירועים
      • קורסים
      • תמיכה
      • סיפורי לקוחות
    • תחום 3D Printing
      • אודות
      • מוצרים
      • אירועים
      • תמיכה
      • סיפורי לקוחות
      • רכישה Online
  • לקוחות
    • לקוחות סיסטמטיקס בחזית המאבק במגיפת הקורונה
    • לקוחות
      • סיפורי הצלחה
    • תעשיות
      • אקדמיה
      • Start Ups
    • תכניות עבור סטארטאפים
  • קורסים
      • אודות מרכז ההדרכה
    • קורסים GIS
      • אודות הקורסים
      • תאריכים וסילבוס
    • קורסים SOLIDWORKS
      • אודות הקורסים
      • תאריכים וסילבוס
      • קורסים CATIA
    • קורסים MATLAB & Simulink
      • אודות הקורסים
      • תאריכים וסילבוס
    • קורסים 3D Printing
      • תאריכים וסילבוס
    • קורסים ALTIUM
      • תאריכים וסילבוס
  • תמיכה
    • תמיכה ושירותי ייעוץ
    • סקר שביעות רצון לקוחות
    • נהלי התקנה ורישוי GIS
    • נהלי התקנה ורישוי MATLAB
    • נהלי התקנה ורישוי SOLIDWORKS
    • פתיחת קריאות שירות
    • פתיחת קריאות שירות תחום GIS
  • קריירה
    • משרות
    • לעבוד בסיסטמטיקס
  • צור קשר
  • בלוג
    • הבלוגים שלנו
    • SOLIDBlog
    • PCB Blog
    • GIS Blog
    • MATLAB With Fun Blog
    • 3D Printing Blog
  • HE
  • Contact Us
  • Support
  • Customers
    • Customers
    • Success Stories
  • Industries
  • Solutions
  • About Us
  • חיפוש באתר
  • Menu Menu

עמוד הבית » בלוג » MATLAB With Fun

  • ALL
  • GIS Blog
  • MATLAB With Fun
  • PCB Blog
  • Smart 3D Printing
  • SOLIDBlog

שילוב קוד HDL קיים בתוך סימולציית Simulink

ינון נוסבאום
12/03/2024
MATLAB With Fun

תגיות: Co-simulation | Cosimulation | HDL | HDL verifier | import HDL | SIMULINK | Verilog | VHDL | סימולינק | קו-סימולציה | קוסימולציה

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

שתפו את הפוסט
  • שתף בפייסבוק
  • שתף בטוויטר
  • שתף בגוגל+
  • שתף בלינקדאין
  • שתף באימייל
  • שתף בוואטסאפ

אבל האם ידעתם כי ניתן לשלב במודלי Simulink  גם קוד VHDL או Verilog  וכך להכניס לתוך המודלים הדמייה של רכיבי חומרה שפותחו בעבר או שנרכשו מספקים אחרים? כלי ה-HDL Verifier מאפשר אינטגרציה חלקה בין הקודים הללו על ידי יצירת ממשק עם סימולטורי HDL.

כשרוצים לשלב קוד HDL קיים או כשצריך לבצע ווריפיקציה לקוד HDL, בין אם זה קוד שנוצר באופן ידני או באופן אוטומטי, ולוודא שהוא עובד כפי שמצופה ממנו ברמת המערכת, אפשר להשתמש ב-HDL Verifier על מנת לבצע קוסימולציה שתשלב את סימולצית המודל ב-Simulink יחד עם סימולצית קוד ה-HDL בסימולטור ה-HDL כגון questa, ModelSim, Vivado, XCelium ועוד.

אחת הדרכים הפשוטות לעשות זאת ושאותה נדגים בפוסט הזה היא באמצעות ה-Cosimulation Wizard.

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

בדוגמה הזו נשתמש ב-Simulink ובסימולטור HDL על מנת לבצע ווריפיקציה לקוד שמממש raised cosine filter ושנכתב בשפת Verilog, קישור לדוגמה הזו מופיע בסוף הדף, באזור הקישורים.

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

איך מריצים את ה-Cosimulation Wizard? זה פשוט מאוד. נכנסים לטאב Apps ב-Simulink ולוחצים על HDL Verifier. ברגע שנעשה זאת יתווסף לנו טאב נוסף בחלון בשם HDL Verifier. אם נלחץ על הטאב הזה נראה באזור של Mode את האפשרות לבחור HDL Cosimulation, נבחר באפשרות הזו ואז  נלחץ על Import HDL Files .

איך מקנפגים את ה-HDL Cosimulation Block עם אשף הקוסימולציה? שאלה מעולה!

נעבור צעד-צעד:

נתחיל ב-Cosimulation Type. וכאן נבחר את סימולטור ה-HDL שבו אנחנו רוצים להשתמש.

אם התיקייה שבה מותקן הסימולטור לא נמצאת ב-path של MATLAB אז ניתן לכתוב כאן גם את הנתיב לתיקיה.

אחרי שנלחץ על Next נגיע לשלב הבא – HDL Files. וכאן על ידי לחיצה על הכפתור “Add” נבחר את קובץ הVerilog- או VHDL ואז נלחץ שוב על הכפתור “Next”.

נגיע לשלב HDL Compilation שבו יוצגו פקודות ברירת המחדל לקומפילציה, במידת הצורך ניתן להוסיף או לשנות כאן את פקודות הקומפילציה.

לחיצה על Next תעביר אותנו לשלב Simulation Options, במסך הזה נכניס את שם מודול ה-HDL, ומה שיטת התקשורת אליו.

לחיצה על Next ונגיע למסך שבו נגדיר את הפורטים של הכניסות והיציאות.

אשף הקוסימולציה מנסה לזהות את היציאות באופן אוטומטי. אם האשף מזהה יציאה בצורה שגויה, אז אנחנו יכולים לתקן ולשנות את סוג היציאה באופן ידני. עבור כניסות קלט ניתן לבחור בין האפשרויות Clock, Reset, Input  או Unused. רק הכניסות שמסומנות כInput- יחוברו ל-Simulink במהלך הקוסימולציה ורק יציאות שמסומנות כ-Output יחוברו לSimulink- במהלך הקוסימולציה. Simulink יתעלם מיציאות שיסומנו כ-Unused.

ניתן לשנות את הפרמטרים של האותות שמסומנים כ-Clock ו-Reset, נראה איך עושים זאת בשלב מאוחר יותר.

בדוגמה שלנו נקבל את סוגי היציאות המוגדרים כברירת מחדל מבלי לשנות ונלחץ על Next על מנת להמשיך לדף פרטי יציאת פלט.

בדף פרטי יציאת פלט נבצע את השלבים הבאים:

קודם כל נגדיר את זמן הדגימה של filter_out עם הערך "-1" שמסמן שהערך יוגדר באמצעות back propagation.

לאחר מכן, אם נפתח את קוד ה-Verilog  נוכל לראות שהפלט מופיע בפורמט sfix34_En29 . על כן נשנה את השדות הבאים:

  • את ה-Data Type נשנה ל-Fixedpoint
  • את הערך של sign, שמגדיר האם יש או אין סימן לערך האות, נשנה ל-Signed
  • את אורך השבר נשנה ל-29

נלחץ על הכפתור next כדי להמשיך לדף פרטי ה-clock/reset.

בדף clock/reset בצע את הפעולות הבאות:

אם סימולטור ה-HDL שאיתו נעבוד הוא ModelSim או  Xcelium:

  • נגדיר את יחידת הזמן HDL ל-ns ואת ה-Clock period ל-20.
  • נגדיר את הActive Edge- ל Rising. ואת הreset initial value- ל-1.
  • נגדיר את משך ה-reset signal ל-15.

אם סימולטור ה-HDL שאיתו נעבוד הוא Vivado:

  • נגדיר את יחידת הזמן HDL ל-ps ואת ה-Clock period ל-20.
  • נגדיר את הActive Edge- ל-Rising ואת הreset initial value- ל-1.
  • נגדיר את משך ה-reset signal ל-15.

לחיצה על Next כדי להמשיך למסך Start time alignment.

במסך Start time alignment מוצג גרף עבור צורות הגל של האותות clock ו-reset. אשף הקוסימולציה מציג את זמן ה-HDL להתחלת הקוסימולציה באמצעות קו אדום. זמן ההתחלה הוא גם הזמן שבוSimulink  מקבל את דגימת הקלט הראשונה מסימולטור ה-HDL.

נגדיר את ה-alignment. השעון שלנו הוא rising edge, על כן בזמן 20ns (ב ModelSim-או Xcelium) או 20 ps (בסימולטור Vivado) הפלט של המסנן יציב ואין צורך לשנות את זמן ברירת המחדל לביצוע הקוסימולציה.

לחיצה על Next תעביר אותנו למסך האחרון באשף, יצירת בלוק ה-HDL Cosimulation.

לפני שיוצרים את הבלוק יש לנו אפשרות לקבוע את ה-timescale. לחלופין, ניתן לבצע זאת מאוחר יותר, לפני הפעלת הסימולציה.

בדף יצירת הבלוק נבצע את השלבים הבאים:

בעבודה עם הסימולטוריםModelSim  או  Xceliumנשאיר את אפשרות ברירת המחדל Automatically determine timescale at start of simulation כאפשרות הנבחרת. מאוחר יותר, לפני שנריץ את הסימולציה נוכל להציג את לוח הזמנים המחושב ולשנות את הערכים.

בעבודה עם סימולטור Vivado נוריד את הסימון מהאפשרות הזו ונקבע את ה-timescale כך ששנייה אחת ב-Simulink תתאים ל-2e-11 שניות בסימולטור ה-HDL.

לחיצה על Finish תשלים לנו את הפעלת אשף הקוסימולציה ותסגור את החלון.

כעת, לאחר שהאשף סיים את עבודתו, הוא יצר לנו את הפריטים הבאים בקנבס של המודל:

  • בלוק  HDL Cosimulation
  • בלוק לריקומפילציה של מודל ה-HDL (מכיל קישור לסקריפט המופעל על ידי לחיצה כפולה על הבלוק)
  • בלוק להפעלת סימולטור HDL (מכיל קישור לסקריפט המופעל על ידי לחיצה כפולה על הבלוק)  עבור Modelsim ו-Xcelium בלבד.

נמקם את בלוק ה-HDL Cosimulation ונחבר אליו את שאר הבלוקים, כך שהמודל שלנו ייראה דומה לזה שבתמונה:

כעת נפעיל את הקוסימולציה

נפעיל את סימולטור HDL על ידי לחיצה כפולה על הבלוק שכותרתוLaunch HDL Simulator  ולאחר שהסימולטור עלה נחזור ל-Simulink ונפעיל את הסימולציה

נזכור שבדף האחרון של אשף הקוסימולציה בחרנו לקבוע את ה-timescale לפני הפעלת הסימולציה. על כן לפני ההפעלה יעלה לנו ממשק שיאפשר לנו לבצע את קביעת הערכים. נרצה לקבוע את הערכים כך ששנייה אחת ב-simulink תתאים לזמן מחזור אחד ב-HDL, כלומר 20ns.

נאשר את השינויים ונפעיל מחדש את הסימולציה.

וזהו. הצלחנו להפעיל את המודל שלנו ולבצע קוסימולציה של המודל ב-Simulink יחד עם קוד ה-HDL הקיים שלנו ובדרך זו נוכל הן לעשות ווריפיקציה לקוד ה-HDL והן reuse עבור קוד שכבר קיים לנו ואנחנו יודעים שהוא מאומת ועובד, ורוצים לשלב אותו כחלק מהסימולציה. התמונה בראש העמוד היא מתוך ה-scope בדוגמה שמחוברים אליו אות הכניסה ואות היציאה מה-HDL cosimulation block.

למידע נוסף:

Simulink Cosimulation – מתוך הדוקומנטציה של Simulink

Import HDL for Cosimulation with Simulink – וובינר של MathWorks בנושא

HDL Cosimulation – מתוך הדוקומנטציה של ה-HDL Verifier

Get Started with Simulink HDL Cosimulation – הדוגמה שראינו

תגיות: Co-simulation | Cosimulation | HDL | HDL verifier | import HDL | SIMULINK | Verilog | VHDL | סימולינק | קו-סימולציה | קוסימולציה

למידע נוסף
כיתבו לנו
שתפו את הפוסט
  • שתף בפייסבוק
  • שתף בטוויטר
  • שתף בגוגל+
  • שתף בלינקדאין
  • שתף באימייל
  • שתף בוואטסאפ

פוסטים נוספים מאותה קטגוריה

להמריא עם MATLAB – כל מה שצריך לדעת על הקורסים של MathWorks

להמריא עם MATLAB – כל מה שצריך לדעת על הקורסים של MathWorks

MATLAB With Fun

שלי מרטינוב
11/05/2025
גילוי כשלים בייצור בשלבים מוקדמים בעזרת Visual Inspection

גילוי כשלים בייצור בשלבים מוקדמים בעזרת Visual Inspection

MATLAB With Fun

ענבר לוי
27/04/2025
תאום דיגיטלי להאצת בדיקות בקרת ההינע של מנועים חשמליים

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

MATLAB With Fun

איתמר אנגלמן
07/04/2025
תגובות | 0 תגובות

השאירו תגובה

כתיבת תגובה לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

הרשמו לקבלת עדכונים

MATLAB With Fun
שדה חובה

ההרשמה בוצעה בהצלחה. בדוק בתיבת הדואר שלך, הודעה המכילה קישור לאישור ההרשמה ואשר את הרשמתך.

רוצים ללמוד עוד? כיתבו לנו

כיתבו לנו


    social-media-youtubesocial-media-linkedin

    קהילה

    • קהילת סיסטמטיקס
    • SOLIDWORKS Blog
    • PCB Blog
    • MATLAB with Fun Blog
    • GIS Blog
    • Smart 3D Printing Blog
    • ESRI Israel FB
    • SOLIDWORKS Israel FB
    • MATLAB and Simulink LI
    • MATLAB and Simulink FB

    צור קשר

    • בקשת יצירת קשר
    • בקשת קשר טלפוני

    רכישה

    • בקשת הצעת מחיר
    • מכירות ESRI
    • מכירות SOLIDWORKS
    • מכירות ALTIUM
    • מכירות CATIA
    • מכירות ENOVIA
    • מכירות MATLAB & Simulink
    • מכירת מדפסות תלת מימד

    קורסים

    • קורסים GIS
    • קורסים SOLIDWORKS
    • קורסים MATLAB & Simulink
    • קורסים CATIA
    • קורסים ALTIUM
    • יצירת קשר מרכז ההדרכה

    תמיכה

    • מדיניות תמיכה
    • שירותי ייעוץ
    • פתיחת קריאות שירות

    פתרונות ומוצרים

    • תחום GIS
    • תחום 3D CAD/PLM
    • SOLIDWORKS
    • ALTIUM PCB
    • CATIA
    • ENOVIA
    • MATLAB & Simulink
    • תחום 3D Printing
    • 3D EXPERIENCE
    • תעשיות
    • אקדמיה
    • Start Ups

    אודות סיסטמטיקס

    • מי אנחנו?
    • אירועים
    • דרכי גישה ומפה
    • יצירת קשר

    לקוחות

    • לקוחות סיסטמטיקס
    • סיפורי לקוח SOLIDWORKS
    • סיפורי לקוח MathWorks
    • סיפורי הצלחה GIS
    © 2025 All rights reserved SYSTEMATICS Ltd. | Privacy Policy
    • הישארו מעודכנים
    • כיתבו לנו
    Scroll to top