GTKWAVE(1) Simulation Wave Viewer GTKWAVE(1)

gtkwave - ابزار مصورسازی پرونده‌های VCD، LXT، LXT2، VZT، FST و GHW

gtkwave [گزینه]... [DUMPFILE] [SAVEFILE] [RCFILE]

ابزار مصورسازی پرونده‌های VCD، LXT، LXT2، VZT، FST و GHW. فرمت VCD یک استاندارد صنعتی برای پرونده‌های تخلیه (dump) شبیه‌سازی است. فرمت‌های LXT، LXT2، VZT و FST به‌طور خاص برای استفاده با gtkwave طراحی شده‌اند. فرمت GHW قالب بومی VHDL تولیدشده توسط GHDL است. تخلیه‌کننده‌های بومی در Icarus Verilog و نسخه متن‌باز VeriWell برای فرمت‌های LXT وجود دارند؛ بنابراین نیازی به تبدیل با vcd2lxt(1) یا vcd2lxt2(1) برای بهره‌گیری مستقیم از LXT با آن شبیه‌سازها نیست. پرونده‌های AET2 نیز در صورت در دسترس بودن libae2rw قابل پردازش هستند، اما این قابلیت تنها برای کسانی کاربرد دارد که از مجموعه ابزارهای IBM EDA استفاده می‌کنند.

استفاده از پنجره انتخاب پرونده (file requester) برای مشخص کردن نام پرونده تخلیه (dumpfile).
مشخص کردن نام پرونده تخلیه.
تولید/استفاده از پرونده‌های بارگذاری سریع بازکدگذار (recoder) برای VCD. این گزینه شبیه به گزینه -g,--giga است، با این تفاوت که پرونده سرریز (spill file) تولیدشده حذف نمی‌شود. بارگذاری مجدد پرونده VCD در زمان‌های بعدی (از طریق فشردن دکمه بارگذاری مجدد یا اجرای دوباره gtkwave در زمانی دیگر) به جای خواندن بخش تغییر مقادیر پرونده VCD، از این پرونده سرریز تولیدشده استفاده خواهد کرد. این کار سرعت بارگذاری مجدد پرونده‌های حجیم را بسیار افزایش می‌دهد، چرا که تنها بخش اعلان متغیرها باید تحلیل شود. توجه داشته باشید که پرونده سرریز شامل اندازه پرونده و تاریخ تغییر پرونده VCD است تا در صورت قدیمی بودن، تشخیص داده شده و مجدداً تولید شود.
بهینه‌سازی VCD به FST. این گزینه به‌طور خودکار vcd2fst(1) را برای انجام تبدیل پرونده فراخوانی می‌کند. استفاده از این گزینه برای پرونده‌های بزرگ VCD به‌منظور کاهش حافظه مورد نیاز برای مشاهده پرونده به‌شدت توصیه می‌شود. می‌تواند همراه با -v,--vcd به کار رود.
مشخص کردن نام پرونده ذخیره (savefile). پسوندهای کاربردی برای یکپارچگی با میزکار gtkw. و sav. (منسوخ‌شده) هستند.
فرض کردن این‌که نام پرونده ذخیره، همان نام پرونده تخلیه با تغییر پسوند است (یعنی حذف پسوند و جایگزینی آن با ".gtkw").
مشخص کردن نام پرونده جایگزین برای .gtkwaverc.
مشخص کردن نام پرونده گزارش (logfile) شبیه‌سازی. با قرار دادن این فلگ دستوری پیش از هر نام، می‌توان چندین پرونده لاگ مشخص کرد. با انتخاب اعداد در ویجت متنی، نشانگر بلافاصله روی مقدار زمانی خاص بزرگنمایی می‌کند.
اگر پرونده .gtkwaverc در پوشه خانگی یا پوشه جاری موجود نباشد و به‌طور صریح در خط فرمان مشخص نشده باشد، با فعال بودن این گزینه، از پرونده پیکربندی ضمنی استفاده نمی‌شود و در عوض رفتار پیش‌فرض قدیمی «صفحه سفید» اعمال خواهد شد.
مشخص کردن اطلاعات شناسه چند‌نشستی (multisession). قالب «کدام» به صورت m+nnnnnnnn است که در آن m شماره نشست 0 یا 1 بوده و nnnnnnnn یک مقدار در مبنای ۱۶ (هگزادسیمال) است که شناسه حافظه مشترک آرایه‌ای از دو ساختار داده gtkwave_dual_ipc_t را نشان می‌دهد. کاربرد مورد نظر این فلگ برای پیش‌نماهایی مانند twinwave(1) است.
مشخص کردن زمان شروع برای پرش بلوک در LXT2/VZT.
مشخص کردن زمان پایان برای پرش بلوک در LXT2/VZT.
مشخص کردن پرونده ریشه‌ها (stems file) برای حاشیه‌نویسی کد منبع. این گزینه پردازش کمکی rtlbrowse(1) را به‌طور خودکار اجرا می‌کند. برای اطلاعات بیشتر پیرامون تولید پرونده ریشه‌ها، xml2stems(1) را ببینید.
مشخص کردن تعداد پردازنده‌های در دسترس برای عملیات‌های موازی‌سازی‌پذیر (مانند پیش‌واکشی بلوک‌ها در هنگام خواندن VZT).
غیرفعال کردن مدیر پنجره برای بیشتر پنجره‌ها. کاربرد مورد نظر این گزینه برای استفاده همزمان با گزینه --script است، با این حال می‌تواند برای انتقال والد پنجره به یک مدیر پنجره جایگزین نیز به کار رود.
نوار منو را رندر نکن. کاربرد اصلی این گزینه برای ایجاد یک اپلت محدود است که نتواند به تنهایی عملیات ورودی/خروجی پرونده را آغاز کند؛ با این حال می‌تواند به عنوان یک راهکار در نسخه‌های قبلی +GTK که تعاملات فوکوس GTKSocket/GTKPlug را به درستی مدیریت نمی‌کنند نیز استفاده شود.
از نوارهای سرایند که منوهای همبرگری را در نوار ابزار نمایش می‌دهند استفاده نکن و به حالت عملکرد بدون نوار سرایند برگرد. این گزینه تنها مخصوص GTK 3 است.
مشخص کردن پرونده اسکریپت دستورات Tcl برای اجرا.
مشخص کردن پرونده اسکریپت دستورات Tcl برای بارگذاری هنگام راه‌اندازی. مستلزم فلگ دستور --wish است.
فعال‌سازی خط فرمان Tcl روی stdio. تمام دستورات اسکریپت را می‌توان در stdin وارد کرد.
مشخص کردن پرونده اسکریپت دستورات Tcl برای اجرای دوره‌ای.
مشخص کردن تاخیر به میلی‌ثانیه میان اجراهای متوالی repscript. مقدار پیش‌فرض ۵۰۰ است.
مشخص کردن XID پنجره (در مبنای ۱۶) برای اتصال یک GtkPlug به آن. ابزار GTKWave مستقیماً درون یک پنجره رندر نمی‌کند، بلکه در یک GtkPlug رندر می‌کند که در طرف دیگر انتظار یک GtkSocket را دارد. توجه داشته باشید که در نسخه کامپوننت‌شده GTKWave هنگامی که به عنوان یک پلاگین کار می‌کند، به دلیل وجود مشکلاتی در عملکرد صحیح شتاب‌دهنده‌ها (کلیدهای میانبر)، منوها غیرفعال هستند.
-1,--rpcid <RPCID>
مشخص کردن RPCID نشست GConf (یا GSettings). این یک مقدار ده‌دهی صفر یا بزرگتر است و شناسه‌ای است که GConf برای تشخیص داده‌های به‌روزرسانی که باید به آن‌ها گوش دهد، از آن استفاده می‌کند. این گزینه تنها در صورتی کار می‌کند که --with-gconf (یا --with-gsettings) در هنگام ./configure مشخص شده باشد.
-2,--chdir <نام پوشه>
مشخص کردن پوشه کاری جاری جدید. این گزینه معمولاً در OSX برای اجرای gtkwave در صورتی که کامپایل شده و در یک بسته app. قرار گرفته باشد، به کار می‌رود. توجه داشته باشید که در صورت تعریف متغیر محیطی GTKWAVE_CHDIR، این آرگومان یک آرگومان صوری خواهد بود. این قابلیت به این دلیل برای پشتیبانی از OSX تعبیه شده که دستور open در ارسال فاصله‌ها به عنوان آرگومان‌های خط فرمان مشکل دارد و ممکن است pwd(1) فاصله‌ها را برگرداند.
-3,--restore
بازیابی نشست پیش‌فرض قبلی (0) یا نشست شماره‌گذاری‌شده با RPCID توسط --rpcid. این گزینه تنها برای یک پرونده تخلیه، پرونده ذخیره، پرونده rc و پوشه کاری جاری عمل می‌کند؛ بنابراین اثر آن بازیابی آخرین پرونده بارگذاری‌شده است. اگر در ترکیب با گزینه --rpcid به کار رود، آن گزینه باید پیش از گزینه --restore در خط فرمان مشخص شده باشد. اگر RPCID مشخص نشده باشد، مقدار پیش‌فرض 0 استفاده می‌شود. این گزینه تنها در صورتی کار می‌کند که --with-gconf (یا --with-gsettings) در زمان ./configure مشخص شده باشد. توجه داشته باشید که در GSettings، محدودیت‌های پیاده‌سازی فقط اجازه بازیابی نشست قبلی را می‌دهند.
-4,--rcvar
مشخص کردن مقادیر منفرد متغیرهای rc به صورت جداگانه. این مقادیر پس از بارگذاری هرگونه متغیر دیگر rc از مقادیر پیش‌فرض داخلی یا پرونده‌های پیکربندی اعمال می‌شوند.
-5,--sstexclude
مشخص کردن نام پرونده فیلتر استثنای sst.
-6,--dark
تنظیم gtk-application-prefer-dark-theme = TRUE.
-7,--saveonexit
هنگام خروج، یک پنجره درخواست ظاهر می‌شود تا از کاربر بخواهد یک پرونده ذخیره بنویسد. انصراف از پنجره درخواست مانع از نوشتن پرونده می‌شود.
مشخص می‌کند که از حالت VCD «تعاملی» (interactive) استفاده شود که به بیننده اجازه می‌دهد در حالی که GTKWave در حال پردازش پرونده VCD است، در ردپا پیمایش کند. هنگامی که این گزینه استفاده می‌شود، کاربرد نام پرونده تغییر می‌کند به طوری که مقدار در مبنای ۱۶ شناسه حافظه مشترک یک نویسنده خواهد بود. توجه داشته باشید که شناسه حافظه مشترک می‌تواند مستقیماً با استفاده از گزینه --vcd از طریق ورودی استاندارد (stdin) ارسال شود؛ برای جزئیات بیشتر به صفحه راهنمای shmidcat(1) مراجعه کنید.
مشخص می‌کند که بیننده باید به جای بازکدگذار VCD از حالت سنتی (قدیمی) VCD استفاده کند. توجه داشته باشید که استفاده از حالت سنتی به مراتب حافظه بیشتری نسبت به بازکدگذار نیاز دارد و استفاده از آن برای ردپاهای بسیار بزرگ توصیه نمی‌شود.
مشخص می‌کند که بیننده باید هنگام بازکدگذاری از بسته‌بندی حافظه گیگابایتی استفاده کند (احتمالاً کندتر است). این معادل تنظیم فلگ‌های vlist_spill و vlist_prepack در پرونده rc است.
مشخص می‌کند که بیننده هنگام بارگذاری پرونده تخلیه، باید از نام‌های سلسله‌مراتبی فشرده استفاده کند (برای بازکدگذار VCD، LXT، LXT2 و VZT موجود است). این کار با هزینه تأخیر فشرده‌سازی/فشرده‌زدایی، حافظه کمتری مصرف می‌کند.
استفاده از stdin به عنوان یک پرونده تخلیه VCD.
مشخص کردن نام پرونده برای هدایت مجدد خروجی‌های stdout/stderr. برای غیرفعال کردن پیام‌ها به کنسول، از dev/null/ به عنوان نام پرونده استفاده کنید.
فعال‌سازی بزرگنمایی کششی برای لغزنده زمانی افقی. کلیک کردن و سپس کشیدن لبه سمت چپ یا راست لغزنده می‌تواند برای بزرگنمایی بلادرنگ با دقت بالا به کار رود.
نمایش اعلان نسخه و خروج.
نمایش راهنما و خروج.
خروج پس از بارگذاری ردپا (برای بنچمارک و سنجش بارگذار).

~/.gtkwaverc (صفحه راهنمای gtkwaverc(5) را ببینید)

برای اجرای این برنامه به روش استاندارد وارد کنید:
gtkwave dumpfile.vcd
به عنوان روشی دیگر می‌توانید آن را همراه با یک پرونده ذخیره به صورت زیر اجرا کنید:
gtkwave dumpfile.vcd dumpfile.gtkw
برای اجرا به صورت تعاملی با استفاده از شناسه حافظه مشترک 0x00050003:
gtkwave -I 00050003 dumpfile.gtkw
برای برگزیدن خودکار یک پرونده تخلیه از روی پرونده ذخیره (برای مثال هنگام راه‌اندازی از روی یک آیکون):
gtkwave --save dumpfile.gtkw
برای اجرا از طریق بسته برنامک gtkwave.app در OSX با استفاده از bin/sh/:
GTKWAVE_CHDIR=`pwd`;export GTKWAVE_CHDIR;open -n -W -a gtkwave --args --chdir dummy --dump des.vzt --save des.gtkw
به عنوان روشی دیگر، اسکریپت پرل gtkwave.app/Contents/Resources/bin/gtkwave را برای پردازش آرگومان‌های خط فرمان از طریق اسکریپت‌های شل OSX اجرا کنید.
توجه داشته باشید که برای ارسال مواردی به غیر از فلگ‌ها که با یک خط تیره شروع می‌شوند، لازم است -- را به منظور غیرفعال کردن تجزیه فلگ‌ها مشخص کنید. درج یک -- دوم، تجزیه هرگونه آرگومان بعدی را غیرفعال می‌کند تا بتوان آن‌ها را به اسکریپت‌های Tcl ارسال و از طریق gtkwave::getArgv بازیابی کرد.

گزینه‌های خط فرمان برای مشخص کردن نام‌های پرونده تخلیه، پرونده ذخیره و پرونده rc ضروری نیستند. آن‌ها صرفاً برای این تعبیه شده‌اند که بتوان آن‌ها را بدون ترتیب مشخص کرد.

در سیستم‌عامل AIX اگر می‌خواهید GTKWave بتواند به بیش از ۲۵۶ مگابایت حافظه مجازی دسترسی داشته باشد، باید -bmaxdata:0x80000000 (-bmaxdata:0xd0000000/dsa برای AIX 5.3) به فهرست فلگ‌های کامپایلر شما برای xlc اضافه شود. مقدار نشان‌داده‌شده به VMM اجازه می‌دهد تا حداکثر از ۲ گیگابایت (۳٫۲۵ گیگابایت در AIX5.3) استفاده کند. این کار ممکن است برای ردپاهای بسیار بزرگ ضروری باشد.
عملیات‌های Shift و Page با استفاده از نوار پیمایش افقی (hscrollbar) پنجره موج ممکن است در صورت فاصله گرفتن از ابتدای تخلیه، برای ردپاهای بسیار بزرگ کار نکنند. مشاهده شده است ردپایی که تا ۴۵ میلیارد تیک پیش می‌رود این مشکل را نشان می‌دهد. این ناشی از استفاده از عنصر gfloat در لغزنده افقی برای کدگذاری مقدار زمان حاشیه چپ است. نتیجه این کار از دست رفتن دقت برای مقادیر بسیار بزرگ است. اگر این مورد مشکل‌ساز است، از کلیدهای میانبر یا دکمه‌های بالای صفحه استفاده کنید.
هنگام اجرا تحت Cygwin، در صورت استفاده از IPC حافظه مشترک، فعال‌سازی Cygserver الزامی است. به ویژه این حالت زمانی رخ می‌دهد که rtlbrowse(1) به عنوان یک پردازش کمکی اجرا شود. برای اطلاعات بیشتر در مورد نحوه فعال‌سازی Cygserver به مستندات Cygwin مراجعه کنید.

Anthony Bybell <bybell@rocketmail.com>

gtkwaverc(5) lxt2vcd(1) vcd2lxt(1) vcd2lxt2(1) vzt2vcd(1) vcd2vzt(1) xml2stems(1) rtlbrowse(1) twinwave(1) shmidcat(1)

3.3.126 Anthony Bybell