مدار Multiplexer یا به‌اختصار MUX یکی از بلوک‌های پایه و بسیار پرکاربرد در طراحی سیستم‌های دیجیتال است که در بسیاری از مدارهای منطقی، پردازنده‌ها، مسیرهای داده و سیستم‌های مبتنی بر FPGA و ASIC استفاده می‌شود. در این محتوا، مفهوم مالتی‌پلکسر، نحوه عملکرد آن و منطق پیاده‌سازی‌اش در زبان VHDL به‌صورت کاملاً مفهومی و بدون ورود به کدنویسی بررسی می‌شود.

Multiplexer چیست و چگونه کار می‌کند؟

Multiplexer مداری ترکیبی است که چندین ورودی داده را دریافت کرده و تنها یکی از آن‌ها را بر اساس سیگنال‌های انتخاب (Select Lines) به خروجی هدایت می‌کند. به‌عبارت ساده، MUX مانند یک کلید هوشمند دیجیتال عمل می‌کند که تعیین می‌شود کدام ورودی در لحظه به خروجی متصل شود.

برای مثال:

  • یک Multiplexer 2 به 1 دارای دو ورودی داده و یک خط انتخاب است.
  • یک Multiplexer 4 به 1 دارای چهار ورودی داده و دو خط انتخاب است.
  • به‌طور کلی، اگر تعداد خطوط انتخاب برابر با n باشد، تعداد ورودی‌ها برابر با 2ⁿ خواهد بود.

ساختار منطقی Multiplexer در طراحی دیجیتال

ساختار داخلی Multiplexer بر پایه ترکیب گیت‌های منطقی مانند AND، OR و NOT بنا شده است. هر ورودی داده تنها زمانی فعال می‌شود که ترکیب مشخصی از سیگنال‌های انتخاب برقرار باشد. در نهایت، خروجی برابر با مقدار همان ورودی انتخاب‌شده خواهد بود.

در طراحی‌های سطح بالاتر (High-Level Design)، طراح معمولاً دیگر به گیت‌ها فکر نمی‌کند، بلکه از توصیف رفتاری (Behavioral Description) برای بیان عملکرد مدار استفاده می‌کند؛ درست همان چیزی که زبان VHDL فراهم می‌کند.


جایگاه Multiplexer در زبان VHDL

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

پیاده‌سازی مفهومی یک MUX در VHDL معمولاً بر اساس این ایده‌ها شکل می‌گیرد:

  • تعریف ورودی‌های داده به‌صورت سیگنال
  • تعریف سیگنال‌های انتخاب
  • توصیف رابطه منطقی بین ورودی‌ها و خروجی

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

پیاده‌سازی رفتاری Multiplexer در VHDL

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

این نوع پیاده‌سازی:

  • خوانایی بالایی دارد
  • برای توسعه و عیب‌یابی مناسب است
  • توسط ابزارهای سنتز (Synthesis) به مدار واقعی تبدیل می‌شود

تقریباً تمام پیاده‌سازی‌های استاندارد Multiplexer در پروژه‌های FPGA به همین شیوه انجام می‌شوند.

کاربردهای Multiplexer در طراحی دیجیتال

Multiplexer یکی از پرکاربردترین المان‌ها در سیستم‌های دیجیتال است و در بخش‌های مختلفی استفاده می‌شود، از جمله:

  • انتخاب منبع داده در مسیرهای پردازشی
  • مدیریت ورودی و خروجی در میکروکنترلرها
  • طراحی واحد کنترل (Control Unit)
  • کاهش تعداد سیم‌ها و منابع سخت‌افزاری
  • پیاده‌سازی تصمیم‌گیری‌های شرطی در سطح سخت‌افزار

مزایای استفاده از Multiplexer در VHDL

استفاده از مالتی‌پلکسر در توصیف سخت‌افزار با VHDL مزایای متعددی دارد:

  • افزایش انعطاف‌پذیری طراحی
  • کاهش پیچیدگی مدار
  • مصرف بهینه منابع FPGA
  • افزایش سرعت تصمیم‌گیری در مسیر داده

به همین دلیل، تقریباً هیچ پروژه دیجیتالی بدون استفاده مستقیم یا غیرمستقیم از Multiplexer وجود ندارد.

کلیدواژه ها : Multiplexer-مالتی پلکسر-MUX-VHDL-VHDL Multiplexer-طراحی مدار دیجیتال-Digital Design-FPGA-مدار ترکیبی-Combinational Circuit-Hardware Description Language-HDL