آرایه‌ها در VHDL

blog
۱۳۹۸-۱۲-۰۸
3 دقیقه

اگر با زبان‌های برنامه‌نویسی کار کرده باشید می‌دانید که انواع مختلف داده برای کارهای مختلف برای ما وجود دارد. از داده‌های اینتیجر، با علامت و بی علامت بگیرید تا ساختمان‌ها و بسیاری از داده‌های دیگر. در زبانی مانند زبان C انواع این داده‌ها وجود دارند. در این مقاله ما می‌خواهیم در رابطه با آرایه‌ها در زبان VHDL صحبت کنیم، اما ابتدا به توضیحاتی که در ادامه خواهیم داد توجه کنید.

آرایه‌ها خود نیز نوعی داده هستند که در زبان C قابل تعریف هستند. ما انواع آرایه‌های یک بعدی، دو بعدی، سه بعدی و بیشتر از این داریم.

اما آیا این آرایه‌ها به صورت یک بعدی، دو بعدی و … در حافظه‌ها ذخیره می‌شوند؟

خیر حافظه‌های دیجیتال یا به صورت فلیپ‌فلاپ یا رجیستر هستند که یک یا چندین بیت را در خود جای می‌دهند و یا هم حافظه‌هایی مثل RAM هستند که ساختارشان کمی متفاوت است و با آدرس‌دهی به آن می‌توان به یک وکتور دسترسی داشت. پس در واقع چیزی به اسم حافظه‌های چند بعدی یا به صورت ماتریسی وجود ندارد.

شاید برای شما مفید باشد: آموزش FPGA

اینکه ما در زبان‌های برنامه‌نویسی آرایه‌های چند بعدی داریم و یا ماتریس می‌توانیم تعریف کنیم دلیل بر این نیست که درون تراشه‌ها نیز همچین حافظه‌هایی وجود داشته باشد، بلکه این سبک کدنویسی برای راحت بودن کاربر و نزدیک بودن به دنیای قابل فهم برای کاربر می‌باشد.

اما بحث اصلی ما در رابطه با داده‌ها و به طبع آن حافظه‌ها در درون FPGA می‌باشد و به این دلیل در ابتدا به آرایه‌ها در زبان برنامه‌نویسی C اشاره کردیم چون شما به احتمال زیاد بیشتر آشنا هستید و تجربه کار با آن‌ها را دارید.

حافظه‌ها در FPGA

به صورت کلی در FPGAها به دو صورت می‌توانیم حافظه‌ها را توصیف کنیم. یکی استفاده از LUTها (شامل فلیپ‌فلاپ، مالتی‌پلکسر و یک سری ادوات دیگر می‌شود) و دیگری استفاده از RAM است. ما در این مقاله به RAM نخواهیم پرداخت و توضیحاتی در رابطه با ساختن حافظه با فلیپ‌فلاپ و LUT خواهیم داد.

نوع داده‌هایی که ما در مقالات آموزش FPGA توصیف کرده بودیم نوع‌عایی بودند که به ازای تعداد بیت آن‌ها از فلیپ‌فلاپ استفاده می‌شد. اما در این مقاله می‌خواهیم با نوعی شبیه به آرایه‌ها که در زبان C وجود دارد در زبان VHDL آشنا شویم.

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

ابتدا به تصویر زیر توجه کنید:

آرایه در زبان VHDL

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

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

ماتریس و بردار

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

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

به کد زیر توجه کنید:

اگر کد بالا را تفسیر کنید به خوبی متوجه می‌شوید که توصیف یک مالتی پلکسر است که هشت ورودی دو بیتی دارد که با توجه به مقدار S یکی از این ورودی‌های دو بیتی به خروجی منتقل می‌شود.

همچنین می‌توان در هنگام تعریف آرایه آن را با مقادیر دلخواه مقداردهی اولیه کرد.

مثال‌‌های بیشتری از این قبیل را می‌توانید در این لینک ببینید.

اطلاعات
0
0
لینک و اشتراک
profile

سپهر

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله