<rss version="2.0">
	<channel>
		<title>عزوز الحسني - المدونة</title> 
		<link>http://www.azzozhsn.net</link> 
		<description></description>
				<item>
			<title>دوائر الجمع المنطقية</title> 
			<pubDate>Sat, 28 Jun 2008 11:45:41 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/542</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/542</guid> 
			<description><![CDATA[&nbsp;السهل تصميم دائرة الجمع المنطقية، بالرجوع إلى موضوع جمع الأعداد الثنائية نجد أن حاصل جمع بتين لا يخلو من الحالات الآتية في الجدول<br />
<table>
<tr><td>A</td><td>B</td><td>S</td><td>C</td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>1</td></tr>
</table><br />
حيث S هو حاصل الجمع و C هو فائض عملية الجمع Carry، السؤال الآن ما علاقة الخرج S بالدخل A, B؟ نلاحظ أن الخرج S يكون صفراً في حالة كون الدخل A, B غير متشابهين، أي أن العلاقة XOR (أحدهما وليس كليهما)، أما علاقة C بالمدخلات فمن الواضح أنها علاقة وَ AND. حيث يصبح واحداً إذا كان الدخلان مساويين للواحد، وبناء على ذلك يمكن بناء الدائرة باستخدام بوابة XOR وبوابة AND كما في الشكل التالي:<br />
<br />
<img src="http://www.shaarek.com/images/HA0.png" alt="دائرة نصف الجمع" /><br />
<br />
وهذه الدائرة تسمي دائرة نصف الجمع (Half Adder) ويرمز لها أحيانا بالرمز التالي:<br />
<img src="http://www.shaarek.com/images/HA-B0.jpg" alt="رمز دائرة نصف الجمع" /><br />
لجمع عددين مكونين من 4 بتات (أو من أي عدد من البتات، 4 هنا مجرد مثال) فإننا نحتاج إلى 4 دوائر جمع على التوازي، كما يجب إضافة الفائض من ناتج جمع أول خانة إلى الخانة&nbsp; التالية، أي عمليتي جمع، لذلك يمكننا تصميم دائرة أخرى تقوم بجمع بتين مع فائض العملية السابقة إن وجد، هذه الدائرة تسمى دائرة الجمع الكامل (Full Adder). سنعتمد على الجدول التالي، حيث C<font size="1">in</font> هو فائض الجمع السابق الداخل للدائرة و C<font size="1">out</font> هو فائض عملية الجمع الحالية.<br />
<table>
<tr><td>A</td><td>B</td><td>C<font size="1">in</font></td><td>S</td><td>C<font size="1">out</font></td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>0</td><td>1</td></tr>
</table><br />
والآن نحسب الدالة S من الجدول:<br />
<img src="http://www.shaarek.com/images/FA-S0.jpg" alt="" /><br />
أما قيمة الدالة C<font size="1">out</font><br />
<img src="http://www.shaarek.com/images/FA-C0.jpg" alt="" /><br />
وفيما يلي الدائرة المنطقية للجمع الكامل (Full Adder):<br />
<br />
<img src="http://www.shaarek.com/images/FA0.png" alt="دائرة الجمع الكامل" /><br />
<br />
ويمكن بناء دائرة الجمع الكامل باستخدام دائرتي نصف الجمع مع بوابة OR كما يلي:<br />
<img src="http://www.shaarek.com/images/FAby2HA0.png" alt="دائرة الجمع الكامل باستخدام دائرتي نصف الجمع وبوابة أو" /><br />
كما يمكن بناء دائرة لجمع عددين من 4 بتات (4bit Adder)، بإدخال فائض كل خانة إلى التي تليها وأما فائض الخانة الأخيرة فتعتبر فائض عملية الجمع كاملا، كما يمكن بنفس الطريقة بناء 32bit Adder وهو الموجود في معالجات حواسيب 32bit.<br />
<img src="http://www.shaarek.com/images/4bitAdder0.png" alt="دائرة الجمع لـ 4bit" />]]></description> 
		</item>
				<item>
			<title>أمثلة على قانوني دي مورجان</title> 
			<pubDate>Wed, 18 Jun 2008 01:00:14 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/537</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/537</guid> 
			<description><![CDATA[يستخدم قانوني ديمورجان لاختصار الدوال المنطقية، وفيما يلي مثال على ذلك، ولك أن ترسم الدائرتين لتعرف كم بوابة اختصرنا.<br />
<img src="http://www.shaarek.com/images/DeMorgan10.jpg" alt="مثال" /><br />
طبعاً استخدمنا هنا بعض قواعد <a href="http://azzozhsn.net/blog/428">الجبر المنطقي</a> ففي السطر الثالث نفي النفي إثبات، وفي السطر السابع استخدمنا القانون A.A' = 0 أي قيمة مضروب منطقياً في عسكه يصبح صفراً.<br />
وفيما يلي مثال آخر بسيط<br />
<br />
<img src="http://www.shaarek.com/images/DeMorgan20.jpg" alt="مثال آخر بسيط" /><br />
<br />
لاحظ لو كنت تستخدم بوابات NAND, NOR ليس فرقاً في عدد البوابات المنطقية في الدالتين، ولكن لو كنت تستخدم AND, OR, NOT فقد اختصرت بوابات NOT، وهذا المثال يقودني للحديث عن خصائص البوابتين NAND, NOR لكن هذا الموضوع سأؤجله قليلاً، موضوعنا القادم سيكون أول موضوع في تصميم دوائر الحاسوب، تصميم دائرة الجمع، جزء مهم من وحدة الحساب والمنطق ALU داخل المعالج.]]></description> 
		</item>
				<item>
			<title>قانونا دي مورجان</title> 
			<pubDate>Wed, 14 May 2008 08:52:14 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/508</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/508</guid> 
			<description><![CDATA[دي مورجان عالم رياضيات ومنطق ساهم في وضع القوانين المنطقية بهذين القانونين<br />
القانون الأول<br />
إن مكمل المجموع (لمتغرات منطقية) يساوي حاصل ضرب مكملات المتغيرات. أي أن:<br />
(A+B+C+D)` = A`.B`.C`.D`<br />
طبعا يمكن كتابة هذا التعبير باستخدام خطوط فوق المتغرات للدلالة على النفي، يسهل هذا بالقلم، ولكن بما أن لغة HTML لا توفر خاصية وضع خطاً فوق الحروف فأستخدم الخط السفلي، واعذروني على هذا التغيير<br />
<u>A+B+C+D</u> = <u>A</u> . <u>B</u> . <u>C</u> . <u>D</u>
<br />لاحظ أننا يمكننا اختصار خمس بوابات منطقية إلى بوابة منطقية واحدة، أي حولنا أربع بوابات نفي وبوابة وَ إلى بوابة أو المنفية، وهنا تكمن أهمية قانوني دي مورجان.<br />
ويمكن إثبات هذا القانون بالجدول التالي:<br />
<table>
<tr><td>A</td><td>B</td><td>C</td><td>A+B+C</td><td><u>A+B+C</u></td><td><u>A</u></td><td><u>B</u></td><td><u>C</u></td><td><u>A</u>.<u>B</u>.<u>C</u></td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>1</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
</table><br />
يلاحظ من الجدول أن قيم العمود الخامس مساوٍ لقيم العمود الأخير.<br />
القانون الثاني<br />
إن مكمل حاصل الضرب المنطقي للمتغيرات يساوي مجموع مكملات المتغيرات<br />
<u>A.B.C</u> = <u>A</u> + <u>B</u> + <u>C</u><br />
وفيما يلي إثبات هذا القانون<br />
<table>
<tr><td>A</td><td>B</td><td>C</td><td>ABC</td><td><u>ABC</u></td><td><u>A</u></td><td><u>B</u></td><td><u>C</u></td><td><u>A</u>+<u>B</u>+<u>C</u></td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>0</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>0</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
</table><br />
<br />
لاحظ أننا يمكننا اختصار ثلاث بوابات منطقية إلى بوابة منطقية واحدة، بقي علي أن أضع مثالين على هذا الموضوع في الموضوع القادم<br />
للمزيد :<br />
<a href="http://en.wikipedia.org/wiki/De_Morgan's_laws">http://en.wikipedia.org/wiki/De_Morgan's_laws</a><br />
<br />
لا أنسى أن أبارك <a href="http://serdal.com">لسردال</a> على كتابه الأول <a href="http://www.serdal.com/books/html1/">تطوير المواقع للمبتدئين</a> كما يمكنكم قراءته والاستفادة منه.]]></description> 
		</item>
				<item>
			<title>تمثيل الأعداد الثنائية السالبة</title> 
			<pubDate>Tue, 18 Mar 2008 02:50:53 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/472</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/472</guid> 
			<description><![CDATA[في الأعداد العشرية نستخدم اﻹشارة ( - ) للدلالة على الرقم السالب، والإشارة ( + ) للدلالة على الرقم الموجب، أما داخل الحاسوب فهناك طريقتان لتمثيل اﻷعداد السالبة:<br />
<br />
1) التمثيل بواسطة الإشارة والمقدار<br />
لتمثيل الأعداد الثنائية داخل الحاسوب اصطلح على استخدام الرقم 0 للدلالة على العدد الموجب، كما يستخدم الرقم 1 للدلالة على العدد السالب، ويتم تخصيص البت اﻷخير من العدد للإشارة.<br />
إن البايت الواحد (8 بتات) يستوعب 256 قيمة عددية (2 أس 8)، فإن كنا سنضع فيها اﻷعداد الموجبة فقط فسيستوعب (0~255)، أما إذا أدرنا تمثيل الأعداد السالبة والموجبة فسيكون مجال الأعداد (-128 ~ +127) بمعني أن البت اﻷخير للإشارة ويتبقى لدينا 7 بتات تستوعب 128 عدداً (2 أس 7)،نفس الشيء إذا كان لدينا عدد مكون من 4 بت أو حتى من 64 بت نستخدم المبدأ نفسه، في الجدول التالي مجموعة من اﻷرقام الثنائية وما يعادلها في النظام العشري<br />
<table>
<tr><td>العدد الثنائي</td><td>قيمته بدون إشارة</td><td>قيمته بإشارة</td></tr>
<tr><td>0101</td><td>5</td><td>+5</td></tr>
<tr><td>1101</td><td>13</td><td>-5</td></tr>
<tr><td>0111</td><td>7</td><td>+7</td></tr>
<tr><td>1111</td><td>15</td><td>-7</td></tr>
<tr><td>00010001</td><td>17</td><td>+17</td></tr>
<tr><td>10010001</td><td>145</td><td>-17</td></tr>
<tr><td>00011000</td><td>24</td><td>+24</td></tr>
<tr><td>10011000</td><td>152</td><td>-24</td></tr>
</table><br />
إن اﻷعداد الممثلة باﻹشارة والمقدار، لا تتم عليها علمية الحمع بشكل مباشر، إذ ينبغي العناية باﻹشارات، فإن كانت إشارتا العددين المراد جمعهما متشابهتين، فإننا نجمع العددين (بدون خانة الإشارة)، وتكون إشارة الناتج هي إشارة العددين.<br />
أما في حال إختلاف اﻹشارتين، فإننا نطرح المقدار الأصغر (بدون خانة الإشارة) من المقدار الأكير، وتكون إشارة الناتج هي إشارة العدد اﻷكير في المقدار.<br />
<br />
2) التمثيل بالمكمل لاثنين<br />
ويمكن حساب المكمل لاثنين بإضافة 1 إلى المكمل لواحد، ويكون المكمل لواحد ويكون ذلك بقلب الصفر واحداً، والواحد صفراً، مثلاً المكمل لواحد للعدد 10010 هو 01101. مثال:<br />
المكمل لواحد للعدد (5) =0101 هو 1010 وبإضافة 1 عليه نحصل على: 1011 وهو ما يعادل -5 ولو جمعنا العدد 0101+1011 لحصلنا على 10000 وبتجاهل الفيض الأخير فإننا قد حصلنا على صفر[5+(-5)=0] أليس كذلك؟ تذكر في آخر درس <a href="http://azzozhsn.net/blog/425">جمع اﻷعداد الثنائية</a> أننا حولنا عملية الطرح إلى عملية جمع بعد تحويل المطروح منه إلى المكمل الثنائي لقد قمنا بذلك لكي نحول العدد إلى قيمة سالبة. طبعاً حتى في حالة استخدمنا المكمل لاثنيين فإن الخانة الأخيرة هي التي ستدلنا على إشارة العدد، ولذلك لو كنا تستخدم عدداً مكوناً من 4 بتات، فإنه سيستوعب للأعداد من -8 ~ +7، أي يجب أن تكون الخانة الأخيرة -قبل تحويل العدد إلى السالب- صفراً. جرب أن تحول الرقم 15 = 1111 إلى السالب، فإن المكمل لاثنين في حال التزمنا بأربع بتات هو 0001 = +1. لذلك تبقى الخانة الاخيرة تدلنا على إشارة العدد. في الجدول التالي مجموعة من اﻷرقام الثنائية وما يعادلها في النظام العشري:<br />
<table>
<tr><td>العدد الثنائي</td><td>قيمته بدون إشارة</td><td>قيمته بإشارة</td></tr>
<tr><td>0101</td><td>5</td><td>+5</td></tr>
<tr><td>1011</td><td>11</td><td>-5</td></tr>
<tr><td>0111</td><td>7</td><td>+7</td></tr>
<tr><td>1001</td><td>9</td><td>-7</td></tr>
<tr><td>00001111</td><td>15</td><td>+15</td></tr>
<tr><td>11110001</td><td>241</td><td>-15</td></tr>
</table><br />
وبالمناسبة فإن تنفيذ هذه الطريقة بدائرة إلكترونية أسهل من الطريقة الأولى، لعدم حاجتنا إلى مقارنة إشارتي العددين وأيهما أكبر في المقدار، إذ تتم العملية الحسابية دفعة واحدة كما سنبين ذلك في حينه.<br />
<br />
سنعود للدوائر المنطقية والموضوع القادم سيكون عن قانوني دي مورجان.]]></description> 
		</item>
				<item>
			<title>تصميم دائرة منطقية من جدول الحقيقة</title> 
			<pubDate>Wed, 20 Feb 2008 03:45:57 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/450</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/450</guid> 
			<description><![CDATA[البوم نصل لتصميم دائرة منطقية من جدول الحقيقة، في البداية سنستنتج الدالة المنطقية التي تحقق الجدول، ثم نطبق الدرس السابق للحصول على الدائرة المنطقية.<br />
قد تسأل لماذا من جدول الحقيقة؟ غالباً عند تصميم الدوائر المنطقية، أنت لا تحقق دالة معروفة، وإنما تريد دائرة تعطي معطيات معنية عند مدخلات معينة، سنوضح ذلك بمثال في الدرس التالي. واﻵن نريد معرفة الدالة المنطقية التي تحقق الجدول التالي:<br />
<table dir="ltr"><br />
<tr><td>A</td><td>B</td><td>C</td><td>Y</td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>0</td></tr>
</table><br />
الطريقة هي تحديد ما هي المدخلات التي تجعل المخرج يساوي 1، نلاحظ في الصف الثالث أن Y=1 عند A=0, B=1, C=0 فنكتب هذا الجزء من الدالة على الشكل 'A'BC حيث نضع المتغير كما هو إذا كان يساوي الواحد، وننفيه (نعكس قيمته) إذا كان يساوي الصفر.<br />
نكرر هذه العملية مع الصف السابع حيث نجد أن Y=1 عند A=1, B=1, C=0 أي عند 'ABC، ولا توجد حالة أخرى تجعل قيمة Y يساوي الواحد، وهكذا حصلنا على حدين سنجمع بينهما ببوابة OR للحصول على الدالة النهائية كما يلي:<br />
'Y=A'BC'+ABC<br />
ولتنفيذ هذه الدالة نحتاج إلى بوابتي AND بثلاث مداخل، وبوابة OR وبوابتي NOT وفيما يلي رسم الدالة المنطقية:<br />
<br />
<img alt="" src="http://www.shaarek.com/images/Diagram40.png" /><br />
<br />
الموضوع التالي سيكون مثال تطبيقي على هذا الدرس، أما الذي يليه فسيكون لي عودة للنظام الثنائي تلبية لطلب بعض القراء.]]></description> 
		</item>
				<item>
			<title>تصميم الدوائر المنطقية</title> 
			<pubDate>Sun, 17 Feb 2008 08:33:12 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/438</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/438</guid> 
			<description><![CDATA[في الموضوع السابق تحدثنا عن استنتاج دالة منطقية من دائرةمنطقية وكذلك كتابة جدول الحقيقة truth table في هذا الموضوع سنرسم الدائرة المنطقية من الدالة المنطقية، وفي الموضوع التالي سنستنبط الدالة المنطقية من جدول الحقيقة.<br />
عن طريق الأمثلة نحاول توضيح كيف تمثل دائرة منطقية لتعبير منطقي معلوم لدينا، مثل:<br />
Y=AB(CD'+EF)<br />
عند تقسم هذه العبارة نجد المتغيرات A و B ثم (CD'+EF) تمثل ثلاث مداخل للبوابة AND.<br />
وعند تقسيم العبارة (CD'+EF) نجد أن C و'D تمثل دخلي بوابة AND و EوF تمثل دخلي بوابة AND أخرى، وخرج البوابتين يمثل دخلاً لبوابة OR.<br />
ولا ننسى أن 'D تعني وجود بوابة NOT ودخلها هو D.<br />
<img src="http://www.shaarek.com/images/x3.jpg" alt="شكل يبين تقسيم الدالة لأجزاء" /><br />
<br />
وعلي ذلك فإن البوابات المنطقية المطلوبة لتمثيل الدالة المعطاة هي:<br />
1 - بوابة NOT لتمثيل 'D<br />
2 - بوابة AND دخلاها C و 'D لتمثيل الحد 'CD<br />
3 - بوابة AND دخلاها E و&nbsp; F لتمثيل الحد EF <br />
4- بوابة OR دخلاها هما خرج البوابتين AND السابقين لتمثيل الحد (CD'+EF)<br />
5- بوابة AND بثلاث مدخل لتمثيل الخرج النهائي Y.<br />
والدائرة المطقية التي تمثل الدالة المعطاة موضحة في الشكل التالي:<br />
<img src="http://www.shaarek.com/images/Diagram30.png" alt="دائرة منطقية" />]]></description> 
		</item>
				<item>
			<title>استنباط دالة منطقية من دائرة منطقية</title> 
			<pubDate>Fri, 25 Jan 2008 05:51:06 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/429</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/429</guid> 
			<description><![CDATA[اليوم نصل إلى معرفة الدالة المنطقية لدائرة منطقية، ولحساب ذلك فإننا نبدأ من جهة المدخلات ونحسب مخرجات كل دالة بناءً على مدخلاتها، لنأخذ مثالاً الدائرة التالية:<br />
<img src="http://www.shaarek.com/images/Diagram10.png" alt="دائرة منطقية بسيطة" /><br />
خرج البوابة وَ (AND) العليا والتي دخلها A و B هو: AB.<br />
خرج بوابة العكس (NOT) والتي دخلها B هو 'B.<br />
خرج البوابة وَ (AND) السفلى والتي دخلها 'B و C هو: B'C.<br />
خرج البوابة أو (OR) والتي دخلها AB و B'C هو: AB + B'C.<br />
إذن خرج الدالة هو:<br />
F= AB+B'C<br />
وعليه يمكننا معرفة خرج الدائرة الإلكترونية بمعرفة قيم مدخلاتها، فلو فرضنا أن A=1, B=0, C=1 فإن قيمة F تكون<br />
F=(1&times;0) + 1&times;1<br />
F = 0 + 1<br />
F=1<br />
تذكرأن + تعني أو وليس الجمع العادي.<br />
يمكننا بناء جدول يحتوي على قيمة F في جميع الاحتمالات الممكنة للمدخلات، يسمى هذا الجدول بجدول الحقيقة، حيث نضع أعمدة بالمدخلات تحتوي صفوفها على جميع الاحتمالات الممكنة لها، وعمود لناتج الدالة، ويمكننا التفصيل بإضافة عمود لخرج كل بوابة في الدائرة. كما يلي:<br />
<table dir="ltr"><br />
<tr><td>A</td><td>B</td><td>C</td><td>B'</td><td>AB</td><td>B'C</td><td>F</td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
<tr><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>1</td></tr>
<tr><td>1</td><td>1</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td></tr>
</table>]]></description> 
		</item>
				<item>
			<title>الجبر المنطقي</title> 
			<pubDate>Mon, 14 Jan 2008 07:57:07 +0000</pubDate> 
			<author></author> 
			<link>http://www.azzozhsn.net/blog/428</link> 
			<guid isPermaLink="true">http://www.azzozhsn.net/blog/428</guid> 
			<description><![CDATA[تناولنا في الموضوعين السابقين البوابات المنطقية متى تسمح بمرور التيار ومتى تقطع التيار، وسنتناول خصائص هذه البوابات، ونحسب خرجها حتى لو لم نعلم أحد مدخلاتها.<br />
لنفرض أن لدينا متغير اسمه A حيث قيمة هذا المتغير إما صفر أو واحد (1 بت) وأدخلها هذا البت على بوابة أو (OR) وأدخلنا معه 1 فما هو خرج البوابة؟ سيكون الخرج دائماً 1 مهما كانت قيمة A ﻷن بوابة أو تخرج القيمة إذا كان أحد مدخلاتها على الأقل 1. أي أن:<br />
A + 1 = 1<br />
حسناً لو ادخلنا A على بوابة أو وفي الطرف الآخر أدخلنا صفر، فما هو الخارج؟ سيكون حسب قيمة A فإن كان واحداً فواحد وإن كان صفراً فصفر. أي أن:<br />
A + 0 = A<br />
ماذا لو أدخلنا A و 1 على بوابة وَ (AND) سيكون الناتج هو قيمة A. اي:<br />
A . 1 = A<br />
ولو أدخلنا A و 0 على بوابة وَ فسيكون الناتج صفراً، ﻷنه يكفي إدخال صفر واحد على بوابة وَ لنخرج صفراً.<br />
A . 0 = 0<br />
ماذا لو أدخلنا A على كلي طرفي البوابة أو؟ في هذه الحالة سيكون الناتج A وكذلك الحال مع البوابة وَ. أي أن:<br />
A + A = A<br />
A . A = A<br />
ماذا لو أدخلنا A وعكسة على بوابة أو؟ هذا يعني أن أحد الطرفين 1 واﻵخر 0 لذلك سيكون الناتج 1:<br />
A + A' = 1<br />
ولو أدخلنا A وعكسة على بوابة وَ فالناتج صفراً:<br />
A . A' = 0<br />
إذا عكسنا قيمة A مرتين فسيعود لقيمته:<br />
A'' = A<br />
لنفرض أن لدينا متغير آخر اسمه B وأدخلناه و A على بوابة AND وأدخلنا خارج البوابة على بوابة OR مع المتغير A فما هو خرج البوابة OR؟ مهما كان خرج البوابة AND فإن خرج البوابة OR سيكون مساوياً لقيمة A على الدوام، ﻷنه إذا كان B = 0 فإن خرج البوابة AND يساوي 0 ويصبح <br />
A + 0 = A&nbsp;&nbsp; <br />
أما إذا كان B = 1 فإن خرج البوابة AND سيكون A وعليه فإن خرج البوابة OR يصبح:<br />
A + A = A<br />
وعليه تصبح القاعدة:<br />
A + AB = A<br />
يستفاد من القواعد السابقة في اختصار الدوال المنطقية، مثال:<br />
F = (A+BA) + (A+AC) + (C+CD)<br />
F = A + A + C<br />
F = A + C<br />
لا أظن أن أحداً سيصمم دائرة على الشكل السابق ولكن مجرد مثال، ولك أن ترى كم بوابة اختصرنا.<br />
<br />
<font size="4">الخلاصة</font><br />
A + 1 = 1<br />
A + 0 = A<br />
A . 1 = A<br />
A . 0 = 0<br />
A + A = A<br />
A . A = A<br />
A + A' = 1<br />
A . A' = 0<br />
A'' = A<br />
A + AB = A]]></description> 
		</item>
			</channel>
</rss>
