بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
توابع درون ماژول ها تعریف می شوند.
توابع به عنوان متغیر محلی ماژول در نظر گرفته می شوند.
توابع جزء ساختار سلسله مراتبی طرح محسوب می شوند.
اسلاید 2 :
توابع به تمام متغیرهای ماژول دسترسی دارند.
درون توابع می توان متغیر محلی (به غیر از نوع wire) تعریف کرد.
درون توابع نمی توان از بلوک های initial و always استفاده کرد.
اسلاید 3 :
خواص توابع
می توان توابع را در بلوک های رفتاری فرا خواند.
فراخوانی توابع، فراخوانی با مقدار است.
در Verilog توابع می توانند به صورت task و یا function تعریف شوند.
اسلاید 4 :
تابع task
با کلمات کلیدی task و endtask تعریف می شود.
کاربرد آن در این موارد است:
.1در مواقعی که خروجی های مورد نیاز یا بیش از یکی باشد و یا اصلاً خروجی نیاز نباشد.
.2تابع دارای آرگومان ورودی نباشد.
.3در توالی اجرای تابع نیاز به زمان بندی بر اساس تاخیر باشد.
اسلاید 5 :
خواص تابع task
درون آن می توان توابع دیگری را فرا خواند.
پورت ها می توانند علاوه بر نوع input، از نوع inout و یا output نیز باشند.
اسلاید 6 :
کار با تابع task
فرمت کلی تعریف:
task <taskname>;
<input,output and inout declarations>
<local variable declarations>
<statements>
endtask
اسلاید 7 :
فرمت کلی فراخوانی:
task_name(<I/O list>);
اسلاید 8 :
تعریف پورت ها مشابه پورت های ماژول است.
ورودی توسط آرگومان های input و inout اعمال می شوند.
پس از اجرا، آرگومان های خروجی مقدار می گیرند.
task می تواند متغیر های ماژول را تغییر دهد.
اسلاید 9 :
کدهای نمونه Verilog
اسلاید 10 :
تابع function
با کلمات کلیدی function و endfunction تعریف می شود.
کاربرد آن در این موارد است:
.1در مواقعی که فقط مقدار خروجی نیاز باشد.
.2حداقل یک آرگومان ورودی باشد.
.3نیازی به ساختار کنترل زمان و یا رخداد نباشد.