Boolean Logic چیست؟ آموزش کامل گیتهای منطقی با شکل شماتیک و Truth Table
اگر بخواهیم از پایه بفهمیم کامپیوتر، CPU، FPGA و مدارهای دیجیتال چگونه با صفر و یک کار میکنند، یکی از مهمترین مفاهیمی که باید یاد بگیریم Boolean Logic یا منطق بولی است.
در منطق بولی، اطلاعات معمولاً با دو مقدار نمایش داده میشوند: 0 و 1. این دو مقدار میتوانند در سختافزار به وضعیتهای منطقی مختلف مانند Low و High مربوط باشند.
گیت منطقی چیست؟
یک Logic Gate را میتوان سادهترین بلوک تصمیمگیری در مدار دیجیتال دانست. مثلاً گیت AND میگوید:
خروجی فقط زمانی ۱ است که هر دو ورودی ۱ باشند.
گیتهای منطقی از ترانزیستورها ساخته میشوند و همین گیتها در سطح بالاتر، مدارهایی مانند Adder، Multiplexer، Decoder، Comparator و در نهایت بخشهایی از CPU را تشکیل میدهند.
Truth Table چیست؟
برای نشان دادن رفتار یک گیت از Truth Table یا جدول درستی استفاده میکنیم. این جدول تمام حالتهای ممکن ورودیها و خروجی مربوط به هر حالت را نشان میدهد.
اگر دو ورودی داشته باشیم، چهار حالت ممکن داریم:
و اگر سه ورودی داشته باشیم:
1. گیت AND
AND Gate
گیت AND زمانی خروجی ۱ تولید میکند که تمام ورودیها ۱ باشند.
| A | B | Y = A·B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
مثلاً اگر A=1 و B=1 باشد، خروجی برابر 1 میشود. اما اگر حتی یکی از ورودیها صفر باشد، خروجی صفر خواهد بود.
2. گیت OR
OR Gate
در OR، اگر حداقل یکی از ورودیها ۱ باشد، خروجی ۱ میشود. فقط زمانی خروجی صفر است که تمام ورودیها صفر باشند.
| A | B | Y = A+B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
3. گیت NOT
NOT Gate / Inverter
گیت NOT فقط یک ورودی دارد و مقدار آن را معکوس میکند. یعنی ۰ را به ۱ و ۱ را به ۰ تبدیل میکند.
| A | Y = A̅ |
|---|---|
| 0 | 1 |
| 1 | 0 |
دایره کوچک در خروجی شکل NOT نشاندهنده Inversion یا معکوس شدن سیگنال است.
4. گیت NAND
NAND Gate
NAND در واقع ترکیب AND + NOT است. یعنی ابتدا AND انجام میشود و سپس خروجی معکوس میشود.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
5. گیت NOR
NOR Gate
NOR ترکیب OR + NOT است. بنابراین ابتدا OR انجام میشود و سپس نتیجه معکوس میشود.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
6. گیت XOR
XOR Gate
XOR یا Exclusive OR زمانی خروجی ۱ میدهد که ورودیها با یکدیگر متفاوت باشند.
| A | B | Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
XOR در مدارهای دیجیتال بسیار مهم است و در مدارهایی مثل Adder و بخشهای مختلف عملیات محاسباتی استفاده میشود.
7. گیت XNOR
XNOR Gate
XNOR تقریباً برعکس XOR است. زمانی خروجی ۱ میشود که ورودیها برابر باشند.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
8. گیت Buffer
Buffer Gate
Buffer مقدار ورودی را بدون تغییر به خروجی منتقل میکند. یعنی اگر ورودی ۱ باشد خروجی ۱ و اگر ورودی ۰ باشد خروجی ۰ است.
| A | Y |
|---|---|
| 0 | 0 |
| 1 | 1 |
جدول مقایسه تمام گیتهای اصلی
| Gate | عملکرد | عبارت بولی |
|---|---|---|
| AND | همه ورودیها باید ۱ باشند | A · B |
| OR | حداقل یک ورودی ۱ باشد | A + B |
| NOT | معکوس کردن ورودی | A̅ |
| 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 به همراه دایره کوچک در خروجی.
یک مثال ترکیبی
فرض کنیم مدار زیر را داشته باشیم:
برای حل آن باید ترتیب عملیات را رعایت کنیم:
- ابتدا A و B وارد AND میشوند.
- خروجی AND با C وارد OR میشود.
- خروجی OR برابر Y خواهد بود.
این دقیقاً همان مفهومی است که بعداً هنگام طراحی مدارهای بزرگتر با آن روبهرو میشویم: چند گیت ساده کنار هم قرار میگیرند و یک مدار منطقی پیچیدهتر میسازند.
Boolean Logic چه ارتباطی با سختافزار دارد؟
اینجا یکی از مهمترین ارتباطها با معماری کامپیوتر مشخص میشود. در سطح سختافزار، ترانزیستورها در کنار یکدیگر قرار میگیرند و گیتهای منطقی را میسازند. گیتها نیز مدارهای بزرگتر را تشکیل میدهند.
Transistor
↓
Logic Gate
↓
Combinational Circuit
↓
ALU / MUX / Decoder / Comparator
↓
Datapath + Control Unit
↓
CPU
در FPGA نیز همین مفهوم بسیار مهم است. وقتی در Verilog یا VHDL یک منطق ساده تعریف میکنیم، ابزار سنتز آن را به ساختارهای سختافزاری مناسب FPGA تبدیل میکند. بنابراین کدی که مینویسیم صرفاً یک برنامه معمولی نیست؛ در نهایت قرار است یک سختافزار منطقی ایجاد کند.
سه روش مهم برای نمایش یک مدار منطقی
یک تابع منطقی را معمولاً میتوان به سه شکل اصلی بیان کرد:
- Boolean Expression: مانند
Y = A·B - Truth Table: تمام حالتهای ورودی و خروجی
- Logic Diagram: شکل گیتهایی که مدار را تشکیل میدهند
جمعبندی
در این مرحله باید بدانیم که Boolean Logic زبان پایه مدارهای دیجیتال است. مقادیر ۰ و ۱ وارد گیتها میشوند و گیتها بر اساس قوانین منطقی، خروجی تولید میکنند.
گیتهای اصلی که باید کاملاً بلد باشیم عبارتاند از: AND، OR، NOT، NAND، NOR، XOR، XNOR و Buffer.
مرحله بعدی بعد از یادگیری گیتها، یادگیری Boolean Algebra است؛ جایی که یاد میگیریم عبارتهای منطقی را ساده کنیم، قوانین مختلف را به کار ببریم و بعداً با De Morgan، SOP، POS و K-Map مدارهای منطقی را به شکل بهینهتری طراحی کنیم.