بسم الله الرحمن الرحيم اليوم إن شاء الله هنستكمل
في chapter 6 ونبدأ تحديدا في الـ counters يمكن إحنا
عنوان chapter 6 كان عبارة عن registers و counters
يمكن في المحاضرات السابقة خلصنا الـ registers اليوم إن
شاء الله هنستكمل ونبدأ في الـ counters أول نوع من
الـ counters هنبدأ فيه حاجة بنسميها ripple counters
ripple counters تعالوا نشوف كيف الـ ripple counters
هدول زي ما أنتم شايفين تعالوا نتطلع في الرسم شوية
قبل ما أدخل في تفاصيل أو أقول هذا العدد إيش بيعد
بدنا نتطلع هنا عبارة عن إيش؟ T Flip-Flop كل الـ T
اللي موجودين في الرسم شايفينهم كلهم موصلين مع بعض
خليني الحين نشوف رسمة الكتاب عشان أوضحها أكثر
نشوفها كاملة طبعا طيب زي ما أنتم شايفين الآن في
رسمة الكتاب كل الـ T موصلين مع بعض وحطيتها logic one
وإحنا عارفين أن الـ T flip-flop هذا: Zero على
المدخل، no change واحد على المدخل، it changed
وبالتالي كل الـ T موصولات في بعض ومحطوطين في قيمة
واحد إيش يعني في قيمة واحد؟ معناه كل مرة بيصير it
changed ده كل flip-flop، ده أول ملاحظة الملاحظة
التانية طالعة الـ R، الـ R كلهم، و هذه الـ reset سهلة
مافيش فيها إيش؟ الـ R من زمان حكينا عنها الـ R كلهم
موصلين في سلك واحد اللي هو الـ Reset عشان لو بدنا
نصفّر الـ content في أي لحظة نحط الـ Reset في Zero و
نرجعه لواحد فهذا ما فيه مشكلة يعني هدول اتنين ما فيه
مشكلة طيب الآن تعالوا نتطلع شوية على الـ clock
لاحظوا في اختلاف هنا الـ input هنا الـ output هنا هي
الـ clock بتاعته اللي وراها، والـ output هنا هو الـ
clock بتاعته اللي وراها شايفين؟ والـ output الثاني هو الـ
clock بتاعته اللي وراها وهكذا عشان كده سميناها ripple فهي
أول ملاحظة إنه كل مخرج ده flip-flop عبارة عن الـ
clock بتاعته اللي وراها فده ملاحظة بعدين ملاحظة تانية أنت
لاحظت إن الـ flip-flop بيشتغل عند الـ falling edge ليش؟
لأنه في عند الزاوية في bubble طالما في عند الزاوية
bubble هنا معناها بيشتغل عند الـ falling edge زي ما أنتم
شايفين الآن طيب السؤال هل في فرق بين الـ flip-flop
اللي هنا، هذا اللي أنا حاطط عليه هاي الدائرة، هاي مع
اللي جنبه الـ D في فرق بينهم؟ الشاطرين المفروض
يقولوا لي لأ ما فيش فارق طول ما الـ T في واحد ثابتة
ما فيش فارق مش لما تكون الـ T في واحد ماذا يحصل عندما
تكون الـ T في واحد؟ ليس كل مرة الـ A0 بتناقص
قيمتها اللي هنا صح ولا لأ؟ تعالوا تطلعوا على الـ D
الـ D كل مرة بيجرى من وين؟ اللي جنبه كل مرة
بيجرى من عكسه ليس كل مرة فوق قيمة الـ D هنا الـ A
هنا تحت عكسها فكل مرة الـ D في الـ flip-flop اللي
في جنبه إيش بيسوي؟ قاعد بيجرى من عكسه شايفين أنتم
كيف؟ بيجرى من عكسه إيش يعني بيجرى من عكسه؟ يعني كل
مرة بيصير الـ Change هذا بتديني معلومة إن الـ flip-
flop اللي هنا طول ما هو واصل فيه بيكون هو مكافئ للـ
flip-flop اللي على اليمين الآن لو نيجي نطلع
الرسمة ككل، إحنا قلنا ككل الـ T كله موصول في واحد،
صح ولا لأ؟ اتطلع في flip-flops اللي هنا، كل دي
ماخد من عكسه، كل دي ماخد من عكسه، كل دي ماخد من
عكسه، يعني كل دي بيدوها يسووا Change، يعني
الرسمتين واضح إن اللي بتطلع إنهم equivalent لبعض، لأن
في معادلة ذلك الأسلاك زي بعض، الـ Reset، Reset، الـ A
0 clock للي وراها، الـ A1 clock للي وراها،
فيما عدا ذلك كل الرسمتين شبه بعض بس اختلافهم إنه
بدل T حط D وخلى D تاخد من عكسها إذا واضح إن الرسم
اللي على الشمال هذا العمود كله الرسمة هاي هي
equivalent للرسمة اللي على اليمين بشرط إنه دائما الـ
T تكون بقيمة واحد إذا واضح هذا الكلام طيب السؤال
الآن هذا الرسم إيش بتعمل؟ هذا العداد إيش بيعد؟ اللي
أنا حاطه اللي على الشمال لأن إذا أنا عرفت إيش بيعد
خلاص ما هو اللي على اليمين زيه فإحنا هنشتغل الآن
على اللوح على الرسم اللي على الشمال نقول إيش بدها
تعد طيب خليني أرجع على اللوح الآن الآن علشان أنا
أعرف هذا العداد اللي هو بحكي لي عنه إيش بيعد طبعا
زي ما قلنا العداد هذا اللي على الشمال هو نفسه
العداد اللي على اليمين لا يختلفوا عن بعض فإذا أنا
عرفت على الشمال إيش بيعد خلاص بعرف اللي على اليمين
إيش بيعد فالسؤال إيش بيقول هنا؟ السؤال بيقول هذا
العداد اللي مرسوم اللي شفناه قبل شوية إيش بيعد؟
فالآن بنتعلم كيف نعرف إيش بيعد وكيف نشتغل عليه
الشغل الثاني ليه سميناه ripple؟ لأنه كل output في الـ
flip-flop اللي فوق بيكون مدخل لـ clock اللي تحته
في الـ flip-flop اللي تحته فكل output مدخل لـ
clock اللي تحته علشان هيك هذا بنسميه عداد غير متزامن
هذا بنسميه asynchronous counter asynchronous
counter ليش asynchronous counter؟ لأن كل flip-flop
له clock خاصة فيه مختلفة عن الثاني لو كانوا كلهم
زي السابق نفس الـ clock فداك بنسميه synchronous
وفعليا إحنا في محاضرة اليوم أو المحاضرة القادمة
هناخد الـ synchronous هنعرج عليه لكن اليوم إحنا
مركزين في المحاضرة على الـ asynchronous counter أو
اسم ثاني ripple ليش؟ لأن واحد بيسلم لواحد فهو ripple
طيب السؤال المهم الآن كيف نعرف هذا العداد إيش بيعد؟
عشان نعرف هذا العداد إيش بيعد بدنا نستخدم طريقة
الـ Timing Diagram إيش طريقة الـ timing diagram؟ أعمل
عدد معين من الـ clock pulses تمام وأشوف في كل
clock pulse إيش العد اللي عدّها العداد وأضلني أشوف
الـ clock pulse اللي وراه مش هذا عداد إيش؟ أنا عداد يعني
ممكن أعد 0 1 2 3 إلى 15 ممكن أعد 0 3 6 9 إلى 15
بتعرفش كده أعد لسه مش عارفين فالآن بدي أحاول أعمل
clock pulses وأعمل فحص لهذا العداد إيش بيعد في كل
clock pulse أول ما يعيد نفسه خلاص بعرف إيش بيعد
يعني مثلا شفنا في clock pulses بيعد زي هيك 0 3 6 0 3 6
خلاص ما كملش بس أنا عرفت إن العداد هذا ثابت 0 3 6 0 3 6
فأنا بروح بدوّر أول ما يعيد نفسه خلاص بقول هذا بيعد
العدد هذا شفتوا أنتم كيف؟ طيب الآن طيب كيف بدي
أبدأ أحل؟ كيف بدي أبدأ أشتغل timing diagram؟ كم
pulses بدي أفترض عندي علشان أحل؟ طبعا طالما أنا
عندي أربعة flip-flops إيش كل الاحتمالات اللي ممكن يعملها
الأربعة flip-flops؟ اثنين أس أربعة ستة عشر يعني
إذا بده يعد كل العدّات اللي في الدنيا هدول الأربعة
هيقدّروا من صفر لخمستاشر ليش؟ لأنه ستة عشر حالة
ما فيش غيرهم كمان مرة طالما أربعة flip-flops وكل
واحد بده يديني يا صفر يا واحد كل واحد يا صفر يا
واحد كل واحد يا صفر يا واحد كل واحد يا صفر يا واحد
كل الاحتمالات الممكنة الـ 16 الاحتمال اللي أخدناه
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(Line with repeated 8s removed as it is a typographical error)
لابد أن أحط على الأقل 16 نبضة لأنه إذا هو
بيعد من 0 إلى 15 مش هيكرّر نفسه إلا بعد الـ 16 نبضة
عشان يبدأ يعيد من جديد فلازم على الأقل في سؤال زي
هذا أحط نبضات زيادة يعني لو قلنا بنحط له 17-18
نبضة بيصير طبعا السؤال طب هل أنا لازم أمشي الـ 18
نبضة عشان أعرف إيش بيعد؟ للأسف أحيانا ممكن نضطر لذلك
إذا كان العداد بيعد كل العدّات الممكنة مش هلاحظ إن
التكرار إلا في 17-18 نبضة لكن لو كان العداد بيعد
مثلا ثلاثة خمسة سبعة ثلاثة خمسة سبعة يمكن بعد سبعة
تمام نبضات بعرف إنه بيعد بيكرر نفسه فبأوقف ده أكمل
السبعة عشر ثمانية عشر نبضة لكن في بداية السؤال أنا مش
عارف إيش بيعد وبالتالي لازم أعتبر الحالة الأسوأ
والحالة الأطول فطالما أنا عندي أربعة flip-flops
على طول بدي أعتبر إنه عندي على الأقل 16 .. 17 ..
18 نبضة وبدي أعمل فحص في الـ 18 نبضة إيش بيعد؟ طيب
نتقعد نرسم النبضات عشان نبدأ نشتغل صح بدنا
نرسم النبضات آه .. واحد .. اثنين .. ثلاثة .. أربعة
.. خمسة .. ستة .. سبعة .. ثمانية .. تسعة .. 10 .. 11
.. 12 .. 13 .. 14 .. 15 .. 16 .. 17 .. 18 .. 19 ..
زيادة الآن عشان أضمن إنه بيكرر نفسه طيب طيب
إيش اللي بدنا نسويه الآن؟ اللي بدي أسويه إذا أنا
قدرت أعرف خليني أكبّر بس شوية تكبير عشان نفهم إيش
اللي بدنا نسويه على اللوح أنا كبّرت الأولاني بس
شايفين؟ أيوة إذا أنا قدرت أعرف إيش الـ A0 كانت
قيمته في الـ 18 نبضة هدول والـ A1 إيش كانت قيمته
في الـ 18 نبضة والـ A2 والـ A3 لو عرفت قيمهم
كلهم في الـ 18 نبضة بعرف العداد صح ولا هو العداد
عبارة عن إيش؟ العداد هو عبارة عن A0 وA1 وA2 و
A3 إذا الأربعة أصفار معناها القيمة 0 إذا الأربعة
واحدات معناها القيمة 15 فهمتوا كيف؟ فالـ A0 والـ
A1 والـ A2 والـ A3 اللي طالعين من الـ Flip-Flops
هدول هشوف عليهم العدد .. هدول هشوف عليهم العداد
فإذا أنا قدرت من خلال 17 .. 18 نبضة أعرف إيش كانت
الـ A0 في كل مرة بقدر أعرف إيش العداد عدّ علشان هيك
إحنا فكرتنا عملنا النبضات بدي أبدأ الآن أرجع
للدائرة تبعتي أطلع عليها بشكل مفصل وأحاول أحسب
الـ A0 للكل وأحسب الـ A1 للكل والـ A2 للكل والـ A3
للكل إذا نجحت وحسبت كل هدول بقدر في الآخر أعرف
العداد طيب تعالوا نحاول نحسب الـ A0 الـ A
0 عشان تعرفها لازم تعرف الـ T اللي هي إيش الـ
T؟ اللي هي واحد مظلومة لأ طيب وين الـ clock بتاعتها
مش لازم هذه تتطلع على الـ falling edge صح ولا لأ الـ
clock بتاعتها اللي هي مين؟ اللي هي اللي فرضتها في
الأول اللي هي هذه الـ clock هذه هي اللي فايتها فهذه
الرئيسية اللي فايتها على الأولاني إذا بدي أنزل
falling edge .. falling edge .. falling edge .. falling edge ..
falling edge .. falling edge عشان أبدأ أحل في الـ A0
السؤال الأول إيش القيمة الابتدائية تاعت الـ A0
falling .. falling .. falling .. falling ..
falling .. falling .. falling .. falling طلعوا
عليها بالتفصيل هذه الـ A عشان تنحلمين الـ clock
تبعتها مش الأساسية، الـ clock تبعتها الجديدة اللي هي
هيها شايفين عشان يكسب منها ripple موصل الـ A node
موصل الـ A node كـ clock، إذا أصبحت الـ A node تمثل الـ
clock للـ flip flop التاني، وبالتالي عشان أحلها و
أعرف قيمها لازم أطلع الـ falling تاع الـ clock اللي
هو من الـ clock تبعتها اللي هو الـ a node، فالـ a node
تمثل الـ clock لهذه، وبالتالي نزلت من الـ falling زي
ما أنتم شايفينه الآن، إيش هسوي؟ همشي بقيمة 0
لغاية أول Falling، الآن وصلنا Falling، إيش هنسويه
في الـ A1؟ هنجري الـ T تاعتها تكلف اللي بيفلوب،
يلا نجرى الـ T، إيش الـ T؟ واحد، لأنه ثابت دائماً
على واحد، إيش يعني واحد؟ يعني toggle، يعني change،
يعني إعكس نفسك، طالما الـ T واحد، اتفضل إعكس نفسك،
يعني إذا أنت Zero، أصبح One، إذا أنت One، أصبح
Zero، تعالى نشوف إيش كان؟ كان Zero، لأن الإبتدائية
Zero، فهنعكسوا لإيش؟ لـ One، ونمشي لغاية إيش؟ الـ
Falling اللي وراه، في الـ Falling اللي وراه برضه
أصبحت one وطول عمرها هتظل one، إيش يعني؟ يعني أكس
نفسك، فالـ one برجع لإيش؟ Zero، وهكذا بتظل إيش؟
وهكذا بتظل الدائرة، الآن بحط خلفية بيضاء علشان ما
نخربطش، تمام؟ طيب، الآن بدنا نحل مين؟ بدنا نحل
إيه؟ اثنين، تمام؟ عشان أحل الـ A2، اطلعولي على الرسمة
كمان مرة، الآن رسمة الكتاب، خلّيني أورجيّكوا إياها، و
بدأ أنزل على A2، ايوه، طلعوا في A2، لحظة على A2، A2 و
الـ clock تبعتها، شوفوا هنا الـ clock تبعتها هي A1،
إيش معناها؟ معناها الـ A1 اللي انحسبت الأخيرة، اللي
جابلي شوية هاي، هتصير هي clock لمين؟ للـ flip flop
بالتالي، يعني دي هتسير، نزل كل الـ rise، الـ falling تاع
A1، عشان أحسب A2، زي ما هنشوف الآن، شايفين هاي الـ A1
صارت clock لمين؟ للـ flip flop، بالتالي فهنزل منه
falling وأحل، خليني أرجع للوحة، الآن الـ A1 صارت
clock للـ A3، فأنا بس أرجع برضه الأبيض من ورا، تمام؟
الآن هنيجي نزل falling من هنا، ليش falling من هاي؟
لأن الـ A1 زي ما شوفنا في الرسمة صارت input للـ
clock تاعت الـ flip flop A2، وعشان أحسب الـ A2 لازم
أشوف أين الـ falling تاعت الـ clock تبعتها، اللي هو
هاي وهاي وهاي وهاي، تمام؟ إذا الـ A2 هتبدأ بقيمة
بتدعي إيه؟ إيش قيمتها؟ الـ A2 هتبدأ بـ 0، وتظل
ماشية، أول falling، عند أول falling هنروح نشوف الـ T
هنلاقي الـ T ثابت في واحد، إيش يعني ثابت في واحد؟
يعني إعكس نفسك، هيمشي للـ falling اللي ورا، الـ T
ثابت في واحد، إعكس نفسك، إعكس نفسك، إعكس نفسك، وهكذا
لحد هنا، حلّينا إيش؟ اثنين اثنين
اثنين اثنين اثنين اثنين اثنين اثنين اثنين اثنين
اثنين اثنين اثنين اثنين
والـ Falling هنا، ليش أنا طلعت على الـ Falling
الأخيرة؟ لأن الـ A2 هي Clock لـ A3، عشان أحسب الـ
A3، بدي Falling لـ Clock تبعتها، فنزلت خطوط من الـ
Falling تبعتها، الآن هنبدأ بقيمة ابتدائية صفر، عند
الـ Falling، رجعنا نشوف الـ T، الـ T طول عمره ثابت
في واحد، أنا مثبت في واحد دائماً، عشان أعد برجع بأكس
نفسه، بمشي زي هيك، برجع بأكس نفسه، هيك احنا إيش سوينا؟
هيك احنا خلصنا رسمة الـ A node، والـ A1، والـ A2، و
الـ A3، رسمناهم على مدار الـ 16، ولا الـ 17، والـ
18 clock pulses، الآن بقى للأشيء الأهم، طب شو عدّ
العدادات؟ تعالوا أقول لكم شو عدّ، طلعوا معايا، ركزوا
الآن شوفوا إيش عدّ، أول ما بدينا إيش كانت الـ A؟
Zero Zero Zero Zero، مش عند الـ clock pulse الأولى
إيش كان العدد اللي طالع؟ رقم Zero، لما ضغطنا الـ
clock pulse الثانية، إيش صارت الـ A node؟ واحد، وهاي دي
Zero، وهاي دي Zero، وهاي دي Zero، يعني إيش عدّت في الـ
pulse الثانية؟ واحد، لما ضغطنا الـ pulse اللي وراها
إيش صار في الـ A node، والـ A1، والـ A2؟ دعوني أشوف الـ
A node رجعت Zero، الـ A1 رجعت One، الـ A2 ضايلة Zero،
الـ A3 ضايلة Zero، إيش هذا العدد؟ اثنين، إذا في الـ
pulse الثانية عدّت اثنين، لما ضغطنا الـ pulse الثالثة
هذا One، عادة one، هذا one، مش هي قيمته one، والـ a
اثنين قيمته zero، وهذا قيمته zero، إيش عدّ هذا؟ ثلاثة
الآن في الضغط الرابعة، zero zero one zero، هاي أربعة
في الضغطة الخامسة، هذا صار one، هذا zero، هذا one، هذا
zero، شايفين؟ خمسة، لسه بكمل، يعني واضح إن العداد عدد
0 1 2 3 4 5، مع خمس ضغطات، لسه ما قرّرتش نفسي عشان أوقف،
عارفين؟ لو لقيته الآن، عدد 0 1 2 3 4 5، خلاص مفيش ده
أكمل، بصير بقول بعدد 0 1 2 3 4 5، الآن خمسة، نفس
القلية، zero واحد واحد zero، إيش العدد اللي عدّوا هنا؟
ستة، إيش العدد اللي عدّوا هنا؟ سبعة، إيش العدد اللي عده
هنا؟ ثمانية، إيش العدد اللي عده هنا؟ شايفين؟ تسعة، إيش
العدد؟ هيو رجع zero، رجع واحد، رجع zero، رجع واحد، إيش
العدد هذا؟ عشرة، هيو قاعد بعد، إيش العدد هذا اللي عده؟
أحد عشر، إيش العدد هنا؟ zero، هذه zero، هذه واحد، هذه
واحد، اثنا عشر، إيش عدد هنا؟ واحد zero واحد واحد،
ثلاثة عشر، إيش عدد في الـ clock اللي وراها؟ 14، إيش عدّ
هنا؟ 15، إيش عدّ هنا؟ رجعت Zero؟ وهذه رجعت Zero، وهذه
رجعت Zero، وهذه رجعت Zero، إيش عدّ ده؟ صفر، إيش عدّ
هذا؟ شايفين إيش بيصير الآن؟ إذا بدأ يكرر نفسه، إذا
واضح إن العداد هذا بيعد من 0 إلى 15، وبكرر نفسه
طيب، السؤال الأهم، لو ما كانوش أربعة، لو كانوا بس
ثلاثة المشبوكين في بعض، لو كانوا بس ثلاثة، يعني مش
شابك الرابع اللي في الرسم، خليني أرجع أورّيكوا
الرسم، هاي لو أنا عامل واحد، اثنين، ثلاثة، ألغي
الرابع، مش حط الرابع، تعال شوف إيش بيصير، يعني هذا
الرابع مش موجود، تعال شو بيصير، هيعد صفر واحد اثنين
ثلاثة أربعة خمسة ستة سبعة، برجع صفر واحد اثنين
ثلاثة أربعة خمسة ستة سبعة صفر، شوفتوا كيف؟ إذا كان
عندي جداش ثلاثة flip flop، بيصير يعيد من جداش من
صفر لسبعة، بكرر نفسه، لو عندي اثنين flip flop بيصير
إيه؟ يجداد لثلاثة، يعيد نفسه 0123 0123، وهكذا، الآن طب
أنا أفترض هذا العداد بيعد لـ 31، يعني هو الآن بعيد
لـ 15، 0-15، دي عيد لـ 31، إيش هسوي؟ بنفس الطريقة، هضيف
flip flop جديد، تمام؟ وآخد الـ الـ الـ الـ A3
تصير الـ clock له، يعني زي ما هنعمله بين الأول و
الثاني، وبين الثاني والثالث، والثالث والرابع،
هنعمل بين الرابع والخامس، وبالطريقة هذه بيكون
صمّمنا عداد ripple counter، بيعد من 0 لـ 15، إن شاء
الله، اليوم هنوقف هنا، لغاية الـ ripple counters،
المرة القادمة إن شاء الله هنستكمل في درس الـ
synchronous، يعطيكم العافية