مضى على الشبكة و يوم من العطاء.

رحلتي من تغميس الشاي الى البروسيسور | Digital Logic Part1

Ahmad

.:: اداري سابق ::.
.:: اداري سابق ::.

السمعة:

مشاهدة المرفق 2544
بسم الله الرحمن الرحيم
**
رحلتي من تغميس الشاي الى البروسيسور
قبل كل شيء هذا المقال ليس بمقال مبين او مقال مافي اي اخطاء ؛ يمكن انا اخطأت واي انسان معرض للخطأ ، الانسان من النسيان عشان هيك لو شفت خطأ او معلومه مش واضحه او حتى سؤال بتقدر تسوي Reply وتصحح او تسال ويعطيكم العافيه جميعا.

هذا الموضوع سوا رعب لطلاب الهندسة الكهربائيه والحاسب حتى في علوم الحاسب للمبتدئين اول ما يشوف هاي الصورة :
v4c7-commutative-property-of-addition.png


من المحه الاولى بتيجي الفاجعة بسبب انهم اصلا مش فاهمين كمبتدئين من خلال هاض المجال المنطقي قادرين على بناء معالج كامل وهو الاساس القوي الي بتحتاجو عشان تكمل في تعليمك في
Computer Organzation & Computer Architecture سواء كنت مهندس او عالم هاض مش مهم لانو اصلا بوخذو نفس الكورسات البدائية لكن الفرق بكون المستويات المتقدمة فرض على طلاب الهندسة وعند علماء الحاسب بكون غير اجباري وما بننكر انو المعالجات الدقيقة سوت ثورة عالمية في العصر الحديث الان عدد المعالجات الدقيقة في الجوال تفوق عدد الكمبيوترات القديمة التي كانت تملئ غرفة كامله بكل مكان تستخدم المعالجات الدقيقة في تكنلوجيات الطبية حتى في من الجانب العسكري انظمة الدفاع يوجد لديها معالجات دقيقة معقدة للغاليه وقوية للغالية لا يمكن الاستغناء عنها مثال في العملية العسكرية في هاذي الدقيقة روسيا تشن هجوما على اوكرانيا بفضل المعالجات الدقيقة التي تطلق الصواريخ وهذا الامر الذي جعل روسيا تقوم بتهريب المعالجات الدقيقة المصممه من الغرب الى اراضيها لصنع الصواريخ كما يدعي الغرب روسيا لم محاصرة.

باذن الله هون راح نشرح كيف تصميم المعالج الدقيق نظريا :

يمكنك ان تقوم بصنعه عمليا لكن هذا يدخل به هندسة الكمبيوترات اكثر ، كيفية صنعه وبناء كمبيوتر صغير 8-bit او اي شيء يعني باذن الله راح نشرح عن ال digital system الي ما تعلمتها في المدرسة حتى قبل ما تبدأ يعني لازم تكون على الاقل مخلص الثانويه … ليش؟ عشان يكون عندك على الاقل خبره برمجيه شوي وخبره عن الكهرباء شوي وكمان عن الهاردوير شوي وراح نتعلم شوي عن ادارة التعقيد عشان المعالجات الحالية فيها ملاين الترانزستورات اي انسان طبيعي راح يضيع وهو يقرأ.

نبدأ الشرح بسم الله

NUMBER SYSTEMS : ك انسان طبيعي انتا متعود انت تعمل مع الارقام العشرية الديسيمل الي هي من 0 الى 9 الي اصلا هي عدد اصابعك العشرة على هذا الاساس تم بنائها لكن تكتب في خانة واحدة من 0 الى 9

لكن في كثير من انظمة الارقام مثل السداسي العشري والثنائي والثماني

📌 Decimal Numbers :
مش محتاجين نمر عليه كثير لانو الكل بعرفو حتى لو مش داخل مدرسة بتعرفو ولا انتا زلمه قنينة مي وجودها اهم منك في الحياة
ارقام العشرية : {1,2,3,4,…,9}

هاذي للخانة الواحدة لكن من الممكن ان يتم جمعها مع بعض وتصبح اكبر مثل
89071234

كل عامود من هاذي الارقام لديه وزن

نحن نقراء من اليمين الى الشمال لحساب الاعمدة هي
1
10
100
1000
10000

الاساس او ال base الخاص في هو 10 لانه من 0 - 9

وسنعرف الارقام من خلال الاساس الخاص بها عشان ما نتشتت واساس العشري هو 10 يعني راح نعرفو هكذا
(890134)₁₀

يمثل الرقم العشري المكون من رقم ن
N-digit decimal number
يمثل احد الاحتمالات
0,1,2,3,4…10^n - 1
وهاض اسمو نطاق الرقم

مثال الرقم الممثل من 3 ارقام عشرية مثال رقم في احتمال 1000 النطاق الخاص فيه
{0,…,999};

📌 Binary Numbers :
هو الرقم الثنائي المكون من 0 و 1 وفي الاخر يتم جمعهم او تضمينهم مع بعض عشان يكونو رقم كامل مثل 1001010100 اساس الرقم الثنائي 2
N-bit binary^2
BIT : Binary Digit
عشان تحسبو بشكل اسهل هو مضاعفات رقم 2
زي
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536

ال table هاض بوضح الباينري نمبر مقابل الديسيمل

9d1906408e410af63c39b513ce73d01562630ee0.jpeg


وبدنا نسوي مثال كيف تحويل الثنائي الى عشري
1010₂ → (?)₁₀

N-bit = N-bit×Weight^column
(1010)₂ → 12^3 + 02^2 + 12^1 + 02^0 = (10)₁₀

📌 Hexadecimal Numbers :
انك تكتب في الباينري امر ممل ويمكن تخطأ فيو لانك بالاول وبالاخير مش الاله اربعة بتات تمثل السداسي العشري
2^4 = 16
في بعض الاحيان تختار انك تستخدم السداسي العشري امر افضل لك الارقام السداسي تمثل
0 - 9 & A - F
atab01.jpg


الاساس الخاص به 16
📌 HEXADECIMAL TO BINARY :
5AE₁₆ = (?)₂
5₁₆ = 101₂
A₁₆ = 1010₂
E₁₆ = 1110₂
5AE₁₆ = (101 1010 1110)₂

HEXADECIMAL TO DECIMAL :
5AE₁₆ = (?)₁₀
5AE₁₆ = 516^2 + A16^1 + E*16^0 = (1454)₁₀

Bytes, Nibbles, and All That Jazz :
8bit’s = 1 Byte

يمكن ان يمثل
2^8 = 256
احتمال
2^8 - 1 = 1111 1111

والافضل والمستخدم حاليا في الكمبيوترات هو استخدام تمثيل البايت بدلا من البت في الذاكرة مثلا

Nibble = 4 bit or half byte
2^4 = 16 احتمال
2^4 - 1 = 1111

4 بت
الموضوع هاض ما بذكرك في اشئ ؟ الهكسديسيمل بستخدم لكل حرف 4 بت يعني لتخزين بت واحد من الهكس هو يعتبر
Nibble
والرقمان في بايت كامل

ال
Microprocessors
بتتعامل مع البيانات في اجزاء اسمها
word

حجم ال
word
بعتمد على بنية المعالج مثال اذا كان
64-bit processor
بكون انها بتعامل على
64-bit word
word = 8 byte

المجموعة من البتات البت الموجود في العامود الاول اسمها least significant bit (LSB)
والبت الي في اخر العامود اسمها most significant bit (MSB)

1001010101001
^ ^
LSB MSB

كيلو بايت | kilobyte
2^10 = 1024
2^10 = 1 Kb

الميقا | megabyte
2^20 = 1,048,576

2^20 = 1 mb

القيقا | gigabyte
2^30 = 1,073,741,824

2^30 = 1 gb

التيرا | terabyte

2^40 = 1,099,511,627,776

2^40 = 1 tb

📌 Binary Addition :
الجمع في الثنائي بشبه عملية الجمع في العشري حتى اسهل
نفسها بزبط

مش محتاج اشرحو لانو نفس الجبر العادي نفس حساب العشري

11
1011
+ 0011​

1110

1 + 1 = في اليد واحد
0 + 0 = 0
1 + 0 = 1

ممكن تتعامل بعدد ثابت ومساوي للمطروح او المجموع لكن اذا كان غير مسوي او اكبر هون بصير اسمها overflow
اذا صار بعد الجمع زياده في الارقام

مثال في الهكس
من [0-15]
نفترض انها تجاوزت ال 15 ؟ يتم تجاهل البت الذي قام بتجاوز مثال هنا البت 4 سيصبح 5 بت يتم تجاهله

مثال :
(1101 + 0101) ₂ = (18)₁₀

(1) 1 1
1101
  • 0101

كود:
 0010
(0010)₂ = (2)₁₀

اذا كان بدك 4 بتات بس البت الي بكون MSB الي هو بحالتنا هسا هو ال Overflow يتم تجاهله الي بترك عدد غير صحيح اما اذا العكس بنزل العدد المتجاوز طبيعي
(10010)₂ → (18)₁₀

📌 Signed Binary Numbers :
احنا كنا بنتعامل مع الارقام الموجبه من صفر وما فوق 0 ≤ ∞

طيب في العمليات الحسابية الطبيعية في سالب كمان اقل من صفر -∞ ≥ 0

في اكثر من طريقة في الباينري الانظمة المختلفة بتستخدمها عشان تمثل الاعداد السالبة مثل sign-magnitude , 1’s & 2’s complement etc…

📌 Sign-Magnitude Number’s :
تقريبا مشابهه لعمليتنا في الحساب بحيث بتكون في علامة بتبين انو هاض الرقم سالب او موجب من خلال يستخدم N-bit sign بت ال MSB بكون هو الاشارة والبتات الاخرى هي بتكون البتات الي بتمثل الحجم والرقم

0 : -
1 : +

مثال :
111(0)
|
{MSB} *Bit Sign
(1110)₂ : (-7)₁₀
0111
|
{MSB} *Bit Sign

(1111)₂ : (7)₁₀

لكن من النظرة الاولى بتعرف فيها سلبيات اكثر من الايجابيات
منها عدم قدرتك على الجمع والطرح

📌 Two’s Complement Numbers :

في هاض التكنيك مبدئيا اي صفر قدامك بنزل كـ اصفار عادي

(0000)₂

تمثيل الارقام كيف : والرقم الايجابي 0 في مكان ال : MSB
(01111)₂ = 2^(n-1)-1
اثبات المعادلة :
2 : Binary System
n = number of bit’s
مثال :
(10000) < 5 bit’s
الكمبيوتر بشوفو
اخر رقم من انو يبدأ من صفر احنا نبدأ من واحد عشان هيك نقصنا واحد
يعني
2^(n-1) : 4-bit’s
هون قاعدين بنقص 1 عشان تتحول القيمه
1 - 0 : 1
0 - 0 : 0
يتحقق من الموجب وسالب من خلال طرحهما
والسلبي يكون 1

(10000)₂ = -2^(n-1)-1

هكذا يتم تمثيل ان كان سالبا او موجبا

وباقي الارقام هي الحجم

مثل ما ذكرنا اول اشئ الاصفار كلها تنزل حتى تجد رقم 1 مثال :
(100100)₂

(xxxx00)₂
جميع الاصفار الاثنان تنزل
(00)₂

وان وجدت رقم 1 في الخطوة التاليه ينزل كما هو
(xxx100)₂

الخطوة الاخيرة اعكس الارقام الباقيه
(011100)₂

(011100)₂ is (100100)₂

طريقة اخرى
ليتم عكس علامة الرقم في هذا الحساب تسمى
taking the two’s complement

اول اشئ بدك تساويه انك تضيف 1 على ال
LSB طبعا بعد عكس الارقام

مثال على رقم عشري بدنا اياه يكون
-2 : using 4-bit + 2’s comp

1 - عكس كل الاراقام
2 - زيادة واحد

(+2)₁₀ = (0010)₂
(0010)₂ = (1101)₂
وفي الاخر نقوم باضافة واحد
(1101)₂ + 1 = (1110)₂

موقع للحساب :


واخيرا :
الحل على طريقتين
صورة **

ADDING TWO’S COMPLEMENT NUMBERS :
هون القوة الحقيقة انك اصلا بتقدر تجمع الارقام بشكل صحيح في عندك طريقتين لجمع الي بريحك
منها انك اول اشئ تسوي هاض التكنيك وتجمعهم او قبل ما تسوي التكنيك هاض تجمعهم او تطرحهم بعدين تسوي هاض التكنيك عليهم

(-2)₁₀ + (1)₁₀ =
1110
0001 +​

(1111)₂

SUBTRACTING TWO’S COMPLEMENT NUMBERS :
كيفية الطرح اول شئ نجد ال 2’s comp بعدها نجمعهم

(5)₁₀ - (2)₁₀ =
(5)₁₀ = (0101)₂
(2)₁₀ = (0010)₂ → 2’s is (1110)₂

(1011)₂ + (1110)₂ = (0011)₂

ADDING TWO’S COMPLEMENT NUMBERS WITH OVERFLOW :
(5)₁₀ + (4)₁₀ using 4-bit
(5)₁₀ + (4)₁₀ = ?

(5)₁₀ = (0101)₂
(4)₁₀ = (0100)₂

(0101)₂ + (0100)₂ = (1001)₂
(1001)₂ = (-7)₁₀
نتيجة سالبة غير صحيحة
لكن اذا تم اجراء حساب بخمس بايتات او اكثر النتيجة ستكون صحيحة (9)₁₀

مع مراعاة عندما يتم توسيع الرقم الى مزيد من البتات في هذا التكنيك الى نسخ اشارة البت الى ال MSB اسم هاذي العملية sign extension

على سبيل المثال رقم
3 : (0011)₂
-3 : (1101)₂

LOGIC GATES :
اتوقع حاليا بفضل الله تعلمنا كيف تتعامل مع الارقام مثل الثنائي والعشري وفهمت كيف بتشتغل الان بدنا نبدأ في لوجيك قيتس اذا انتا مبرمج سابق على ما اعتقد بتعرف اشئ اسمو bitwise اذا ما بتعرفو بعرفش شو بدي اقلك لكن هسا راح تفهمها

الوجيك قيتس هي دوائر منطقيه بسيطة تاخذ input واحد او اكثر وتنتج outputs binary طبعا كل الحساب بكون عن طريق ال Binary Digit الدوائر الثنائيه يتم رسمها برمز يوضح المدخلات والمخرجات وعادة ما يتم رسم المدخلات على اليسار والمخرجات على اليمين
وعادة ما يرمز للمدخلات بحروف الابجدية A , B etc. والمخرجات بحرف Y
يمكن وصف العلاقة بين المدخلات والمخرجات باستخدام ال truth table او Boolean equation جدول الحقيقة بعطيك كل المدخلات والمخرجات والمدخلات تكتب على اليسار والمخرجات على اليمين او يتم

ال Boolean equation : هي تعبير رياضي يستخدم المتغيرات الثنائيه

📌 NOT Gate :

NOT_Logic_Gate_symbol_with_truth_table_480x480.jpg


هاي اول بوابة منطقية راح نشرحها عندها مدخل واحد
يعني مدخل واحد هو A
ومخرج واحد هو Y

كلشئ بفوت في هاي البوابة المخرجات راح تكون عكس القيمة بمعنى يعني اذا كان المدخل
FALSE : 0
راح يصير
TRUE : 1

الخط الخارج من A الى Y هذا هو الخط الذي يمثل ال NOT Gate ويسمى اسم اخر inverter

صورة

يتم الاشارة الى الى العملية الحسابيه ل NOT ب او خط فوق الخط Y = A = Y Equals NOT (A)

وتكتب ايضا كـ
Y = A`;
Y = ¬A;
Y = !A;
Y = ~A;

الرمز هاض المثلث بشير والفقاعة (Bubble) الى بوابة ال NOT

Buffer :

ويوجد بوابة اخرى منطقيه بمدخل واحد وهي ال
Buffer


وظيفتو انو ينسخ الادخال الى الاخراج يمكن تشوفو بدون فايده غير انو سلك قاعد بنسخ نفس المعلومات لكن هو بقدر يوصل كميات كبيره من التيار الى المحرك و القدرة على ارسال المخرجات بسرعة الى عديد من البوابات وطبعا هاض الموضوع بصير بالعالم الخارجي للكمبيوتر بمعنى فصل بين كل شيء هو التجريد وهاض السبب كيف جدتك تتمكن من استخدام الهاتف او الكمبيوتر يعني مش راح تشوف فايديتو الحقيقة بدون العمل معو
الرمز هاض المثلث بشير الى ال Buffer

📌 AND Gate :
هاذي البوابة لها مدخلان ومخرج واحد وما بتنتج TRUE الا بحالة ان توفر واحدان

AND-GATE.jpg


وهي شبيها لعملية الضرب في الجبر العادي بحيث كل الاصفار المضروبه بنفسها والمضروبه بواحد تنتج 0
A : 1 ------ |
B : 1 ------ |

يتم كتابة الـ
AND
بهذا الشكل
Y = A • B;
Y = AB;
Y = A ∩ B;
Y = A & B;

📌 OR Gate :
صورة

هاذي البوابة تنتج مخرجا صحيحا عندما يكون احد القيمتين صحيحتان او الاثنان صحيحان

Boolean equation OR Gate:
Y = A + B;
Y = A ∪ B;
Y = A | B;

Other Two-Input Gates :
في بوابات غير ذات مدخلين منها

XOR_Logic_Gate_symbol_with_truth_table_480x480.jpg


XOR : exclusive OR (Ex-OR);
تكون صحيحه عندما تكون احد القيم يوجد بها 1 ليس عندما يكون مشتركون في نفس القيمة
Y = A ⊕ B;
Or
Y = A ^ B;
Or
Y = A ⊻ B;
📌 NAND : NOT AND

rpqNC.png


يكون المخرج صحيحا عندما تكون جميع القيم لا تساوي 1
Y = (A & B); Y = (AB);
Y = (A • B); Y = (A ∩ B);
📌 NOR : NOT OR

Truth-table-NOR-gate-417x500.png


تكون صحيحة عندما لا يكون المخرجان احدهم يساوي 1
Y = (A + B); Y = (A ∪ B);
Y = (A | B)`;
📌 XNOR GATE :
لها مخرجان وتمثل عكس ال
XOR

XNOR : NOT XOR

Truth-table-XNOR-gate-417x500.png


بمعنى اذا كان احد القيم متساويه صفر وصفر او واحد و واحد تكون صحيحة
Multiple-Input Gates :

في بوابات بتستقبل ثلاث مدخلات لكن الاكثر استخداما
AND, OR, XOR, NAND, NOR, and XNOR.

📌 THREE-INPUT NOR GATE :

3-input_NOR_Gate_with_Truth_Table_600x600.jpg


NOR3

Y = (A + B + C); Y = (A ∪ B ∪ C);
Y = (A | B | C)`;

BENEATH THE DIGITAL ABSTRACTION :
يستخدم النظام الرقمي قيم تمثل بواسطة قيم محددة بدقة مثل البتات وهذه القيم تتغير بشكل دقيق ومحدد
والمصمم يجب عليه ان يختار طريقة لربط القيمة

مثال :
اشارة ثنائيه A بجهد كهربائي على سلك

Volt(V) = 0
A = 0
V = 5;
A = 1;
لكن اي نظام اخر اذا لازم يتعمل بعض التشويش الي ممكن يصير فيو يعني
v = 4.75
لازم يكون كمان
A = 1;
فما بالك في
V = 2.500000
V = 1.1530000

Supply Voltage :
لنفترض اقل جهد في النظام هو 0 فولت بكون اسمو
ground or gnd;

ياتي اعلى جهد في النظام من مصدر الطاقة ويمسى عادة VDD قبل عشرات السنوات كان عادة V = 5; مع تطور الترانزستورات الى اصغر ال VDD انخفض الى فولت اقل مثل 2.3 , 1.2 واقل لتوفير الطاقة وتجنب الحمل على الترانزستورات

1.6.2 Logic Levels

صورة :

يتم تعين متغير مستمر على متغير ثنائي عن طريق تحديد المستويات المنطقيه بمعنى مثل اشارات الرقمية الكهربائية تتغير باستمرار الى متغير ثنائي يعتبر عنها بصفر و واحد
المستويات المنطقية عادة ما تحمل المستوى منخفض يرمز اليه بصفر والمستوى العالي يرمز اليه بمستوى 1
مثال اذا عندك مصباح ان كان الضوء طافي راح يكون مستوى منخفض بتالي راح يكون 0 عندما يكون الضوء شغال راح نعبر عنه بمستوى عالي هو الواحد

البوابة الاولى تسمى Driver والثانية تسمى Receiver

الـ Output driver
متصل في
Input Receiver Driver

الـ Driver
ينتج LOW(0) في نطاق ال {0 - VOL}

وال HIGH(1) في نطاق ال {VOH - VDD}

اذا الـ receiver حصل على ادخال في نطاق ال 0 to V(IL) راح يعتبر الادخال منخفض

اذا حصل ال receiver حصل على ادخال في نطاق ال V(IH) to VDD يعتبر ادخال مرتفع لسبب ما مثل التشويش الي هو ال Noise
الـ receivers input لازم يكون موجود في الـ forbidden zone V(IH) to V(IL) وفي هاي الحالة البوابة لا يمكن التنبؤ بها ولي ممكن هاض الموضوع يصير زي ما قلت من خلال التشويش الي بكون سببو اشياء معيبه صارت في سياق الكهربائي للنظام بتكون غير مرغوب مثل ممكن تصدم الاشارات الكهربائيه باشارات كهرومغناطيسية خارجية
الـ VOH,VOL, VIH, & VIL : بكون اسمهم
Input High & Low logic levels

مشاهدة المرفق 2543

Noise Margins : اذا اردنا تفسير مخرجات ال Driver بشكل صحيح يجب علينا الاختيار عند الـ receiver input لازم نختار

VOL < VIL and VOH > VIH

اذا اخراجات الـ

Driver كانت فيها نويز الـ receiver input راح يكشف الـ correct logic level عشان نحاول قدر المستطاع ما تفوت على الـ Forbidden Zone

ونفترض انها فاتت في Filtering للموضوع

noise margin : هو مقدار التشويش التي يمكن اضافتها الى
worst-case output بحيث يمكن ان تفسير الاشارة على انها valid input

يمكن جلب اين تكون الـ
noise margin
من خلال
NML = VIL − VOL
NMH = VOH − VIH

CALCULATING NOISE MARGINS :
صورة
Figure 1.24.
الـ
VO1 : هو الـ
output voltage of inverter
I1 & VI2 : هو الـ
input voltage of inverter I2
الخصائص الموجودة في الـ
inverters
VDD = 5V;
VIL = 1.35;
VIH = 3.15;
VOL = 0.33;
VOH = 3.84;
وحاليا بدنا نعرف وين الـ
noise margins
الـ
LOW & HIGH Noise
يمكن للـ
circuit
حمل
1V
للـ
noise
بين الـ
VO1 - VI2
الحل :
NML = VIL − VOL
NMH = VOH − VIH
|
NML = 1.35V − 0.33V = 1.02V;
NMH = 3.84V − 3.15V = 0.69V;

الـ
Low Input is 1.02V;
High Input is 0.69V;

على سبيل المثال الـ
I1 Driver
بخرج
في اسواء الحالات
HIGH value = VO1 = VOH = 3.84V;

اذا تسببت الـ
Noise
انخفاض الجهد بمقدار
1V
فا الـ
Input VI2
بكون
VI2 = (3.84V − 1V) = 2.84V;

وهذا بكون اقل من القيمة العالية المقبولة
VIH = 3.15;
قد لا يشعر الـ
receiver
انو صار ادخال عالي
HIGH INPUT

CMOS TRANSISTORS :
الكمبيوترات الحديثة بتستخدم ترانزيستورات لانها رخيصة وصغيرة الحجم
الترانزيستور زي ما تقول هو مفاتيح يتم التحكم فيها كهربائيا والتي يتم تشغيلها وايقافها
ON & OFF
عند تطبيق الجهد

نوعان رئيسيان من الترانزيستورات
1 - bipolar junction ()
2 - metal-oxide-semiconductor field effect
transistors
MOS & MOSFET
كانت ثورتها عندما استطاع احد العلماء من جعل اثنان ترانزيستور على لوحه سلكون ولان مليارات الترانزيستورات تكون على لوحة سلكون

Semiconductors :
الـ
MOS transistors
تصنع من السيليكون
Silicon (Si)
هو مجموعة من الـ
IV ATOM
يحتوي على اربعة الكترونات في غلاف التكافؤ ويشكل روابط مع 4 ذرات مجاورة مما يؤدي الى شبكة بلورية
(crystalline lattice)

يعتبر السليكون في حد ذاته موصلا سيئا لان جميع الاكترونات مرتبطة بروابط تساهمية ومع ذالك فانه يصبح موصلا افضل عند اضافة كميات صغيرة من الشوائب تسمى
amounts of impurities
اذا تمت اضافة مجموعة من
V
المشابهة مثل الزرنيخ
(As)
فان الذرات المشابهة تحتوي على الكترون اضافي غير مشارك في الورابط
يمكن للاكترون ان يتحرك بسهولة حول الشبكة
تاركين وراهم
ionized dopant atom (As+)
يحمل الاكترون شحنه سالبه
لذلك نطلق على الزرنيخ مادة
n-type dopant
من ناحية اخرى اذا تمت اضافة مجموعة
III
مثل البورون
(B)
فان الذرات المشابهة تفقد الكترونا
ويسمى هذا الإلكترون المفقود بالثقب
(hole)
قد يتحرك إلكترون من ذرة السيليكون المجاورة لملء الرابطة المفقودة
مما يشكل
ionized dopant atom (B−)
يفتقر الثقب الى الشحنة السالبة فهو يتصرف كجسيم موجب الشحنه

وهيك احنا بندعي الـ
boron a p-type dopant
نظرًا لأن موصلية السيليكون تتغير على مدى عدة أوامر من حيث الحجم اعتمادًا على تركيز المنشطات، فإن السيليكون يسمى أشباه الموصلات
 
التعديل الأخير بواسطة المشرف:
الله يعطيك الف عافيه ياوحش 🤍

تم اعتماده ك موضوع مميز 🤍
 
  • Like
التفاعلات: Ahmad
…لبورون(B)فان الذرات المشابهة تفقد الكتروناويسمى هذا الإلكترون المفقود بالثقب(hole)قد يتحرك إلكترون من ذرة السيليكون المجاورة لملء الرابطة المفقودةمما يشكلionized dopant atom (B−)يفتقر الثقب الى الشحنة السالبة فهو يتصرف كجسيم موجب الشحنهوهيك احنا بندعي الـboron a p-type dopantنظرًا لأن موصلية السيليكون تتغير على مدى عدة أوامر من حيث الحجم اعتمادًا على تركيز المنشطات، فإن السيليكون يسمى أشباه الموصلات
يعطيك العافية
 
  • Like
التفاعلات: Ahmad
مقال رائع ❤️، يا ريت يا أحمد تنزل تطبيقات عملية على الـdigital logic بتكون شيء جميل وبتساعد الطلاب اللي دراستهم كلها نظرية وما عندهم شي عملي انهم يفهمو أكثر
 
…لبورون(B)فان الذرات المشابهة تفقد الكتروناويسمى هذا الإلكترون المفقود بالثقب(hole)قد يتحرك إلكترون من ذرة السيليكون المجاورة لملء الرابطة المفقودةمما يشكلionized dopant atom (B−)يفتقر الثقب الى الشحنة السالبة فهو يتصرف كجسيم موجب الشحنهوهيك احنا بندعي الـboron a p-type dopantنظرًا لأن موصلية السيليكون تتغير على مدى عدة أوامر من حيث الحجم اعتمادًا على تركيز المنشطات، فإن السيليكون يسمى أشباه الموصلات
ايش يلزم للفهم ادرس ايه عشان افهم

مشاهدة المرفق 2589
 
التعديل الأخير:
بس رياضيات وشوية علم في الكهرباء وبرمجة لكن هو في غلط في ترتيب المقال من الموقع نفسو لكن برسل بعدين ملف الـ Word
 
مشاهدة المرفق 2544
بسم الله الرحمن الرحيم
**
رحلتي من تغميس الشاي الى البروسيسور
قبل كل شيء هذا المقال ليس بمقال مبين او مقال مافي اي اخطاء ؛ يمكن انا اخطأت واي انسان معرض للخطأ ، الانسان من النسيان عشان هيك لو شفت خطأ او معلومه مش واضحه او حتى سؤال بتقدر تسوي Reply وتصحح او تسال ويعطيكم العافيه جميعا.

هذا الموضوع سوا رعب لطلاب الهندسة الكهربائيه والحاسب حتى في علوم الحاسب للمبتدئين اول ما يشوف هاي الصورة :
v4c7-commutative-property-of-addition.png


من المحه الاولى بتيجي الفاجعة بسبب انهم اصلا مش فاهمين كمبتدئين من خلال هاض المجال المنطقي قادرين على بناء معالج كامل وهو الاساس القوي الي بتحتاجو عشان تكمل في تعليمك في
Computer Organzation & Computer Architecture سواء كنت مهندس او عالم هاض مش مهم لانو اصلا بوخذو نفس الكورسات البدائية لكن الفرق بكون المستويات المتقدمة فرض على طلاب الهندسة وعند علماء الحاسب بكون غير اجباري وما بننكر انو المعالجات الدقيقة سوت ثورة عالمية في العصر الحديث الان عدد المعالجات الدقيقة في الجوال تفوق عدد الكمبيوترات القديمة التي كانت تملئ غرفة كامله بكل مكان تستخدم المعالجات الدقيقة في تكنلوجيات الطبية حتى في من الجانب العسكري انظمة الدفاع يوجد لديها معالجات دقيقة معقدة للغاليه وقوية للغالية لا يمكن الاستغناء عنها مثال في العملية العسكرية في هاذي الدقيقة روسيا تشن هجوما على اوكرانيا بفضل المعالجات الدقيقة التي تطلق الصواريخ وهذا الامر الذي جعل روسيا تقوم بتهريب المعالجات الدقيقة المصممه من الغرب الى اراضيها لصنع الصواريخ كما يدعي الغرب روسيا لم محاصرة.

باذن الله هون راح نشرح كيف تصميم المعالج الدقيق نظريا :

يمكنك ان تقوم بصنعه عمليا لكن هذا يدخل به هندسة الكمبيوترات اكثر ، كيفية صنعه وبناء كمبيوتر صغير 8-bit او اي شيء يعني باذن الله راح نشرح عن ال digital system الي ما تعلمتها في المدرسة حتى قبل ما تبدأ يعني لازم تكون على الاقل مخلص الثانويه … ليش؟ عشان يكون عندك على الاقل خبره برمجيه شوي وخبره عن الكهرباء شوي وكمان عن الهاردوير شوي وراح نتعلم شوي عن ادارة التعقيد عشان المعالجات الحالية فيها ملاين الترانزستورات اي انسان طبيعي راح يضيع وهو يقرأ.

نبدأ الشرح بسم الله

NUMBER SYSTEMS : ك انسان طبيعي انتا متعود انت تعمل مع الارقام العشرية الديسيمل الي هي من 0 الى 9 الي اصلا هي عدد اصابعك العشرة على هذا الاساس تم بنائها لكن تكتب في خانة واحدة من 0 الى 9

لكن في كثير من انظمة الارقام مثل السداسي العشري والثنائي والثماني

📌 Decimal Numbers :
مش محتاجين نمر عليه كثير لانو الكل بعرفو حتى لو مش داخل مدرسة بتعرفو ولا انتا زلمه قنينة مي وجودها اهم منك في الحياة
ارقام العشرية : {1,2,3,4,…,9}

هاذي للخانة الواحدة لكن من الممكن ان يتم جمعها مع بعض وتصبح اكبر مثل
89071234

كل عامود من هاذي الارقام لديه وزن

نحن نقراء من اليمين الى الشمال لحساب الاعمدة هي
1
10
100
1000
10000

الاساس او ال base الخاص في هو 10 لانه من 0 - 9

وسنعرف الارقام من خلال الاساس الخاص بها عشان ما نتشتت واساس العشري هو 10 يعني راح نعرفو هكذا
(890134)₁₀

يمثل الرقم العشري المكون من رقم ن
N-digit decimal number
يمثل احد الاحتمالات
0,1,2,3,4…10^n - 1
وهاض اسمو نطاق الرقم

مثال الرقم الممثل من 3 ارقام عشرية مثال رقم في احتمال 1000 النطاق الخاص فيه
{0,…,999};

📌 Binary Numbers :
هو الرقم الثنائي المكون من 0 و 1 وفي الاخر يتم جمعهم او تضمينهم مع بعض عشان يكونو رقم كامل مثل 1001010100 اساس الرقم الثنائي 2
N-bit binary^2
BIT : Binary Digit
عشان تحسبو بشكل اسهل هو مضاعفات رقم 2
زي
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536

ال table هاض بوضح الباينري نمبر مقابل الديسيمل

9d1906408e410af63c39b513ce73d01562630ee0.jpeg


وبدنا نسوي مثال كيف تحويل الثنائي الى عشري
1010₂ → (?)₁₀

N-bit = N-bit×Weight^column
(1010)₂ → 12^3 + 02^2 + 12^1 + 02^0 = (10)₁₀

📌 Hexadecimal Numbers :
انك تكتب في الباينري امر ممل ويمكن تخطأ فيو لانك بالاول وبالاخير مش الاله اربعة بتات تمثل السداسي العشري
2^4 = 16
في بعض الاحيان تختار انك تستخدم السداسي العشري امر افضل لك الارقام السداسي تمثل
0 - 9 & A - F
atab01.jpg


الاساس الخاص به 16
📌 HEXADECIMAL TO BINARY :
5AE₁₆ = (?)₂
5₁₆ = 101₂
A₁₆ = 1010₂
E₁₆ = 1110₂
5AE₁₆ = (101 1010 1110)₂

HEXADECIMAL TO DECIMAL :
5AE₁₆ = (?)₁₀
5AE₁₆ = 516^2 + A16^1 + E*16^0 = (1454)₁₀

Bytes, Nibbles, and All That Jazz :
8bit’s = 1 Byte

يمكن ان يمثل
2^8 = 256
احتمال
2^8 - 1 = 1111 1111

والافضل والمستخدم حاليا في الكمبيوترات هو استخدام تمثيل البايت بدلا من البت في الذاكرة مثلا

Nibble = 4 bit or half byte
2^4 = 16 احتمال
2^4 - 1 = 1111

4 بت
الموضوع هاض ما بذكرك في اشئ ؟ الهكسديسيمل بستخدم لكل حرف 4 بت يعني لتخزين بت واحد من الهكس هو يعتبر
Nibble
والرقمان في بايت كامل

ال
Microprocessors
بتتعامل مع البيانات في اجزاء اسمها
word

حجم ال
word
بعتمد على بنية المعالج مثال اذا كان
64-bit processor
بكون انها بتعامل على
64-bit word
word = 8 byte

المجموعة من البتات البت الموجود في العامود الاول اسمها least significant bit (LSB)
والبت الي في اخر العامود اسمها most significant bit (MSB)

1001010101001
^ ^
LSB MSB

كيلو بايت | kilobyte
2^10 = 1024
2^10 = 1 Kb

الميقا | megabyte
2^20 = 1,048,576

2^20 = 1 mb

القيقا | gigabyte
2^30 = 1,073,741,824

2^30 = 1 gb

التيرا | terabyte

2^40 = 1,099,511,627,776

2^40 = 1 tb

📌 Binary Addition :
الجمع في الثنائي بشبه عملية الجمع في العشري حتى اسهل
نفسها بزبط

مش محتاج اشرحو لانو نفس الجبر العادي نفس حساب العشري

11​

1011​

+ 0011​

1110

1 + 1 = في اليد واحد
0 + 0 = 0
1 + 0 = 1

ممكن تتعامل بعدد ثابت ومساوي للمطروح او المجموع لكن اذا كان غير مسوي او اكبر هون بصير اسمها overflow
اذا صار بعد الجمع زياده في الارقام

مثال في الهكس
من [0-15]
نفترض انها تجاوزت ال 15 ؟ يتم تجاهل البت الذي قام بتجاوز مثال هنا البت 4 سيصبح 5 بت يتم تجاهله

مثال :
(1101 + 0101) ₂ = (18)₁₀

(1) 1 1
1101
  • 0101

كود:
 0010
(0010)₂ = (2)₁₀

اذا كان بدك 4 بتات بس البت الي بكون MSB الي هو بحالتنا هسا هو ال Overflow يتم تجاهله الي بترك عدد غير صحيح اما اذا العكس بنزل العدد المتجاوز طبيعي
(10010)₂ → (18)₁₀

📌 Signed Binary Numbers :
احنا كنا بنتعامل مع الارقام الموجبه من صفر وما فوق 0 ≤ ∞

طيب في العمليات الحسابية الطبيعية في سالب كمان اقل من صفر -∞ ≥ 0

في اكثر من طريقة في الباينري الانظمة المختلفة بتستخدمها عشان تمثل الاعداد السالبة مثل sign-magnitude , 1’s & 2’s complement etc…

📌 Sign-Magnitude Number’s :
تقريبا مشابهه لعمليتنا في الحساب بحيث بتكون في علامة بتبين انو هاض الرقم سالب او موجب من خلال يستخدم N-bit sign بت ال MSB بكون هو الاشارة والبتات الاخرى هي بتكون البتات الي بتمثل الحجم والرقم

0 : -
1 : +

مثال :
111(0)
|
{MSB} *Bit Sign
(1110)₂ : (-7)₁₀
0111
|
{MSB} *Bit Sign

(1111)₂ : (7)₁₀

لكن من النظرة الاولى بتعرف فيها سلبيات اكثر من الايجابيات
منها عدم قدرتك على الجمع والطرح

📌 Two’s Complement Numbers :

في هاض التكنيك مبدئيا اي صفر قدامك بنزل كـ اصفار عادي

(0000)₂

تمثيل الارقام كيف : والرقم الايجابي 0 في مكان ال : MSB
(01111)₂ = 2^(n-1)-1
اثبات المعادلة :
2 : Binary System
n = number of bit’s
مثال :
(10000) < 5 bit’s
الكمبيوتر بشوفو
اخر رقم من انو يبدأ من صفر احنا نبدأ من واحد عشان هيك نقصنا واحد
يعني
2^(n-1) : 4-bit’s
هون قاعدين بنقص 1 عشان تتحول القيمه
1 - 0 : 1
0 - 0 : 0
يتحقق من الموجب وسالب من خلال طرحهما
والسلبي يكون 1

(10000)₂ = -2^(n-1)-1

هكذا يتم تمثيل ان كان سالبا او موجبا

وباقي الارقام هي الحجم

مثل ما ذكرنا اول اشئ الاصفار كلها تنزل حتى تجد رقم 1 مثال :
(100100)₂

(xxxx00)₂
جميع الاصفار الاثنان تنزل
(00)₂

وان وجدت رقم 1 في الخطوة التاليه ينزل كما هو
(xxx100)₂

الخطوة الاخيرة اعكس الارقام الباقيه
(011100)₂

(011100)₂ is (100100)₂

طريقة اخرى
ليتم عكس علامة الرقم في هذا الحساب تسمى
taking the two’s complement

اول اشئ بدك تساويه انك تضيف 1 على ال
LSB طبعا بعد عكس الارقام

مثال على رقم عشري بدنا اياه يكون
-2 : using 4-bit + 2’s comp

1 - عكس كل الاراقام
2 - زيادة واحد

(+2)₁₀ = (0010)₂
(0010)₂ = (1101)₂
وفي الاخر نقوم باضافة واحد
(1101)₂ + 1 = (1110)₂

موقع للحساب :


واخيرا :
الحل على طريقتين
صورة **

ADDING TWO’S COMPLEMENT NUMBERS :
هون القوة الحقيقة انك اصلا بتقدر تجمع الارقام بشكل صحيح في عندك طريقتين لجمع الي بريحك
منها انك اول اشئ تسوي هاض التكنيك وتجمعهم او قبل ما تسوي التكنيك هاض تجمعهم او تطرحهم بعدين تسوي هاض التكنيك عليهم

(-2)₁₀ + (1)₁₀ =​

1110​

0001 +​

(1111)₂

SUBTRACTING TWO’S COMPLEMENT NUMBERS :
كيفية الطرح اول شئ نجد ال 2’s comp بعدها نجمعهم

(5)₁₀ - (2)₁₀ =
(5)₁₀ = (0101)₂
(2)₁₀ = (0010)₂ → 2’s is (1110)₂

(1011)₂ + (1110)₂ = (0011)₂

ADDING TWO’S COMPLEMENT NUMBERS WITH OVERFLOW :
(5)₁₀ + (4)₁₀ using 4-bit
(5)₁₀ + (4)₁₀ = ?

(5)₁₀ = (0101)₂
(4)₁₀ = (0100)₂

(0101)₂ + (0100)₂ = (1001)₂
(1001)₂ = (-7)₁₀
نتيجة سالبة غير صحيحة
لكن اذا تم اجراء حساب بخمس بايتات او اكثر النتيجة ستكون صحيحة (9)₁₀

مع مراعاة عندما يتم توسيع الرقم الى مزيد من البتات في هذا التكنيك الى نسخ اشارة البت الى ال MSB اسم هاذي العملية sign extension

على سبيل المثال رقم
3 : (0011)₂
-3 : (1101)₂

LOGIC GATES :
اتوقع حاليا بفضل الله تعلمنا كيف تتعامل مع الارقام مثل الثنائي والعشري وفهمت كيف بتشتغل الان بدنا نبدأ في لوجيك قيتس اذا انتا مبرمج سابق على ما اعتقد بتعرف اشئ اسمو bitwise اذا ما بتعرفو بعرفش شو بدي اقلك لكن هسا راح تفهمها

الوجيك قيتس هي دوائر منطقيه بسيطة تاخذ input واحد او اكثر وتنتج outputs binary طبعا كل الحساب بكون عن طريق ال Binary Digit الدوائر الثنائيه يتم رسمها برمز يوضح المدخلات والمخرجات وعادة ما يتم رسم المدخلات على اليسار والمخرجات على اليمين
وعادة ما يرمز للمدخلات بحروف الابجدية A , B etc. والمخرجات بحرف Y
يمكن وصف العلاقة بين المدخلات والمخرجات باستخدام ال truth table او Boolean equation جدول الحقيقة بعطيك كل المدخلات والمخرجات والمدخلات تكتب على اليسار والمخرجات على اليمين او يتم

ال Boolean equation : هي تعبير رياضي يستخدم المتغيرات الثنائيه

📌 NOT Gate :

NOT_Logic_Gate_symbol_with_truth_table_480x480.jpg


هاي اول بوابة منطقية راح نشرحها عندها مدخل واحد
يعني مدخل واحد هو A
ومخرج واحد هو Y

كلشئ بفوت في هاي البوابة المخرجات راح تكون عكس القيمة بمعنى يعني اذا كان المدخل
FALSE : 0
راح يصير
TRUE : 1

الخط الخارج من A الى Y هذا هو الخط الذي يمثل ال NOT Gate ويسمى اسم اخر inverter

صورة

يتم الاشارة الى الى العملية الحسابيه ل NOT ب او خط فوق الخط Y = A = Y Equals NOT (A)

وتكتب ايضا كـ
Y = A`;
Y = ¬A;
Y = !A;
Y = ~A;

الرمز هاض المثلث بشير والفقاعة (Bubble) الى بوابة ال NOT

Buffer :

ويوجد بوابة اخرى منطقيه بمدخل واحد وهي ال
Buffer


وظيفتو انو ينسخ الادخال الى الاخراج يمكن تشوفو بدون فايده غير انو سلك قاعد بنسخ نفس المعلومات لكن هو بقدر يوصل كميات كبيره من التيار الى المحرك و القدرة على ارسال المخرجات بسرعة الى عديد من البوابات وطبعا هاض الموضوع بصير بالعالم الخارجي للكمبيوتر بمعنى فصل بين كل شيء هو التجريد وهاض السبب كيف جدتك تتمكن من استخدام الهاتف او الكمبيوتر يعني مش راح تشوف فايديتو الحقيقة بدون العمل معو
الرمز هاض المثلث بشير الى ال Buffer

📌 AND Gate :
هاذي البوابة لها مدخلان ومخرج واحد وما بتنتج TRUE الا بحالة ان توفر واحدان

AND-GATE.jpg


وهي شبيها لعملية الضرب في الجبر العادي بحيث كل الاصفار المضروبه بنفسها والمضروبه بواحد تنتج 0
A : 1 ------ |
B : 1 ------ |

يتم كتابة الـ
AND
بهذا الشكل
Y = A • B;
Y = AB;
Y = A ∩ B;
Y = A & B;

📌 OR Gate :
صورة

هاذي البوابة تنتج مخرجا صحيحا عندما يكون احد القيمتين صحيحتان او الاثنان صحيحان

Boolean equation OR Gate:
Y = A + B;
Y = A ∪ B;
Y = A | B;

Other Two-Input Gates :
في بوابات غير ذات مدخلين منها

XOR_Logic_Gate_symbol_with_truth_table_480x480.jpg


XOR : exclusive OR (Ex-OR);
تكون صحيحه عندما تكون احد القيم يوجد بها 1 ليس عندما يكون مشتركون في نفس القيمة
Y = A ⊕ B;
Or
Y = A ^ B;
Or
Y = A ⊻ B;
📌 NAND : NOT AND

rpqNC.png


يكون المخرج صحيحا عندما تكون جميع القيم لا تساوي 1
Y = (A & B); Y = (AB);
Y = (A • B); Y = (A ∩ B);
📌 NOR : NOT OR

Truth-table-NOR-gate-417x500.png


تكون صحيحة عندما لا يكون المخرجان احدهم يساوي 1
Y = (A + B); Y = (A ∪ B);
Y = (A | B)`;
📌 XNOR GATE :
لها مخرجان وتمثل عكس ال
XOR

XNOR : NOT XOR

Truth-table-XNOR-gate-417x500.png


بمعنى اذا كان احد القيم متساويه صفر وصفر او واحد و واحد تكون صحيحة
Multiple-Input Gates :

في بوابات بتستقبل ثلاث مدخلات لكن الاكثر استخداما
AND, OR, XOR, NAND, NOR, and XNOR.

📌 THREE-INPUT NOR GATE :

3-input_NOR_Gate_with_Truth_Table_600x600.jpg


NOR3

Y = (A + B + C); Y = (A ∪ B ∪ C);
Y = (A | B | C)`;

BENEATH THE DIGITAL ABSTRACTION :
يستخدم النظام الرقمي قيم تمثل بواسطة قيم محددة بدقة مثل البتات وهذه القيم تتغير بشكل دقيق ومحدد
والمصمم يجب عليه ان يختار طريقة لربط القيمة

مثال :
اشارة ثنائيه A بجهد كهربائي على سلك

Volt(V) = 0
A = 0
V = 5;
A = 1;
لكن اي نظام اخر اذا لازم يتعمل بعض التشويش الي ممكن يصير فيو يعني
v = 4.75
لازم يكون كمان
A = 1;
فما بالك في
V = 2.500000
V = 1.1530000

Supply Voltage :
لنفترض اقل جهد في النظام هو 0 فولت بكون اسمو
ground or gnd;

ياتي اعلى جهد في النظام من مصدر الطاقة ويمسى عادة VDD قبل عشرات السنوات كان عادة V = 5; مع تطور الترانزستورات الى اصغر ال VDD انخفض الى فولت اقل مثل 2.3 , 1.2 واقل لتوفير الطاقة وتجنب الحمل على الترانزستورات

1.6.2 Logic Levels

صورة :

يتم تعين متغير مستمر على متغير ثنائي عن طريق تحديد المستويات المنطقيه بمعنى مثل اشارات الرقمية الكهربائية تتغير باستمرار الى متغير ثنائي يعتبر عنها بصفر و واحد
المستويات المنطقية عادة ما تحمل المستوى منخفض يرمز اليه بصفر والمستوى العالي يرمز اليه بمستوى 1
مثال اذا عندك مصباح ان كان الضوء طافي راح يكون مستوى منخفض بتالي راح يكون 0 عندما يكون الضوء شغال راح نعبر عنه بمستوى عالي هو الواحد

البوابة الاولى تسمى Driver والثانية تسمى Receiver

الـ Output driver
متصل في
Input Receiver Driver

الـ Driver
ينتج LOW(0) في نطاق ال {0 - VOL}

وال HIGH(1) في نطاق ال {VOH - VDD}

اذا الـ receiver حصل على ادخال في نطاق ال 0 to V(IL) راح يعتبر الادخال منخفض

اذا حصل ال receiver حصل على ادخال في نطاق ال V(IH) to VDD يعتبر ادخال مرتفع لسبب ما مثل التشويش الي هو ال Noise
الـ receivers input لازم يكون موجود في الـ forbidden zone V(IH) to V(IL) وفي هاي الحالة البوابة لا يمكن التنبؤ بها ولي ممكن هاض الموضوع يصير زي ما قلت من خلال التشويش الي بكون سببو اشياء معيبه صارت في سياق الكهربائي للنظام بتكون غير مرغوب مثل ممكن تصدم الاشارات الكهربائيه باشارات كهرومغناطيسية خارجية
الـ VOH,VOL, VIH, & VIL : بكون اسمهم
Input High & Low logic levels

مشاهدة المرفق 2543

Noise Margins : اذا اردنا تفسير مخرجات ال Driver بشكل صحيح يجب علينا الاختيار عند الـ receiver input لازم نختار

VOL < VIL and VOH > VIH

اذا اخراجات الـ

Driver كانت فيها نويز الـ receiver input راح يكشف الـ correct logic level عشان نحاول قدر المستطاع ما تفوت على الـ Forbidden Zone

ونفترض انها فاتت في Filtering للموضوع

noise margin : هو مقدار التشويش التي يمكن اضافتها الى
worst-case output بحيث يمكن ان تفسير الاشارة على انها valid input

يمكن جلب اين تكون الـ
noise margin
من خلال
NML = VIL − VOL
NMH = VOH − VIH

CALCULATING NOISE MARGINS :
صورة
Figure 1.24.
الـ
VO1 : هو الـ
output voltage of inverter
I1 & VI2 : هو الـ
input voltage of inverter I2
الخصائص الموجودة في الـ
inverters
VDD = 5V;
VIL = 1.35;
VIH = 3.15;
VOL = 0.33;
VOH = 3.84;
وحاليا بدنا نعرف وين الـ
noise margins
الـ
LOW & HIGH Noise
يمكن للـ
circuit
حمل
1V
للـ
noise
بين الـ
VO1 - VI2
الحل :
NML = VIL − VOL
NMH = VOH − VIH
|
NML = 1.35V − 0.33V = 1.02V;
NMH = 3.84V − 3.15V = 0.69V;

الـ
Low Input is 1.02V;
High Input is 0.69V;

على سبيل المثال الـ
I1 Driver
بخرج
في اسواء الحالات
HIGH value = VO1 = VOH = 3.84V;

اذا تسببت الـ
Noise
انخفاض الجهد بمقدار
1V
فا الـ
Input VI2
بكون
VI2 = (3.84V − 1V) = 2.84V;

وهذا بكون اقل من القيمة العالية المقبولة
VIH = 3.15;
قد لا يشعر الـ
receiver
انو صار ادخال عالي
HIGH INPUT

CMOS TRANSISTORS :
الكمبيوترات الحديثة بتستخدم ترانزيستورات لانها رخيصة وصغيرة الحجم
الترانزيستور زي ما تقول هو مفاتيح يتم التحكم فيها كهربائيا والتي يتم تشغيلها وايقافها
ON & OFF
عند تطبيق الجهد

نوعان رئيسيان من الترانزيستورات
1 - bipolar junction ()
2 - metal-oxide-semiconductor field effect
transistors
MOS & MOSFET
كانت ثورتها عندما استطاع احد العلماء من جعل اثنان ترانزيستور على لوحه سلكون ولان مليارات الترانزيستورات تكون على لوحة سلكون

Semiconductors :
الـ
MOS transistors
تصنع من السيليكون
Silicon (Si)
هو مجموعة من الـ
IV ATOM
يحتوي على اربعة الكترونات في غلاف التكافؤ ويشكل روابط مع 4 ذرات مجاورة مما يؤدي الى شبكة بلورية
(crystalline lattice)

يعتبر السليكون في حد ذاته موصلا سيئا لان جميع الاكترونات مرتبطة بروابط تساهمية ومع ذالك فانه يصبح موصلا افضل عند اضافة كميات صغيرة من الشوائب تسمى
amounts of impurities
اذا تمت اضافة مجموعة من
V
المشابهة مثل الزرنيخ
(As)
فان الذرات المشابهة تحتوي على الكترون اضافي غير مشارك في الورابط
يمكن للاكترون ان يتحرك بسهولة حول الشبكة
تاركين وراهم
ionized dopant atom (As+)
يحمل الاكترون شحنه سالبه
لذلك نطلق على الزرنيخ مادة
n-type dopant
من ناحية اخرى اذا تمت اضافة مجموعة
III
مثل البورون
(B)
فان الذرات المشابهة تفقد الكترونا
ويسمى هذا الإلكترون المفقود بالثقب
(hole)
قد يتحرك إلكترون من ذرة السيليكون المجاورة لملء الرابطة المفقودة
مما يشكل
ionized dopant atom (B−)
يفتقر الثقب الى الشحنة السالبة فهو يتصرف كجسيم موجب الشحنه

وهيك احنا بندعي الـ
boron a p-type dopant
نظرًا لأن موصلية السيليكون تتغير على مدى عدة أوامر من حيث الحجم اعتمادًا على تركيز المنشطات، فإن السيليكون يسمى أشباه الموصلات
رغم اني فهمان البرمجة والخوارزميات الا انني لم افهم هذه المقالة بشكل واضح ولاكن شكرا على اي حال
بارك الله فيك ورفع مكانك في الجنة استاذنا الكريم
 
رغم اني فهمان البرمجة والخوارزميات الا انني لم افهم هذه المقالة بشكل واضح ولاكن شكرا على اي حال
بارك الله فيك ورفع مكانك في الجنة استاذنا الكريم
المقالة رائعة
و لكن حدث مشكلة في المنشورات ... و جعل محتوى المنشورات غير واضحة

ان شاء الله سوف يتم تعديلها قريبا لكي تكون أوضح.
 
مشاهدة المرفق 2544
بسم الله الرحمن الرحيم
**
رحلتي من تغميس الشاي الى البروسيسور
قبل كل شيء هذا المقال ليس بمقال مبين او مقال مافي اي اخطاء ؛ يمكن انا اخطأت واي انسان معرض للخطأ ، الانسان من النسيان عشان هيك لو شفت خطأ او معلومه مش واضحه او حتى سؤال بتقدر تسوي Reply وتصحح او تسال ويعطيكم العافيه جميعا.

هذا الموضوع سوا رعب لطلاب الهندسة الكهربائيه والحاسب حتى في علوم الحاسب للمبتدئين اول ما يشوف هاي الصورة :
v4c7-commutative-property-of-addition.png


من المحه الاولى بتيجي الفاجعة بسبب انهم اصلا مش فاهمين كمبتدئين من خلال هاض المجال المنطقي قادرين على بناء معالج كامل وهو الاساس القوي الي بتحتاجو عشان تكمل في تعليمك في
Computer Organzation & Computer Architecture سواء كنت مهندس او عالم هاض مش مهم لانو اصلا بوخذو نفس الكورسات البدائية لكن الفرق بكون المستويات المتقدمة فرض على طلاب الهندسة وعند علماء الحاسب بكون غير اجباري وما بننكر انو المعالجات الدقيقة سوت ثورة عالمية في العصر الحديث الان عدد المعالجات الدقيقة في الجوال تفوق عدد الكمبيوترات القديمة التي كانت تملئ غرفة كامله بكل مكان تستخدم المعالجات الدقيقة في تكنلوجيات الطبية حتى في من الجانب العسكري انظمة الدفاع يوجد لديها معالجات دقيقة معقدة للغاليه وقوية للغالية لا يمكن الاستغناء عنها مثال في العملية العسكرية في هاذي الدقيقة روسيا تشن هجوما على اوكرانيا بفضل المعالجات الدقيقة التي تطلق الصواريخ وهذا الامر الذي جعل روسيا تقوم بتهريب المعالجات الدقيقة المصممه من الغرب الى اراضيها لصنع الصواريخ كما يدعي الغرب روسيا لم محاصرة.

باذن الله هون راح نشرح كيف تصميم المعالج الدقيق نظريا :

يمكنك ان تقوم بصنعه عمليا لكن هذا يدخل به هندسة الكمبيوترات اكثر ، كيفية صنعه وبناء كمبيوتر صغير 8-bit او اي شيء يعني باذن الله راح نشرح عن ال digital system الي ما تعلمتها في المدرسة حتى قبل ما تبدأ يعني لازم تكون على الاقل مخلص الثانويه … ليش؟ عشان يكون عندك على الاقل خبره برمجيه شوي وخبره عن الكهرباء شوي وكمان عن الهاردوير شوي وراح نتعلم شوي عن ادارة التعقيد عشان المعالجات الحالية فيها ملاين الترانزستورات اي انسان طبيعي راح يضيع وهو يقرأ.

نبدأ الشرح بسم الله

NUMBER SYSTEMS : ك انسان طبيعي انتا متعود انت تعمل مع الارقام العشرية الديسيمل الي هي من 0 الى 9 الي اصلا هي عدد اصابعك العشرة على هذا الاساس تم بنائها لكن تكتب في خانة واحدة من 0 الى 9

لكن في كثير من انظمة الارقام مثل السداسي العشري والثنائي والثماني

📌 Decimal Numbers :
مش محتاجين نمر عليه كثير لانو الكل بعرفو حتى لو مش داخل مدرسة بتعرفو ولا انتا زلمه قنينة مي وجودها اهم منك في الحياة
ارقام العشرية : {1,2,3,4,…,9}

هاذي للخانة الواحدة لكن من الممكن ان يتم جمعها مع بعض وتصبح اكبر مثل
89071234

كل عامود من هاذي الارقام لديه وزن

نحن نقراء من اليمين الى الشمال لحساب الاعمدة هي
1
10
100
1000
10000

الاساس او ال base الخاص في هو 10 لانه من 0 - 9

وسنعرف الارقام من خلال الاساس الخاص بها عشان ما نتشتت واساس العشري هو 10 يعني راح نعرفو هكذا
(890134)₁₀

يمثل الرقم العشري المكون من رقم ن
N-digit decimal number
يمثل احد الاحتمالات
0,1,2,3,4…10^n - 1
وهاض اسمو نطاق الرقم

مثال الرقم الممثل من 3 ارقام عشرية مثال رقم في احتمال 1000 النطاق الخاص فيه
{0,…,999};

📌 Binary Numbers :
هو الرقم الثنائي المكون من 0 و 1 وفي الاخر يتم جمعهم او تضمينهم مع بعض عشان يكونو رقم كامل مثل 1001010100 اساس الرقم الثنائي 2
N-bit binary^2
BIT : Binary Digit
عشان تحسبو بشكل اسهل هو مضاعفات رقم 2
زي
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536

ال table هاض بوضح الباينري نمبر مقابل الديسيمل

9d1906408e410af63c39b513ce73d01562630ee0.jpeg


وبدنا نسوي مثال كيف تحويل الثنائي الى عشري
1010₂ → (?)₁₀

N-bit = N-bit×Weight^column
(1010)₂ → 12^3 + 02^2 + 12^1 + 02^0 = (10)₁₀

📌 Hexadecimal Numbers :
انك تكتب في الباينري امر ممل ويمكن تخطأ فيو لانك بالاول وبالاخير مش الاله اربعة بتات تمثل السداسي العشري
2^4 = 16
في بعض الاحيان تختار انك تستخدم السداسي العشري امر افضل لك الارقام السداسي تمثل
0 - 9 & A - F
atab01.jpg


الاساس الخاص به 16
📌 HEXADECIMAL TO BINARY :
5AE₁₆ = (?)₂
5₁₆ = 101₂
A₁₆ = 1010₂
E₁₆ = 1110₂
5AE₁₆ = (101 1010 1110)₂

HEXADECIMAL TO DECIMAL :
5AE₁₆ = (?)₁₀
5AE₁₆ = 516^2 + A16^1 + E*16^0 = (1454)₁₀

Bytes, Nibbles, and All That Jazz :
8bit’s = 1 Byte

يمكن ان يمثل
2^8 = 256
احتمال
2^8 - 1 = 1111 1111

والافضل والمستخدم حاليا في الكمبيوترات هو استخدام تمثيل البايت بدلا من البت في الذاكرة مثلا

Nibble = 4 bit or half byte
2^4 = 16 احتمال
2^4 - 1 = 1111

4 بت
الموضوع هاض ما بذكرك في اشئ ؟ الهكسديسيمل بستخدم لكل حرف 4 بت يعني لتخزين بت واحد من الهكس هو يعتبر
Nibble
والرقمان في بايت كامل

ال
Microprocessors
بتتعامل مع البيانات في اجزاء اسمها
word

حجم ال
word
بعتمد على بنية المعالج مثال اذا كان
64-bit processor
بكون انها بتعامل على
64-bit word
word = 8 byte

المجموعة من البتات البت الموجود في العامود الاول اسمها least significant bit (LSB)
والبت الي في اخر العامود اسمها most significant bit (MSB)

1001010101001
^ ^
LSB MSB

كيلو بايت | kilobyte
2^10 = 1024
2^10 = 1 Kb

الميقا | megabyte
2^20 = 1,048,576

2^20 = 1 mb

القيقا | gigabyte
2^30 = 1,073,741,824

2^30 = 1 gb

التيرا | terabyte

2^40 = 1,099,511,627,776

2^40 = 1 tb

📌 Binary Addition :
الجمع في الثنائي بشبه عملية الجمع في العشري حتى اسهل
نفسها بزبط

مش محتاج اشرحو لانو نفس الجبر العادي نفس حساب العشري

11​

1011​

+ 0011​

1110

1 + 1 = في اليد واحد
0 + 0 = 0
1 + 0 = 1

ممكن تتعامل بعدد ثابت ومساوي للمطروح او المجموع لكن اذا كان غير مسوي او اكبر هون بصير اسمها overflow
اذا صار بعد الجمع زياده في الارقام

مثال في الهكس
من [0-15]
نفترض انها تجاوزت ال 15 ؟ يتم تجاهل البت الذي قام بتجاوز مثال هنا البت 4 سيصبح 5 بت يتم تجاهله

مثال :
(1101 + 0101) ₂ = (18)₁₀

(1) 1 1
1101
  • 0101

كود:
 0010
(0010)₂ = (2)₁₀

اذا كان بدك 4 بتات بس البت الي بكون MSB الي هو بحالتنا هسا هو ال Overflow يتم تجاهله الي بترك عدد غير صحيح اما اذا العكس بنزل العدد المتجاوز طبيعي
(10010)₂ → (18)₁₀

📌 Signed Binary Numbers :
احنا كنا بنتعامل مع الارقام الموجبه من صفر وما فوق 0 ≤ ∞

طيب في العمليات الحسابية الطبيعية في سالب كمان اقل من صفر -∞ ≥ 0

في اكثر من طريقة في الباينري الانظمة المختلفة بتستخدمها عشان تمثل الاعداد السالبة مثل sign-magnitude , 1’s & 2’s complement etc…

📌 Sign-Magnitude Number’s :
تقريبا مشابهه لعمليتنا في الحساب بحيث بتكون في علامة بتبين انو هاض الرقم سالب او موجب من خلال يستخدم N-bit sign بت ال MSB بكون هو الاشارة والبتات الاخرى هي بتكون البتات الي بتمثل الحجم والرقم

0 : -
1 : +

مثال :
111(0)
|
{MSB} *Bit Sign
(1110)₂ : (-7)₁₀
0111
|
{MSB} *Bit Sign

(1111)₂ : (7)₁₀

لكن من النظرة الاولى بتعرف فيها سلبيات اكثر من الايجابيات
منها عدم قدرتك على الجمع والطرح

📌 Two’s Complement Numbers :

في هاض التكنيك مبدئيا اي صفر قدامك بنزل كـ اصفار عادي

(0000)₂

تمثيل الارقام كيف : والرقم الايجابي 0 في مكان ال : MSB
(01111)₂ = 2^(n-1)-1
اثبات المعادلة :
2 : Binary System
n = number of bit’s
مثال :
(10000) < 5 bit’s
الكمبيوتر بشوفو
اخر رقم من انو يبدأ من صفر احنا نبدأ من واحد عشان هيك نقصنا واحد
يعني
2^(n-1) : 4-bit’s
هون قاعدين بنقص 1 عشان تتحول القيمه
1 - 0 : 1
0 - 0 : 0
يتحقق من الموجب وسالب من خلال طرحهما
والسلبي يكون 1

(10000)₂ = -2^(n-1)-1

هكذا يتم تمثيل ان كان سالبا او موجبا

وباقي الارقام هي الحجم

مثل ما ذكرنا اول اشئ الاصفار كلها تنزل حتى تجد رقم 1 مثال :
(100100)₂

(xxxx00)₂
جميع الاصفار الاثنان تنزل
(00)₂

وان وجدت رقم 1 في الخطوة التاليه ينزل كما هو
(xxx100)₂

الخطوة الاخيرة اعكس الارقام الباقيه
(011100)₂

(011100)₂ is (100100)₂

طريقة اخرى
ليتم عكس علامة الرقم في هذا الحساب تسمى
taking the two’s complement

اول اشئ بدك تساويه انك تضيف 1 على ال
LSB طبعا بعد عكس الارقام

مثال على رقم عشري بدنا اياه يكون
-2 : using 4-bit + 2’s comp

1 - عكس كل الاراقام
2 - زيادة واحد

(+2)₁₀ = (0010)₂
(0010)₂ = (1101)₂
وفي الاخر نقوم باضافة واحد
(1101)₂ + 1 = (1110)₂

موقع للحساب :


واخيرا :
الحل على طريقتين
صورة **

ADDING TWO’S COMPLEMENT NUMBERS :
هون القوة الحقيقة انك اصلا بتقدر تجمع الارقام بشكل صحيح في عندك طريقتين لجمع الي بريحك
منها انك اول اشئ تسوي هاض التكنيك وتجمعهم او قبل ما تسوي التكنيك هاض تجمعهم او تطرحهم بعدين تسوي هاض التكنيك عليهم

(-2)₁₀ + (1)₁₀ =​

1110​

0001 +​

(1111)₂

SUBTRACTING TWO’S COMPLEMENT NUMBERS :
كيفية الطرح اول شئ نجد ال 2’s comp بعدها نجمعهم

(5)₁₀ - (2)₁₀ =
(5)₁₀ = (0101)₂
(2)₁₀ = (0010)₂ → 2’s is (1110)₂

(1011)₂ + (1110)₂ = (0011)₂

ADDING TWO’S COMPLEMENT NUMBERS WITH OVERFLOW :
(5)₁₀ + (4)₁₀ using 4-bit
(5)₁₀ + (4)₁₀ = ?

(5)₁₀ = (0101)₂
(4)₁₀ = (0100)₂

(0101)₂ + (0100)₂ = (1001)₂
(1001)₂ = (-7)₁₀
نتيجة سالبة غير صحيحة
لكن اذا تم اجراء حساب بخمس بايتات او اكثر النتيجة ستكون صحيحة (9)₁₀

مع مراعاة عندما يتم توسيع الرقم الى مزيد من البتات في هذا التكنيك الى نسخ اشارة البت الى ال MSB اسم هاذي العملية sign extension

على سبيل المثال رقم
3 : (0011)₂
-3 : (1101)₂

LOGIC GATES :
اتوقع حاليا بفضل الله تعلمنا كيف تتعامل مع الارقام مثل الثنائي والعشري وفهمت كيف بتشتغل الان بدنا نبدأ في لوجيك قيتس اذا انتا مبرمج سابق على ما اعتقد بتعرف اشئ اسمو bitwise اذا ما بتعرفو بعرفش شو بدي اقلك لكن هسا راح تفهمها

الوجيك قيتس هي دوائر منطقيه بسيطة تاخذ input واحد او اكثر وتنتج outputs binary طبعا كل الحساب بكون عن طريق ال Binary Digit الدوائر الثنائيه يتم رسمها برمز يوضح المدخلات والمخرجات وعادة ما يتم رسم المدخلات على اليسار والمخرجات على اليمين
وعادة ما يرمز للمدخلات بحروف الابجدية A , B etc. والمخرجات بحرف Y
يمكن وصف العلاقة بين المدخلات والمخرجات باستخدام ال truth table او Boolean equation جدول الحقيقة بعطيك كل المدخلات والمخرجات والمدخلات تكتب على اليسار والمخرجات على اليمين او يتم

ال Boolean equation : هي تعبير رياضي يستخدم المتغيرات الثنائيه

📌 NOT Gate :

NOT_Logic_Gate_symbol_with_truth_table_480x480.jpg


هاي اول بوابة منطقية راح نشرحها عندها مدخل واحد
يعني مدخل واحد هو A
ومخرج واحد هو Y

كلشئ بفوت في هاي البوابة المخرجات راح تكون عكس القيمة بمعنى يعني اذا كان المدخل
FALSE : 0
راح يصير
TRUE : 1

الخط الخارج من A الى Y هذا هو الخط الذي يمثل ال NOT Gate ويسمى اسم اخر inverter

صورة

يتم الاشارة الى الى العملية الحسابيه ل NOT ب او خط فوق الخط Y = A = Y Equals NOT (A)

وتكتب ايضا كـ
Y = A`;
Y = ¬A;
Y = !A;
Y = ~A;

الرمز هاض المثلث بشير والفقاعة (Bubble) الى بوابة ال NOT

Buffer :

ويوجد بوابة اخرى منطقيه بمدخل واحد وهي ال
Buffer


وظيفتو انو ينسخ الادخال الى الاخراج يمكن تشوفو بدون فايده غير انو سلك قاعد بنسخ نفس المعلومات لكن هو بقدر يوصل كميات كبيره من التيار الى المحرك و القدرة على ارسال المخرجات بسرعة الى عديد من البوابات وطبعا هاض الموضوع بصير بالعالم الخارجي للكمبيوتر بمعنى فصل بين كل شيء هو التجريد وهاض السبب كيف جدتك تتمكن من استخدام الهاتف او الكمبيوتر يعني مش راح تشوف فايديتو الحقيقة بدون العمل معو
الرمز هاض المثلث بشير الى ال Buffer

📌 AND Gate :
هاذي البوابة لها مدخلان ومخرج واحد وما بتنتج TRUE الا بحالة ان توفر واحدان

AND-GATE.jpg


وهي شبيها لعملية الضرب في الجبر العادي بحيث كل الاصفار المضروبه بنفسها والمضروبه بواحد تنتج 0
A : 1 ------ |
B : 1 ------ |

يتم كتابة الـ
AND
بهذا الشكل
Y = A • B;
Y = AB;
Y = A ∩ B;
Y = A & B;

📌 OR Gate :
صورة

هاذي البوابة تنتج مخرجا صحيحا عندما يكون احد القيمتين صحيحتان او الاثنان صحيحان

Boolean equation OR Gate:
Y = A + B;
Y = A ∪ B;
Y = A | B;

Other Two-Input Gates :
في بوابات غير ذات مدخلين منها

XOR_Logic_Gate_symbol_with_truth_table_480x480.jpg


XOR : exclusive OR (Ex-OR);
تكون صحيحه عندما تكون احد القيم يوجد بها 1 ليس عندما يكون مشتركون في نفس القيمة
Y = A ⊕ B;
Or
Y = A ^ B;
Or
Y = A ⊻ B;
📌 NAND : NOT AND

rpqNC.png


يكون المخرج صحيحا عندما تكون جميع القيم لا تساوي 1
Y = (A & B); Y = (AB);
Y = (A • B); Y = (A ∩ B);
📌 NOR : NOT OR

Truth-table-NOR-gate-417x500.png


تكون صحيحة عندما لا يكون المخرجان احدهم يساوي 1
Y = (A + B); Y = (A ∪ B);
Y = (A | B)`;
📌 XNOR GATE :
لها مخرجان وتمثل عكس ال
XOR

XNOR : NOT XOR

Truth-table-XNOR-gate-417x500.png


بمعنى اذا كان احد القيم متساويه صفر وصفر او واحد و واحد تكون صحيحة
Multiple-Input Gates :

في بوابات بتستقبل ثلاث مدخلات لكن الاكثر استخداما
AND, OR, XOR, NAND, NOR, and XNOR.

📌 THREE-INPUT NOR GATE :

3-input_NOR_Gate_with_Truth_Table_600x600.jpg


NOR3

Y = (A + B + C); Y = (A ∪ B ∪ C);
Y = (A | B | C)`;

BENEATH THE DIGITAL ABSTRACTION :
يستخدم النظام الرقمي قيم تمثل بواسطة قيم محددة بدقة مثل البتات وهذه القيم تتغير بشكل دقيق ومحدد
والمصمم يجب عليه ان يختار طريقة لربط القيمة

مثال :
اشارة ثنائيه A بجهد كهربائي على سلك

Volt(V) = 0
A = 0
V = 5;
A = 1;
لكن اي نظام اخر اذا لازم يتعمل بعض التشويش الي ممكن يصير فيو يعني
v = 4.75
لازم يكون كمان
A = 1;
فما بالك في
V = 2.500000
V = 1.1530000

Supply Voltage :
لنفترض اقل جهد في النظام هو 0 فولت بكون اسمو
ground or gnd;

ياتي اعلى جهد في النظام من مصدر الطاقة ويمسى عادة VDD قبل عشرات السنوات كان عادة V = 5; مع تطور الترانزستورات الى اصغر ال VDD انخفض الى فولت اقل مثل 2.3 , 1.2 واقل لتوفير الطاقة وتجنب الحمل على الترانزستورات

1.6.2 Logic Levels

صورة :

يتم تعين متغير مستمر على متغير ثنائي عن طريق تحديد المستويات المنطقيه بمعنى مثل اشارات الرقمية الكهربائية تتغير باستمرار الى متغير ثنائي يعتبر عنها بصفر و واحد
المستويات المنطقية عادة ما تحمل المستوى منخفض يرمز اليه بصفر والمستوى العالي يرمز اليه بمستوى 1
مثال اذا عندك مصباح ان كان الضوء طافي راح يكون مستوى منخفض بتالي راح يكون 0 عندما يكون الضوء شغال راح نعبر عنه بمستوى عالي هو الواحد

البوابة الاولى تسمى Driver والثانية تسمى Receiver

الـ Output driver
متصل في
Input Receiver Driver

الـ Driver
ينتج LOW(0) في نطاق ال {0 - VOL}

وال HIGH(1) في نطاق ال {VOH - VDD}

اذا الـ receiver حصل على ادخال في نطاق ال 0 to V(IL) راح يعتبر الادخال منخفض

اذا حصل ال receiver حصل على ادخال في نطاق ال V(IH) to VDD يعتبر ادخال مرتفع لسبب ما مثل التشويش الي هو ال Noise
الـ receivers input لازم يكون موجود في الـ forbidden zone V(IH) to V(IL) وفي هاي الحالة البوابة لا يمكن التنبؤ بها ولي ممكن هاض الموضوع يصير زي ما قلت من خلال التشويش الي بكون سببو اشياء معيبه صارت في سياق الكهربائي للنظام بتكون غير مرغوب مثل ممكن تصدم الاشارات الكهربائيه باشارات كهرومغناطيسية خارجية
الـ VOH,VOL, VIH, & VIL : بكون اسمهم
Input High & Low logic levels

مشاهدة المرفق 2543

Noise Margins : اذا اردنا تفسير مخرجات ال Driver بشكل صحيح يجب علينا الاختيار عند الـ receiver input لازم نختار

VOL < VIL and VOH > VIH

اذا اخراجات الـ

Driver كانت فيها نويز الـ receiver input راح يكشف الـ correct logic level عشان نحاول قدر المستطاع ما تفوت على الـ Forbidden Zone

ونفترض انها فاتت في Filtering للموضوع

noise margin : هو مقدار التشويش التي يمكن اضافتها الى
worst-case output بحيث يمكن ان تفسير الاشارة على انها valid input

يمكن جلب اين تكون الـ
noise margin
من خلال
NML = VIL − VOL
NMH = VOH − VIH

CALCULATING NOISE MARGINS :
صورة
Figure 1.24.
الـ
VO1 : هو الـ
output voltage of inverter
I1 & VI2 : هو الـ
input voltage of inverter I2
الخصائص الموجودة في الـ
inverters
VDD = 5V;
VIL = 1.35;
VIH = 3.15;
VOL = 0.33;
VOH = 3.84;
وحاليا بدنا نعرف وين الـ
noise margins
الـ
LOW & HIGH Noise
يمكن للـ
circuit
حمل
1V
للـ
noise
بين الـ
VO1 - VI2
الحل :
NML = VIL − VOL
NMH = VOH − VIH
|
NML = 1.35V − 0.33V = 1.02V;
NMH = 3.84V − 3.15V = 0.69V;

الـ
Low Input is 1.02V;
High Input is 0.69V;

على سبيل المثال الـ
I1 Driver
بخرج
في اسواء الحالات
HIGH value = VO1 = VOH = 3.84V;

اذا تسببت الـ
Noise
انخفاض الجهد بمقدار
1V
فا الـ
Input VI2
بكون
VI2 = (3.84V − 1V) = 2.84V;

وهذا بكون اقل من القيمة العالية المقبولة
VIH = 3.15;
قد لا يشعر الـ
receiver
انو صار ادخال عالي
HIGH INPUT

CMOS TRANSISTORS :
الكمبيوترات الحديثة بتستخدم ترانزيستورات لانها رخيصة وصغيرة الحجم
الترانزيستور زي ما تقول هو مفاتيح يتم التحكم فيها كهربائيا والتي يتم تشغيلها وايقافها
ON & OFF
عند تطبيق الجهد

نوعان رئيسيان من الترانزيستورات
1 - bipolar junction ()
2 - metal-oxide-semiconductor field effect
transistors
MOS & MOSFET
كانت ثورتها عندما استطاع احد العلماء من جعل اثنان ترانزيستور على لوحه سلكون ولان مليارات الترانزيستورات تكون على لوحة سلكون

Semiconductors :
الـ
MOS transistors
تصنع من السيليكون
Silicon (Si)
هو مجموعة من الـ
IV ATOM
يحتوي على اربعة الكترونات في غلاف التكافؤ ويشكل روابط مع 4 ذرات مجاورة مما يؤدي الى شبكة بلورية
(crystalline lattice)

يعتبر السليكون في حد ذاته موصلا سيئا لان جميع الاكترونات مرتبطة بروابط تساهمية ومع ذالك فانه يصبح موصلا افضل عند اضافة كميات صغيرة من الشوائب تسمى
amounts of impurities
اذا تمت اضافة مجموعة من
V
المشابهة مثل الزرنيخ
(As)
فان الذرات المشابهة تحتوي على الكترون اضافي غير مشارك في الورابط
يمكن للاكترون ان يتحرك بسهولة حول الشبكة
تاركين وراهم
ionized dopant atom (As+)
يحمل الاكترون شحنه سالبه
لذلك نطلق على الزرنيخ مادة
n-type dopant
من ناحية اخرى اذا تمت اضافة مجموعة
III
مثل البورون
(B)
فان الذرات المشابهة تفقد الكترونا
ويسمى هذا الإلكترون المفقود بالثقب
(hole)
قد يتحرك إلكترون من ذرة السيليكون المجاورة لملء الرابطة المفقودة
مما يشكل
ionized dopant atom (B−)
يفتقر الثقب الى الشحنة السالبة فهو يتصرف كجسيم موجب الشحنه

وهيك احنا بندعي الـ
boron a p-type dopant
نظرًا لأن موصلية السيليكون تتغير على مدى عدة أوامر من حيث الحجم اعتمادًا على تركيز المنشطات، فإن السيليكون يسمى أشباه الموصلات
رغم اني فهمان البرمجة والخوارزميات الا انني لم افهم هذه المقالة بشكل واضح ولاكن شكرا على اي حال
بارك الله فيك ورفع مكانك في الجنة استاذنا الكريم
المقالة رائعة
و لكن حدث مشكلة في المنشورات ... و جعل محتوى المنشورات غير واضحة

ان شاء الله سوف يتم تعديلها قريبا لكي تكون أوضح.
شكرا على ردودكم السريعة واهتمامكم, بارك الله فيكم جميعا
 

آخر المشاركات

عودة
أعلى