پاورپوینت برنامه‌های فرعی در زبان VHDL

پاورپوینت برنامه‌های فرعی در زبان VHDL (pptx) 15 اسلاید


دسته بندی : پاورپوینت

نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )

تعداد اسلاید: 15 اسلاید

قسمتی از متن PowerPoint (.pptx) :

دانشکده مهندسی برق و کامپیوتر گروه مهندسی کامپیوتر برنامه‌های فرعی در زبان VHDL (پروسیجر، فانکشن) برنامه‌های فرعی در VHDL فانکشن: شامل مجموعه ای از دستورات جهت محاسبه یک مقدار عدم دستکاری مقدار پارامترها پروسیجر: شامل یکسری دستورات برای انجام یک کار توانایی دستکاری مقدار پارامترها کاربرد: خلاصه سازی، خوانایی و ساخت‌یافتگی کد VHDL تطبیق عملگرها و انواع (تبدیل نوع) در داخل پروسیجر و فانکشن از دستورات ترتیبی استفاده می‌شود تعریف فانکشن قالب کلی تعریف فانکشن به شکل زیر است: function identifier [(parameter_interface_list)] return type_mark is {subprogram_declarative_part } begin {sequential_statement } end function [ identifier ]; مثال1: تعریف و فراخوانی فانکشن تعریف فانکشن: -------------------------------------------------- function limit (value,min,max : integer) return integer is begin if value > max then return max; elsif value < min then return min; else return value; end if; end function limit; -------------------------------------------------- فراخوانی فانکشن: new_temp:=limit (current_temperature + increment ,10,100); مثال2: تعریف و فراخوانی فانکشن تعریف فانکشن: FUNCTION mux(databits:BIT_VECTOR; sel:BIT_VECTOR) RETURN BIT IS VARIABLE selint : INTEGER := 0; BEGIN FOR i IN sel'LENGTH - 1 DOWNTO 0 LOOP IF sel (i) = '1' THEN selint := selint + 2**i; END IF; END LOOP; RETURN databits (selint); END FUNCTION mux; مثال2: تعریف و فراخوانی فانکشن فراخوانی فانکشن ENTITY mux21 IS PORT(a,b,s:IN BIT; w:OUT BIT); END ENTITY mux21 ARCHITECTURE functional OF mux21 IS FUNCTION mux (databits : BIT_VECTOR; . . . : END FUNCTION mux; SIGNAL sel : BIT_VECTOR (0 DOWNTO 0); BEGIN sel(0) <= s; w <= mux ((a,b), sel) AFTER 8 NS; END ARCHITECTURE functional; تعریف پروسیجر قالب کلی تعریف پروسیجر به شکل زیر است: procedure identifier [(parameter_interface_list)] is {subprogram_declarative_part} begin {sequential_statement} end procedure [ identifier ]; یک مثال از پروسیجر Type word32 is std_logic_vector(31 downto 0); : -------------------------------------------------- procedure addu (a, b: in word32; result: out word32; overflow: out Boolean ) is variable sum: word32; variable carry: std_logic_vector:= ‘0’; begin for index in sum’reverse_range loop sum(index):=a(index) xor b(index) xor carry; carry:=(a(index) and b(index) ) or (carry and (a(index) xor b(index) ) ); end loop; result:=sum; overflow:=carry = ‘1’; end procedure addu; -------------------------------------------------- فراخوانی پروسیجر مثال: variable PC, next_PC: word32; variable overflow_flag: boolean; : : addu ( PC, X”0000_0004”,next_PC, overflow_flag);

فایل های دیگر این دسته