Full Adder (جمع‌کننده کامل) یک عنصر منطقی بنیادین و کاملاً ترکیبی است که در قلب تمام عملیات جمع باینری در سیستم‌های دیجیتال و به‌ویژه در بستر FPGA (آرایه‌های گیت قابل برنامه‌ریزی در میدان) قرار دارد. این مدار، پایه‌ای‌ترین جزء برای ساخت واحدهای محاسباتی-منطقی (ALU) است و وظیفه جمع سه بیت را بر عهده دارد: دو بیت داده ورودی (A و B) و یک بیت نقلی ورودی (Cin) از مرحله جمع قبلی. خروجی آن نیز شامل دو بیت است: بیت جمع (Sum) و بیت نقلی خروجی (Cout) که به مرحله بعدی منتقل می‌شود.

ساختار مفهومی و عملکرد منطقی

عملکرد یک Full Adder بر اساس قوانین جمع باینری است. روابط منطقی که رفتار این مدار را توصیف می‌کنند، کاملاً با استفاده از گیت‌های منطقی پایه (مانند XOR، AND و OR) قابل بیان هستند.

  • خروجی Sum: بیت جمع تنها زمانی یک (۱) می‌شود که تعداد فردی از ورودی‌های سه‌گانه (A، B، Cin) یک باشند. این رفتار دقیقاً توسط توابع منطقی XOR سه‌گانه مدل‌سازی می‌شود.
  • خروجی Cout: بیت نقلی خروجی (Cout) زمانی یک (۱) می‌شود که عمل جمع یک Carry (نقلی) تولید کند. این اتفاق در دو حالت رخ می‌دهد: یا هر دو بیت A و B یک (۱) هستند (بدون توجه به Cin)، یا اینکه یکی از آن‌ها یک (۱) باشد و Cin نیز یک (۱) باشد. این منطق با استفاده از ترکیبی از گیت‌های AND و OR قابل پیاده‌سازی است.

پیاده‌سازی مدار در VHDL و نگاشت به FPGA

VHDL به عنوان یک زبان توصیف سخت‌افزار، نه تنها برای برنامه‌نویسی، بلکه برای توصیف ساختار و رفتار مدار استفاده می‌شود. برای پیاده‌سازی Full Adder، ابتدا با استفاده از ساختار ENTITY رابط‌های خارجی مدار، یعنی ورودی‌ها و خروجی‌ها، تعریف می‌شوند.

سپس، در بخش ARCHITECTURE، رفتار داخلی مدار توصیف می‌شود. برای این مدار ترکیبی، مدل رفتاری (Behavioral Model) بهترین انتخاب است، چرا که مستقیماً معادلات منطقی (معادلات بولی) را برای تولید خروجی‌های Sum و Cout بر اساس ورودی‌های A، B و Cin تعریف می‌کند. ابزارهای سنتز (Synthesis Tools) این توصیف رفتاری را دریافت کرده و آن را به یک نت‌لیست (Netlist) سخت‌افزاری تبدیل می‌کنند.

در بستر FPGA، این نت‌لیست به منابع فیزیکی نگاشت می‌شود:

  1. LUT (Look-Up Table): منطق هر دو خروجی (Sum و Cout) در یک یا چند LUT که قلب هر Logic Cell (سلول منطقی) در FPGA هستند، پیاده‌سازی می‌شود. LUTها به دلیل قابلیت برنامه‌ریزی خود، می‌توانند هر نوع تابع منطقی مورد نیاز Full Adder را اجرا کنند.
  2. Fast Carry Chains (مسیرهای سریع نقلی): مهم‌ترین نکته در جمع‌کننده‌های چند بیتی سرعت است. برای جلوگیری از تأخیر بیش از حد (Propagation Delay) در عبور نقلی (Carry) از بیت‌های کم‌ارزش به بیت‌های پرارزش، FPGAها دارای مسیرهای اختصاصی به نام Carry Chain هستند. ابزارهای سنتز به صورت هوشمند این مدار Full Adder را به گونه‌ای نگاشت می‌کنند که از این مسیرهای پرسرعت برای انتقال Cout به Cin در مدار بعدی استفاده شود. این عمل تضمین می‌کند که عملیات جمع چند بیتی با حداکثر سرعت ممکن و کمترین تأخیر انجام شود.

Full Adder به عنوان یک ماژول قابل استفاده مجدد در VHDL طراحی می‌شود، به این معنی که یک بار آن را تعریف می‌کنیم و سپس می‌توانیم چندین نمونه از آن را به صورت آبشاری (Cascading) پشت سر هم قرار دهیم تا جمع‌کننده‌های بزرگتر (مانند ۳۲ بیتی یا ۶۴ بیتی) ایجاد کنیم. این روش ساختاری، طراحی سیستم‌های پیچیده را ساده‌تر و قابل مدیریت‌تر می‌کند.

در مجموع، پیاده‌سازی Full Adder با VHDL یک نمونه عالی از چگونگی توصیف رفتار منطقی در سطح بالا است که ابزارهای سنتز آن را به بهینه‌ترین شکل ممکن بر روی منابع فیزیکی FPGA مانند LUTها و Carry Chainها نگاشت می‌کنند.

کلیدواژه ها : مدار-Full Adder-VHDL-پیاده سازی-FPGA-جمع کننده کامل-مدار ترکیبی-Combinational Circuit-A-B-Cin-Sum-Cout-Carry In-ورودی Carry-Carry Out-خروجی Carry-معادلات بولی-Synthesis-سنتز-LUT-Look-Up Table-Logic Cell-سلول منطقی-Carry Chain-زنجیره کری-Propagation Delay-تأخیر انتشار-ALU-واحد محاسباتی و منطق-Hardware Description Language-زبان توصیف سخت‌افزار-طراحی دیجیتال-ماژول قابل استفاده مجدد-Cascading-آبشاری-رفتار منطقی-