متغیر در زبان VHDL

چرا هرگز از متغیر در زبان VHDL استفاده نمی‌کنم؟

آیا تا به حال از variable یا متغیر در زبان VHDL استفاده کرده‌اید؟

تفاوت استفاده از signal و متغیر در زبان VHDL چیست؟

وقتی کد شما در FPGA پیاده‌سازی می‎‌شود، تحقق دیجیتالی سیگنال و متغیر چیست؟

در چه مواردی باید از سیگنال و چه زمانی از متغیر استفاده کنیم؟

اینها سوالاتی است که در این برنامه ویدئویی به آنها پاسخ می‌دهم.

در زبان VHDL مفهومی به نام object وجود دارد که در حقیقت کمک می‌کند بتوانید سیم‌ها و رجیسترها را در FPGA پیاده‌سازی کنید. سه object در زبان VHDL وجود دارد:

  • Signal
  • Constant
  • Variable

در مورد signal که اصلی‌ترین object مورد استفاده در زبان VHDL است در برنامه‌های قبلی به طور مفصل صحبت کرده‌ام.

برای آشنایی با زبان VHDL این برنامه ویدئویی را ببینید…

در این برنامه، ضمن یادآوری مفهوم signal و constant به طور مفصل در مورد مفهوم variable و نحوه استفاده از آن توضیح می‌دهم.

آنچه خواهید دید به شما نشان می‌دهد که استفاده از متغیر در زبان VHDL با ذات پیاده‌سازی دیجیتال در FPGA خیلی سازگار نیست و مشکلاتی ایجاد می‌کند که باعث می‌شود از به کار گیری آن صرف نظر کنیم.

یکی از مشکلات مهمی که استفاده از متغیر در زبان VHDL ایجاد می‌کند، خصوصا اگر این کار را بدون بینش لازم در مورد نحوه تفسیر و پیاده‌سازی متغیر در زبان VHDL انجام دهیم، کاهش سرعت مدار است.

برای آشنایی با روش‌های افزایش سرعت مدار در FPGA این مقاله را مطالعه کنید…

برای درک بهتر تفاوت‌های متغیر و سیگنال در پیاده‌سازی روی FPGA شماتیک مدار پیاده‌سازی شده در FPGA را در هر دو حالت به کمک یکی از قابلیت‌های جالب نرم‌افزار ISE به شما نشان می‌دهم.

برای آشنایی با نرم‌افزار ISE این برنامه ویدئویی را ببینید…

اگر زمان کافی برای مشاهده این ویدئو ندارید، اجازه دهید خلاصه بحث را در یک جمله به شما بگویم: هیچوقت از متغیر در زبان VHDL استفاده نکنید. همین.

اما پیشنهاد می‌کنم حتما این برنامه را به طور کامل مشاهده کنید، چون در آن در مورد موضوعات و مفاهیم بسیار مهمی در ارتباط با پیاده‌سازی دیجیتال در FPGA به کمک زبان VHDL صحبت می‌کنم.

 

لینک دانلود (زمان: ۲۸ دقیقه — ۷۱ مگابایت)

 

آیا برنامه ویدئویی چرا هرگز از متغیر در زبان VHDL استفاده نمی‌کنم برای شما مفید بود؟

لطفا نظرتان را در مورد این برنامه در پایین همین پست با دیگران به اشتراک بگذارید. همچنین با فشردن هر کدام از دکمه‌های زیر و اشتراک‌گذاری این مطلب در شبکه‌های اجتماعی می‌توانید افراد بیشتری را در یادگیری این مطالب سهیم کنید.

کانال آموزش FPGA از صفر

  • زهرا عویدزاده گفت:

    با عرض سلام و احترام،
    آموزش فوق العاده مفید و ظریف و کاربردی بود. بی نهایت از زمانی که برای تهیه این آموزش ها صرف میکنید و همچنین انتقال تجارب باارزشتون سپاسگزارم.
    سوالی که از خدمتتون داشتم این هست که در اولین کد مطرح شده، که شامل دو سیگنال A و C و یک متغیر B است، اگر جای خطوط ارجاع به متغیر B و سیگنال C تغییر کند، تفاوتی در کد ایجاد میشود؟
    متشکرم

    • احمد ثقفی گفت:

      سلام، ممنون. خوشحالم که این برنامه برای شما مفید بوده.

      بله، اگر جای خطوط را عوض کنید، مقداری که به C ارجاع داده می‌شود، مقدار B قبل از فعال شدن پراسس خواهد بود.

      موفق باشید.

  • رضا گفت:

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

    یه سوال داشتم از خدمتتون

    چرا به signal و constant و variable عبارت object استفاده میشه ؟؟ منظور از این کلمه چیه؟

    • احمد ثقفی گفت:

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

      موفق باشید.

  • akrajaei گفت:

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

    برای این فیلم های آموزشی هم اگر بتونید زیر نویس انگلیسی ش رو هم آماده کنید، از طریق یوتوب میتونید کسب درآمد کنید.

    • احمد ثقفی گفت:

      سلام،

      ممنون از نظر مثبت شما. خوشحالم که آموزش‌های سایت براتون مفید بوده.

      موفق باشید.