الرئيسيةبحث

عدادات متزامنة

العدادات المتواقتة synchronous counters ـ العدادات ( countees) يتكون العداد من صف من القلابات التي تنتقل من وضعية إلى أخرى استجابة لما يسمى بالحادثة ( Event ) . و هذه الحادثة يمكن أن تكون عبارة عن دور واحد للساعة أو أكثر و يستخدم العداد لإحصاء عدد هذه الحوادث . يسمى عدد الوضعيات التي يمر بها العداد قبل أن يعود إلى الوضعية الأولى بـ(MoDulo) العداد باختصار ( MOD) و يحتوي العداد المكون من ( n ) قلاب على MoDulo مساو إلى 2n كحد أعظمي و لكن بالطبع ليس ضروريا أن يمر العداد خلال جميع الوضعيات الممكنة و في هذه الحالة يكون MoDulo العداد أقل من 2n .

فهرس

العداد الحلقي ( The ring counter ) :

يظهر الشكل ( 1 ) عدادا حلقيا ( Mod – 4 ) و هذا العداد كما يمكن ملاحظته عبارة عن مسجل إزاحة مكون من 4 قلابات من نوع ( D) موصولة بطريقة تسمح بالإزاحة إلى اليمين . يتم في البداية رفع مستوى مدخل البدء ( INITIATE ) إلى واحد منطقي لبرهة قصيرة و ذلك لنقل القلاب ( FFO) إلى الوضعية ( SET) و بقية القلابات إلى الوضعية ( RESET) . بعدها يتم تطبيق نبضات الساعة و يبدأ العداد بإحصائها . تسبب كل حافة قادحة انتقال الوضعية SET من قلاب إلى آخر . و بعد أربعة دورات متلاحقة يعود العداد إلى الوضعية الأوليّة .

إن قراءة العداد المسجل في العداد الحلقي أمر بسيط جدا فكل ما نحتاجه هو تحديد أي قلاب موجود في الوضعية SET . لهذا الغرض نوصل مخرج كل قلاب ( Q) بوحدة إظهار تقوم بإظهار الرقم المسجل عليها عندما يكون مستوى ( Q) عاليا كما هو مبين في الشكل ( 1 ) و عندما يبدأ العداد بالعد سنرى أن الأرقام ستظهر وفقا للتسلسل التالي : 0_1_2_3_0

و يظهر الشكل ( 2 ) أشكال موجات الخرج و الساعة للعداد الحلقي .

تبدأ الموجات عند لحظة اختيار يكون فيها ( QO=1 ) و ( Q2=Q3=Q4=0) . بعدها ينتقل المستوى المنطقي العالي من مخرج إلى آخر مما يعطي مجموعة من النبضات المتسلسلة التي يمكن استخدامها في ترتيب تسلسل تنفيذ مجموعة من العمليات .

العداد ذو النهاية الموصولة أو عداد جونسون :

بالرغم من بساطة العداد الحلقي فإنه لا يستخدم القلابات بشكل اقتصادي فالعداد الحلقي المحتوي على ( n ) قلاب له ( MOD – n ) بينما لـ( n ) قلاب توجد( 2n) وضعية . يقوم العداد ذو النهاية الموصولة و المسمى أيضا بعداد جونسون الشكل ( 3 ) بالاستفادة بشكل أفضل من القلابات و كما هو واضح من الشكل يشبه هذا العداد الحلقي مع فارق واحد و هو أن الوصلة ما بين نهاية العداد و بدايته أخذت من ('Q3) بدلاً من (Q3) .

بافتراض أن جميع القلابات قد مسحت أي ( Q0 = Q1= Q2 = Q3 = 0 ) عندما تأتي الجبهة القادحة التالية ينتقل الصفر إلى القلابات ( FF3 ، FF2 ، FF1 ) . أما القلاب ( FFO ) فسينتقل إلى الوضعية ( SET) . لأن المخرج (Q3)هو الموصول بمدخل القلاب ( FFO ) . إذا ينتقل العداد من الوضعية (0000 = Q0 Q1 Q2 Q3 ) الى الوضعية (1000 = Q0 Q1 Q2 Q3 ) ويظهر الشكل (4) تسلسل الوضعيات التي يمر بها العداد و التي نلاحظ بأن عددها يساوي إلى ثمانية و هو ضعف عدد القلابات الموجودة في العداد . إذا يتميز العداد ذو النهاية الموصولة بأن له ( MODULO-2n )بينما العداد الحلقي كما رأينا له ( MODULO- n ) . لقراءة العد الذي وصل اليه عداد جونسون هنالك حاجة إلى عدد من المخارج المنفصلة يساوي عدد الوضعيات . بحيث يكون مخرج واحد فقط من هذه المخارج في المستوى 1 بينما البقية يكونون في المستوى (صفر ) . لتحقيق ذلك نستخدم دارة فاك شيفرة ( Decoder ) . و يتضمن الجدول المبين في الشكل ( 4 ) العلاقات المنطقية اللازمة لتصميم الدارة المـطلوبة .

أمثلة أخرى عن العدادات المتواقتة :

يعتبر العداد الحلقي و عداد جونسون من العدادات المتواقتة و ذلك لأن الساعة مطبقة على جميع القلابات في وقت واحد ، لكن هذه العدادات تعاني من عدم استخدامها الاقتصادي للقلابات . و مع أن عداد جونسون أفضل من العداد الحلقي من هذه الناحية إلا أنه بحاجة إلى دارة فك الشيفرة بينما لا يحتاج إلى ذلك العداد الحلقي . سوف نستعرض الآن أنواعا أخرى من العدادات المتواقتة التي تستفيد بشكل كامل أو شبه كامل من الوضعيات المتوفرة و لنبدأ بالعدادات التي تستخدم ( 2n ) وضعية . إذا أعددنا جدولا محتوٍ على مجموعة من الأعداد الثنائية مرتبة وفق التسلسل العددي نلاحظ أن الـBIT ذو المرتبة الدنيا 20 يتبدل مع كل خطوة عد و أن الـBIT التالي ذو المرتبة 21 يتغير مع كل خطوة عد يكون فيها الـBIT ( 20) مساويا للواحد . أما الـBIT (22) فيتغير عندما كلا ( 21)و ( 20) BITS تساوي الواحد . و بشكل عام نستطيع أن نقول أن الـBIT ذو المرتبة الأعلى يتبدل عندما جميع الـBIT ذات المراتب الأدنى تساوي الواحد في وقت واحد . تؤدي بنا هذه الملاحظات إلى استنباط الطريقة التالية لتشكيل عداد يتبع تسلسل العد بشكل صحيح : من أجل الـBIT ذو المرتبة الدنيا نستخدم قلاب يبدل وضعيته مع كل دورة للساعة و من أجل الـBIT التالي نستخدم قلاب يبدل من وضعيته عندما يكون القلاب الأولي في الوضعية SET . و بشكل عام سيتكون العداد من عدد من القلابات مساوٍ لعدد BITS و كل قلاب سيبدل وضعيته عندما تكون جميع القلابات الممثلة للـBIT ذات المراتب الأدنى موجودة في الوضعية SET . بهذه الطريقة نحصل على العداد المبين في الشكل ( 5 أ ) و الذي استخدمت فيه قلابات من النوع ( J – K ) التي تبدل من وضعيتها عندما ( J = K = 1) . فمثلا يبدل القلاب FF3 من وضعيته عندما J = K3 = 1 و هذا الشرط يتحقق عندما ( Q0 = Q1 = Q2 = 1 ) و هو المطلوب و يظهر الشكل ( 5 ب ) موجات الخرج لهذا العداد . كما يظهر الشكل ( 5 ج ) دارات فك الشيفرة اللازمة للحصول على نتيجة العد .

نلاحظ من الشكل ( 5 أ ) أن البوابة ( G1 ) لا تفيد في شيء و إنما تمَّ استخدامها لكي يظهر الشكل متناسقا فقط . كما نلاحظ أن عدد المداخل لبوابات AND المستخدمة يزداد مع ازدياد عدد القلابات و هذا بالطبع يؤدي إلى تعقد الدارة . لذلك يلجأ عادة إلى طريقة أخرى لتشكيل العداد و هي مبينة في الشكل ( 6 ) و هنا أيضا يمكن التأكد من أن القلاب لن يبدل من وضعيته إلا بعد أن تكون جميع القلابات التي تسبقه موجودة في الوضعية( SET ( QO = Q1 = Q2 = …=1 .

سرعة العدادات المتواقتة :

تقارن العدادات مع بعضها بالسرعة التي تعمل بها . أي بمعدل تغير الساعة التي يمكن استخدامها . و لحساب السرعة نفترض أن الجبهة القادحة للساعة ترد في اللحظة ( t = 0 ) ثم نحسب كم من الوقت يجب الانتظار قبل السماح بورود جبهة قادحة ثانية تؤثر على القلاب بشكل فعال . كما هو معلوم يغير في العداد الحلقي قلاب واحد فقط من وضعيته عند كل جبهة قادحة للساعة . فإذا افترضنا أن القلاب ( FFk ) هو الذي غير من وضعيته استجابة لمعطيات الدخل و أن هذا التغيير يجب نقله إلى القلاب التالي أي ( FFk+1 ) قبل ورود جبهة قادحة ثانية فإن التردد الأعظمي للساعة المسموح به في العداد الحلقي يساوي إلى :

Fmax = 1 / (Tpd,ff + Tsetup)

حيث Tbd,ff هو زمن تأخر الانتشار للقلاب FFK و Tsetup هو زمن التهيؤ . و هو الزمن اللازم لثبات المعطيات الجديدة على الخرج ( FFk) . أما بالنسبة لزمن الاستمرار فهو غير مهم هنا لأن معطيات الدخل تتغير كل ( n ) دور للساعة . أما بالنسبة للعداد ( MOD – 2n ) المبين في الشكل ( 5 ) و الذي يختلف عن العداد الحلقي بوجود بوابات AND فيه فيجب إضافة زمن تأخير الانتشار لهذه البوابات لنحصل على العلاقة التالية :

Fmax = 1 / (Tpd,ff + Tpd,gate + Tsetup)

يختلف الوضع الآن في العدد المبين في الشكل ( 6 ) لأن على المستويات المنطقية أن تنتقل عبر مجموعة من بوابات AND فعندما يكون العداد في الوضعية ( Q0 Q1 Q2 Q3 = 0111 ) تكون جميع مخارج البوابات و جميع مداخل ( J ) و ( K ) للقلابات ( FFO) عند المستوى المنطقي صفر . و عندما يصبح المخرج ( QO) في الوضعية SET تمر فترة زمنية مساوية إلى زمن تأخير الانتشار للبوابة ( G1) قبل أن يصبح مخرجها في المستوى ( 1 ) منطقي . كذلك سيمر زمن تأخير ثان قبل أن يصبح مخرج البوابة ( G2 ) في المستوى ( 1 ) منطقي و زمن تأخير ثالث قبل أن يصبح مخرج البوابة ( G3) ( 1) منطقي. و هكذا تمر فترة زمنية مساوية إلى مجموع أزمان التأخير للبوابات قبل أن تصبح جميع مداخل ( J ) و ( K) للقلابات في المستوى ( 1 ) منطقي و هو الشرط اللازم لكي ينتقل العداد عند الجبهة القادحة التالية إلى الوضعية : ( Q0 Q1 Q2 Q3 = 0000 ) و ليكون عده صحيحا . يسمى الانتقال التتابعي من بنية منطقية إلى أخرى مع التأخير المرافق بالزحف ( Ripple) . فإذا وردت الجبهة القادحة للساعة قبل اكتمال الزحف فلن تكون جميع المداخل ( J ) و ( K ) في المستوى المنطقي ( 1 ) . و بالتالي لن تبدل بعض القلابات من و ضعيتها و سيكون العد خاطئا بما أن العداد المكون من ( n ) قلاب يحتاج إلى ( n-2 ) بوابة AND فإن التردد الأعظمي للساعة المسموح به في هذا النوع من العداد يساوي :

Fmax = 1 / (Tpd,ff + (n − 2)Tpd,gate + Tsetup)

تصميم العدادات المتواقتة ذات ( MODULO) اختياري :

لتصميم عداد ذو ( Modulo) اختياري نبدأ أولاً بتحديد عدد القلابات اللازمة لتأمين عدد الوضعيات المطلوبة أو أكثر . فإذا أردنا مثلا تصميم عداد ( MOD-5) أو ( 6 ) أو ( 7 ) نحتاج إلى ثلاث قلابات لأنها تعطي ( 23 = 8 ) وضعية بينما لا يكفي قلابان لأنهما يعطيان ( 22 = 4 ) وضعية فقط . بعدها نقرر أي من الوضعيات المتوفرة سيأخذ و أي منها سيهمل ثم نقرر ترتيب الوضعيات التي سيمر بها العداد . و أخيرا نختار الدارات المنطقية المناسبة لعمل العداد وفقا للترتيب الموضوع . لتوضيح عملية التصميم نورد المثال التالي المتضمن تصميم العداد ( MOD-5) الذي يمر بالوضعيات التالية :

S3-S4-S5-S6-S7-S3

و ذلك باستخدام القلابات ( J – K ) ( من الممكن أيضا استخدام القلاب RS أو D ) . تعتمد الخطوة الأولى على ترتيب وضعيات العداد في الجدول المسمى بجدول الوضعية ( الجدول 1 ) بعدها نشكل جدول الانتقال ( الجدول 2 ) الذي يحدد وضعية كل قلاب :

عند كل حالة عد للعداد . و يمثل الرمز ( Q ) وضعية القلاب قبل الاستعمال بينما الرمز ( Q` ) يمثل وضعية القلاب بعد الانتقال :

لكي ينتقل العداد من وضعية إلى أخرى يجب أن يزود كل قلاب فيه بالمستويات اللازمة لانتقاله إلى الوضعية المناسبة . و بما أن جدول الحقيقة لأي قلاب يبين تصرف القلاب إذا علمت المستويات المنطقية على مداخله . فمن الممكن الاستفادة من هذا الجدول بإعادة ترتيب المعلومات الموجودة فيه بحيث نحصل فيه على قيم المستويات اللازمة للانتقال إلى أي وضعية مباشرة . و هكذا نشكل من جدول الحقيقة للقلاب ( JK) و المبين في الشكل (7) الجدول( 3) و الذي نستطيع أن نقرأ منه ما يلي : في حال كون القلاب في وضعية الـ(RESET) و نريد استمراره في هذه الوضعية يجب أن يكون ( J = O ) و لا يهم مستوى ( K ) .

نقوم الآن و بالاستناد إلى الجداول ( 1) و ( 2 ) و ( 3 ) بتشكيل جداول كارناف لكل ( J ) و ( K ) من كل قلاب . و بما أن لدينا ثلاث قلابات تتشكل ستة جداول يتم ملؤها بالقيم المناسبة كما يلي : عندما يكون العداد في الوضعية ( S3) مثلا يكون ( O2 Q1 QO=011) و عند انتقاله إلى الوضعية ( S4) يصبح (Q2Q1QO=1 00 ) إذا ( Q2) فقط انتقل من ( Q2 = O ) إلى ( Q2 = 1 ) . نستخرج الآن من الجدول ( 3 ) قيم ( J ) و ( K ) التي تسبب انتقال القلاب من الوضعية ( Q1 = O ) إلى الوضعية (Q2=1 ) و نضع هذه القيم و هي( J2 = 1 ) و ( و غير مهم = K1 = X ) في المربع ( Q2 Q1 QO = 011 ) من جدول كارناف لـ(J2) و ( K2) . بنفس الطريقة يتم إيجاد بقية القيم ووضعها في المربعات المناسبة و بذلك نحصل على الجداول المبينة في الشكل ( 8 ) .

نستخرج الآن من جداول كارناف الصيغ المنطقية التالية لكل ( J ) و ( K ) :

J2=1K2=Q1 Q0 J1=Q0K1='Q2

J0=1 K0='Q2 + 'Q1

و التي نستخدمها لرسم دارة العداد المبينة في الشكل ( 9 ) و التي تم إضافة خط عام لها لتزويد القلابات بالساعة .

بالاستناد إلى الشكل ( 9 ) يمكن الآن رسم موجات خرج العداد كما هو مبين في الشكل ( 10 ) . في حال رغبتنا في تصميم العداد السابق باستخدام القلاب ( RS) نتبع نفس الخطوات السابقة مع استخدام جدول الحقيقة للقلاب ( RS) عوضا عن جدول القلاب ( J – K ) .


العدادات المتواقتة التصاعدية ـ التنازلية :

Up – Down synchronous counters كثيرا ما نحتاج إلى عداد يمكن أن نتحكم باتجاه عده هل يكون تصاعديا أو تنازليا . لذلك سنستعرض الآن طريقة تعديل العداد ( MOD – 5 ) الذي صممناه في الفقرة السابقة بحيث يمكن عكس اتجاه العد فيه . يحتاج العداد لكي يعد بالاتجاهين بالإضافة إلى مدخل الساعة إلى مدخل خاص يحدد مستواه اتجاه العد و لنرمز له بالحرف ( M ) و لنتفق حينما يكون( M = 1 ) يكون العد تصاعديا أي :

....-S3-S4-S5

و حينما يكون ( M = O ) يكون العد تنازليا أي :

....-S3-S7-S6-S

يبدأ تصميم العداد التصاعدي التنازلي بتشكيل جدول الانتقال ( الجدول 4 ) الذي يحتوي على عامودين . يخصص الأول منهما للوضعية التالية من أجل ( M = 1 ) و هي نفس الحالة الموجودة في الجدول ( 2 ) أما الثاني فيخصص للوضعية التالية من أجل ( M = O ) . لاكمال تصميم العداد نتبع الخطوات التي اتبعناها عند تصميم العداد ( MOD-5) مع فارق واحد وهو أننا سنحصل هنا على جداول كارناف بأربعة متحولات . إذ أن الوضعية التالية تتحدد ليس بناء على المتحولات ( QO, 'Q1 ، 'Q2' ) فقط و إنما بناء على قيمة المتحول ( M ) أيضا . و يظهر الشكل ( 11 ) جدول كارناف لـ( KO) الذي نستخرج منه الصيغة المنطقية ( KO)` كما يلي :

الجدول - 4 -

K0='Q1 = 'M Q2+ M 'Q2 بنفس الطريقة نحصل على قيم ( J0) ( K2 ) ( J2 ) ، ( K 1) ( J 1 ) التالية :

J0=1 J2=1 K2=Q1 Q0 M + 'Q1 'Q0 'M J1='Q0 M+ Q0 K1='Q2 M +Q0 'M

الانغلاق الضائع ( Lock out ) :

أثناء تصميم العداد ( MOD – 5 ) لم نستخدم ثلاث من الوضعيات الممكنة و هي: ( SO ، S1 ، S2 ) و هذا العدد يزداد بشكل ملحوظ في العدادات ذات ( MOD ) كبير فمثلا يحتاج العداد (Mod-33) إلى ستة قلابات ((25 = 32),(26 = 64)) . و هذه القلابات تعطي ( 64 ) وضعية لا يستخدم منها إلا ثلاث و ثلاثون . و قد يحدث أن يجد العداد نفسه في إحدى هذه الوضعيات الغير مستخدمة نتيجة لنبضة ضجيج أو بعد وصل التغذية مباشرة . فإذا انتقل من الوضعية الغير مستخدمة إلى الوضعية المستخدمة مباشرة أو بعد عدة خطوات فهذا لن يؤثر على عمله و لكن هناك احتمال في عدم انتقاله إلى الوضعيات المستخدمة واستمراره في الدوران ضمن حلقة من الوضعيات الغير مستخدمة . تسمى هذه الحالة بالانغلاق الضائع Lock out و لتجنب الوقوع فيها يجب التحقق من أن جميع الوضعيات الغير مستخدمة و التي اعتبرناها سابقا غير مهمة لتبسيط دارة العداد لا تؤدي إلى حالة ضياع . و عندما يكتشف وجود مثل هذه الوضعيات يجب تغيير الـX ( غير مهم ) بقيمة مناسبة في جدول كارناف و حتى إذا لم يكن متوقعا ضياع العداد فمن المفضل تغيير الـX بقيمة مناسبة و ذلك للإسراع في عملية خروج العداد من الوضعيات الغير مستخدمة .

المراجع:

الموقع cb4a.com

الجبر المنطق "د. هيثم عرابي"

بنية الحاسب "م. فادي حجار"

نظم منطقية "د. فادي فوز"

allaboutcircuits.com