عکس پیش‌فرض نوشته

برای تعیین مشخصات اشیایی (سیگنال، متغییر و ثابت) که در مطالب قبلی گفته شد، می توان آنها را از نوع مشخصی اعلان کرد. VHDL انواع بسیار زیادی دارد که برای ایجاد اشیاء ساده یا مرکب قابل استفاده می باشند.

برای ایجاد یک نوع جدید باید آن را اعلان کرد. اعلان نوع، نام نوع و بازه ی آن را مشخص می کند. اعلان نوع در بخش های اعلانی بسته، موجودیت، معماری، زیربرنامه و پروسس مجاز است.

 
Learning VHDL

اعلان نوع مشابه خط زیر است:

TYPE type_name IS type_mark;

سازه type_mark روش های متعددی برای مشخص کردن یک نوع فراهم می کند. این سازه هر چیزی، از یک ثابت شمارشی گرفته تا یک ساختار رکورد مرکب، می تواند باشد. در ادامه، علامت های نوع بررسی می شوند. تمام قواعد تعریف شده برای سیگنال ها و متغییرها قابل تعمیم به اعلان های نوع نیز می باشند.

 

انواع اسکالر:

اشیایی را توصیف می کنند که در هر لحظه فقط یک مقدار را نگه می دارند. خود نوع می تواند چندین مقدار داشته باشد، اما شیء که اعلان می شود از نوع اسکالر خواهد بود که در هر لحظه فقط می تواند یکی از مقادیر اسکالر را نگهداری کند. اشاره به نام شیء به کل شیء اشاره می کند.

اسکالرها به چهار نوع زیر تقسیم می شوند:

—   انواع صحیح

—   انواع حقیقی

—   انواع شمارشی

—   انواع فیزیکی

 

انواع صحیح:

درست مشابه اعداد صحیح حسابی می باشند. تمام توابع حسابی از پیش تعریف شده مانند جمع، تفریق، ضرب و تقسیم به انواع صحیح اعمال می شوند. LRM زبان VHDL بازه حداکثری برای اعداد صحیح مشخص نکرده است، اما حداقل بازه آنها را از -2147483647 تا +2147483647 تعیین کرده است. بازه حداقل توسط بسته استاندارد درون کتابخانه استاندارد مشخص می شود.

بسته استاندارد تمام انواع VHDL از پیش تعریف شده توسط زبان را تعریف می کند. کتابخانه استاندارد کلیه بسته ها یا موجودیت های استاندارد زبان را نگهداری می کند.

بازه اعداد صحیح -2147483647 تا +2147483647 ممکن است برای برخی از طراحان آشنا با نمایش مکمل 2 که معمولا در نمایش مکمل 2 یک عدد منفی کوچکتر (-2147483647) را مجاز می شمرد نا متجانس به نظر می رسد. زبان VHDL بازه اعداد صحیح را حول 0 متقارن تعریف می کند.

در زیر مقادیر صحیح را مشاهده می کنید:

 

ARCHITECTURE test OF test IS
BEGIN
PROCESS(X)
    VARIABLE a : INTEGER;
    VARIABLE b : int_type;
BEGIN
    a := 1;     -- ok 1
    a := -1;    -- ok 2
    a := 1.0;   -- error 3
END PROCESS;
END test;

دو دستور اول (1 و 2) مثال هایی از تخصیص یک عدد صحیح مثبت و تخصیص یک عدد صحیح منفی را نشان می دهد. خط 3 تخصیص عددی غیرصحیح به یک متغییر را نشان می دهد. کامپایلر برای این خط یک پیغام خطا صادر می کند. هر مقدار عددی دارای ممیز، یک عدد حقیقی در نظر گرفته می شود. چون VHDL زبان با نوع دهی قویست، برای انتساب بایستی هم انواع مبنا منطبق باشند و هم عملیات تبدیل نوع (type_casting) انجام شود.

انشالله در مطالب بعدی به ادامه بحث خواهیم پرداخت.

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.