بسم الله الرحمن الرحيم اليوم إن شاء الله هنستكمل
الجزئية اللي باقية في chapter 5 وندخل في chapter
6 مباشرة. طبعا في chapter 5 المرة اللي فاتت اشتغلنا
كيف نرسم الـ sequential circuit تحت الـ design بالـ
JK flip-flop. ولما اشتغلنا على الـ JK في الـ
بلوب، إذا بتتذكروا، استخدمنا هذا الجدول اللي احنا
قلنا لما تكون الحالة السابقة zero والحالة اللاحقة
في الـ tape اللي احنا كنا بنكمل فيه zero، بدي أحط
تحت الـ JK اللي أنا استخدمتهم zero، x. وقلنا في الفيديو
اليوم الجدول اعتبره معطى، تمام؟ واشتغل عليه وخلص الـ
design بتاعك. فاحنا already اشتغلنا على هذا الجدول
في المحاضرة الأخيرة، لكن ما كناش عارفين هذا الجدول
كيف استنبطناه أو كيف طلع. الآن بس بدي أكمل جزئية
ها، هذا الجدول كيف بنشتقه وكيف بنطلعه، ونخلص و
نمشي إن شاء الله على chapter ستة. طبعا هذا الجدول
بنسميه زي ما شايفين excitation table. تمام؟ هذا الـ
excitation table. تعالوا نشوف كيف بنطلعه عشان نعرف
نطلعه. بدا أذكر في الأول الـ JK الأساسي، الـ JK
الأساسي. احنا عارفين إنه 00 no change، و 1 0 معناها
reset يعني
يطلع zero. و 0 1 معناها set يعني يطلع واحد. وهذا
معروف بالنسبة لنا من زمان. جاي كيف للـ flip-flop، و 1 1
يعني يطلع change. طيب تعالوا نشتغل الآن ونشوف كيف
بدنا نشتق الحالات الأربع. طبعا أنا عندي أربع حالات
هي الحالة الأولى، هي الحالة الثانية، هي الحالة
الثالثة، هنشتقهم، وهي الحالة الرابعة. الحالة الأولى
لما أنا تكون الحالة السابقة zero واللي بدها تيجي
zero، وسألناكم سؤال: إيش لازم نحط للـ JK حتى السابقة
اللي هي zero تصير في اللاحقة أو في الجديدة zero؟
طبعا البعض هيجاوبني ويقول لي: بدك تعمل no change. إذا
أنت عملت no change، الـ zero بيظل zero، بنكون حققنا
المطلوب. فالحل الأولاني إنه نختار مداخل لـ JK 0 و 0.
في الحالة هذه بأضمن إن الحالة السابقة اللي كانت 0
صارت 0. لكن ممكن واحد يجي يقول: في أنا عندي حل ثاني.
شو الحل الثاني؟ حل الـ reset. شو حل الـ reset؟ إنه
ما أحطش الـ JK 0 0، ها أحط الـ JK حل الـ reset اللي هو 0 1.
إيش فلسفته؟ بيقولوا: أنا لما أحط الـ J 0 وأحط الـ K
عفوا… عفوا إن هي… اه بالظبط، لما أحط الـ J zero
و أحط الـ K واحد، هيك هيك بده يطلع الجواب الجديد
zero، بغض النظر عن السابق. وبالتالي حتى لو كانت
السابقة zero وعملنا reset، هتطلع الجديدة zero. إذا
في الحالتين هدول أنا بأضمن إنه الـ zero صار zero.
سواء من طريقة الـ no change عشان يظل زي ما هو أو
سواء من طريقة الـ reset. إذا الخلاصة لهاي إنه بدنا
تكون الـ J 0، ولإن دول مختلفين تكون X. وهذا اللي انحط
هنا. ها دي أول واحدة. باختصار زي ما شفتوا، إذا كمان
مرة هذه معناها: علشان الـ zero السابق، الـ zero هو
zero في اللاحق على طول، لازم الـ J تكون zero و الـ X
don't care. إيش معناها تكون الـ X؟ إيش ما تكون، هيضل
في الحالة هذه zero. zero لأن لو كانت الـ X بـ zero
هتصير حالة no change، فهيضل zero zero. وإذا كانت الـ
K بواحد هتصير حالة reset، فالـ zero هيضل zero. فهي
باختصار. طيب تعالوا عشان أكد المعلومة نشتغل في
الحالة الثانية اللي هي هاي. يعني لو بدنا الـ zero
يصير
واحد، إيش قيمة الـ J و K؟ يبقى تكون. الشاطرين هيقولوا: في
عندنا حلين. الحل الأول اللي هو الـ change اللي هو
1 1. لأن إذا أنا حطيت الـ J بواحد و الـ K بـ
واحد بيصير الـ change. إيش يعني بيصير الـ change؟
يعني الـ zero بيقلب واحد. ممتاز! في حل ثاني، في ناس
بيقولوا: بدنا نعمل set. كيف بنعمل الـ set؟ يعني الـ J
واحد والـ K zero. برضه الحل الثاني بيضمن لي إنه هتصير
عملية set وبالتالي الـ zero اللي كان في السابق
بيصير واحد في حالة الـ set. إذا الـ conclusion بتاعة
الخيارين هدول شو؟ 1 X، اللي هي… هي أسهل جدا. تعالوا
نشوف الثالثة كيف اشتقيناها بنفس الفكرة. الثالثة أنا
الواحد القديم بدي يصير في الـ new state صفر. إيش
بدنا نعمل؟ الشاطرين هيقولوا: عشان الواحد يقلب صفر
عشان أحصل على الصفر ويصير الجديد صفر لازم حالة الـ
change. والناس هيقولوا: في حل ثاني اللي هو حل الـ
reset. لو أنا عملت في الـ JK reset، هذا الواحد هيقلب
zero برضه. إيش حل الـ reset؟ توّا خدنا حل الـ reset
اللي هو 0 و 1. على طول. هذا شو معناها؟ هذا الـ
conclusion تبعها X 1، اللي هي… هي. شوفوا كيف؟ سهلة
جدا. تعالوا لآخر حالة اللي هي الواحد القديم عشان
يصير الجديد برضه واحد. يعني الواحد يصير واحد. في
عندي حالتين: الـ no change و الـ… الـ no change
هيها 0 0 زي ما احنا عارفين في الـ JK. مش لأ، أنا حطيت
الـ J و الـ K 0 0، بيصير no change يعني الواحد بيضل
واحد من المحاضرة السابقة. صح ولا لأ؟ طيب الحالة
الثانية عشان يطلع الجواب أو يطلع الحالة الجديدة
واحد، هيقولوا لي: حالة الـ set اللي هي هاي. مش لو أنا
عملت set برضه بيطلع واحد. اللي هي وين الـ set؟ هي
عفوا، هاي اللي هي 1 0. هاي حالة set 1 0 بضمن يطلع
الجواب واحد. إيش الخلاصة بتاعة هاي؟ X لأنهم مختلفين
هنا و zero في… هايها X و zero. هي القصة باختصار، ما فيش
فيها إشي. أنا لما بدي مثلا أول خيار الـ zero يظل
zero في حالتين: حالة الـ no change وحالة الـ reset.
خلاص بسجلهم وبأخذ الصافي تبعهم وهكذا للأربع
احتمالات. طيب أنا علشان أؤكد المعلومة هذه وتفهموها
كويس، خلاص احنا في الأول اشتقينا الـ JK. خلاص هذا الـ
JK طول عمره خلاص هيظل ثابت مش هيتغير. ليش مش هيتغير؟
لأن الـ characteristic table تبعه ما تتغيرش، اللي هو
no change واللي هو reset والـ set والـ changing هذه عمرها
ما بتتغير. وبالتالي عمره جدول الـ excitation ما
بتتغير وبقدر أستخدمه أنا دائما وعلى طول مباشرة في
عملية الـ design زي ما شوفنا المرة اللي فاتت. طيب
للتأكيد على القصة هاي تعالوا أعطي مثال ثاني بسيط
عشان أكد القصة هاي عشان نوضحها 100%. بدا أفترض إنه
أنا ما عملت لكم flip-flop flip-flop اسمه JK. افترضوا إنه أنا
أَلِفت من عندي flip-flop flip-flop جديد اسمه XY وكيف بيشتغل
هذا إنه عند الـ 0 0 بيعمل reset، عند الـ 0 1 بيعمل
change. هيك أنا بفترضه من عندي، تمام؟ وعند الـ 1 0
بيعمل no change، وعند الـ 1 1 ده اعتبرها invalid يعني
أنا فرضت الآن flip-flop flip-flop من عندي بيشتغل هذه الـ
characteristic table تبعه إنه فيه change، فيه no
change عند الحالة هاي، فيه عنده reset، بس عنده
استثناء يعني invalid، يعني حالة الواحد واحد
ما بتيجيش. والآن انطلب مننا إن نجيب الـ excitation
table بتاع الـ XY. تعالوا نشوف كيف نجيب الـ excitation
table بتاع الـ X Y، اللي هم الأربع احتمالات. تمام؟ zero
zero، واحد zero، اللي هو zero، واحد، واحد واحد. نشوف
الأربع احتمالات هدول إيش الـ excitation table؟ طبعا
للـ X Y، إيش نحط هنا؟ تعالوا نشوف الأول حالة. طبعا
هنمسح الـ JK، تمام؟ هنمسح الـ JK نحط مكانها X و Y، و
هنا طبعا أنا بحب أوصف، أقول: هذه الـ qt السابقة، هذه
الـ qt plus one الجديدة، وهنا إيش الـ X والـ Y لازم
يكونوا عشان… يكونوا… إشي دقيقة. الآن نيجي زي أول زي
قبل شوية. الـ zero عشان يظل zero، إيش عندنا؟ في
عندنا حلين: حل الـ reset وحل الـ no change.
السؤال: حل الـ no change موجود هنا؟ اه موجود، هاي
الـ no change بيصير عند قيمة 1 0، بروح
بسجلها. هذا حل الـ no change عشان الـ zero يظل zero.
الحل الثاني اللي بيطلع zero احنا عارفينه دائما
reset. هل الـ flip-flop هذا فيه reset؟ اه، هاي في reset
موجودة هنا. and I mean and 0 0 يعني أنا حاطط برضه 0 0
بيصير reset. إذا الخلاصة هنقول هنا X 0 وحاجة أسجل هنا
X 0. طبعا الـ X اللي أنا بقصد فيها don't care بينما
الـ X اللي أنا بقصد فيها variable عشان ما نلا نخطئش
تماماً. خليها X بدائرة عشان ما نلا نخطئش. X بدائرة
variable من عندي، هيك سميته. طيب الآن لما الـ zero
بتعطيني واحد، إيش؟ كيف بتصير؟ الناس هيقولوا لي: حالتين
حالة الـ change، إذا موجودة سجلها، وحالة الـ set إذا
موجودة سجلها. نيجي في الحالة الأولى اللي هي حالة الـ
change. هل الـ flip-flop هذا بيعمل الـ change؟
اه بيعمل الـ change في المكان هذا. إذا كانت 0 1 بيصير
change، فبروح بسجل بقول له 0 1 بيصير change. الحالة
الثانية: حالة set. هل flip-flop هذا بيعمل setting أو
set أو بيطلع واحد؟ لو جيت أطلع ما بعملش set. هذا الـ
flip-flop ما بيعمل set. إذا خلاص ما فيش حل ثاني. إذا
خلصت وبأجي بسجل هنا zero و واحد. لو كان فيها set أو
بعمل set كان كتبته. أخدت الخلاصة تبعتهم لكن الـ flip-
flop هذا ما فيه set، ما بيعمل نتيجة تطلع واحد مباشرة
لكن بيعمل change فقط. إذا نزلت عشان يصير واحد ما فيش
غير حل وحيد في هذا الـ flip-flop: 0 1، ورحت أنا إيش
سجلته. طيب تعالوا نشوف الواحد عشان يطلع zero برضه
حالتين: الـ change و الـ reset. هل موجود الـ change؟ اه
موجود. هيها 0 1. هل موجود الـ reset في هذا الـ flip-flop؟
اه موجود الـ reset. هيها اللي هو 0 0. إذا هذه معناها
شو؟ 0 X على طول. بأجي بسجل هنا 0 X. آخر حالة عندي عشان
يكمل الـ excitation table. الواحد عشان يطلع واحد برضه
حالتين: حالة الـ no change إذا موجودة وحالة الـ set
إذا موجودة. هل حالة الـ no change موجودة؟ no change
اه هيها 1 0.
هي حالة الـ no change 1 0. طب هل حالة الـ set
موجودة؟ لأ، ما فيش set ما فيش… بيطلع واحد. إذا خلصت
على احتمال وحيد وبأجي بسجل هنا قبله 1 0. وبهيك أنا
بكون عملت الـ excitation table للـ flip-flop الجديد
اللي أنا فرضته من عندي اللي هو XY. وبالتالي لو بدي
أرسم الـ design بالـ flip-flop الجديد هذا ما عندي
مشكلة. المهم يكون عندي الـ excitation table موجود بس.
هي اللي كان باقي في الـ chapter 5 إنه كيف نشتق هذا
الـ excitation table اللي اعتمدنا عليه في خطوات الـ
design لما جينا نصمم بالـ JK. فهذا كان استكمال
للمحاضرة السابقة. إن شاء الله الآن هبدأ في الـ
chapter الجديد اللي هو chapter
الـR مش دايما بحطه في الـ صفر هذا بحطه مؤقتا في
الـ صفر عبارة عن مصفوفة للـ content و برجعه على واحد
طيب خليني أطلع على اللوح الآن عشان أوضح
الصورة أكثر برضه أنا وضحتها على الرسم طيب اطلعوا
معايا الآن زي ما تشايفين أنا عندي الـ Reset هذا الـ
Reset للأربع Flip-Flops اللي تحت بعض وكلهم بياخدهم من
سلك واحد يعني لو أنا حطيت السلك هذا تقع الـ Reset
بصفر، معناه الـ Flip-Flop أخد Signal بتقوله صفر، الـ
content وهذا في نفس اللحظة أخد Signal بتقوله صفر، الـ
content والأربع اللي تحت نفس الفكرة فهيصير الـ
content اللي جوا إيش كله صفر، Cleared، طب هو ليش
حطوا سلك الـ Reset؟ إيش العبرة في سلك الـ Reset هذا؟
عشان أفرض أن أنا عندي 8 bit، أنا مخزن معلومة من 8
bit أو من 16 bit وبدي أعمل clear للـ content هذا الـ
register بدي أصفّره، مش معقول بدي أمسك كل سلة حالها
وأصفّرها، كل سلة حالها وأصفّرها، بيصير زي هيك، فهذا
السلك المشترك للـ 16 flip flop بروح بامسكه بلمسة في
الصفر، على طول كل المعلومة اللي كانت جوا الـ
register بتروح وبتخزن مكانها صفر، يعني أنا عملت
clear للـ content لكن مش لازم أخليه دايما ثابت في
الـ صفر، أنا بس لحظيا بحطه في الصفر، عبال ما يصفّر الـ
content بعدين خلاص برجعه على واحد، ليش برجعه على
واحد؟ عشان يستقبل معلومة جديدة، عشان يكتب معلومة
جديدة من 16 بت أو 32 بت على حسب طول الـ register اللي
موجود عندي، فهي الهدف من وجود الـ clear، بيكون كله
مشبوكة مع بعض في سلك واحد من أجل أن نقدر نُصفّر
المعلومة، لو احتجنا لمبدأ تصفير المعلومة، خلاص بخلي
هدف الـ clear في واحد، هي باختصار، الآن برضه نفس
الفكرة للـ clock، لحظة أن الـ clock، ليش كله مشبوكة مع
بعض؟ لأنه ما بنفعش المعلومة تفوت ربع ربع ولا نص نص ولا
ثلث ثلث، يعني أنا بدي أخزّن المعلومة تماما بالتزامن،
ما بنفعش أدخل اثنين، بعدين أدخل ثلاثة، بعدين أدخل واحد،
ليش أعمل زي هيك؟ أنا بدي المعلومة كاملة، تعبر مرة
واحدة، على شان هذا، هناك نظامين لإدخال المعلومة، نظام
بيسموه Parallel، أن المعلومة بتعدي بـ Parallel، يعني
الـ 8 بتات اللي عندي بياخدوا المعلومة مرة واحدة،
Parallel، وحنشوف كمان شوية دخول المعلومة بشكل
Serial، تتابعي، كمان شوية، هنتكلم عن التتابعي، لكن
الواضح في الرسم اللي على اللوح، هي أن هذه بتشتغل
Parallel Input، يعني أول ما الـ rising ييجي، كل الـ Flip
فلوبات الأربع اللي تحت بعض دول، مالهم، هيحمّلوا قيم
الـ I0، قيم الـ I1، قيم الـ I2، قيم الـ I3،
هتتحمل كلها وتنحط جوا الـ Register، إذا باختصار،
هذا اللي مرسوم على اللوح اللي شفناه قبل شوية هو
عبارة عن 4-Bit Register، باختصار، هاي، كامل، تمام،
زي ما شفتوا، هاي، كامل، بتعد البيانات، مية
البيانات طبعا هنا؟ الـ I0، والـ I1، وI2، وI3،
يعني معلومة من أربع بتات، هتعدي مباشرة أول ما تيجي
النبضة، يعني الـ rising، الـ content I0، I1، وI2، و
I3، صار جوا A0، A1، A2، A3، فدخلت المعلومة
فهذه بنسميها دخول المعلومة بشكل موازٍ، للـ in، وقاعد بقرا
المعلومات برضه parallel out، لأن الأربع سلاكل طالعة
من الـ register، يعني لو أنا حطيت الـ A1 على اللمبة، و
A2 على اللمبة أو على led، أو A3 على led، هشوف
المعلومة مباشرة، فهذا بنسميه الـ register parallel in
parallel out، طيب هذا الـ register اللي إحنا شفناه
قبل شوية، الـ parallel in parallel out، في عندنا فيه
مشكلة كبيرة، إيش المشكلة الكبيرة الموجودة فيه؟ أنّه
للأسف الشديد، كل ما بتيجي clock، بيروح بيجرّي الـ
inputs وبيخزنهم جوا الـ flip flops، طب إحنا قلنا
المفروض أنّه الـ register بيحافظ على القيمة تبعته،
المفروض أنّه ما بتتغيّرش بشكل عشوائي، المفروض أني أنا
أكون أنا اللي .. اللي .. اللي بدي أغيّرها، ما تتغيّرش لما
أنا ناوي أغيّرها، طب شو نعمل؟ يعني أنا قاعد كل ما
تيجي clock، إيش فيه؟ على طول بتعدّي جوا، بتحصل
تحديث، لو كانوا الـ inputs متغيّرات، بالطبع هتتغيّر
المعلومة اللي جوا، طب أنا ما بدّيش هذا الكلام يصير،
طبعا ممكن واحد يقترح، وهذا اقتراح مش كتير كويس،
يقول، أنعطل الـ clock، إيش نعطي الـ clock؟ يعني أنا ما
أجيبله نبضة ثانية، مش إنتَ قُلت، جبنا نبضة، راحت
دخلت المعلومات جوا، فإيش بقول؟ بقول، ليش أجيب
النبضة الثانية؟ ما أخلي الـ clock مالها واقفة،
وما أجيبش النبضة الثانية عبال ما أنا أدخل المعلومة،
بنقول، هذا الحل سيء، ليش سيء؟ لأن الـ clock المفروض
مش معادية بس للدائرة هاي، أنتَ أي نظام موجود عندك،
المفروض أن الـ clock بتعدّي لكل نظام، كل الـ pulses،
هذه لكل نظام، ما بنفعش، عشان خاطر جزئية صغيرة في النظام،
أروح أعطّله كله، فهذه مشكلة، زي إحنا عندنا الـ
processor تبعنا، تبع الـ computer، علشان شغال الـ
processor، اللي فيه ألف دائرة، ودائرة جوا على الـ
pulses، الـ frequencies هذه، فما بنفعش، عشان خاطر جزء صغير
صغير أو مكان معيّن، أقوله، بدي أعطّل كل شغل الـ
processor، وهذا خطأ، ما بقدر، وبالتالي هذا حل مش سليم،
طب السؤال، كيف أنا أقدر ما أكتبش معلومة جوا إلا
بطريقة أنا ناويها، في إحنا حاليا، الحل الأول
والسهل، تعالوا بس نكبر شوية عشان نشوف إيش بنسوّي،
نشوفها
على اللوح، تعالوا
نطلع على اللوح الآن، الحل الأول، إيش رأيكم لو إحنا
عملنا AND gate، AND gate، تمام، والـ clock ما لعبناش
فيها، هاي الـ clock زي ما هي شغّالة، قاعدة بتيجي بتردد،
وراحنا سحبنا هنا switch وسمّيناه load، هيك المشكلة
انحلت، ليش؟ لأن بمجرّد ما أنا أحط قيمة الـ load بصفر،
إيش هيصير؟ الـ AND gate هذه مالها؟ هتكون صفر في أي
حاجة، بتطلع صفر، فبتحجب الـ clock عن الـ flip flops
الأربع، ما بيصيرش تغيير، لإيش؟ لأني صرت أضرب الـ clock
بإيش؟ بصفر، طبعا الـ clock قاعدة بتتغيّر، ماحدش بيجيها
ماحدش لاعب فيها، لكن أنا ممرّر الـ clock على الـ
register من خلال AND gate، وضارب الـ AND gate في الـ
switch، الآن أنا حرّ، حابب أحمّل معلومة، بقوله، اتفضل يا
load واحد، لما بيصير واحد، الـ pulse تبع الـ clock مالها؟
بتعدّي وبتوصل لـ flip flop وبتعدّي المعلومة، حابب
أعطّل، وما بدّيش أنا أي معلومة تكتب جوا، بروح بحط الـ
load بـ zero، طول ما الـ load اللي داخل على الـ AND ده
بـ zero، على الفاضي، لاحظوا، أنا بحط الـ load بـ zero،
ما عطّلتش الـ clock، أنا الـ clock شغّالة باستمرار، لكن
حجبتها عن الـ system الصغير تبعه، كيف حجبتها؟ لما
حطيتها مع صفر، فالـ صفر في أي حاجة، بتطلع النتيجة
صفر، فعمراً الـ clock هتظهر في الـ C هنا، مش هتظهر، لأنّي
ضربتها بـ صفر، وفي نفس الوقت ما لعبتش فيها، فضلت شغّالة
للنظام بشكل عادي، ما فيش مشاكل، ومن خلال الـ load،
أتحكم أنها تعدّي ولا ما تعدّيش، فهذا صار الموضوع
عندي أنا من خلال switch الـ load، إذا أتحكم بالموضوع،
بموضوع load، هذا الحل الأولاني، لكن الكتاب هوّ حل، حل
ثاني، تعالوا نشوف الحل الثاني، خليني أمسح الحل
الأولاني، وعلشان إحنا نفهم الحل الثاني، أنا بدي
أسألكم سؤال هنا على جانب، وخليني أرسم رسمة صغيرة،
أقول، هي الـ D اللي بتكلّم عنه، وهي الـ clock اللي جاية،
تمام؟ وهي الـ A اللي طالعة، طبعا إحنا فاهمين أنّه لو
أنا أخدت من I0 على الـ D، الكل هيقول لي، أول ما
تيجي الـ clock pulse، الـ I0 هتعدّي جوا، هذا الكلام
متّفقين عليه، طيب الآن لو أنا ما عملتش هذا الـ silicon،
ما وصلتش هذا لهنا، راحت، افترضوا أخذته من نفسه، افترضوا
عملت التوصيلة الثانية غير التوصيلة الأولى، شطّرت
التوصيلة هاي وشبكتها من نفسه، وجات الـ clock pulse،
إيش هيصير؟ الشطار هيقولوا لي، مش هيتغيّر الـ content،
ليش؟ لأنّه إذا كان هنا صفر، هيفوت فوقها صفر، فالـ
صفر هيفوت فوق الصفر، فمش هتتغيّر، لأن الـ D flip flop
flip flop، إحنا عارفين من المرة اللي فاتت، صفر على المدخل
بيطلع صفر، واحد على المدخل بيطلع واحد، مش هيك
عارفين؟ طب لو كانت هذه واحد، نفس الفكرة، هيلف الواحد
واحد، هيدخل على الـ D، فهينكتب واحد فوق الواحد، إيش
يعني؟ نكتب واحد فوق الواحد، أو واحد فوق الواحد؟
معناه، ما هيتغيّر الـ content، إذا كان في الأساس واحد،
هيدّال طول عمره واحد، إذا كان في الأساس صفر، طول عمره
هيدّال صفر، هذا إذا إنتَ عامل إيش؟ الـ feedback، طيب الـ
answer، إحنا فينا سلكين لنفس الـ D flip flop، سلك جاي
من برا، لما بدي أحمّل معلومة، أو بدي أحمّل قيمة bit، و
سلك جاي من نفسه، علشان أحافظ على المعلومة، طب السؤال،
هل بنفع أشبك السلكين على بعض، وأحطهم في الـ D؟ ممنوع،
هذا بيعمل short circuit، غلط كهربا، بيخرب الدنيا، كيف
سلكين مصدرين، بحطهم في بعض؟ ممنوع، على الجثة هاي، طب
شو الحل؟ ما أنا بدّي أحيانا أحافظ على القيمة، وبدّي
أحيانا أجيب من برا، صح ولا لأ؟ شو الحل؟ الحل أخذناه
قبل هيك، Multiplexer، تتذكروا Multiplexer، الـ MUX اللي
بدخل عليه سلكين، وفيه له selection controller،
وبيطلع الـ output ثاني، مش إحنا قلنا الـ MUX لما
أخذناه زمان، أنّه الـ MUX من خلال الـ control، القيمة
اللي هنا، إذا أنا كتبتها صفر، بيوصل السلك الأول في
المخرج، وإذا أنا كتبتها واحد، بيوصل السلك الثاني في
المخرج، صح ولا لأ؟ مش قلنا قبل هيك، أنّه الـ MUX زي
منظم، لما بيجي سلكين، بختار بينهم، مش هيك بيسوّي الـ
MUX؟ الـ MUX إيش بيسوّي؟ الـ MUX بيختار أحد مداخله،
أحدهما، عشان يطلع المخرج، هي شغل الـ MUX اللي أخذناه
زمان، فأنسب حل في المنطقة هاي، أن هذا الـ MUX أحطه
هنا، علشان أختار على كيفي، وجهة ما بدّي أجرّي من برا،
بقوله، يلا يا MUX، اتفضل، عّدي المعلومة من برا، عشان
تنكتب جوا الـ flip flop، ووجهة ما بدّي أحافظ على القيمة
تبعته، بقول لـ MUX، ما تختارش من برا، اختار من نفسك،
عشان أح
الساعة الفاضي طول ما أنتم حاطين الـ load في 0 انتهى
ليش؟ لأن عملية الـ load في 0 بتخلي الـ flip flop
يقرأ من نفسه فبيقرأ نفس قيمة اللي جواته فبيعملها
اللي بيحافظ عليها وما بتتغيرش، هذا باختصار طبعاً
رسمة الكتاب ما رسمش الـ Max، الكتاب رسم الـ Content
بتاع الـ Max اللي أخدناه زمان، يعني الكتاب عشان
نفهم، إذا بتذكروا الـ Max هذا، إحنا رسمنا زمان
أخذناها في شابتر الأربعة، شو هي اللي رسمها عبارة عن
Or كبيرة وAnd وAnd مش هيك، وعبارة عن الـ I not
فايتة من هنا، والـ I one فايتة من هنا، وفي Inverter
علموا، أنا مش هأدخل في معنى كتير الآن فيها، بس الفكرة أنه في
الـ Max، والرسمة أخذناها زمان في شهر 4، ممكن ترجعوا
وتشوفوها، الكتاب بعد إيش سوى في الحل، بدل ما يحط
صندوق مصمت سماه Max، الكتاب مش عمل شاله وفرطه، و
رسم الـ Content تبعه، أنتم أحرار، حابين ترسموا Max، و
تخلوه صندوق، بيصير، ما عندي مشكلة، حابين تفرطوه، و
تحطوا الرسمة الداخلية اللي إحنا اتعلمناها زمان في
Chapter 4، وممكن ترجعوا لها وتشوفوها في الـ Chapter
برضه بيصير، بس أنا فاهم، رسمة الكتاب، إذا رسمة
الكتاب اللي هنا اللي أنا مش هشرحها، خلاص، أنا هيك
اتبعت شرحت وخلصت، رسمة الكتاب اللي هنا هي شايفينها
هذه رسمة الكتاب، هذا اللي هنا هو الـ Max، خليني أخربش
اللوح عشان تشوفوا وين الـ Max، هذا الصندوق هذا
الصندوق هذا، الصندوق هو الـ Max اللي اتكلمنا عنه
اللي هو بياخد من برة، وبياخد الصندوق من هنا، ويله الـ
Selection اللي هو الـ load، فهذا فعلياً هو الـ
MultipleXer، لكن الكتاب مش مسوي الأربع Multiplexers
اللي تحت بعض، شايلهم، وحاطط التوصيف الداخلي تاع الـ
Max اللي أخدناه زمان، وخلصناه Chapter أربعة، فأنتم
أحرار، حبيتوا تشغله زي الكتاب بيصير، حبيتوا خلاص زي
ما أنا عملت، بطريقة سهلة، نحط Box ونسميه Max، أربع
Max تحت بعض، بيصير، ما في عندي أي مشكلة، بس عشان
تكونوا فاهمين إيش الرسمة اللي إحنا عملناها هنا، طيب
خلونا الآن نتابع الدرس، طبعاً الـ shift register الآن
طبعاً لاحظوا أنه اللي كنت أتكلم عنه قبل شوية، ماله
Register، بدخل المعلومات Parallel، ما ننساش الجملة هاي
Parallel، إيش يعني Parallel؟ يعني الأربع بتات
بيفوتوا في نفس اللحظة، أول ما تيجي البلصة، أول ما
تيجي الـ clock، الـ I node وI1 وI2 وI3 كلهم
بيفوتوا في نفس اللحظة، فهذه بنسميها دخول المعلومات
Parallel، معنى كلامي أنه ممكن تدخل المعلومات بطريقة
تانية، آه، ممكن تدخل بطريقة تانية، اللي هي الـ Serial
واللي هنشوفه الآن إن شاء الله، تعالوا نشوف الشكل
الثاني للـ register، إيه زي ما تشوفينه، هيه تشوفوا
إيش عمل الآن
إيش عمل، دعني
أشوف
ممكن نكبرها كمان عشان على اللوح نشوف كويس، طيب،
الآن رسمة أربعة بت، زي ما تشوفين على اللوح، أربعة
flip-flops، لكن اليوم وصلهم بطريقة شوية مختلفة، يعني
ما حطهم إزاي ما شفنا قبل شوية تحت بعض، وما خلاش كل
واحدة إلها input منفصل، لأ، لاحظوا، مخرج هذا input
لهذا، مخرج هذا input لهذا، مخرج هذا input لهذا، مخرج
هذا input لهذا، شايفين كيف؟ ولهم مدخل واحد من هنا
تدخل المعلومات، طيب، تعالوا نحاول نستوعب رسمتنا شوية
على فرض أنه أنا هأدخل معلومات 1 1 0 1 0 من عندي
فرض، فرضية، لأن الـ Pulse الأولى لما أضغط ضغطة، هيفوت
الواحد، ضغطة تانية هيفوت الواحد، ضغطة تانية وهكذا
يعني أنا عامل تسلسل على النبضات، كل نبضة إيش اللي
بده يفوت، تعالوا على فرض إنه كانت القيمة الابتدائية
اللي جوا أصفار مثلاً، تعالوا نشوف إيش بده يصير بعد
كل نبضة، بعد النبضة الأولى، لما أضغط النبضة الأولى، كل
واحد في هدول هيقرأ إيش كان على بابه عشان يسجل، صح
ولا لأ؟ يعني مثلاً هذا الـ flip flop اللي هنا، إيش كان
على الباب عنده؟ كان Zero، إذا هيروح ينشط بالـ Zero
إيش يكتب وين؟ هنا، شفتوا كيف؟ طب هذا الـ flip flop
أنا بأحكي في نفس اللحظة اللي انضغطت، هذا الـ flip
flop، إيش كان على مدخل الـ D؟ مش كان Zero؟ إيش هيقرأ؟
الـ Zero، إذا هيقرأ الـ Zero وينحط هنا، هذا الـ flip
flop، إيش كان على بابه؟ برضه كان Zero، إذا هذا الـ
Zero هينجَرّأ في نفس اللحظة، مش هيك؟ إن الـ flip flop
إن الـ Pulse بنجَرّأ وبيسجل جوا، فبيسجل إيش؟ إنه Zero
طب هذا الـ flip flop الأولاني، إيش كان على بابه واقف
واحد، عند الضغط، إيش هيصير مكتوب هنا؟ واحد، والواحدة
ده خلاص هيفوت جوا، إذا أنا بعد Pulse، إيش اللي صار؟ كل
flip بـ flip، إيش كان على بابه، جَرّاه وخزنه، جَرّاه وخزنه
جَرّاه وخزنه، فكانت النتيجة إنه الواحد اللي كان واقف
قبل شوية هنا، فات، عدى، وهذا جَرّى، والسفر، وهذا جَرّى
السفر، وهذا جَرّى السفر، هذه بعد بلصة واحدة، طيب
السؤال، لو ضغطنا البلصة التانية، وطبعاً هنا بقول في
البلصة التالية، بدي أكون واقف على الباب واحدة، لأن
أنا فرضت، إيش اللي بدي أكون واقف من عندي، فرضتهم في
البلصة التالية، إيش هيصير؟ هذا هيجرى ويكتب، هذا هيجرى
ويكتب، هذا هيكتب، مش كل واحد هيعمل هيك في نفس اللحظة
لأن كلهم مشبوكين على نفس الـ rising، كلهم مشبوكين
على نفس البلصة، فكل واحد هيشتغل بشكل متوازي، الآن
هذا إيش هيعمل؟ هذا هيجرى السفر ويسجلوا جوا، إذا
السفر اللي هنا هيجي وين؟ هنا، هذا إيش هيعمل؟ هيجرى
السفر وسجله هنا، هذا إيش هيعمل؟ هيقرا الواحد اللي على
بابه وسجله هنا، هذا إيش هيسوي؟ هيقرا الواحد اللي هنا
وسجله هنا، إذا بعد اتنين Clock Pulses، إيش بتلاحظوا
صار؟ إن المعلومتين اللي كانوا هنا، يدوب لسه وصله هنا
أنتم تذكروا، كان الـ flip flop أول ما بديته أصفار
فرضت إن الـ Content أصفار، طيب تعالوا نجرب الـ Pulse
التالتة، إيش بده يصير له؟ قدرت البلسة التالتة، نفس
الفكرة، هذا إيش على بابه؟ صفر، هيقرا ويكتب هنا، هذا
على بابه واحد، هيقرا ويكتب هنا، هذا على بابه واحد
هيقرا ويكتب فوق اللي كان، هذا على بابه إيش الآن؟
صفر، هيقرا ويكتب هنا، هاي بعد تلاتة Clock Pulses
لحظة هنا، إيش بنسوي؟ المعلومات قاعدة بتفوت Serially
شايفين؟ الـ inputs اللي كانوا قاعدين بيفوتوا
Serially، مش Parallel، زي أول مرة، واحدة بيفوتوا كلهم
Serially الآن، طب بعد البلصة الرابعة إيش بيصير؟
هتقولوا نفس الفكرة، هتقولوا هذا هيقرا الواحد اللي هنا
يكتبه جواته، وهذا هيقرا الواحد اللي هنا يكتبه جواته
وهذا هيقرا الـ Zero اللي هنا يكتبه جواته، وهذا هيقرا
الواحد اللي هنا يكتبه جواته، خليني أوقف دقيقة يعني،
الآن لاحظوا الشيء، بقى أنا بعد أربع Clock Pulses
المعلومة اللي كانت واقفة هنا، اللي خلصت، اللي هي
هذه، المعلومة هذه، ما لها، صارت أين؟ صارت جوا الـ
Register، يعني المعلومة تبعت اللي بدي أخزنها كيف
فاتت جوا الـ Register؟ كيف اتخزنت؟ اتخزنت Serially
اتخزنت تتابعياً، يعني فاتت واحدة واحدة، اللي قبل شوية
كان Parallel، كان كلها المعلومة بتدخل مرة واحدة، هذا
النوع لأ، هذا النوع البيانات بتفوت Serially، يعني كل
بلصة واحدة بيفوت بت واحد، كل بلصة واحدة بتفوت
بت واحد، وبالتالي لو عددهم أربعة، وعندي معلومة بدي
أفوتها، بدي أربع Clock Pulses، عبال ما المعلومة
تتخزن جوا، طب افترض هدول ما كانوا عددهم أربعة، افترض
هدول عددهم ثمانية، وعندي معلومة جاية برة من ثمانية
كام Clock Pulses بدنا؟ بدنا ثمانية Clock Pulses
عبال ما المعلومات اللي برة تكون عبّت جوا الـ Register
شفتوا كيف؟ فعلى حسب عدد البتات، بنعرف بعد كام نبضة
المعلومة بتفوت، طب حد ممكن يسألني يقولي طب إيش
هيصير في النبضة الخامسة؟ اللي هيصير ببساطة، خلاص، أول
معلومة دخلت زمان، هتروح في خبر كان، هيكتب فوقها، لأن
كل مرة المعلومات بتتجدد، هذا ما بيخزنش إلا أربعة بت
أي بت زيادة عن الرابع بيموت، بيروح، ما بلاقيش حد يخزنه
تعالوا أوريكم إيش بيساوي في النبضة الخامسة، في
النبضة الخامسة، هذا سيقرأ المدخل، صح؟ واحد، بيشيله، و
بيكتب هنا، خلاص كتبه فوق، هذا، هذا اللي كان هنا
المعلومة اللي كانت هنا راحت، سواء Zero أو واحد، راحت
انكتب فوقها معلومة اللي جابته، لأن في إزاحة، هذا
سيقرأ الـ Zero هيجي هنا، هذا هيقرا الواحد هيجي هنا
هذا هيقرا الـ Zero هيجي هنا، إذا المعلومة الجديدة
اللي صارت جوا، Zero One Zero One، طب واحد هيقول إن
في كان واحد في الأول داخل، وين راح؟ خلاص راح، لأن
أنا ضغط ضغط خامسة، إيش أنا ضغط خامسة؟ يعني أنا
استقبلت من الأول بت جديد، وبكون على حساب الأخير
الأخير خلاص بيروح، مش إحنا أول ما بدينا السؤال كان
جوا فيه أربع أصفار، بعد أربع ضغطات، وين راحوا الأربع
أصفار؟ راحوا خلاص، لإيش؟ لأن هذا الـ shift register
بيعمل Shifting باتجاه اليمين، زي ما تشوفينه، فزي ما
الـ input بيفوت Serially، الـ output بيطلع برضه
Serially، الآن نفس الفكرة لو ضغطت ضغطة سادسة، تمام؟
هيصير هذا الواحد راح، أجى مكانه صفر، هذا الواحد
انتج الـ hand، هذا الصفر انتج الـ hand، وهذا الواحد
انتج الـ hand وهكذا، شايفين؟ وجد ما إحنا بنضغط، و
بنعطي Pulses، بتصير معلومات جديدة بتعدي، فالمعلومات
زي ما شايفين، بتعدي Serially، وفي نفس الوقت
بنعملها إزاحة باتجاه اليمين، طيب سؤال، المعلومات
بتطلع Serial، إيش معناها؟ معناها لو أجى واحد سألني
قال يا جماعة هذا الـ .. الـ .. الـ Register، شو الـ
Content اللي جواته؟ مش هأقدر أعرف إلا إذا شبكته في
الـ LED هنا، تمام؟ وضغطت أربع ضغطات، ليش؟ عشان أفضيه،
لأنه لما بضغط ضغطة، يعني افترضه ضغطت لأربع ضغطات،
صفر، صفر، بعدها ضغط لواحد، بعدها طلع صفر، بعدها
طلع واحد، يبقى، هقول له، هكون سجلت، هقول له، إذا
المعلومات اللي كانت جواتك 01 01، ليش؟ لأنه إحنا
عارفين المبدأ، كل بلصة بطلع واحد من الـ Content من
الأخر، فلو أنا جا في بالي في لحظة ما، بدي أعرف شو
المعلومة اللي من أربع قيم بتاعت اللي كانت جوا 607 00:43:38
البلصة الثانية.. نفس الفكرة.. هتقول الواحد هيجي
هنا.. والواحد هيجي هنا.. والواحد هيجي هنا.. و
السفر هذا هيكون فات من الأول.. هذا بعد البلصة
الثانية.. بعد البلصة الثالثة.. نفس الفكرة..
الواحد هيجي هنا.. والواحد هيجي هنا.. والسفر
هيجي هنا.. والواحد الأخير هيرجع لنفسه.. لأن
الـcircular بطل يجيب من برا.. بعد الضغطة الرابعة
إيش هيصير؟ هذا هيجي هنا، هذا هنا، هذا هنا، و
الواحدة ده هيجي هنا، بعد الضغطة الرابعة إيش
بتلاحظوا بعد الرابعة؟ بتلاحظوا إنه كل أربع بلصات
بيرجع زي ما كان، بلف، شفتوا كيف؟ كل أربع بلصات
بلف، ليش كل أربع بلصات؟ لأن عددهم أربعة. لو كانوا
خمسة وفيهم قيم دورية وعملت اللف هاي كل جولة
بيرجعوا زي بعض كل خمس مرات، بلصات بيرجع زي ما كانت
المعلومة. لو كان عددهم عشرة وفيهم معلومة وعملت الـ
circular هذا، الـ feedback اللي عملته كل جولة بترجع
المعلومة مكانها كل عشر ضغطات، عشر clock pulses
بترجع مكانها زي ما كانت، بعدين ما بتنساها المعلومة
ليش؟ لأنها بتساعدني في الحل، كيف بتساعدني في الحل؟
أرجع لسؤالي الآن. على فرض زي ما أنا فرضت، أنا حاطط
المعلومة هاي اللي هي 1011، وجينا نسأل سؤال بعد 100
clock pulse، إيش بده يصير المحتوى بتاع هذا الـ shift
register؟ طبعا الطالب التعبان بده يقعد يعدهم 100
مرة بتاعت بعض. الطالب الشاطر بيقول كل أربع مرات
بترجع زي ما كانت. المية كام أربعة فيها؟ 25 في 4
يعني الشاطرين هيقولوا بعد مائة مرة هترجع زي ما
كانت، لأنه أربعة وأربعة وأربعة وأربعة وأربعة، كل
مرة بترجع زي ما كانت. فالمئة بتتقسم على أربعة
وبالتالي هتقولوا لي مالها زي ما كانت، هترجع. طيب لو
قلت لكم بعد 22 مرة كيف هتكون؟ اه، الشاطرين هيقولوا
أول 20 مرة زي بعض. أنا طالب 22، فهتقول لي أول 20 عدّى
وبرجع زي ما كان، لأن خمس أربعات بتزيد عنها مرتين
يعني كأنه السؤال بيقول لي بعد اتنين زيادة على العشرين
بتطلع، ف أنا هعمل مرة اتنين وهقوله هاي الجواب اللي
هيكون جوا. يعني أنا دايما بجيب باقي القسمة على أربعة
يعني أنا مش هشتغل السؤال، دايما هقول لو طلب مني إن شاء
الله مني مليون، طالما ما بأربعة بس اللي محتاج أعمله
يا مرة يا اتنين يا تلاتة، وخلاص، لأن الرابع بإيش؟
بإيده نفسها. زي ما أنا ممكن أقول مثلا بعد 13 ضغطة إيش
بيصير؟ الـ 13 ضغطة، أربعة وأربعة وأربعة وواحدة
يعني بعد واحدة، يعني الثلاثة زيها زي الواحدة، فبعمل
الضغطة مرة وبقوله والله الـ content تبعي بدي يكون ها الجواب
الجديد بعد مرة. فلا تنسوش المعلومة هذه. طبعا غلط شائع
كان في الامتحانات إنه أكون أنا راسم خامسة
راسم دي flip flop خامسة، تمام؟ وحاطط معلومة وأجي
أسأل الطالب بعد ستة وعشرين مرة إيش بيطلع الجواب
مشكلته بيروح إيش بيسوي؟ بيقسم لي على أربعة، غلط! يقسم
على أربعة، لأن طالما خمسة لازم يجيب باقي القسمة على
خمسة. فانتبهوا للقصة هاي. صح، أنا درست كتير على أربعة بس
لأن الرسمة كانت أربعة flip-flop، لكن لو كان عندي
flip-flop خمسة، خلاص، بجيب باقي القسمة على خمسة، يعني
لما أنا أجي أسأل السؤال هذا اللي فيه خمسة، بعد 26
مرة، اه، كام خمسة فيهم؟ خمسة وخمسة وخمسة وخمسة، يعني
مرة، كأني بدي أعملها مرة واحدة. فأنا لما بكون
معايا خمسة فأعملها مرة واحدة، لأنه 26 مرة. طيب لو
طلبنا لو كانوا أربعة بس، أربعة، وقولنا بعد 26 ضغطة، نفس
الفكرة، أربعة وأربعة وأربعة وأربعة وأربعة، 24، يعني باقي اتنين
وبطل الجواب، وكده. على حسب السؤال إذا بدأنا ناخد بالنا
كام flip flops موجودين، عشان أعرف كل كم جولة بتكرر
كام ضغطة اللي هو طلبهم، عشان أجيب المعلومة، بعد هيك
وأصير أجيب بقى باقي القسمة على أربعة، على خمسة، على حسب عدد الـ
flip flops. طيب، خلونا نتابع
الآن، الـ flip flops اللي أخذناهم قبل شوية، الأربع اللي
كانوا قبل شوية هيك، هدول عبّر عنهم الآن بسندوق هذا
اسمه..السندوق هذا اسمه shift register. يعني لما
أنا أجي أقول shift register، إيه؟ إيش فيه جواته؟ هذا
جواته الرسمة اللي قبل شوية كنا شغالين عليها. وعندي
shift register، بمعنى برضه الـ box هذا فيه
جواته إيش؟ أربعة flip flops. طبعا أي shift register
من كلمة shift، يعني بيعمل shifting، معناه زي ما
بنكون عارفين، serial in serial out. بس السؤال هذا، الـ
shift register كام bit؟ لازم يحدد لي، عشان أعرف، طبعا
في السؤال محدد، على أساس إنه أربعة bit، مش مشكلة، على
أساس إنه الـ shift register أربعة bit. طب السؤال
الآن، إيش عمل؟ الـ shift register الأولاني عمل له
circular زي ما شايفينه، والـ shift register الثاني
المكرر خلاه إنه output، وفيه لهم clock واحدة
للاتنين، وطبعا هذا عشان إيش؟ نوقف الـ clock لو
بدنا، أو ما نوقفش الـ clock. يعني نوقف الـ shift ولا
ما نوقفش الـ shift، هذا عادي، اتكلمنا عنه قبل شوية
الآن، على فرض إنه أنا بدي أجيب الـ clock باستمرار
سؤالي، لو فرضنا إنه في معلومة هنا، هيك
فرضنا إنه مثلا كانت المعلومة، أنا هيك فرضت، أنا من
عندي فرضية زي هيك، بعد أربع clock pulses إيش بده
يصير؟ طبعا الشاطرين هيقولوا، بعد أربع clock pulses
الشاطرين هيقولوا هذا، لأنه لافف، هيرجع زي ما كان
بينما المعلومة اللي هنا، هتنكتب فوق هذا، يعني مش
إحنا كنا لتو أخذناها أنا قبل شوية، لما كان طالع برا
لو عامل 1101، لو قلت لكم ده، تيجي هذه المعلومات وكان
جواته مثلا 1001، مش قلنا بعد أربع ضغطات هذا كله
بيطلع، هذا كله بيفوت مكانه، صح ولا لأ؟ فلاحظوا اللي
بيطلع من هنا، صح؟ بيلف منه نسخة، لكن بعدها منه نسخة
هنا. وبالتالي بعد أربع clock pulses، إيش هيصير في
الرسمة هذه؟ القيمة هذه هتندقل فوق، هاي تنكتب، وهتكون
رجعت زي ما هي. ليش؟ لأن هذا بيستقبل المعلومات
serially زي هاي، وهو نفسه أنا عامله واصلة feedback
فهو نفسه برجع زي ما كان، لكن بيكون غذّى الـ register
التالي. إذا بعد أربع clock pulses باختصار إيش
هيصير؟ هينتقل الـ content، المعلومة أ، هتنحط في الـ
register اللي بعده. يعني هذه الرسمة اللي أنا رسمتها على
اللوح، عبارة عن إيش؟ عبارة عن نقل معلومة من
register لآخر serially، يعني أنا نسخت معلومة من
الـ register الأول، نسختها جوا الـ register الثاني
سيريالي، هاي باختصار. طبعا لو بدي أنسخ parallel مش
صعبة، هاي بجيب الـ register الأول A، واللي طالع منه
أربع أسلاك، وبجيب الـ parallel، اشتغلنا أول المحاضرة
في الـ register B، واللي داخل عليه الـ I0 و I1
بوصلهم هنا، مظبوط؟ وهاي الـ clock، أول ما تيجي الـ
clock بيكون أخد المعلومات parallel، كتبهم جوا، فبيكون
نقل المعلومات من A to B parallel، هذا لو أنا عامل
زي هيك، بس هو الرسمة مش هيك، هو الرسمة جابت بنقل
المعلومات من A to B serially، one bit at a time
وبالتالي بعد أربع clock pulses، هتلاقي المعلومة
اللي هنا عدّت بالكامل هنا، ورجعت لفت مكانها. طيب، اليوم
أنا إن شاء الله هوقف هنا، وهنكمل إن شاء الله
المرة القادمة في موضوع الـShift Registers، ونشوف
إيش باقية التفاصيل، وكيف هنعمل عملية الـ process
إن شاء الله. يعطيكم الصحة والعافية وبركات الله