GVHDL(1) User Commands GVHDL(1)

gvhdl - پیشخوان و رابط کامپایلر و شبیه‌ساز VHDL یعنی FreeHDL

gvhdl [گزینه] ... [فایل‌های_VHDL] ... [فایل‌های_شیء] ...

FreeHDL مجموعه‌ای از کامپایلر و شبیه‌ساز برای زبان توصیف سخت‌افزار VHDL است. این ابزار از استانداردهای VHDL'93 و همچنین VHDL'87 پشتیبانی می‌کند.

FreeHDL فایل‌های منبع اصلی VHDL را به ++C ترجمه می‌کند. سپس منبع ++C کامپایل شده و با هسته پیوند (link) داده می‌شود تا برنامه شبیه‌سازی ساخته شود. با اجرای فایل اجرایی تولیدشده، مدل VHDL مربوطه شبیه‌سازی خواهد شد. فرایند ساخت واقعی برای تولید شبیه‌ساز از منبع VHDL یک فرایند پیچیده است که توسط اسکریپت gvhdl مدیریت می‌شود.

VHDL_FILES فهرستی از نام‌های فایل‌های منبع VHDL است که باید به پسوند vhdl. یا vhd. ختم شوند. نام نخستین فایل VHDL نام فایل اجرایی شبیه‌ساز را نیز مشخص می‌کند؛ به این معنا که نام فایل اجرایی نهایی بر اساس نام اولین فایل VHDL بدون پسوند vhdl. یا vhd. تعیین می‌شود. توجه داشته باشید که فایل‌های شیء (object files) و همچنین فایل شبیه‌ساز در دایرکتوری جاری ایجاد خواهند شد.

OBJECT_FILES فهرستی از فایل‌های شیء را مشخص می‌کند که با فایل اجرایی شبیه‌ساز پیوند داده می‌شوند. دستور gvhdl تمامی فایل‌هایی را که به o. ختم می‌شوند به عنوان فایل شیء در نظر می‌گیرد. معمولاً این فایل‌های شیء قبلاً (با استفاده از گزینه c-) از کد منبع VHDL در طول یک مرحله کامپایل جداگانه تولید شده‌اند.

مسیر دایرکتوری ریشه کتابخانه VHDL. کامپایلر درون این دایرکتوری به دنبال فایلی به نام v2cc.libs می‌گردد. فایل نگاشت v2cc.libs نام واحدهای کتابخانه را به دایرکتوری‌ها ترجمه می‌کند. توجه داشته باشید که می‌توان بیش از یک VHDLLIB را مشخص کرد.
افزودن اطلاعات اشکال‌زدایی (دیباگ) به فایل اجرایی. به طور دقیق‌تر، این گزینه کد ماشین تولیدشده را به خطوط متناظر در فایل‌های منبع VHDL مرتبط می‌سازد.
افزودن اطلاعات اشکال‌زدایی به فایل اجرایی بدون مرتبط کردن کد ماشین با خطوط منبع VHDL. این گزینه در واقع برای اشکال‌زدایی کد ++C تولیدشده به کار می‌رود.
عدم تولید فایل اجرایی شبیه‌ساز. با استفاده از این گزینه، کامپایلر منبع VHDL را ترجمه کرده و آن را به کد شیء کامپایل می‌کند اما فایل اجرایی شبیه‌ساز نهایی را تولید نمی‌کند. این گزینه به ویژه برای کامپایل بسته‌های VHDL مفید است.
مرتبط کردن کد منبع VHDL با کتابخانه VHDL با نام LIBNAME. به طور پیش‌فرض از نام کتابخانه WORK استفاده می‌شود. این گزینه به ویژه زمانی مهم است که مؤلفه‌های VHDL از چندین کتابخانه VHDL باید در شبیه‌ساز ساخته شوند. توجه داشته باشید که برای استفاده موفقیت‌آمیز از یک مؤلفه VHDL از کتابخانه‌ای غیر از کتابخانه کاری جاری، فایل‌های VHDL متناظر باید توسط کامپایلر با استفاده از سازوکارهای شرح‌داده‌شده در v2cc.libs پیدا شوند. علاوه بر این، مؤلفه‌ها باید با گزینه مناسب l LIBNAME- کامپایل گردند.
اجازه پیوندهای پیش‌فرض نامرئی از WORK را می‌دهد.
افزودن فایل‌های کتابخانه استاندارد IEEE به فایل اجرایی شبیه‌سازی.

متغیر V2CC_LIBRARY_PATH شامل نام فایل‌ها یا مسیرهایی است که با ":" از یکدیگر جدا شده‌اند. علاوه بر این متغیر محیطی، می‌توانید از گزینه خط فرمان "L libdir-" با v2cc استفاده کنید. دایرکتوری‌های مشخص‌شده با "L-" پیش از دایرکتوری‌های مشخص‌شده توسط V2CC_LIBRARY_PATH اضافه می‌شوند. در مسیر نهایی کتابخانه، آن‌ها با همان ترتیبی که در خط فرمان آمده‌اند ظاهر خواهند شد.

در حال حاضر، FreeHDL از کل استاندارد VHDL'93 پشتیبانی نمی‌کند. فهرست ناقص زیر نمایی کلی از مواردی که در حال حاضر پشتیبانی نمی‌شوند ارائه می‌دهد:

  • انتساب مجزای متغیرهای صوری (formals) از نوع مرکب (composite) پشتیبانی نمی‌شود.
  • متغیرهای مشترک (Shared variables) پشتیبانی نمی‌شوند.
  • ویژگی‌های transaction، quiet، stable و delayed پشتیبانی نمی‌شوند.
  • ویژگی‌های تعریف‌شده توسط کاربر پشتیبانی نمی‌شوند.
  • گروه‌ها (Groups) پشتیبانی نمی‌شوند.
  • انتساب‌های سیگنال محافظت‌شده (Guarded signal assignments) پشتیبانی نمی‌شوند.
  • پیکربندی‌ها (Configurations) پشتیبانی نمی‌شوند.
  • در حال حاضر، راه‌اندازها (درایورها) را نمی‌توان خاموش کرد.

دستور:

gvhdl -c adder.vhdl

برای ساخت یک فایل شیء از adder.vhdl استفاده می‌شود. توجه داشته باشید که adder.vhdl ممکن است حاوی چندین مدل VHDL باشد.

دستور:

gvhdl adder.vhdl

یک شبیه‌ساز برای آخرین مدل VHDL یافت‌شده در adder.vhdl تولید خواهد کرد. با این حال، در این حالت، تمام مؤلفه‌های VHDL مورد نیاز برای ساخت شبیه‌ساز باید در فایل منبع VHDL گنجانده شده باشند.

دستور:

gvhdl top.vhdl adder.o --libieee

یک شبیه‌ساز برای آخرین مدل VHDL یافت‌شده در top.vhdl تولید می‌کند که این کار را با کامپایل تمام مدل‌های موجود در top.vhdl و پیوند دادن فایل شیء adder.o (که قبلاً تولید شده) و کتابخانه‌های استاندارد IEEE به فایل اجرایی انجام می‌دهد.

دستور:

gvhdl -c -l mylib adder.vhdl

یک فایل شیء شامل تمام مؤلفه‌های ارائه‌شده در adder.vhdl می‌سازد. با این حال، در این حالت مؤلفه‌ها به جای نام پیش‌فرض کتابخانه یعنی work، به کتابخانه mylib منتسب می‌شوند. توجه داشته باشید که گزینه l- فقط بر کد منبع ++C تولیدشده تأثیر می‌گذارد و محل ذخیره فایل‌های شیء یا فایل‌های اجرایی را تغییر نمی‌دهد.

پس از راه‌اندازی شبیه‌ساز، خلاصه کوتاهی از دستورات در دسترس روی صفحه نمایش چاپ می‌شود:

c <number> : execute cycles = execute <number> simulation cycles
n          : next = execute next simulation cycle
q          : quit = quit simulation
r <time>   : run = execute simulation for <time>
d          : dump = dump signals
doff       : dump off = stop dumping signals
don        : dump on = continue dumping signals
s          : show = show signal values
dv         : dump var  = dump a signal from the signal lists
ds         : dump show  = shows the list of dumped signals
nds        : number  show  = shows the number  of dumped signals
dc [-f <filename>] [-t <timescale> <time unit>] [-cfg <translation file>] [-q]
              : configures dump process 

توجه داشته باشید که سیگنال‌ها در فایلی با قالب VCD تخلیه می‌شوند (نام فایل پیش‌فرض "wave.dmp" است). این قالب فایل باید توسط هر نمایش‌دهنده شکل‌موج VCD پذیرفته شود. نام فایل به صورت پیش‌فرض "wave.dmp" تنظیم شده است اما می‌توان با استفاده از "dc -f <new_file_name>" آن را تغییر داد. با این حال، مطمئن شوید که دستور "... dc -f" را پیش از اجرای "d" اجرا کنید.

شبیه‌سازی را می‌توان از طریق پارامتر خط فرمان '-cmd "cmd1; cmd2; ..."' کنترل کرد که در آن 'cmd1', 'cmd2', ... دستورات شبیه‌سازی همان‌گونه که در بخش پیشین توضیح داده شد هستند. توجه داشته باشید که هر دستور باید با ';' جدا شود. به عنوان مثال، اجرای:

./top -cmd "d;run 1000 ns;q;"

برنامه شبیه‌سازی 'top' را آغاز می‌کند، تمامی سیگنال‌ها را تخلیه کرده و شبیه‌سازی را برای مدت ۱۰۰۰ نانوثانیه اجرا می‌نماید؛ در نهایت شبیه‌سازی پایان می‌یابد. در واقع، دستور پایانی ';q' اختیاری است چرا که شبیه‌ساز به محض اجرای آخرین دستور به طور خودکار خاتمه می‌یابد.

freehdl-v2cc(1), freehdl-config(1), v2cc.libs(5)

جدیدترین نسخه FreeHDL را همیشه می‌توان از نشانی زیر دریافت کرد:

www.freehdl.seul.org

باگ‌های شناخته‌شده در فایل BUGS مستند شده‌اند. اگر گزارش شما به مباحث مربوط به تجزیه‌کننده (parser) مربوط می‌شود، با Marius Vollmer به نشانی <mvo@zagadka.ping.de> تماس بگیرید. اگر به تولیدکننده کد یا کامپایلر مربوط است، ایمیلی به Edwin Naroska به نشانی <edwin@ds.e-technik.uni-dortmund.de> ارسال نمایید. اگر مطمئن نیستید، آن را برای Edwin بفرستید؛ او مسئولیت ارسال گزارش شما را به گیرنده مناسب بر عهده خواهد گرفت.

Edwin Naroska © 1999, 2000, 2001, 2002, 2003, 2004, 2005 <edwin@ds.e-technik.uni-dortmund.de>

این یک نرم‌افزار آزاد است؛ شرایط تکثیر و کپی را در فایل منبع مشاهده کنید. هیچ‌گونه ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا مناسب بودن برای یک هدف خاص.

نوشته‌شده توسط Marius Vollmer <mvo@zagadka.ping.de> و Edwin Naroska <edwin@ds.e-technik.uni-dortmund.de>.

December 2005 Debian/GNU Linux