iverilog-vpi(1) Version 13.0 (stable) iverilog-vpi(1)

iverilog-vpi - پیشانه‌ای برای کامپایل ماژول‌های VPI

iverilog-vpi [options] sourcefile...

ابزار iverilog-vpi برای ساده‌سازی فرایند کامپایل ماژول‌های VPI جهت استفاده در Icarus Verilog طراحی شده است. این ابزار فهرستی از فایل‌های منبع C یا C++ را از خط فرمان دریافت کرده و به عنوان خروجی یک ماژول پیوند‌خورده‌ی VPI تولید می‌کند. برای آگاهی از نحوه بارگذاری ماژول پیوندخورده توسط شبیه‌ساز، به صفحه راهنمای vvp(1) مراجعه کنید.

به‌طور پیش‌فرض، نام فایل خروجی بر اساس نخستین فایل منبع نام‌گذاری می‌شود. برای نمونه، اگر نام نخستین فایل منبع foo.c باشد، خروجی foo.vpi خواهد بود.

iverilog-vpi گزینه‌های زیر را می‌پذیرد:

کتابخانه مشخص‌شده را در فرایند پیوند ماژول VPI می‌گنجاند. این امر به ماژول‌های VPI اجازه می‌دهد به کتابخانه‌های خارجی بیشتری ارجاع دهند.
دایرکتوری directory را به فهرست دایرکتوری‌هایی که برای فایل‌های کتابخانه جستجو می‌شوند، اضافه می‌کند.
دایرکتوری directory را به فهرست دایرکتوری‌هایی که برای فایل‌های سرآیند جستجو می‌شوند، اضافه می‌کند.
ماکرویی با نام define تعریف می‌کند.
به‌طور معمول، نام ماژول خروجی VPI بر اساس نخستین فایل منبع داده‌شده به دستور تعیین می‌شود. این پرچم نام ماژول خروجی vpi را (بدون پسوند .vpi) مشخص می‌کند.

هنگامی که این ابزار به عنوان یک برنامه بومی ویندوز (با استفاده از زنجیره ابزار MinGW) ساخته شده باشد، iverilog-vpi به‌طور پیش‌فرض تلاش می‌کند ابزارهای MinGW مورد نیاز برای کامپایل ماژول VPI را در مسیر سیستم (که با متغیر محیطی PATH تعیین شده است) پیدا کند. به عنوان یک راهکار جایگزین، کاربر می‌تواند مکان ابزارهای MinGW را از طریق گزینه زیر تعیین کند.

مسیر ریشه مجموعه ابزارهای کامپایلر MinGW را به برنامه اعلام می‌کند. زمان اجرای vvp با این کامپایلر ساخته شده است، و این همان کامپایلری است که iverilog-vpi انتظار دارد برای کامپایل کدهای منبع شما به کار گیرد. اگر این گزینه همراه با فهرستی از فایل‌ها مشخص شود، تنها برای ساخت فعلی اعمال خواهد شد. اگر این گزینه به تنهایی ارائه شود، iverilog-vpi مسیر path را در رجیستری ذخیره کرده و برای عملیات بعدی آن را نسبت به مسیر سیستم در اولویت قرار می‌دهد، تا نیازی به تعیین مجدد آن در هر بار اجرای خط فرمان نباشد.

ابزار iverilog-vpi شامل پرچم‌های بیشتری است که به متخصصان Makefile امکان می‌دهد پیکربندی نصب iverilog را بررسی کنند. به این ترتیب، می‌توان Makefileهایی نوشت که فرایند ساخت‌های پیچیده VPI را به صورت بومی و بدون نیاز به درج مقادیر وابسته به سیستم و نصب (hard-coding) مدیریت کنند. در صورت استفاده، این گزینه‌ها باید حتماً یکی‌یکی و بدون همراهی هرگونه گزینه یا دستورالعمل دیگری به کار روند.

دایرکتوری نصب ماژول‌های VPI را چاپ می‌کند.
پرچم‌های کامپایلر (CFLAGS یا CXXFLAGS) مورد نیاز برای کامپایل کد منبع در نظر گرفته شده برای ماژول VPI را چاپ می‌کند.
پرچم‌های پیونددهنده (LDFLAGS) مورد نیاز برای پیوند دادن ماژول VPI را چاپ می‌کند.
کتابخانه‌های (LDLIBS) مورد نیاز برای پیوند دادن ماژول VPI را چاپ می‌کند.

نمونه Makefile گنو که از این پرچم‌ها بهره می‌برد:

CFLAGS = -Wall -O $(CFLAGS_$@)
VPI_CFLAGS := $(shell iverilog-vpi --cflags)
CFLAGS_messagev.o = $(VPI_CFLAGS)
CFLAGS_fifo.o = $(VPI_CFLAGS)
messagev.o fifo.o: transport.h
messagev.vpi: messagev.o fifo.o
iverilog-vpi $^

Steve Williams (steve@icarus.com)

iverilog(1), vvp(1), https://steveicarus.github.io/iverilog, http://mingw-w64.yaxm.org,

Copyright ©  2002-2026 Stephen Williams
این سند می‌تواند آزادانه بر اساس شرایط ویرایش 2.0 از مجوز عمومی همگانی گنو بازتوزیع شود.
Jan 13th, 2026