جبر بولی چیست؟ آموزش کامل قوانین جبری Boolean Algebra با جدول و شکل
در مقاله قبلی با Boolean Logic و گیتهای منطقی آشنا شدیم. حالا میخواهیم یک قدم مهمتر برداریم و یاد بگیریم چگونه عبارتهای منطقی را تحلیل، ساده و بهینه کنیم.
این کار با استفاده از Boolean Algebra یا جبر بولی انجام میشود.
جبر بولی چیست؟
جبر بولی نوعی جبر است که در آن متغیرها معمولاً فقط دو مقدار دارند:
برخلاف جبر معمولی که مثلاً میتوانیم داشته باشیم:
در جبر بولی، عملگرها معنای متفاوتی دارند. سه عمل اصلی عبارتاند از:
- AND → ضرب منطقی →
A · B - OR → جمع منطقی →
A + B - NOT → مکمل →
A̅
قوانین پایه جبر بولی
حالا مهمترین قوانین را یکییکی بررسی کنیم. این قوانین پایه بسیاری از سادهسازیهای مدارهای دیجیتال هستند.
1. قانون Identity یا همانی
همانی OR
اگر یک متغیر را با صفر OR کنیم، خود متغیر باقی میماند.
همانی AND
اگر یک متغیر را با یک AND کنیم، مقدار متغیر تغییری نمیکند.
| A | A + 0 | A · 1 |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 1 |
2. قانون Null یا Dominance
برای OR
برای AND
در OR، وجود یک ورودی ۱ کافی است تا خروجی ۱ شود. در AND، وجود یک ورودی ۰ کافی است تا خروجی ۰ شود.
| A | A + 1 | A · 0 |
|---|---|---|
| 0 | 1 | 0 |
| 1 | 1 | 0 |
3. قانون Idempotent یا توانهمانی
اگر یک مقدار را با خودش OR یا AND کنیم، نتیجه همان مقدار خواهد بود.
| A | A + A | A · A |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 1 |
4. قانون Complement یا متمم
متمم یک متغیر با علامت خط بالا نشان داده میشود:
اگر یک متغیر و متمم خودش را OR کنیم:
و اگر AND کنیم:
| A | A̅ | A + A̅ | A · A̅ |
|---|---|---|---|
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
5. قانون Double Negation
اگر یک متغیر را دو بار NOT کنیم، دوباره به مقدار اصلی برمیگردیم.
6. قانون Involution
قانون Involution در واقع همان مفهوم Double Negation است:
یعنی دو بار مکمل گرفتن، مقدار اولیه را برمیگرداند.
7. قانون Commutative یا جابجایی
برای OR
برای AND
ترتیب متغیرها در AND و OR روی نتیجه تأثیری ندارد.
| A | B | A+B | B+A | A·B | B·A |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 |
8. قانون Associative یا شرکتپذیری
OR
AND
در این قانون محل قرار گرفتن پرانتزها را میتوان تغییر داد بدون اینکه نتیجه تغییر کند.
9. قانون Distributive یا توزیعپذیری
این قانون یکی از مهمترین قوانین جبر بولی است.
حالت اول
این قسمت شبیه قانون توزیع در جبر معمولی است.
اما در جبر بولی یک حالت مهم دیگر هم داریم:
این رابطه در جبر معمولی به همین شکل وجود ندارد و یکی از تفاوتهای مهم جبر بولی با جبر معمولی است.
10. قانون Absorption یا جذب
این قانون در سادهسازی مدارها بسیار کاربردی است.
طبق قانون جذب:
یعنی کل عبارت پیچیدهتر در نهایت فقط به A تبدیل میشود.
11. قانون De Morgan
قوانین De Morgan از مهمترین قوانین جبر بولی هستند و در طراحی مدارهای دیجیتال، NAND/NOR و تبدیل ساختار گیتها کاربرد بسیار زیادی دارند.
قانون اول De Morgan
متمم AND برابر است با OR متممهای ورودی.
قانون دوم De Morgan
متمم OR برابر است با AND متممهای ورودی.
AND ↔ OR
و متمم تمام متغیرها نیز گرفته میشود.
جدول کامل قوانین مهم جبر بولی
| نام قانون | رابطه | رابطه دوم |
|---|---|---|
| Identity | A + 0 = A | A · 1 = A |
| Null / Dominance | A + 1 = 1 | A · 0 = 0 |
| Idempotent | A + A = A | A · A = A |
| Complement | A + A̅ = 1 | A · A̅ = 0 |
| Double Negation | (A̅)̅ = A | |
| Commutative | A+B = B+A | AB = BA |
| Associative | (A+B)+C = A+(B+C) | (AB)C = A(BC) |
| Distributive | A(B+C)=AB+AC | A+BC=(A+B)(A+C) |
| Absorption | A+AB=A | A(A+B)=A |
| De Morgan | (AB)̅=A̅+B̅ | (A+B)̅=A̅B̅ |
یک مثال کامل از سادهسازی
فرض کنیم تابع زیر را داشته باشیم:
طبق قانون Absorption:
بنابراین:
یعنی یک عبارت شامل دو ترم، به یک متغیر ساده تبدیل شد.
مثال دوم: استفاده از Complement
میتوانیم از قانون توزیع بولی استفاده کنیم:
حالا:
پس:
و طبق قانون Identity:
چرا سادهسازی Boolean مهم است؟
فرض کنید یک تابع منطقی را به صورت یک مدار بزرگ با تعداد زیادی گیت ساختهایم. اگر بتوانیم عبارت Boolean آن را ساده کنیم، ممکن است بتوانیم همان عملکرد را با گیتهای کمتری پیادهسازی کنیم.
این موضوع در سختافزار اهمیت زیادی دارد، چون سادهسازی میتواند در شرایط مناسب باعث کاهش تعداد منطق موردنیاز، کاهش مسیرهای منطقی و در برخی طراحیها کاهش تأخیر و مصرف منابع شود.
رابطه جبر بولی با FPGA
وقتی در Verilog مثلاً یک عبارت منطقی مینویسیم:
assign Y = A & B;در سطح مفهومی، این عبارت بیانکننده یک عملیات AND است. ابزار سنتز سپس این منطق را به منابع سختافزاری مناسب FPGA نگاشت میکند.
به همین دلیل یادگیری Boolean Algebra قبل از ورود جدی به Verilog و FPGA بسیار مهم است.
یک نقشه ذهنی برای یادگیری
0 و 1
↓
Logic Gates
↓
Boolean Algebra
↓
Simplification
↓
Truth Table
↓
SOP / POS
↓
Karnaugh Map
↓
Combinational Circuits
↓
Verilog / FPGA
جمعبندی
جبر بولی ابزار ریاضی اصلی برای تحلیل و سادهسازی مدارهای دیجیتال است. مهمترین قوانینی که باید در این مرحله بلد باشید عبارتاند از: Identity، Null، Idempotent، Complement، Double Negation، Commutative، Associative، Distributive، Absorption و De Morgan.
در ادامه مسیر، موضوع بسیار مهم بعدی SOP و POS است؛ یعنی اینکه چگونه از روی Truth Table یک تابع Boolean بسازیم و آن را به شکل استاندارد نمایش دهیم. بعد از آن میتوانیم وارد K-Map شویم و یاد بگیریم چگونه این توابع را بهصورت سیستماتیک ساده کنیم.