Boolean Logic چیست؟ آموزش کامل گیت‌های منطقی با شکل شماتیک و Truth Table

اگر بخواهیم از پایه بفهمیم کامپیوتر، CPU، FPGA و مدارهای دیجیتال چگونه با صفر و یک کار می‌کنند، یکی از مهم‌ترین مفاهیمی که باید یاد بگیریم Boolean Logic یا منطق بولی است.

در منطق بولی، اطلاعات معمولاً با دو مقدار نمایش داده می‌شوند: 0 و 1. این دو مقدار می‌توانند در سخت‌افزار به وضعیت‌های منطقی مختلف مانند Low و High مربوط باشند.

ایده اصلی: گیت‌های منطقی مدارهای کوچکی هستند که یک یا چند ورودی ۰ و ۱ را دریافت می‌کنند و بر اساس یک قانون مشخص، یک خروجی ۰ یا ۱ تولید می‌کنند.

گیت منطقی چیست؟

یک Logic Gate را می‌توان ساده‌ترین بلوک تصمیم‌گیری در مدار دیجیتال دانست. مثلاً گیت AND می‌گوید:

خروجی فقط زمانی ۱ است که هر دو ورودی ۱ باشند.

گیت‌های منطقی از ترانزیستورها ساخته می‌شوند و همین گیت‌ها در سطح بالاتر، مدارهایی مانند Adder، Multiplexer، Decoder، Comparator و در نهایت بخش‌هایی از CPU را تشکیل می‌دهند.

Truth Table چیست؟

برای نشان دادن رفتار یک گیت از Truth Table یا جدول درستی استفاده می‌کنیم. این جدول تمام حالت‌های ممکن ورودی‌ها و خروجی مربوط به هر حالت را نشان می‌دهد.

اگر دو ورودی داشته باشیم، چهار حالت ممکن داریم:

2² = 4

و اگر سه ورودی داشته باشیم:

2³ = 8

1. گیت AND

AND Gate

گیت AND زمانی خروجی ۱ تولید می‌کند که تمام ورودی‌ها ۱ باشند.

A B Y AND
Y = A · B
ABY = A·B
000
010
100
111

مثلاً اگر A=1 و B=1 باشد، خروجی برابر 1 می‌شود. اما اگر حتی یکی از ورودی‌ها صفر باشد، خروجی صفر خواهد بود.

2. گیت OR

OR Gate

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

A B Y OR
Y = A + B
ABY = A+B
000
011
101
111

3. گیت NOT

NOT Gate / Inverter

گیت NOT فقط یک ورودی دارد و مقدار آن را معکوس می‌کند. یعنی ۰ را به ۱ و ۱ را به ۰ تبدیل می‌کند.

A Y NOT
Y = A̅
AY = A̅
01
10

دایره کوچک در خروجی شکل NOT نشان‌دهنده Inversion یا معکوس شدن سیگنال است.

4. گیت NAND

NAND Gate

NAND در واقع ترکیب AND + NOT است. یعنی ابتدا AND انجام می‌شود و سپس خروجی معکوس می‌شود.

A B Y AND
Y = (A · B)̅
ABY
001
011
101
110
نکته مهم: NAND یک Universal Gate است؛ یعنی می‌توان با استفاده از NAND به‌تنهایی گیت‌های منطقی دیگر را نیز ساخت.

5. گیت NOR

NOR Gate

NOR ترکیب OR + NOT است. بنابراین ابتدا OR انجام می‌شود و سپس نتیجه معکوس می‌شود.

A B Y OR
Y = (A + B)̅
ABY
001
010
100
110
NOR نیز مانند NAND یک Universal Gate است.

6. گیت XOR

XOR Gate

XOR یا Exclusive OR زمانی خروجی ۱ می‌دهد که ورودی‌ها با یکدیگر متفاوت باشند.

A B Y XOR
Y = A ⊕ B
ABY
000
011
101
110

XOR در مدارهای دیجیتال بسیار مهم است و در مدارهایی مثل Adder و بخش‌های مختلف عملیات محاسباتی استفاده می‌شود.

7. گیت XNOR

XNOR Gate

XNOR تقریباً برعکس XOR است. زمانی خروجی ۱ می‌شود که ورودی‌ها برابر باشند.

A B Y XOR
Y = (A ⊕ B)̅
ABY
001
010
100
111

8. گیت Buffer

Buffer Gate

Buffer مقدار ورودی را بدون تغییر به خروجی منتقل می‌کند. یعنی اگر ورودی ۱ باشد خروجی ۱ و اگر ورودی ۰ باشد خروجی ۰ است.

A Y BUF
Y = A
AY
00
11

جدول مقایسه تمام گیت‌های اصلی

Gate عملکرد عبارت بولی
AND همه ورودی‌ها باید ۱ باشند A · B
OR حداقل یک ورودی ۱ باشد A + B
NOT معکوس کردن ورودی
NAND معکوس AND (A · B)̅
NOR معکوس OR (A + B)̅
XOR ورودی‌ها متفاوت باشند A ⊕ B
XNOR ورودی‌ها برابر باشند (A ⊕ B)̅
Buffer انتقال مستقیم ورودی A

چطور از روی شکل گیت آن را تشخیص دهیم؟

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

  • AND: سمت ورودی صاف و سمت خروجی گرد است.
  • OR: قسمت ورودی و خروجی حالت منحنی دارد.
  • NOT: مثلث به همراه یک دایره کوچک در خروجی است.
  • NAND: شکل AND به همراه دایره کوچک در خروجی.
  • NOR: شکل OR به همراه دایره کوچک در خروجی.
  • XOR: مانند OR است اما یک خط منحنی اضافه در ورودی دارد.
  • XNOR: XOR به همراه دایره کوچک در خروجی.
قاعده مهم: دایره کوچک روی ورودی یا خروجی یک گیت معمولاً نشان‌دهنده NOT / Inversion است. پس اگر شکل AND را دیدید و در خروجی یک دایره داشت، می‌دانید که با NAND روبه‌رو هستید.

یک مثال ترکیبی

فرض کنیم مدار زیر را داشته باشیم:

Y = A · B + C

برای حل آن باید ترتیب عملیات را رعایت کنیم:

  1. ابتدا A و B وارد AND می‌شوند.
  2. خروجی AND با C وارد OR می‌شود.
  3. خروجی OR برابر Y خواهد بود.
A B C Y AND OR

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

Boolean Logic چه ارتباطی با سخت‌افزار دارد؟

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

Transistor

Logic Gate

Combinational Circuit

ALU / MUX / Decoder / Comparator

Datapath + Control Unit

CPU

در FPGA نیز همین مفهوم بسیار مهم است. وقتی در Verilog یا VHDL یک منطق ساده تعریف می‌کنیم، ابزار سنتز آن را به ساختارهای سخت‌افزاری مناسب FPGA تبدیل می‌کند. بنابراین کدی که می‌نویسیم صرفاً یک برنامه معمولی نیست؛ در نهایت قرار است یک سخت‌افزار منطقی ایجاد کند.

سه روش مهم برای نمایش یک مدار منطقی

یک تابع منطقی را معمولاً می‌توان به سه شکل اصلی بیان کرد:

  1. Boolean Expression: مانند Y = A·B
  2. Truth Table: تمام حالت‌های ورودی و خروجی
  3. Logic Diagram: شکل گیت‌هایی که مدار را تشکیل می‌دهند
اگر این سه مورد را بتوانید به یکدیگر تبدیل کنید، پایه بسیار مهمی از طراحی مدار دیجیتال را یاد گرفته‌اید.

جمع‌بندی

در این مرحله باید بدانیم که Boolean Logic زبان پایه مدارهای دیجیتال است. مقادیر ۰ و ۱ وارد گیت‌ها می‌شوند و گیت‌ها بر اساس قوانین منطقی، خروجی تولید می‌کنند.

گیت‌های اصلی که باید کاملاً بلد باشیم عبارت‌اند از: AND، OR، NOT، NAND، NOR، XOR، XNOR و Buffer.

مرحله بعدی بعد از یادگیری گیت‌ها، یادگیری Boolean Algebra است؛ جایی که یاد می‌گیریم عبارت‌های منطقی را ساده کنیم، قوانین مختلف را به کار ببریم و بعداً با De Morgan، SOP، POS و K-Map مدارهای منطقی را به شکل بهینه‌تری طراحی کنیم.