Menu

התקנת Icarus Verilog ב-Windows, macOS ו-Linux: מדריך 2026

התקינו את Icarus Verilog ו-GTKWave כדי לקמפל ולהריץ סימולציות Verilog מקומית. או דלגו על ההתקנה והשתמשו בעורך שבדפדפן: שתי הדרכים מתאימות למסמכים האלה.

קודם כול, בדיקת מציאות

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

עדיין רוצים התקנה מקומית? המשיכו לקרוא.

מה "התקנת Verilog" אומרת בפועל

Verilog היא שפה, לא תוכנה. כדי להריץ אותה צריך:

  1. סימולטור: הכלי שמקמפל את קובצי ה-.v שלכם ומריץ אותם. לרוב הלומדים זה Icarus Verilog, שנותן את הקומפיילר iverilog ואת סביבת הריצה vvp.
  2. מציג waveforms: בדרך כלל GTKWave, שקורא את קובצי ה-.vcd שה-testbench שלכם מייצר.
  3. עורך טקסט: VS Code עם הרחבת Verilog היא הבחירה הנפוצה, אבל כל עורך יעבוד.

סביבות הכלים של היצרנים (Xilinx Vivado, Intel Quartus, Synopsys VCS, Cadence Xcelium) קיימות לתכנות FPGA ולעבודת ASIC. הן גדולות, לעיתים קרובות דורשות רישיון, ומוגזמות ללמידה. הישארו עם Icarus.

התקנה ב-macOS

הדרך המהירה ביותר היא Homebrew:

brew install icarus-verilog gtkwave

זה מתקין גם את הקומפיילר וגם את מציג ה-waveforms. בדקו:

iverilog -V
gtkwave --version

אמורים להופיע מספרי גרסה משניהם. iverilog מוסיף את עצמו ל-PATH אוטומטית. GTKWave מתקין app bundle תחת /Applications וגם פקודת gtkwave שאפשר להפעיל מהטרמינל.

אם Homebrew לא מותקן, עקבו קודם אחרי ההוראות ב-brew.sh (זו פקודת curl אחת), ואז חזרו לכאן.

התקנה ב-Linux

בהפצות מבוססות Debian (Ubuntu, Mint, Pop!_OS):

sudo apt update
sudo apt install iverilog gtkwave

במערכות בסגנון Fedora / RHEL:

sudo dnf install iverilog gtkwave

ב-Arch:

sudo pacman -S iverilog gtkwave

ואז בדקו באותה דרך:

iverilog -V
gtkwave --version

הגרסה הארוזה מפגרת לפעמים בגרסה אחת אחרי המקור. לרוב הלמידה זה בסדר. אם צריך גרסה חדשה יותר, בנו מקוד המקור: במאגר ה-GitHub של הפרויקט יש הוראות, וזה במרחק ./configure && make && sudo make install.

התקנה ב-Windows

הדרך הקלה ביותר היא המתקין המוכן שקהילת iverilog מתחזקת ב-bleyer.org (חפשו "iverilog Windows"). הוא כולל את Icarus Verilog, את GTKWave ואת סביבת ה-GCC ש-Icarus צריך בפנים.

  1. הורידו את המתקין העדכני ביותר (בדרך כלל iverilog-vXX-setup.exe).
  2. הריצו אותו. קבלו את ברירות המחדל, אלא אם יש לכם סיבה שלא.
  3. כשהמתקין שואל, השאירו את "Add to PATH" מסומן.
  4. פתחו חלון PowerShell או Command Prompt חדש ובדקו:
iverilog -V
gtkwave --version

אם שכחתם להוסיף ל-PATH, הבינארי נמצא במקום כמו C:\iverilog\bin\iverilog.exe. או שמוסיפים את C:\iverilog\bin ל-PATH של המשתמש דרך System Properties, או שמריצים שוב את המתקין ומסמנים את התיבה.

WSL2 היא גם אפשרות טובה ב-Windows: התקינו Ubuntu מה-Microsoft Store ועקבו אחרי ההוראות של Linux בתוכו. תקבלו תהליך עבודה מוכר יותר בסגנון Unix.

קומפילציה והרצה של הקובץ הראשון

אחרי ההתקנה, תהליך העבודה נראה כך. שמרו קובץ בשם hello.v:

module hello;
    initial begin
        $display("hello from verilog");
        $finish;
    end
endmodule

קמפלו אותו לבינארי של סימולציה:

iverilog -o hello hello.v

iverilog הוא הקומפיילר. -o hello נותן שם לפלט. hello.v הוא קובץ המקור שלכם.

הריצו את הסימולציה:

vvp hello

אמורים לראות:

hello from verilog

זו כל הלולאה המקומית. מכאן אפשר לפצל את התכנון לכמה קבצים (iverilog -o sim *.v), להשתמש בדגל -g2012 כדי להפעיל יכולות של SystemVerilog-2012, או להעביר את הפלט לסקריפטים משלכם.

יצירת waveform וצפייה בו

הוסיפו $dumpfile ו-$dumpvars ל-testbench, הריצו אותו, ופתחו את קובץ ה-VCD שנוצר ב-GTKWave:

initial begin
    $dumpfile("dump.vcd");
    $dumpvars(0, test);
    // ...
end

אחרי ש-vvp sim מסתיים, יהיה לכם dump.vcd ליד קובץ המקור. פתחו אותו:

gtkwave dump.vcd

GTKWave טוען את הקובץ ומציג את עץ האותות בחלונית משלו. גררו את האותות שמעניינים אתכם לאזור הגלים. אנחנו מכסים את זה בפירוט ב-Dumpfile ו-VCD.

שגיאות נפוצות

iverilog: command not found: הבינארי לא נמצא ב-PATH. ב-Windows זה בדרך כלל אומר שהמתקין לא הורץ עם עדכון PATH. ב-macOS/Linux זה בדרך כלל אומר ש-Homebrew/apt לא סיימו, או שאתם ב-shell שלא טען מחדש את ה-PATH שלו (סגרו ופתחו מחדש את הטרמינל).

syntax error בשורה שנראית נכונה: בדקו שאתם לא משתמשים ביכולת של SystemVerilog במצב Verilog רגיל. העבירו -g2012 ל-iverilog כדי להפעיל את SystemVerilog-2012:

iverilog -g2012 -o sim main.v

Unknown module בזמן קומפילציה: או שקובץ המקור של המודול לא הועבר ל-iverilog, או ששם המודול ביצירת המופע לא תואם בדיוק את הצהרת ה-module. Verilog רגישה לאותיות גדולות וקטנות.

waveform ריק ב-GTKWave: ה-testbench לא קרא ל-$dumpfile ול-$dumpvars, או שהסימולציה הגיעה ל-$finish לפני שאותות כלשהם השתנו. הוסיפו לפחות $dumpvars(0, top) אחד ותנו לסימולציה לרוץ מספיק זמן כדי שיהיו מעברים.

מה הלאה

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

שאלות נפוצות

איך מתקינים Verilog?

אין תוכנה אחת בשם 'Verilog': זו שפה, ומה שמתקינים הוא קומפיילר/סימולטור. ללמידה, הבחירה הסטנדרטית היא Icarus Verilog (הפקודות iverilog ו-vvp), יחד עם GTKWave לצפייה ב-waveforms. ב-macOS השתמשו ב-brew install icarus-verilog gtkwave; ב-Debian/Ubuntu השתמשו ב-apt install iverilog gtkwave; ב-Windows הורידו את המתקין המוכן מהאתר של Bleyer.

צריך להתקין משהו כדי ללמוד Verilog?

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

מה ההבדל בין iverilog ל-vvp?

iverilog הוא הקומפיילר: הוא הופך את קובצי המקור .v שלכם לקובץ בינארי של סימולציה. vvp הוא סביבת הריצה שמבצעת את הבינארי הזה. רצף הפקודות הטיפוסי הוא iverilog -o sim main.v test.v ואחריו vvp sim. רוב סקריפטי העבודה עוטפים את שניהם.

האם Icarus Verilog חינמי?

כן. Icarus Verilog הוא קוד פתוח תחת GPL/LGPL. אין שרת רישוי, אין תקופת ניסיון, והוא מתאים גם ללמידה וגם לשימוש מסחרי. החלופות המסחריות (ModelSim, VCS, Xcelium) בתשלום; לכל מה שמכוסה במסמכים האלה, Icarus מספיק.

איך בודקים את הגרסה של iverilog?

פתחו טרמינל והריצו iverilog -V. אמור להופיע מספר גרסה כמו Icarus Verilog version 12.0. אם מקבלים 'command not found', הבינארי לא נמצא ב-PATH: הריצו שוב את המתקין או הוסיפו את תיקיית ה-bin לתצורת ה-shell.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל