پیوند ها

نام فایل : توابع
فرمت : .ppt
تعداد صفحه/اسلاید : 17
حجم : 1 مگابایت
توابع درون ماژول ها تعریف می شوند.
توابع به عنوان متغیر محلی ماژول در نظر گرفته می شوند.
توابع جزء ساختار سلسله مراتبی طرح محسوب می شوند.
توابع به تمام متغیرهای ماژول دسترسی دارند.
درون توابع می توان متغیر محلی (به غیر از نوع wire) تعریف کرد.
درون توابع نمی توان از بلوک های initial و always استفاده کرد.
می توان توابع را در بلوک های رفتاری فرا خواند.
فراخوانی توابع، فراخوانی با مقدار است.
در Verilog توابع می توانند به صورت task و یا function تعریف شوند.
با کلمات کلیدی task و endtask تعریف می شود.
کاربرد آن در این موارد است:
در مواقعی که خروجی های مورد نیاز یا بیش از یکی باشد و یا اصلاً خروجی نیاز نباشد.
تابع دارای آرگومان ورودی نباشد.
در توالی اجرای تابع نیاز به زمان بندی بر اساس تاخیر باشد.
درون آن می توان توابع دیگری را فرا خواند.
پورت ها می توانند علاوه بر نوع input، از نوع inout و یا output نیز باشند.
فرمت کلی تعریف:
task ;
<input,output and inout declarations>
endtask
task bitwise_oper;
output [15:0] ab_and,ab_xor,ab_or;
input [15:0] a,b;
begin
#5 ab_and=a&b;
ab_or = a|b;
ab_xor=a^b;
end
endtask
bitwise_oper(AB_AND,AB_XOR,AB_OR,A,B);
فرمت کلی فراخوانی:
task_name(<I/O list>);
تعریف پورت ها مشابه پورت های ماژول است.
ورودی توسط آرگومان های input و inout اعمال می شوند.
پس از اجرا، آرگومان های خروجی مقدار می گیرند.
task می تواند متغیر های ماژول را تغییر دهد.
با کلمات کلیدی function و endfunction تعریف می شود.
کاربرد آن در این موارد است:
در مواقعی که فقط مقدار خروجی نیاز باشد.
حداقل یک آرگومان ورودی باشد.
نیازی به ساختار کنترل زمان و یا رخداد نباشد.
....