লজিক গেট/সিনক্রোনাস কাউন্টার

testwiki থেকে
পরিভ্রমণে চলুন অনুসন্ধানে চলুন

সিনক্রোনাস কাউন্টার হলো একটি ক্রমিক সার্কিট যেখানে সমস্ত ফ্লিপ-ফ্লপ একই ঘড়ির পালসে একসাথে অবস্থা পরিবর্তন করে। অ্যাসিনক্রোনাস কাউন্টারে ফ্লিপ-ফ্লপগুলো পরপর সংযুক্ত থাকে এবং একটির আউটপুট পরেরটির ঘড়ি হিসেবে কাজ করে, কিন্তু সিনক্রোনাস কাউন্টারে সব ফ্লিপ-ফ্লপ একই ঘড়ি সংকেত পায়। এই পার্থক্যটি ছোট মনে হলেও বাস্তবে এটি সার্কিটের গতি, নির্ভরযোগ্যতা এবং ব্যবহারের সীমাকে বিশাল পরিমাণে প্রভাবিত করে।

ডিজিটাল ঘড়ি, ক্যালকুলেটর, কম্পিউটারের প্রসেসর থেকে শুরু করে যানবাহনের ইঞ্জিন নিয়ন্ত্রণ পর্যন্ত সব জায়গায় সিনক্রোনাস কাউন্টার ব্যবহার হয়। এই অধ্যায়ে আমরা সিনক্রোনাস কাউন্টারের মূল ধারণা থেকে শুরু করে বিভিন্ন ধরনের বাস্তব কাউন্টার নকশা পর্যন্ত বিস্তারিত আলোচনা করব।

অ্যাসিনক্রোনাস ও সিনক্রোনাস কাউন্টারের পার্থক্য

বাস্তব জীবনের উপমা

একটি মার্চিং ব্যান্ডের কথা ভাবো। একটি অদক্ষ ব্যান্ডে প্রথম সারি পদক্ষেপ নিলে দ্বিতীয় সারি সেটি দেখে পদক্ষেপ নেয়, তৃতীয় সারি দ্বিতীয় সারি দেখে নেয়। ফলে সামনের সারি আগে এবং পেছনের সারি পরে পদক্ষেপ নেয়। ব্যান্ডটি এলোমেলো দেখায়।

একটি দক্ষ ব্যান্ডে ড্রামারের প্রতিটি বাজনায় সব সারি একসাথে পদক্ষেপ নেয়। কেউ আগে নয়, কেউ পরে নয়। ব্যান্ড দেখতে পরিপাটি এবং শৃঙ্খলিত।

অ্যাসিনক্রোনাস কাউন্টার সেই অদক্ষ ব্যান্ডের মতো। প্রথম ফ্লিপ-ফ্লপ পরিবর্তন হলে দ্বিতীয়টি পরিবর্তন হয়, তারপর তৃতীয়টি। প্রতিটি ফ্লিপ-ফ্লপে কিছুটা সময় লাগে, তাই সব ফ্লিপ-ফ্লপ একসাথে সঠিক অবস্থায় আসে না।

সিনক্রোনাস কাউন্টার সেই দক্ষ ব্যান্ডের মতো। ড্রামারের পালস (ঘড়ি) আসলে সব ফ্লিপ-ফ্লপ একসাথে পরিবর্তন হয়।

প্রসারণ বিলম্বের সমস্যা

প্রতিটি ফ্লিপ-ফ্লপে সংকেত পৌঁছাতে এবং আউটপুট পরিবর্তন হতে কিছু সময় লাগে। এটিকে প্রসারণ বিলম্ব বলে।

অ্যাসিনক্রোনাস কাউন্টারে nটি ফ্লিপ-ফ্লপ থাকলে মোট বিলম্ব হয় n×tpd, যেখানে tpd একটি ফ্লিপ-ফ্লপের প্রসারণ বিলম্ব।

সিনক্রোনাস কাউন্টারে সব ফ্লিপ-ফ্লপ একসাথে ঘড়ি পায়, তাই মোট বিলম্ব থাকে শুধু একটি ফ্লিপ-ফ্লপের বিলম্ব এবং অতিরিক্ত গেটের বিলম্ব।

অ্যাসিনক্রোনাস ও সিনক্রোনাস কাউন্টারের বিস্তারিত তুলনা
বৈশিষ্ট্য অ্যাসিনক্রোনাস সিনক্রোনাস
ঘড়ি সংযোগ শুধু প্রথম ফ্লিপ-ফ্লপে সব ফ্লিপ-ফ্লপে একই ঘড়ি
ফ্লিপ-ফ্লপ পরিবর্তনের সময় পরপর, ধাপে ধাপে সবাই একসাথে
প্রসারণ বিলম্ব n×tpd (বিটের সাথে বাড়ে) একটি ফ্লিপ-ফ্লপের বিলম্ব
সর্বোচ্চ ঘড়ির গতি কম (বিট বাড়লে কমে) বেশি (বিটের সাথে কমে না)
সার্কিটের জটিলতা সহজ (কম গেট) জটিল (বেশি গেট)
অন্তর্বর্তী ভুল অবস্থা আছে (গ্লিচ হতে পারে) নেই
নকশা পদ্ধতি সহজ পদ্ধতিগত
বিদ্যুৎ খরচ কম বেশি
প্রধান ব্যবহার সহজ গণনা, ঘড়ি বিভাজক উচ্চ গতির সার্কিট, প্রসেসর

গ্লিচ সমস্যা

অ্যাসিনক্রোনাস কাউন্টারে একটি মারাত্মক সমস্যা হলো গ্লিচ। যখন একাধিক ফ্লিপ-ফ্লপ একসাথে পরিবর্তন হওয়ার কথা কিন্তু ধাপে ধাপে হয়, তখন মাঝখানে ভুল অবস্থা তৈরি হয়।

উদাহরণ: ০১১১ থেকে ১০০০-এ যেতে হলে চারটি বিটই পরিবর্তন হয়। অ্যাসিনক্রোনাস কাউন্টারে এটি ধাপে ধাপে হয়:

০১১১→০১১০→০১০০→০০০০→১০০০

এই মাঝখানের অবস্থাগুলো বাস্তবে কখনো আসা উচিত নয়, কিন্তু অ্যাসিনক্রোনাস কাউন্টারে মুহূর্তের জন্য আসে। যদি এই অবস্থাগুলো পরের সার্কিট পড়ে, ভুল হবে।

সিনক্রোনাস কাউন্টারে সব ফ্লিপ-ফ্লপ একসাথে পরিবর্তন হয়, তাই ০১১১ থেকে সরাসরি ১০০০-এ যায়। কোনো মাঝখানের অবস্থা নেই।

কখন কোনটি ব্যবহার করবে?

কোন কাউন্টার কখন ব্যবহার করবে
পরিস্থিতি পছন্দনীয় ধরন কারণ
সহজ ফ্রিকোয়েন্সি বিভাজক অ্যাসিনক্রোনাস সহজ সার্কিট, কম গেট
ডিজিটাল ঘড়ির সেকেন্ড গণনা অ্যাসিনক্রোনাস গতি তেমন দরকার নেই
প্রসেসরের পাইপলাইন সিনক্রোনাস গ্লিচ সহ্য হবে না
উচ্চ গতির ডেটা রূপান্তর সিনক্রোনাস গতি ও নির্ভরযোগ্যতা দরকার
মড-এন কাউন্টার (বিভিন্ন মড) সিনক্রোনাস নকশা নমনীয়
সার্কিট শেখার উদ্দেশ্যে উভয়ই উভয়ই শেখা দরকার

সিনক্রোনাস কাউন্টার নকশার পদ্ধতি

সিনক্রোনাস কাউন্টার নকশার একটি সুনির্দিষ্ট পদ্ধতি আছে। এই পদ্ধতি জানলে যেকোনো কাউন্টার নকশা করা সম্ভব।

ধাপগুলো

ধাপ ১: অবস্থা ক্রম নির্ধারণ করো। কাউন্টারটি কোন কোন অবস্থার মধ্য দিয়ে যাবে তা ঠিক করো। যেমন: ০০→০১→১০→১১→০০।

ধাপ ২: অবস্থা ডায়াগ্রাম আঁকো। বৃত্তে অবস্থাগুলো এবং তীর দিয়ে পরিবর্তন দেখাও।

ধাপ ৩: অবস্থা সারণি তৈরি করো। বর্তমান অবস্থা থেকে পরবর্তী অবস্থার সারণি তৈরি করো।

ধাপ ৪: ফ্লিপ-ফ্লপের উত্তেজনা সারণি তৈরি করো। কোন ফ্লিপ-ফ্লপকে কী ইনপুট দিলে সে কাঙ্ক্ষিত অবস্থায় যাবে তা বের করো।

ধাপ ৫: কার্নো মানচিত্র দিয়ে সরলীকরণ করো। প্রতিটি ফ্লিপ-ফ্লপের ইনপুটের সরলতম বুলিয়ান রাশি বের করো।

ধাপ ৬: লজিক সার্কিট আঁকো। রাশি অনুযায়ী গেট ও ফ্লিপ-ফ্লপ সংযুক্ত করো।

ফ্লিপ-ফ্লপের উত্তেজনা সারণি

বিভিন্ন ফ্লিপ-ফ্লপের উত্তেজনা সারণি নকশায় কাজে লাগে।

ডি ফ্লিপ-ফ্লপের উত্তেজনা সারণি
বর্তমান Q পরবর্তী Q প্রয়োজনীয় D
০ ০ ০
০ ১ ১
১ ০ ০
১ ১ ১

ডি ফ্লিপ-ফ্লপের উত্তেজনা সারণি অত্যন্ত সহজ: D=Q(t+১)। পরবর্তী অবস্থাই ডি ইনপুট।

জেকে ফ্লিপ-ফ্লপের উত্তেজনা সারণি
বর্তমান Q পরবর্তী Q প্রয়োজনীয় J প্রয়োজনীয় K
০ ০ ০ X
০ ১ ১ X
১ ০ X ১
১ ১ X ০

জেকে ফ্লিপ-ফ্লপের উত্তেজনা সারণিতে X মানে যেকোনো মান। এটি কার্নো মানচিত্রে ডোন্ট কেয়ার হিসেবে ব্যবহার করা যায়, ফলে সার্কিট সরল হয়।

দুই-বিট সিনক্রোনাস উর্ধ্বগণনা কাউন্টার

ধারণা ও উপমা

একটি গাড়ির ওডোমিটারের কথা ভাবো। প্রতিটি কিলোমিটারে ডান অঙ্ক এক বাড়ে। ৯ থেকে ১০ হলে ডান অঙ্ক শূন্য হয় এবং বাম অঙ্ক এক বাড়ে। বাইনারিতে এটি আরও সহজ: প্রতিটি পালসে নিম্ন বিট টগল করে এবং উচ্চ বিট টগল করে শুধু যখন নিম্ন বিট ১ থেকে ০-এ যায়।

দুই-বিট কাউন্টার চারটি অবস্থার মধ্য দিয়ে যায়: ০০→০১→১০→১১→০০

অবস্থা ডায়াগ্রাম

দুই-বিট উর্ধ্বগণনা কাউন্টারের অবস্থা ক্রম
বর্তমান অবস্থা Q1Q0 পরবর্তী অবস্থা Q1Q0 দশমিক মান
০০ ০১ ০ থেকে ১
০১ ১০ ১ থেকে ২
১০ ১১ ২ থেকে ৩
১১ ০০ ৩ থেকে ০

ডি ফ্লিপ-ফ্লপ দিয়ে নকশা

অবস্থা সারণি ও উত্তেজনা সারণি

ডি ফ্লিপ-ফ্লপে D=Q(t+১), তাই পরবর্তী অবস্থাই ডি ইনপুট।

দুই-বিট উর্ধ্বগণনা কাউন্টার (ডি ফ্লিপ-ফ্লপ)
Q1 (বর্তমান) Q0 (বর্তমান) Q1 (পরবর্তী) Q0 (পরবর্তী) D1 D0
০ ০ ০ ১ ০ ১
০ ১ ১ ০ ১ ০
১ ০ ১ ১ ১ ১
১ ১ ০ ০ ০ ০

কার্নো মানচিত্র

D0-এর কার্নো মানচিত্র:

D0-এর কার্নো মানচিত্র
Q1∖Q0 ০ ১
০ ১ ০
১ ১ ০

D0-এর সরলতম রাশি: D0=Q0¯

D1-এর কার্নো মানচিত্র:

D1-এর কার্নো মানচিত্র
Q1∖Q0 ০ ১
০ ০ ১
১ ১ ০

D1-এর সরলতম রাশি: D1=Q1⊕Q0

বুলিয়ান রাশি

D0=Q0¯
D1=Q1⊕Q0

এই রাশি দুটি অত্যন্ত গুরুত্বপূর্ণ। D0=Q0¯ মানে Q0 প্রতিটি পালসে টগল করে। D1=Q1⊕Q0 মানে Q1 পরিবর্তন হয় যখন Q0=১ (কারণ তখন এক্সক্লুসিভ অর Q1-এর পরিপূরক দেয়)।

লজিক সার্কিটের গেট সংখ্যা

দুই-বিট উর্ধ্বগণনা কাউন্টারের গেট (ডি ফ্লিপ-ফ্লপ)
গেটের ধরন সংখ্যা কাজ
নট গেট ১টি D0=Q0¯
এক্সক্লুসিভ অর গেট ১টি D1=Q1⊕Q0
ডি ফ্লিপ-ফ্লপ ২টি অবস্থা সংরক্ষণ

জেকে ফ্লিপ-ফ্লপ দিয়ে নকশা

উত্তেজনা সারণি

দুই-বিট উর্ধ্বগণনা কাউন্টার (জেকে ফ্লিপ-ফ্লপ)
Q1 Q0 Q1+ Q0+ J1 K1 J0 K0
০ ০ ০ ১ ০ X ১ X
০ ১ ১ ০ ১ X X ১
১ ০ ১ ১ X ০ ১ X
১ ১ ০ ০ X ১ X ১

কার্নো মানচিত্র

J1-এর কার্নো মানচিত্র:

Q1∖Q0 ০ ১
০ ১
X X

J1=Q0

K1-এর কার্নো মানচিত্র:

Q1∖Q0 ০ ১
X X
০ ১

K1=Q0

J0-এর কার্নো মানচিত্র:

Q1∖Q0 ০ ১
১ X
১ X

J0=১

K0-এর কার্নো মানচিত্র:

Q1∖Q0 ০ ১
X ১
X ১

K0=১

বুলিয়ান রাশি

J1=Q0,K1=Q0
J0=১,K0=১

লক্ষ করো: J1=K1=Q0 মানে FF1 টগল করে যখন Q0=১। J0=K0=১ মানে FF0 সবসময় টগল করে। এই সরল রাশি জেকে ফ্লিপ-ফ্লপের ডোন্ট কেয়ার ব্যবহারের সুবিধা দেখায়।

লজিক সার্কিটের গেট সংখ্যা

দুই-বিট উর্ধ্বগণনা কাউন্টারের গেট (জেকে ফ্লিপ-ফ্লপ)
গেটের ধরন সংখ্যা কাজ
অতিরিক্ত গেট কোনো গেট নেই Q0 সরাসরি J1 ও K1-এ
জেকে ফ্লিপ-ফ্লপ ২টি অবস্থা সংরক্ষণ

জেকে ফ্লিপ-ফ্লপে কোনো গেটই লাগে না। J0 ও K0-কে সরাসরি উচ্চ ভোল্টেজে (১) সংযুক্ত করলেই হয় এবং Q0 সরাসরি J1 ও K1-এ দিলেই হয়।

ডি ও জেকে ফ্লিপ-ফ্লপের তুলনা

দুই-বিট কাউন্টারে দুই ধরনের ফ্লিপ-ফ্লপের তুলনা
বৈশিষ্ট্য ডি ফ্লিপ-ফ্লপ জেকে ফ্লিপ-ফ্লপ
অতিরিক্ত গেট ১টি নট + ১টি এক্সক্লুসিভ অর কোনো গেট নেই
সার্কিটের জটিলতা সামান্য বেশি কম
বোঝার সহজতা বেশি সহজ একটু জটিল
আধুনিক ব্যবহার বেশি পছন্দনীয় ঐতিহাসিক

দুই-বিট সিনক্রোনাস অধোগণনা কাউন্টার

ধারণা

উর্ধ্বগণনা কাউন্টার যেখানে বাড়তি থাকে অধোগণনা সেখানে কমতি থাকে। অবস্থা ক্রম:

১১→১০→০১→০০→১১

অথবা সমতুল: ০০→১১→১০→০১→০০

অবস্থা সারণি ও উত্তেজনা সারণি (ডি ফ্লিপ-ফ্লপ)

দুই-বিট অধোগণনা কাউন্টার (ডি ফ্লিপ-ফ্লপ)
Q1 Q0 Q1+ Q0+ D1 D0
০ ০ ১ ১ ১ ১
০ ১ ০ ০ ০ ০
১ ০ ০ ১ ০ ১
১ ১ ১ ০ ১ ০

কার্নো মানচিত্র

D0:

Q1∖Q0 ০ ১
১ ০
১ ০

D0=Q0¯

D1:

Q1∖Q0 ০ ১
১ ০
০ ১

D1=Q1⊕Q0¯=Q1⊕Q0... না, এটা ভুল। আবার দেখি:

D1: Q0=০-তে: ০=১, ১=০। Q0=১-তে: ০=০, ১=১।

তাই D1=Q1⊕Q0¯=Q1⊕Q0‾... আরেকটু সাবধানে দেখলে:

সারণি থেকে: যখন Q0=০, D1=Q1¯; যখন Q0=১, D1=Q1।

এটি এক্সক্লুসিভ নর: D1=Q1⊙Q0=Q1⊕Q0‾।

বুলিয়ান রাশি

D0=Q0¯
D1=Q1⊕Q0‾=Q1⊙Q0

উর্ধ্বগণনার সাথে তুলনা করো:

  • উর্ধ্বগণনায়: D1=Q1⊕Q0
  • অধোগণনায়: D1=Q1⊕Q0‾

শুধু একটি নট গেটের পার্থক্য।

জেকে ফ্লিপ-ফ্লপ দিয়ে অধোগণনা

দুই-বিট অধোগণনা কাউন্টার (জেকে ফ্লিপ-ফ্লপ)
Q1 Q0 Q1+ Q0+ J1 K1 J0 K0
০ ০ ১ ১ ১ X ১ X
০ ১ ০ ০ ০ X X ১
১ ০ ০ ১ X ১ ১ X
১ ১ ১ ০ X ০ X ১

কার্নো মানচিত্র দিয়ে সরলীকরণ করলে:

J1=K1=Q0¯
J0=K0=১

উর্ধ্বগণনায় J1=K1=Q0, অধোগণনায় J1=K1=Q0¯। শুধু একটি নট গেটের পার্থক্য।

উর্ধ্বগণনা ও অধোগণনার মিল ও পার্থক্য

উর্ধ্বগণনা ও অধোগণনা কাউন্টারের তুলনা
বিষয় উর্ধ্বগণনা অধোগণনা
D0 রাশি Q0¯ Q0¯
D1 রাশি Q1⊕Q0 Q1⊕Q0‾
জেকে: J0=K0 ১ ১
জেকে: J1=K1 Q0 Q0¯
প্রতিটি পালসে Q0 টগল করে টগল করে
Q1 কখন টগল করে Q0=১ হলে Q0=০ হলে
অবস্থার ক্রম ০→১→২→৩→০ ৩→২→১→০→৩

সম্পূর্ণ সত্যক সারণী ও টাইমিং ডায়াগ্রাম

সম্পূর্ণ সত্যক সারণী

দুই-বিট সিনক্রোনাস উর্ধ্বগণনা কাউন্টারের সম্পূর্ণ সত্যক সারণী
পালস Q1 (আগে) Q0 (আগে) D1=Q1⊕Q0 D0=Q0¯ Q1 (পরে) Q0 (পরে) দশমিক
০ ০ ০ ০ ১ ০ ১ ০→১
১ ০ ১ ১ ০ ১ ০ ১→২
২ ১ ০ ১ ১ ১ ১ ২→৩
৩ ১ ১ ০ ০ ০ ০ ৩→০
৪ ০ ০ ০ ১ ০ ১ ০→১ (পুনরায়)

টাইমিং ডায়াগ্রামের বিশ্লেষণ

টাইমিং ডায়াগ্রামে তিনটি তরঙ্গ থাকে: ঘড়ি, Q0 এবং Q1।

  • ঘড়ির প্রতিটি উর্ধ্বমুখী প্রান্তে কাউন্টার পরিবর্তন হয়।
  • Q0-এর কম্পাঙ্ক ঘড়ির অর্ধেক (প্রতি দুটি পালসে একটি চক্র)।
  • Q1-এর কম্পাঙ্ক ঘড়ির এক-চতুর্থাংশ (প্রতি চারটি পালসে একটি চক্র)।

এটি কম্পাঙ্ক বিভাজক হিসেবে কাজ করে। দুই-বিট কাউন্টার ঘড়িকে ২ ও ৪ দিয়ে ভাগ করে।

বিস্তারিত উদাহরণ

উদাহরণ ১: দুই-বিট উর্ধ্বগণনা কাউন্টারের কাজ যাচাই

একটি দুই-বিট সিনক্রোনাস উর্ধ্বগণনা কাউন্টার (ডি ফ্লিপ-ফ্লপ) প্রাথমিকভাবে Q1Q0=১০ অবস্থায় আছে। পরপর পাঁচটি ঘড়ির পালসের পর প্রতিটি অবস্থা কী হবে?

রাশি: D0=Q0¯, D1=Q1⊕Q0।

উদাহরণ ১-এর ধাপে ধাপে বিশ্লেষণ
পালস Q1Q0 (আগে) D1=Q1⊕Q0 D0=Q0¯ Q1Q0 (পরে) দশমিক
শুরু ১০ - - ১০ ২
১ ১০ ১⊕০=১ ০¯=১ ১১ ৩
২ ১১ ১⊕১=০ ১¯=০ ০০ ০
৩ ০০ ০⊕০=০ ০¯=১ ০১ ১
৪ ০১ ০⊕১=১ ১¯=০ ১০ ২
৫ ১০ ১⊕০=১ ০¯=১ ১১ ৩

যেকোনো প্রাথমিক অবস্থা থেকে শুরু করলেও কাউন্টার সঠিক ক্রমে চলে।

উদাহরণ ২: দুই-বিট অধোগণনা কাউন্টার (জেকে ফ্লিপ-ফ্লপ)

একটি দুই-বিট অধোগণনা কাউন্টারে Q1Q0=০০ থেকে শুরু করে চারটি পালস দাও।

রাশি: J0=K0=১, J1=K1=Q0¯।

জেকে ফ্লিপ-ফ্লপের বৈশিষ্ট্য: J=K=১ হলে টগল, J=K=০ হলে অপরিবর্তিত।

উদাহরণ ২-এর ধাপে ধাপে বিশ্লেষণ
পালস Q1Q0 J1=K1=Q0¯ Q1 কি টগল করবে? J0=K0=১ Q0 কি টগল করবে? নতুন Q1Q0 দশমিক
শুরু ০০ - - - - ০০ ০
১ ০০ ০¯=১ হ্যাঁ ১ হ্যাঁ ১১ ৩
২ ১১ ১¯=০ না ১ হ্যাঁ ১০ ২
৩ ১০ ০¯=১ হ্যাঁ ১ হ্যাঁ ০১ ১
৪ ০১ ১¯=০ না ১ হ্যাঁ ০০ ০

অধোগণনার ক্রম: ০→৩→২→১→০।

উদাহরণ ৩: নকশার সম্পূর্ণ প্রক্রিয়া

একটি দুই-বিট সিনক্রোনাস কাউন্টার নকশা করো যা ০০→১০→১১→০১→০০ ক্রমে চলে। ডি ফ্লিপ-ফ্লপ ব্যবহার করো।

ধাপ ১: অবস্থা সারণি।

বর্তমান Q1Q0 পরবর্তী Q1Q0
০০ ১০
১০ ১১
১১ ০১
০১ ০০

ধাপ ২: উত্তেজনা সারণি।

Q1 Q0 D1 D0
০ ০ ১ ০
০ ১ ০ ০
১ ০ ১ ১
১ ১ ০ ১

ধাপ ৩: কার্নো মানচিত্র।

D1:

Q1∖Q0 ০ ১
১ ০
১ ০

D1=Q0¯... না, দেখো: Q0=০ হলে সব ১, Q0=১ হলে সব ০। তাই D1=Q0¯।

D0:

Q1∖Q0 ০ ১
০ ০
১ ১

D0=Q1

ধাপ ৪: বুলিয়ান রাশি।

D1=Q0¯
D0=Q1

ধাপ ৫: যাচাই।

Q1Q0 D1=Q0¯ D0=Q1 নতুন Q1Q0
০০ ১ ০ ১০
১০ ১ ১ ১১
১১ ০ ১ ০১
০১ ০ ০ ০০

সার্কিট সঠিকভাবে নির্দিষ্ট ক্রমে চলছে।

উদাহরণ ৪: প্রাথমিক অবস্থার প্রভাব

উদাহরণ ৩-এর কাউন্টার কখনো ভুল প্রাথমিক অবস্থায় শুরু হলে কী হবে? সব মিনিটার্ম আমাদের সার্কিটে ব্যবহৃত তাই কোনো ভুল অবস্থা নেই।

কিন্তু যদি একটি মড-৩ কাউন্টার নকশা করতাম যেখানে চতুর্থ অবস্থাটি (১১) ব্যবহৃত নয়, তাহলে সেই অবস্থায় আটকে যাওয়ার ঝুঁকি থাকত।

এই সমস্যা সমাধানের উপায়:

  • প্রাথমিকভাবে পরিষ্কার করা (রিসেট) যাতে নির্দিষ্ট অবস্থা থেকে শুরু হয়
  • কার্নো মানচিত্রে অব্যবহৃত অবস্থাগুলোকে এমনভাবে বরাদ্দ করা যাতে সার্কিট স্বয়ংক্রিয়ভাবে বৈধ ক্রমে ফিরে আসে

উদাহরণ ৫: সিনক্রোনাস ও অ্যাসিনক্রোনাস তুলনা

একটি ৪-বিট কাউন্টার যদি প্রতিটি ফ্লিপ-ফ্লপের প্রসারণ বিলম্ব ৫ ন্যানোসেকেন্ড হয়, তাহলে:

অ্যাসিনক্রোনাস কাউন্টারে:

  • মোট বিলম্ব = ৪×৫=২০ ন্যানোসেকেন্ড
  • সর্বোচ্চ ঘড়ির গতি = ১২০×১০−9=৫০ মেগাহার্টজ

সিনক্রোনাস কাউন্টারে (অতিরিক্ত অ্যান্ড গেটের বিলম্ব ২ ন্যানোসেকেন্ড):

  • মোট বিলম্ব = ৫+২=৭ ন্যানোসেকেন্ড
  • সর্বোচ্চ ঘড়ির গতি = ১৭×১০−9≈১৪৩ মেগাহার্টজ

সিনক্রোনাস কাউন্টার প্রায় তিনগুণ বেশি গতিতে চলতে পারে।

বিলম্ব ও গতির তুলনা
কাউন্টারের ধরন বিট সংখ্যা মোট বিলম্ব সর্বোচ্চ গতি
অ্যাসিনক্রোনাস ২ ১০ নস ১০০ মেহা
অ্যাসিনক্রোনাস ৪ ২০ নস ৫০ মেহা
অ্যাসিনক্রোনাস ৮ ৪০ নস ২৫ মেহা
সিনক্রোনাস ২ ৭ নস ১৪৩ মেহা
সিনক্রোনাস ৪ ৭ নস ১৪৩ মেহা
সিনক্রোনাস ৮ ৭ নস ১৪৩ মেহা

সিনক্রোনাস কাউন্টারের গতি বিটের সংখ্যার উপর নির্ভর করে না।

অনুশীলনী

  1. একটি দুই-বিট সিনক্রোনাস উর্ধ্বগণনা কাউন্টার (ডি ফ্লিপ-ফ্লপ) এর রাশি লেখো এবং Q1Q0=০১ থেকে শুরু করে তিনটি পালসের পর অবস্থা কী?
  1. দুই-বিট সিনক্রোনাস অধোগণনা কাউন্টারে জেকে ফ্লিপ-ফ্লপের রাশি কী? উর্ধ্বগণনার সাথে কী পার্থক্য?
  1. সিনক্রোনাস কাউন্টারে গ্লিচ সমস্যা কেন হয় না? দুই লাইনে ব্যাখ্যা করো।
  1. একটি দুই-বিট কাউন্টার নকশা করো যা ০১→১১→১০→০০→০১ ক্রমে চলে। ডি ফ্লিপ-ফ্লপ ব্যবহার করো।
  1. অ্যাসিনক্রোনাস ও সিনক্রোনাস কাউন্টারের মধ্যে তিনটি পার্থক্য লেখো।
  1. একটি দুই-বিট কাউন্টারে প্রতিটি ফ্লিপ-ফ্লপের প্রসারণ বিলম্ব ৮ ন্যানোসেকেন্ড। অ্যাসিনক্রোনাস ও সিনক্রোনাস উভয় ক্ষেত্রে সর্বোচ্চ ঘড়ির গতি কত? (সিনক্রোনাসে অতিরিক্ত গেটের বিলম্ব ৩ ন্যানোসেকেন্ড।)
  1. ডি ফ্লিপ-ফ্লপের উত্তেজনা সারণিতে D-এর মান সরাসরি পরবর্তী Q-এর সমান কেন?
  1. জেকে ফ্লিপ-ফ্লপের উত্তেজনা সারণিতে ডোন্ট কেয়ার (X) কোন কোন ঘরে থাকে? এটি কাউন্টার নকশায় কীভাবে সুবিধা দেয়?
  1. একটি দুই-বিট উর্ধ্বগণনা কাউন্টার (জেকে) এর রাশি লেখো এবং প্রমাণ করো যে Q1Q0=১১ থেকে পরবর্তী অবস্থা ০০।
  1. কেন সিনক্রোনাস কাউন্টারে বিটের সংখ্যা বাড়লেও সর্বোচ্চ ঘড়ির গতি কমে না? অ্যাসিনক্রোনাসের সাথে তুলনা করে বোঝাও।

উত্তর:

  1. রাশি: D0=Q0¯, D1=Q1⊕Q0; পালস ১: ০১→১০; পালস ২: ১০→১১; পালস ৩: ১১→০০
  1. জেকে অধোগণনায়: J0=K0=১, J1=K1=Q0¯; উর্ধ্বগণনায় J1=K1=Q0, অধোগণনায় J1=K1=Q0¯, শুধু একটি নট গেটের পার্থক্য
  1. সিনক্রোনাস কাউন্টারে সব ফ্লিপ-ফ্লপ একসাথে পরিবর্তন হয় তাই মাঝখানের কোনো ভুল অবস্থা তৈরি হওয়ার সুযোগ নেই
  1. সারণি থেকে: D1=Q0, D0=Q1¯; যাচাই: ০১→D1=১,D0=১→১১; ১১→D1=১,D0=০→১০; ১০→D1=০,D0=০→০০; ০০→D1=০,D0=১→০১
  1. পার্থক্য ১: ঘড়ি সংযোগ; পার্থক্য ২: প্রসারণ বিলম্ব; পার্থক্য ৩: গ্লিচ সমস্যা
  1. অ্যাসিনক্রোনাস: মোট বিলম্ব = ২×৮ = ১৬ নস, গতি = ৬২.৫ মেহা; সিনক্রোনাস: মোট বিলম্ব = ৮+৩ = ১১ নস, গতি = ৯১ মেহা
  1. ডি ফ্লিপ-ফ্লপের বৈশিষ্ট্য সমীকরণ Q(t+১)=D(t), তাই পরবর্তী অবস্থায় যেতে হলে সেই অবস্থাকেই ডি ইনপুটে দিতে হয়
  1. যখন Q পরিবর্তন হয় না (০→০ বা ১→১) তখন J ও K-এর নির্দিষ্ট মূল্য নেই বলে ডোন্ট কেয়ার হয়; কার্নো মানচিত্রে ডোন্ট কেয়ার ব্যবহার করে দল বড় করা যায় ফলে রাশি সরল হয় এবং কম গেট লাগে
  1. Q1Q0=১১: J1=K1=Q0=১ তাই Q1 টগল করে ০ হয়; J0=K0=১ তাই Q0 টগল করে ০ হয়; নতুন অবস্থা ০০
  1. সিনক্রোনাস কাউন্টারে সব ফ্লিপ-ফ্লপ একসাথে ঘড়ি পায়, তাই মোট বিলম্ব হলো একটি ফ্লিপ-ফ্লপের বিলম্ব এবং নিয়ন্ত্রণ গেটের বিলম্ব যা বিটের সংখ্যার উপর নির্ভর করে না; অ্যাসিনক্রোনাসে বিলম্ব প্রতিটি ফ্লিপ-ফ্লপে জমতে থাকে তাই বিট বাড়লে বিলম্ব বাড়ে এবং গতি কমে

তিন-বিট ও চার-বিট সিনক্রোনাস কাউন্টার

আগের ভাগে আমরা দেখেছিলাম সিনক্রোনাস কাউন্টার কীভাবে কাজ করে এবং দুই-বিটের কাউন্টার দিয়ে ধারণাটা বুঝেছিলাম। এবার সেই ধারণার উপর দাঁড়িয়ে আমরা তিন-বিট ও চার-বিটের কাউন্টারে প্রবেশ করব, এবং শিখব কীভাবে এই কাউন্টারকে আরও শক্তিশালী করা যায়, যেমন উলটো দিকে গণনা করা, নির্দিষ্ট সংখ্যায় থামা, এবং একটিমাত্র চিপে সব সুবিধা পাওয়া।

সিঁড়ির উপমা

একটু ভাবো, তুমি একটি বহুতল ভবনের লিফটে উঠছ। লিফট ১ম তলা থেকে ২য়, ৩য়, ৪র্থ... এভাবে উপরে উঠে। এটা হলো উর্ধ্বগণনা। আবার ৭ম তলা থেকে নেমে আসলে ৬ষ্ঠ, ৫ম, ৪র্থ... এভাবে নিচে নামে। এটা হলো অধোগণনা।

তিন-বিটের কাউন্টার একটি ৮-তলা লিফটের মতো: ০ থেকে ৭ পর্যন্ত যায়, তারপর আবার ০ থেকে শুরু। চার-বিটের কাউন্টার হলো ১৬-তলার লিফট: ০ থেকে ১৫।

তিন-বিট উর্ধ্বগণনা কাউন্টার

গণনার ধারা

তিনটি বিট Q2Q1Q0 দিয়ে 23=8টি অবস্থা সম্ভব: ০০০ থেকে ১১১।

তিন-বিট উর্ধ্বগণনা কাউন্টারের সত্যক সারণী
ক্লক চক্র Q2 Q1 Q0 দশমিক মান পরিবর্তন কোথায়?
০ ০ ০ ০ ০ শুরু
১ ০ ০ ১ ১ Q0 পাল্টেছে
২ ০ ১ ০ ২ Q1,Q0 পাল্টেছে
৩ ০ ১ ১ ৩ Q0 পাল্টেছে
৪ ১ ০ ০ ৪ Q2,Q1,Q0 পাল্টেছে
৫ ১ ০ ১ ৫ Q0 পাল্টেছে
৬ ১ ১ ০ ৬ Q1,Q0 পাল্টেছে
৭ ১ ১ ১ ৭ Q0 পাল্টেছে
৮ (=০) ০ ০ ০ ০ আবার শুরুতে ফিরে

বুলিয়ান রাশি নির্ণয়

প্রতিটি ফ্লিপ-ফ্লপের J ও K ইনপুট বের করতে হবে। সিনক্রোনাস কাউন্টারে সাধারণত জেকে ফ্লিপ-ফ্লপ ব্যবহার করা হয়।

জেকে ফ্লিপ-ফ্লপের রূপান্তর সারণি মনে করো: পরিবর্তন না হলে J=০,K=X অথবা J=X,K=০; ০ থেকে ১ হলে J=১,K=X; ১ থেকে ০ হলে J=X,K=১।

তিন-বিট কাউন্টারের জেকে ইনপুট নির্ণয়
Q2 Q1 Q0 Q2+ Q1+ Q0+ J2K2 J1K1 J0K0
০ ০ ০ ০ ০ ১ ০X ০X ১X
০ ০ ১ ০ ১ ০ ০X ১X X১
০ ১ ০ ০ ১ ১ ০X X০ ১X
০ ১ ১ ১ ০ ০ ১X X১ X১
১ ০ ০ ১ ০ ১ X০ ০X ১X
১ ০ ১ ১ ১ ০ X০ ১X X১
১ ১ ০ ১ ১ ১ X০ X০ ১X
১ ১ ১ ০ ০ ০ X১ X১ X১

কার্নো মানচিত্র সরলীকরণের পরে:

J0=K0=১
J1=K1=Q0
J2=K2=Q1Q0

এই রাশিগুলো বলছে:

  • Q0 প্রতিটি ক্লকে টগল করে (কারণ J0=K0=১)।
  • Q1 তখনই টগল করে যখন Q0=১।
  • Q2 তখনই টগল করে যখন Q1 ও Q0 উভয়ই ১।

এটা ঠিক হাতে গণনার মতো: এককের ঘরে হাতি যাওয়ার পরেই দশকের ঘর বাড়ে!

সার্কিট সংযোগ

তিনটি জেকে ফ্লিপ-ফ্লপ (FF0,FF1,FF2) এবং একটি অ্যান্ড গেট দিয়ে সার্কিট তৈরি:

  • FF0: J0=K0=১ (সরাসরি VCC তে)
  • FF1: J1=K1=Q0
  • FF2: J2=K2=Q1⋅Q0 (একটি অ্যান্ড গেট দিয়ে)
  • তিনটি ফ্লিপ-ফ্লপের ক্লক একসাথে সংযুক্ত

তিন-বিট অধোগণনা কাউন্টার

উলটো সিঁড়ি

অধোগণনা কাউন্টার উলটো দিকে গোনে: ৭, ৬, ৫, ৪, ৩, ২, ১, ০, আবার ৭। রকেট উৎক্ষেপণের কাউন্টডাউনের মতো: ১০, ৯, ৮, ৭, ৬... উৎক্ষেপণ!

উর্ধ্বগণনার রাশিতে একটু পরিবর্তন করলেই অধোগণনা পাওয়া যায়। পার্থক্য শুধু একটাই: পরের বিটকে টগল করার সংকেত আসে Q এর বদলে Q¯ থেকে।

তিন-বিট অধোগণনা কাউন্টারের সত্যক সারণী
ক্লক চক্র Q2 Q1 Q0 দশমিক মান
০ ১ ১ ১ ৭
১ ১ ১ ০ ৬
২ ১ ০ ১ ৫
৩ ১ ০ ০ ৪
৪ ০ ১ ১ ৩
৫ ০ ১ ০ ২
৬ ০ ০ ১ ১
৭ ০ ০ ০ ০
৮ (=০) ১ ১ ১ ৭ (আবার শুরু)

বুলিয়ান রাশি

J0=K0=১
J1=K1=Q0¯
J2=K2=Q1¯⋅Q0¯

উর্ধ্বগণনার রাশির সাথে তুলনা করো। শুধু Q এর জায়গায় Q¯ এসেছে। এর মানে হলো: উর্ধ্বগণনায় পরের বিট টগল করে যখন আগের বিট ১ হয়, কিন্তু অধোগণনায় পরের বিট টগল করে যখন আগের বিট ০ হয়।

চার-বিট উর্ধ্বগণনা কাউন্টার

ষোল-তলার লিফট

চার-বিটের কাউন্টার 24=16টি অবস্থা গণনা করে: 0000 থেকে 1111, অর্থাৎ দশমিকে ০ থেকে ১৫।

চার-বিট উর্ধ্বগণনা কাউন্টারের সত্যক সারণী
দশমিক Q3 Q2 Q1 Q0
০ ০ ০ ০ ০
১ ০ ০ ০ ১
২ ০ ০ ১ ০
৩ ০ ০ ১ ১
৪ ০ ১ ০ ০
৫ ০ ১ ০ ১
৬ ০ ১ ১ ০
৭ ০ ১ ১ ১
৮ ১ ০ ০ ০
৯ ১ ০ ০ ১
১০ ১ ০ ১ ০
১১ ১ ০ ১ ১
১২ ১ ১ ০ ০
১৩ ১ ১ ০ ১
১৪ ১ ১ ১ ০
১৫ ১ ১ ১ ১
০ (ফিরে) ০ ০ ০ ০

বুলিয়ান রাশি

তিন-বিটের প্যাটার্ন অনুসরণ করে চার-বিটের রাশি সহজেই বের করা যায়:

J0=K0=১
J1=K1=Q0
J2=K2=Q1Q0
J3=K3=Q2Q1Q0

প্যাটার্ন লক্ষ করো: প্রতিটি উপরের বিট টগল করে যখন তার নিচের সব বিট ১। এটা ঠিক সেই হাতের গণনার নিয়মের মতো!

ক্যারি আউটপুট

চার-বিটের কাউন্টারে একটি বিশেষ আউটপুট থাকে যাকে ক্যারি আউট বলে। এটা ১ হয় শুধুমাত্র যখন কাউন্টার সর্বোচ্চ অবস্থায় (1111=15) থাকে:

Cout=Q3Q2Q1Q0

এই ক্যারি আউট আরেকটি কাউন্টারের ক্লক ইনপুটে দেওয়া যায়, যেভাবে একাধিক কাউন্টার জুড়ে বড় গণনা করা যায়।

চার-বিট অধোগণনা কাউন্টার

বুলিয়ান রাশি

তিন-বিটের অধোগণনার মতোই:

J0=K0=১
J1=K1=Q0¯
J2=K2=Q1¯⋅Q0¯
J3=K3=Q2¯⋅Q1¯⋅Q0¯

অধোগণনায় ক্যারি আউট (আসলে বরো আউট বলা সঠিক) হয় যখন কাউন্টার শূন্যতে (0000) থাকে:

Bout=Q3¯⋅Q2¯⋅Q1¯⋅Q0¯

উর্ধ্ব-অধো কাউন্টার

একটাই কাউন্টার, দুই দিকে গোনে

এর আগে আমরা দ্বিমুখী শিফট রেজিস্টার দেখেছিলাম যেটা দুই দিকে চলতে পারে। উর্ধ্ব-অধো কাউন্টারও ঠিক সেরকম। একটি নিয়ন্ত্রণ সংকেত U/D¯ দিয়ে সিদ্ধান্ত নেওয়া হয়:

  • U/D¯=১ হলে উর্ধ্বগণনা (ওপরে ওঠা)
  • U/D¯=০ হলে অধোগণনা (নিচে নামা)
উর্ধ্ব-অধো কাউন্টারের বুলিয়ান রাশি
ফ্লিপ-ফ্লপ J=K রাশি ব্যাখ্যা
FF0 ১ সবসময় টগল
FF1 (U/D¯)⋅Q0+(U/D¯)‾⋅Q0¯ উর্ধ্বে: Q0, অধোতে: Q0¯
FF2 (U/D¯)⋅Q1Q0+(U/D¯)‾⋅Q1¯Q0¯ উর্ধ্বে: Q1Q0, অধোতে: Q1¯Q0¯
FF3 (U/D¯)⋅Q2Q1Q0+(U/D¯)‾⋅Q2¯Q1¯Q0¯ উর্ধ্বে: সব Q মিলে, অধোতে: সব Q¯ মিলে

এই রাশিটা দেখতে জটিল মনে হলেও ধারণাটা সহজ: উর্ধ্বগণনার শর্ত আর অধোগণনার শর্ত একটি মাক্সটিপ্লেক্সারের মতো যোগ করা হয়েছে, আর U/D¯ হলো নির্বাচন সংকেত।

সত্যক সারণী

ধরো, Q=0011=3 এ আছি।

উর্ধ্ব-অধো কাউন্টার: একই অবস্থা থেকে দুই দিকে
U/D¯ বর্তমান অবস্থা পরের অবস্থা মানে
১ (উর্ধ্ব) 0011 (৩) 0100 (৪) একধাপ বাড়ল
০ (অধো) 0011 (৩) 0010 (২) একধাপ কমল

সক্রিয়করণ ইনপুট

"পজ বোতাম"

কল্পনা করো একটি ভিডিও গেমে তুমি পজ বোতাম টিপলে সব কিছু থেমে যায়, ক্লক চলতে থাকলেও। ঠিক এই কাজটাই করে সক্রিয়করণ বা এনাবল ইনপুট।

সক্রিয়করণ ইনপুট EN (এনাবল):

  • EN=১: কাউন্টার স্বাভাবিকভাবে চলে
  • EN=০: কাউন্টার থামে, ক্লক এলেও অবস্থা পরিবর্তন হয় না

সক্রিয়করণ ইনপুট যুক্ত করলে জেকে রাশিগুলো হয়:

J0=K0=EN
J1=K1=EN⋅Q0
J2=K2=EN⋅Q1Q0
J3=K3=EN⋅Q2Q1Q0

EN=০ হলে সব J=K=০ হয়ে যায়, তাই ফ্লিপ-ফ্লপ টগল করে না এবং কাউন্টার থেমে থাকে।

সক্রিয়করণ ইনপুটের প্রয়োজনীয়তা

সক্রিয়করণ ইনপুটের ব্যবহার
প্রয়োগ বর্ণনা
কাউন্টার ক্যাসকেড একাধিক কাউন্টার জোড়া লাগানোর সময়: প্রথম কাউন্টারের ক্যারি আউট দ্বিতীয় কাউন্টারের EN এ যায়
প্রিসেট লোড নিয়ন্ত্রণ নির্দিষ্ট সময়ে কাউন্টার থামিয়ে নতুন মান লোড করার আগে
বিদ্যুৎ সাশ্রয় কাউন্টার ব্যবহার না হলে এনাবল বন্ধ রেখে বিদ্যুৎ বাঁচানো যায়
টাইমিং নিয়ন্ত্রণ নির্দিষ্ট পরিস্থিতিতেই গণনা করাতে

বিডিসি কাউন্টার

দশমিকের সাথে বাইনারির মেলবন্ধন

আমরা প্রতিদিন দশমিক সংখ্যা ব্যবহার করি: ০, ১, ২, ৩, ৪, ৫, ৬, ৭, ৮, ৯। কম্পিউটার বাইনারিতে কাজ করে। কিন্তু ডিজিটাল ঘড়ি বা ক্যালকুলেটরের ডিসপ্লেতে তো দশমিক সংখ্যা দেখায়! এই দুটো জিনিস মেলাতে হয় বিডিসি পদ্ধতিতে।

বিডিসি মানে বাইনারি-কোডেড-ডেসিমাল: প্রতিটি দশমিক অঙ্ক (০ থেকে ৯) কে চার বিট বাইনারিতে আলাদাভাবে প্রকাশ করা হয়।

বিডিসি সংকেত
দশমিক বিডিসি (Q3Q2Q1Q0)
০ ০০০০
১ ০০০১
২ ০০১০
৩ ০০১১
৪ ০১০০
৫ ০১০১
৬ ০১১০
৭ ০১১১
৮ ১০০০
৯ ১০০১
১০ (অব্যবহৃত) ১০১০
... থেকে ১৫ পর্যন্ত অব্যবহৃত ১০১১ থেকে ১১১১

বিডিসি কাউন্টার ৯ গণনার পরে ১০ তে না গিয়ে ০ তে ফিরে আসে। তাই এটা মড-১০ কাউন্টারের একটি বিশেষ রূপ।

বিডিসি কাউন্টারের রিসেট সার্কিট

সাধারণ চার-বিট কাউন্টারে ১০ (1010) অবস্থায় পৌঁছামাত্র একটি বিশেষ রিসেট সংকেত তৈরি করতে হয়:

Reset=Q3⋅Q1

কারণ 1010 তে Q3=১ এবং Q1=১। এই সংকেত দিয়ে কাউন্টারকে 0000 তে রিসেট করা হয়। বাস্তবে এই রিসেট এত দ্রুত হয় যে 1010 অবস্থা কার্যত কখনো আউটপুটে দেখা যায় না।

বিডিসি কাউন্টারের গণনার ধারা
ক্লক Q3 Q2 Q1 Q0 দশমিক রিসেট?
০ ০ ০ ০ ০ ০ না
১ ০ ০ ০ ১ ১ না
... ... ... ... ... ... না
৯ ১ ০ ০ ১ ৯ না
১ ০ ১ ০ ক্ষণস্থায়ী! হ্যাঁ, রিসেট হয়
১১ ০ ০ ০ ০ ০ (রিসেটের পরে)

মড-এন কাউন্টার

"নিজের গতিতে" গণনা

মড-এন কাউন্টার মানে হলো Nটি অবস্থা গণনা করে তারপর আবার শুরুতে ফিরে আসা। বিডিসি কাউন্টার হলো মড-১০। একটি ঘড়ির সেকেন্ড কাউন্টার হবে মড-৬০, ঘন্টার কাউন্টার হবে মড-১২ বা মড-২৪।

মড-N কাউন্টার তৈরির সাধারণ পদ্ধতি:

যদি N=2n হয় (যেমন ৮, ১৬), তাহলে সরাসরি n-বিট কাউন্টার ব্যবহার করাই যথেষ্ট।

যদি N ২-এর ঘাত না হয়, তাহলে দুটি পদ্ধতি:

পদ্ধতি ১: রিসেট পদ্ধতি

N সংখ্যায় পৌঁছানো মাত্র কাউন্টারকে 0 তে রিসেট করো।

পদ্ধতি ২: প্রিলোড পদ্ধতি

সর্বোচ্চ অবস্থায় পৌঁছে রিসেটের বদলে একটি নির্দিষ্ট প্রারম্ভিক মান লোড করো।

মড-৬ কাউন্টার (রিসেট পদ্ধতি)

মড-৬ কাউন্টার ০, ১, ২, ৩, ৪, ৫, ০, ১, ২... গোনে।

৬ = 0110 বাইনারিতে। তাই রিসেট শর্ত:

Reset=Q2⋅Q1

কারণ ৬ = 0110 তে Q2=১ এবং Q1=১ প্রথমবার একসাথে হয়।

মড-৬ কাউন্টারের গণনার ধারা
ক্লক Q2 Q1 Q0 দশমিক
০ ০ ০ ০ ০
১ ০ ০ ১ ১
২ ০ ১ ০ ২
৩ ০ ১ ১ ৩
৪ ১ ০ ০ ৪
৫ ১ ০ ১ ৫
৬ (রিসেট) ১ ১ ০ ৬ (ক্ষণস্থায়ী, রিসেট হয়)
পরে ০ ০ ০ ০ (ফিরে আসে)

প্রিলোড পদ্ধতিতে মড-এন কাউন্টার

ধরো মড-৬ কাউন্টার বানাতে হবে চার-বিটের কাউন্টার ব্যবহার করে। রিসেটের বদলে 15−6+1=10 মান লোড করা যায়। এভাবে ১০ থেকে ১৫ পর্যন্ত গণনা করে ক্যারি আউট দেওয়ার পরে আবার ১০ লোড হয়।

কার্যকর গণনার পরিসর: 10→11→12→13→14→15→10→… অর্থাৎ ৬টি অবস্থা।

মড-এন কাউন্টার তৈরির সারসংক্ষেপ
মড N রিসেট শর্ত ব্যবহার
মড-২ ২ একটি বিটই যথেষ্ট বিভাজক
মড-৫ ৫ Q2Q0 পেন্টাগণনা
মড-৬ ৬ Q2Q1 ঘড়ির সেকেন্ডের দশক বিট
মড-১০ ১০ Q3Q1 বিডিসি, দশমিক গণনা
মড-১২ ১২ Q3Q2 ১২ ঘন্টার ঘড়ি
মড-১৬ ১৬ এমনিতেই (চার-বিট) হেক্সাডেসিমাল গণনা
মড-৬০ ৬০ দুটি কাউন্টার জুড়ে ঘড়ির মিনিট ও সেকেন্ড

আইসি ৭৪১৬৩ চিপের পরিচয়

একটিমাত্র চিপে সব সুবিধা

ডিজিটাল ইলেকট্রনিক্সে ৭৪১৬৩ একটি অত্যন্ত জনপ্রিয় এবং বহুল ব্যবহৃত চিপ। এটি একটি ৪-বিট সমকালীন উর্ধ্বগণনা কাউন্টার যার ভেতরে অনেক সুবিধা একসাথে রয়েছে: সমকালীন প্রিলোড, সমকালীন ক্লিয়ার, সক্রিয়করণ ইনপুট এবং ক্যারি আউট।

পিন বিন্যাস

৭৪১৬৩ চিপের পিন বর্ণনা
পিন নম্বর নাম ধরন কাজ
১ CLR‾ ইনপুট সমকালীন ক্লিয়ার (সক্রিয়-নিম্ন)
২ CLK ইনপুট ক্লক (উর্ধ্বপ্রান্ত-ট্রিগারড)
৩, ৪, ৫, ৬ A,B,C,D ইনপুট সমান্তরাল ডেটা ইনপুট
৭ ENP ইনপুট সক্রিয়করণ (প্রসারণের জন্য)
৮ GND বিদ্যুৎ ভূমি সংযোগ
৯ LOAD‾ ইনপুট সমান্তরাল লোড (সক্রিয়-নিম্ন)
১০ ENT ইনপুট সক্রিয়করণ (ক্যারি জন্য)
১১, ১২, ১৩, ১৪ QA,QB,QC,QD আউটপুট কাউন্টারের চার বিট
১৫ RCO আউটপুট রিপল ক্যারি আউট
১৬ VCC বিদ্যুৎ সরবরাহ বিদ্যুৎ (+5 ভোল্ট)

সত্যক সারণী

৭৪১৬৩ চিপের সম্পূর্ণ কার্যক্রম
CLR‾ LOAD‾ ENT ENP CLK কার্যক্রম
০ যাই হোক যাই হোক যাই হোক উর্ধ্বপ্রান্ত ক্লিয়ার: Q=0000
১ ০ যাই হোক যাই হোক উর্ধ্বপ্রান্ত লোড: Q←ABCD
১ ১ ১ ১ উর্ধ্বপ্রান্ত গণনা: Q←Q+1
১ ১ ০ যাই হোক উর্ধ্বপ্রান্ত ধারণ: Q অপরিবর্তিত
১ ১ যাই হোক ০ উর্ধ্বপ্রান্ত ধারণ: Q অপরিবর্তিত

মনে রাখার কৌশল: ক্লিয়ার সবচেয়ে আগে, তারপর লোড, তারপর এনাবল, সবশেষে গণনা। এই অগ্রাধিকার ক্রমে সিদ্ধান্ত নেওয়া হয়।

রিপল ক্যারি আউট (RCO)

RCO=ENT⋅QD⋅QC⋅QB⋅QA

RCO=১ হয় শুধুমাত্র যখন:

  • ENT=১ এবং
  • কাউন্টার সর্বোচ্চ অবস্থায় (1111=15)

এই RCO পরের কাউন্টারের ENT তে দেওয়া হলে একাধিক কাউন্টার জুড়ে বড় গণনা সম্ভব হয়।

দুটি ৭৪১৬৩ দিয়ে ৮-বিট কাউন্টার

প্রথম চিপের RCO দ্বিতীয় চিপের ENT ও ENP এ সংযুক্ত করলে ৮-বিট কাউন্টার তৈরি হয়:

  • গণনার পরিসর: ০ থেকে ২৫৫
  • প্রথম চিপ: নিম্ন চার বিট (Q3Q2Q1Q0)
  • দ্বিতীয় চিপ: উচ্চ চার বিট (Q7Q6Q5Q4)

৭৪১৬৩ দিয়ে মড-এন কাউন্টার

৭৪১৬৩ এর লোড সুবিধা কাজে লাগিয়ে যেকোনো মড তৈরি করা যায়।

মড-N কাউন্টারের জন্য লোড মান: 16−N

উদাহরণ: মড-১০ (বিডিসি) কাউন্টার:

  • লোড মান: 16−10=6 অর্থাৎ ABCD=0110
  • RCO আউটপুটকে LOAD‾ ইনপুটে সংযুক্ত করো (একটি নট গেটের মাধ্যমে)
  • যখন কাউন্টার ১৫ এ পৌঁছায়, RCO=১ হয়, যা LOAD‾=০ করে, এবং পরের ক্লকে ৬ লোড হয়

গণনার ধারা: 6→7→8→9→10→11→12→13→14→15→6→… (১০টি অবস্থা)

বিস্তারিত উদাহরণ

উদাহরণ ১: তিন-বিট উর্ধ্বগণনা কাউন্টারের ধাপে ধাপে সিমুলেশন

প্রাথমিক অবস্থা Q2Q1Q0=000। রাশি: J0=K0=১, J1=K1=Q0, J2=K2=Q1Q0।

ক্লক চক্র ১ এর আগে ইনপুট হিসাব:

J0=১,K0=১ (সবসময়)
J1=Q0=০,K1=Q0=০
J2=Q1⋅Q0=০⋅০=০,K2=০

ক্লক প্রয়োগের পরে:

  • FF0: J=১,K=১, তাই টগল হয়: Q0:০→১
  • FF1: J=০,K=০, তাই অপরিবর্তিত: Q1=০
  • FF2: J=০,K=০, তাই অপরিবর্তিত: Q2=০

নতুন অবস্থা: 001 ✓

ক্লক চক্র ২ এর আগে ইনপুট হিসাব (অবস্থা 001):

J1=Q0=১,K1=১
J2=Q1⋅Q0=০⋅১=০,K2=০

ক্লক প্রয়োগের পরে:

  • FF0: টগল: Q0:১→০
  • FF1: J=১,K=১, তাই টগল: Q1:০→১
  • FF2: অপরিবর্তিত: Q2=০

নতুন অবস্থা: 010 ✓

উদাহরণ ২: মড-৫ কাউন্টার রিসেট পদ্ধতিতে

তিন-বিট কাউন্টার দিয়ে মড-৫ তৈরি: ০, ১, ২, ৩, ৪, ০, ১, ২, ...

৫ = 101 বাইনারিতে। তাই রিসেট শর্ত:

Reset=Q2⋅Q0

(কারণ ৫ = 101 তে Q2=১ ও Q0=১)

মড-৫ কাউন্টারের গণনার ধারা
ক্লক Q2 Q1 Q0 দশমিক Reset=Q2Q0
০ ০ ০ ০ ০ ০
১ ০ ০ ১ ১ ০
২ ০ ১ ০ ২ ০
৩ ০ ১ ১ ৩ ০
৪ ১ ০ ০ ৪ ০
৫ ১ ০ ১ ৫ (ক্ষণস্থায়ী) ১ (রিসেট!)
পরে ০ ০ ০ ০ ফিরে আসে

উদাহরণ ৩: উর্ধ্ব-অধো কাউন্টারের হাতে-কলমে হিসাব

বর্তমান অবস্থা Q3Q2Q1Q0=0101=5। প্রথমে উর্ধ্বগণনা, তারপর অধোগণনা।

উর্ধ্বগণনা (U/D¯=১):

J0=K0=১, টগল: Q0:১→০
J1=Q0=১, টগল: Q1:০→১
J2=Q1Q0=০⋅১=০, অপরিবর্তিত: Q2=১
J3=Q2Q1Q0=০, অপরিবর্তিত: Q3=০

পরের অবস্থা: 0110=6 ✓ (5+1=6)

এখন অধোগণনা (U/D¯=০) থেকে একই অবস্থা 0101=5:

J1=Q0¯=১‾=০, অপরিবর্তিত: Q1=০
J0=K0=১, টগল: Q0:১→০

বিস্তারিত: J2=Q1¯Q0¯=০‾⋅১‾=১⋅০=০

পরের অবস্থা: 0100=4 ✓ (5−1=4)

উদাহরণ ৪: ৭৪১৬৩ দিয়ে মড-১২ কাউন্টার

১২ ঘন্টার ঘড়ির ঘন্টা কাউন্টার তৈরি করতে হবে। মড-১২ কাউন্টার: ১ থেকে ১২ পর্যন্ত গণনা।

পদ্ধতি: ৭৪১৬৩ চিপে প্রিলোড পদ্ধতি ব্যবহার।

লোড মান: 16−12=4 অর্থাৎ ABCD=0100

কার্যক্রম:

  • চিপ ৪ থেকে গণনা শুরু করে ১৫ পর্যন্ত যায়
  • ১৫ এ RCO=১ হয়
  • পরের ক্লকে ৪ আবার লোড হয়

গণনার ধারা: 4→5→6→7→8→9→10→11→12→13→14→15→4→… (১২টি অবস্থা)

ঘড়ির জন্য ১ থেকে ১২ পেতে আরেকটি রূপান্তর সার্কিট দরকার, তবে মড-১২ গণনার ভিত্তি হিসেবে এটি সঠিক।

উদাহরণ ৫: সক্রিয়করণ সংকেত ব্যবহার করে দুটি কাউন্টার জোড়া লাগানো

দুটি ৪-বিট কাউন্টার জুড়ে ৮-বিট কাউন্টার তৈরি (০ থেকে ২৫৫)।

প্রথম কাউন্টার (নিম্ন বাইট):

  • সবসময় গণনা করে (EN=১)
  • ক্যারি আউট = Q3Q2Q1Q0=1111=15 হলে ১

দ্বিতীয় কাউন্টার (উচ্চ বাইট):

  • শুধুমাত্র যখন প্রথম কাউন্টারের ক্যারি আউট = ১ তখন গণনা করে
৮-বিট কাউন্টারের নির্বাচিত অবস্থা
দশমিক উচ্চ কাউন্টার নিম্ন কাউন্টার ক্যারি আউট
০ 0000 0000 ০
১৫ 0000 1111 ১
১৬ 0001 0000 ০
২৫৫ 1111 1111 ১
২৫৬ (=০) 0000 0000 ০

ক্যারি আউট ১ হওয়া মানে উচ্চ কাউন্টারের সক্রিয়করণ সংকেত দেওয়া, ফলে উচ্চ কাউন্টার একধাপ বাড়ে।

অনুশীলনী

সহজ স্তর:

১. তিন-বিট উর্ধ্বগণনা কাউন্টারে বর্তমান অবস্থা Q2Q1Q0=011। পরের দুটি অবস্থা কী হবে?

২. তিন-বিট অধোগণনা কাউন্টার বর্তমানে Q2Q1Q0=010 অবস্থায় আছে। পরের দুটি অবস্থা কী হবে?

৩. চার-বিট উর্ধ্বগণনা কাউন্টারে J3=K3 এর রাশি কী?

৪. বিডিসি কাউন্টারে কোন অবস্থায় রিসেট হয় এবং রিসেট শর্তের বুলিয়ান রাশি কী?

মধ্যম স্তর:

৫. একটি মড-৭ কাউন্টার তৈরি করতে হবে তিন-বিটের কাউন্টার দিয়ে। রিসেট শর্তের রাশি বের করো এবং সম্পূর্ণ গণনার ধারা দেখাও।

৬. উর্ধ্ব-অধো কাউন্টারে বর্তমান অবস্থা Q3Q2Q1Q0=1000=8। U/D¯=০ (অধোগণনা) হলে পরের অবস্থা কী হবে? রাশি ব্যবহার করে ধাপে ধাপে হিসাব দেখাও।

৭. সক্রিয়করণ ইনপুটসহ চার-বিট কাউন্টারে EN=০ হলে কাউন্টার কী করবে? কোন পরিস্থিতিতে এটি কার্যকর?

৮. ৭৪১৬৩ চিপে RCO কখন ১ হয়? এর বুলিয়ান রাশি লেখো এবং কাউন্টার ক্যাসকেডে এর ভূমিকা ব্যাখ্যা করো।

কঠিন স্তর:

৯. ৭৪১৬৩ চিপ ব্যবহার করে মড-৯ কাউন্টার তৈরি করতে হবে। প্রিলোড পদ্ধতিতে লোড মান নির্ণয় করো, সংযোগ বিবরণ দাও এবং গণনার সম্পূর্ণ ধারা লেখো।

১০. দুটি তিন-বিট সিনক্রোনাস কাউন্টার জুড়ে ৬-বিট কাউন্টার তৈরি করতে হবে (০ থেকে ৬৩ পর্যন্ত)। প্রথম কাউন্টারের ক্যারি শর্ত কী হবে এবং দ্বিতীয় কাউন্টারের সংযোগ কীভাবে করবে? প্রথম কাউন্টারের ক্যারি আউট রাশি লেখো।


উত্তর:

১. বর্তমান অবস্থা 011=3। পরের অবস্থা:

  • ৪র্থ চক্র: 011→100 (মান: ৩ থেকে ৪)
  • ৫ম চক্র: 100→101 (মান: ৪ থেকে ৫)

২. বর্তমান অবস্থা 010=2। অধোগণনা:

  • 010→001 (মান: ২ থেকে ১)
  • 001→000 (মান: ১ থেকে ০)

৩. চার-বিটের উর্ধ্বগণনা কাউন্টারে:

J3=K3=Q2Q1Q0

৪. বিডিসি কাউন্টার 1010=10 অবস্থায় রিসেট হয়। রিসেট শর্ত:

Reset=Q3⋅Q1

কারণ ১০ = 1010 তে Q3=১ ও Q1=১ প্রথমবার একসাথে ১ হয়।

৫. মড-৭ কাউন্টার: ০, ১, ২, ৩, ৪, ৫, ৬, ০, ১, ...

৭ = 111। রিসেট শর্ত:

Reset=Q2⋅Q1⋅Q0

গণনার ধারা: 000→001→010→011→100→101→110→111 (ক্ষণস্থায়ী, রিসেট) →000

৬. বর্তমান অবস্থা 1000=8, অধোগণনা (U/D¯=০):

J0=K0=১, টগল: Q0:০→১
J1=Q0¯=০‾=১,K1=১, টগল: Q1:০→১
J2=Q1¯Q0¯=০‾⋅০‾=১,K2=১, টগল: Q2:০→১
J3=Q2¯Q1¯Q0¯=১⋅০⋅০=০,K3=০, অপরিবর্তিত: Q3=১

পরের অবস্থা: 1111→0111=7।

আরে না! পুনরায় হিসাব: Q3 এ J=Q2¯Q1¯Q0¯=০‾⋅০‾⋅০‾=১ কিন্তু বর্তমানে Q2Q1Q0=০০০ এবং Q3=১।

তাই: J3=K3=১, টগল: Q3:১→০।

পরের অবস্থা: Q3Q2Q1Q0=0111=7 ✓ (8−1=7)

৭. EN=০ হলে সব জেকে ইনপুটে ০ যায় (J=K=০), ফলে ক্লক এলেও কোনো ফ্লিপ-ফ্লপ পরিবর্তন হয় না এবং কাউন্টার বর্তমান অবস্থায় থেকে যায়।

ব্যবহারিক ক্ষেত্র: একাধিক কাউন্টার জোড়া লাগানোতে (প্রথম কাউন্টারের ক্যারি না আসা পর্যন্ত দ্বিতীয় কাউন্টার থামানো), অথবা নির্দিষ্ট সময়ে গণনা সাময়িক বিরতিতে রাখা।

৮. RCO=ENT⋅QD⋅QC⋅QB⋅QA

RCO=১ হয় যখন ENT=১ এবং কাউন্টার ১৫ (1111) এ থাকে।

ক্যাসকেডে ভূমিকা: প্রথম চিপের RCO দ্বিতীয় চিপের ENT (ও ENP) তে সংযুক্ত হলে, প্রথম চিপ ১৫ পেরোলেই দ্বিতীয় চিপ একধাপ বাড়ে। এভাবে দুটি ৪-বিট কাউন্টার মিলে ৮-বিট (০-২৫৫) গণনা করতে পারে।

৯. মড-৯ কাউন্টার, প্রিলোড পদ্ধতি:

লোড মান: 16−9=7 অর্থাৎ ABCD=0111

সংযোগ:

  • A=০,B=C=D=১ (ইনপুটে স্থায়ীভাবে)
  • RCO→LOAD‾ সংযোগ (নট গেটের মাধ্যমে)

গণনার ধারা: 7→8→9→10→11→12→13→14→15→7→… (৯টি অবস্থা)

১০. প্রথম তিন-বিট কাউন্টারের ক্যারি আউট শর্ত:

C1=Q2⋅Q1⋅Q0

এটি ১ হয় শুধুমাত্র যখন প্রথম কাউন্টার ৭ (111) অবস্থায় থাকে।

দ্বিতীয় কাউন্টারের সক্রিয়করণ ইনপুট: EN2=C1=Q2Q1Q0

অর্থাৎ প্রথম কাউন্টার যখন ৭ থেকে ০ তে যায় (রোলওভার), তখনই দ্বিতীয় কাউন্টার একধাপ এগোয়। এভাবে মোট ৬৪টি অবস্থা গণনা করা যায়।

বিশেষ কাউন্টার ও আধুনিক প্রয়োগ

আগের দুটো ভাগে আমরা সিনক্রোনাস কাউন্টারের মূল ধারণা শিখেছিলাম: কীভাবে জেকে ফ্লিপ-ফ্লপ দিয়ে উর্ধ্বগামী ও নিম্নগামী কাউন্টার তৈরি হয়, কীভাবে মডুলো-N কাউন্টার ডিজাইন করতে হয়, এবং কীভাবে সত্যক সারণী থেকে উত্তেজনা সমীকরণ বের করতে হয়। এই শেষ ভাগে আমরা কিছু বিশেষ ধরনের কাউন্টার দেখব যেগুলো চিরাচরিত বাইনারি গণনা না করে ভিন্নভাবে কাজ করে, এবং দেখব আধুনিক প্রযুক্তিতে এগুলো কোথায় কোথায় কাজে লাগছে।

ক. রিং কাউন্টার

চাকার উপমা

একটা চাকায় চারটা ঘোড়া আঁকা আছে। চাকা ঘুরলে একটার পর একটা ঘোড়া সামনে আসে। কিন্তু চাকায় মাত্র একটাই লাল ঘোড়া আছে, বাকি তিনটা সাদা। প্রতিটা ধাপে সেই লাল ঘোড়াটা পরের ঘরে চলে যায়।

এটাই রিং কাউন্টার। কাউন্টারে মাত্র একটা বিট ১ থাকে, বাকি সব ০। প্রতিটা ক্লকে সেই ১ বিটটা পরের ফ্লিপ-ফ্লপে সরে যায়। শেষ ফ্লিপ-ফ্লপ থেকে সরে আবার প্রথমে ফেরে।

রিং কাউন্টারের গঠন

nটি ডি ফ্লিপ-ফ্লপ শ্রেণিতে সাজানো হয়। প্রতিটির আউটপুট Q পরেরটির ইনপুট D-এ যায়। শেষেরটির আউটপুট প্রথমটির ইনপুটে ফেরে। এতে একটি বন্ধ চক্র তৈরি হয়।

শুরুতে প্রিসেট করে কেবল প্রথম ফ্লিপ-ফ্লপে ১ রাখা হয়, বাকি সব ০।

চার-বিট রিং কাউন্টারের অবস্থা সারণী

চার-বিট রিং কাউন্টারের অবস্থা পরিবর্তন
ক্লক Q0 Q1 Q2 Q3 কোথায় আছে ১ ব্যাখ্যা
০ ১ ০ ০ ০ Q0-তে শুরু, ১ প্রথম ঘরে
১ ০ ১ ০ ০ Q1-তে ১ দ্বিতীয় ঘরে সরল
২ ০ ০ ১ ০ Q2-তে ১ তৃতীয় ঘরে সরল
৩ ০ ০ ০ ১ Q3-তে ১ চতুর্থ ঘরে সরল
৪ ১ ০ ০ ০ Q0-তে ১ আবার প্রথমে ফিরল

মডুলো = n = ফ্লিপ-ফ্লপের সংখ্যা। চার-বিট রিং কাউন্টার মডুলো-৪।

রিং কাউন্টারের বৈশিষ্ট্য

রিং কাউন্টারের বৈশিষ্ট্য
বৈশিষ্ট্য বিবরণ
মডুলো ফ্লিপ-ফ্লপের সংখ্যার সমান, N=n
ফ্লিপ-ফ্লপ প্রয়োজন মডুলো-N-এর জন্য ঠিক Nটি (সাধারণ কাউন্টারে ⌈log2N⌉টি)
ডিকোডার লাগে না প্রতিটি Q সরাসরি একটি অবস্থার নির্দেশক
গ্লিচমুক্ত কেবল একটি বিট পরিবর্তন হয়, তাই ভুল অবস্থা নেই
দ্রুত প্রতিটি ক্লকে কেবল একটি ফ্লিপ-ফ্লপ পরিবর্তিত হয়
অপচয় n বিটে মাত্র nটি অবস্থা, অথচ ২nটি সম্ভব

রিং কাউন্টারের উত্তেজনা সমীকরণ

ডি ফ্লিপ-ফ্লপে D=Qnext, তাই:

D0=Q3 (শেষেরটার আউটপুট প্রথমটার ইনপুটে)
D1=Q0
D2=Q1
D3=Q2

এত সহজ সমীকরণ আর কোনো কাউন্টারে নেই। কোনো গেট লাগে না, শুধু তার দিয়ে সংযোগ।

রিং কাউন্টারের ব্যবহার

রিং কাউন্টার সবচেয়ে বেশি ব্যবহার হয় যখন একটার পর একটা কাজ করাতে হয়। যেমন একটা কারখানায় চারটা যন্ত্র পালাক্রমে চালু হবে। রিং কাউন্টারের প্রতিটি আউটপুট সরাসরি একটা যন্ত্রের চালু/বন্ধ সংকেত। কোনো ডিকোডার লাগে না।

আরো উদাহরণ: মাল্টিপ্লেক্সারের নিয়ন্ত্রণ, এলইডি সিকোয়েন্সার (একের পর এক আলো জ্বলা), ডিজিটাল ঘড়ির সময় প্রদর্শন নিয়ন্ত্রণ।

খ. জনসন কাউন্টার

টুইস্টেড রিং-এর উপমা

আগের রিং কাউন্টারে শেষেরটার Q প্রথমটার D-এ যেত। জনসন কাউন্টারে একটাই পরিবর্তন: শেষেরটার Q‾ (পরিপূরক আউটপুট) প্রথমটার D-এ যায়।

এই একটা মোচড়ের কারণেই এটাকে বলা হয় টুইস্টেড রিং কাউন্টার বা মোবিয়াস কাউন্টার।

ফলাফল চমকপ্রদ: nটি ফ্লিপ-ফ্লপে 2nটি অবস্থা। রিং কাউন্টারের দ্বিগুণ।

চার-বিট জনসন কাউন্টারের অবস্থা সারণী

শুরুর অবস্থা: সব ফ্লিপ-ফ্লপে ০।

চার-বিট জনসন কাউন্টারের সম্পূর্ণ অবস্থা সারণী
ক্লক Q3 Q2 Q1 Q0 পরবর্তী D0=Q3‾ ব্যাখ্যা
০ ০ ০ ০ ০ ১ সব শূন্য, পরের D0 হবে ১
১ ০ ০ ০ ১ ১ ১ ঢুকল
২ ০ ০ ১ ১ ১ ১ আরো ছড়াল
৩ ০ ১ ১ ১ ১ ১ আরো ছড়াল
৪ ১ ১ ১ ১ ০ সব ১, পরের D0 হবে ০
৫ ১ ১ ১ ০ ০ ০ ঢুকছে
৬ ১ ১ ০ ০ ০ ০ ছড়াচ্ছে
৭ ১ ০ ০ ০ ০ ০ আরো ছড়াল
৮ ০ ০ ০ ০ ১ আবার শুরুতে ফিরল

মোট অবস্থা = 2×4=8। মডুলো-৮ কাউন্টার।

জনসন কাউন্টারের উত্তেজনা সমীকরণ

D0=Qn−1‾ (শেষেরটার পরিপূরক প্রথমটায়)
D1=Q0
D2=Q1
D3=Q2

মাত্র একটি নট গেট বাড়তি লাগে, কিন্তু অবস্থার সংখ্যা দ্বিগুণ।

জনসন কাউন্টার থেকে ডিকোডিং

জনসন কাউন্টারের চমৎকার বৈশিষ্ট্য হলো প্রতিটি অবস্থা মাত্র দুটি বিট দেখে চেনা যায়।

চার-বিট জনসন কাউন্টারের ডিকোডিং
অবস্থা Q3Q2Q1Q0 ডিকোডিং রাশি ব্যাখ্যা
০ ০০০০ Q3‾⋅Q0‾ Q3=০ এবং Q0=০
১ ০০০১ Q3‾⋅Q0 Q3=০ এবং Q0=১
২ ০০১১ Q2‾⋅Q1 Q2=০ এবং Q1=১
৩ ০১১১ Q3‾⋅Q2 Q3=০ এবং Q2=১
৪ ১১১১ Q3⋅Q0 Q3=১ এবং Q0=১
৫ ১১১০ Q3⋅Q0‾ Q3=১ এবং Q0=০
৬ ১১০০ Q2⋅Q1‾ Q2=১ এবং Q1=০
৭ ১০০০ Q3⋅Q2‾ Q3=১ এবং Q2=০

প্রতিটি অবস্থা চেনা যায় মাত্র একটি দুই-ইনপুটের অ্যান্ড গেট দিয়ে।

জনসন কাউন্টার দিয়ে বিষম মডুলো

তিন-বিট জনসন কাউন্টার: মডুলো-৬। পাঁচ-বিট জনসন কাউন্টার: মডুলো-১০।

মডুলো-১০ জনসন কাউন্টার বিশেষভাবে কার্যকর কারণ এটি দশমিক গণনার জন্য সরাসরি ব্যবহারযোগ্য, এবং ডিকোডিং অত্যন্ত সহজ।

জনসন কাউন্টারের বিভিন্ন আকার
ফ্লিপ-ফ্লপ সংখ্যা (n) মডুলো (2n) ব্যবহার
২ ৪ চার-ধাপের ক্রম
৩ ৬ ষড়ভুজ প্যাটার্ন, মডুলো-৬
৪ ৮ অষ্টধাপের ক্রম
৫ ১০ দশমিক কাউন্টার
৬ ১২ ১২ ধাপের ক্রম

গ. গ্রে কোড কাউন্টার

একবারে এক পদক্ষেপের উপমা

ধরো তুমি একটা পর্বত বেয়ে উঠছ। প্রতিটি পদক্ষেপে তুমি একটিমাত্র পা সামনে রাখো, কখনো দুটো পা একসাথে তোলো না। এতে পড়ে যাওয়ার ভয় কম।

গ্রে কোডে ঠিক এটাই হয়। একটি অবস্থা থেকে পরের অবস্থায় যেতে মাত্র একটি বিট পরিবর্তন হয়। সাধারণ বাইনারিতে ৭ (০১১১) থেকে ৮ (১০০০)-এ যেতে চারটি বিট একসাথে পরিবর্তন হয়। কিন্তু গ্রে কোডে ৭ থেকে ৮-এ যেতে মাত্র একটি বিট পরিবর্তন।

বাইনারি থেকে গ্রে কোড রূপান্তর

বাইনারি সংখ্যা B=Bn−1Bn−2⋯B1B0 থেকে গ্রে কোড G=Gn−1Gn−2⋯G1G0:

Gn−1=Bn−1
Gi=Bi+1⊕Bi (বাকি সব বিটের জন্য)
বাইনারি ও গ্রে কোডের তুলনা (৪ বিট)
দশমিক বাইনারি গ্রে কোড পরিবর্তিত বিট (গ্রেতে)
০ ০০০০ ০০০০ শুরু
১ ০০০১ ০০০১ G0
২ ০০১০ ০০১১ G1
৩ ০০১১ ০০১০ G0
৪ ০১০০ ০১১০ G2
৫ ০১০১ ০১১১ G0
৬ ০১১০ ০১০১ G1
৭ ০১১১ ০১০০ G0
৮ ১০০০ ১১০০ G3
৯ ১০০১ ১১০১ G0
১০ ১০১০ ১১১১ G1
১১ ১০১১ ১১১০ G0
১২ ১১০০ ১০১০ G2
১৩ ১১০১ ১০১১ G0
১৪ ১১১০ ১০০১ G1
১৫ ১১১১ ১০০০ G0

লক্ষ করো: গ্রে কোডের প্রতিটি সারিতে ঠিক একটিমাত্র বিট পরিবর্তন হয়েছে।

গ্রে কোড কাউন্টারের উত্তেজনা সমীকরণ

গ্রে কোড কাউন্টারে জেকে ফ্লিপ-ফ্লপ ব্যবহার করা হয়। সত্যক সারণী বিশ্লেষণ করে কার্নো মানচিত্র দিয়ে সমীকরণ বের করতে হয়।

৩-বিট গ্রে কোড কাউন্টারের উত্তেজনা সমীকরণ:

J2=Q1⋅Q0‾,K2=Q1⋅Q0‾
J1=Q2‾⋅Q0‾,K1=Q2‾⋅Q0‾
J0=Q2‾,K0=Q2

গ্রে কোড কাউন্টারের ব্যবহার

গ্রে কোড কাউন্টার সবচেয়ে বেশি প্রয়োজন যেখানে গ্লিচ বিপজ্জনক। যেমন শিল্প যন্ত্রপাতির অবস্থান পরিমাপে, রোটারি এনকোডারে যেখানে কোনো মুহূর্তের ভুল পাঠ ক্ষতিকর হতে পারে।

রোটারি এনকোডার: একটা ঘূর্ণনশীল শ্যাফটের কোণ পরিমাপের যন্ত্র। গ্রে কোড ব্যবহার করলে শ্যাফট একটু ঘুরলে মাত্র একটি বিট পরিবর্তন হয়, তাই পড়ার ভুল নেই।

ঘ. ফিনিট স্টেট মেশিন হিসেবে কাউন্টার

ফিনিট স্টেট মেশিন কী?

রেলগাড়ির টিকিট মেশিনের উদাহরণ নাও। মেশিনটি কিছু নির্দিষ্ট অবস্থায় থাকতে পারে: অপেক্ষারত, টাকা নেওয়া হয়েছে, টিকিট দেওয়া হচ্ছে, ভাংতি ফেরত দেওয়া হচ্ছে। প্রতিটি অবস্থায় নির্দিষ্ট ইনপুটে নির্দিষ্ট পরবর্তী অবস্থায় যায়।

এই ধরনের ব্যবস্থাকে বলা হয় ফিনিট স্টেট মেশিন বা সীমিত অবস্থা যন্ত্র। "ফিনিট" মানে সীমিত। অবস্থার সংখ্যা সীমিত এবং পূর্বনির্ধারিত।

কাউন্টার একটি ফিনিট স্টেট মেশিন

একটি কাউন্টারও একটি ফিনিট স্টেট মেশিন। কারণ:

  • সীমিত সংখ্যক অবস্থা আছে (মডুলো-N কাউন্টারে Nটি)।
  • প্রতিটি অবস্থা থেকে পরবর্তী অবস্থা নির্ধারিত।
  • বর্তমান অবস্থা ফ্লিপ-ফ্লপে সংরক্ষিত।

মুর মেশিন বনাম মিলি মেশিন

ফিনিট স্টেট মেশিনের দুটি প্রকার আছে।

মুর মেশিনে আউটপুট শুধু বর্তমান অবস্থার উপর নির্ভর করে, ইনপুটের উপর নয়। সাধারণ কাউন্টার মুর মেশিনের উদাহরণ।

মিলি মেশিনে আউটপুট বর্তমান অবস্থা এবং বর্তমান ইনপুট উভয়ের উপর নির্ভর করে।

মুর ও মিলি মেশিনের তুলনা
বৈশিষ্ট্য মুর মেশিন মিলি মেশিন
আউটপুট নির্ভর করে শুধু বর্তমান অবস্থার উপর অবস্থা ও ইনপুট উভয়ের উপর
সাড়া দেওয়ার গতি একটু ধীর (পরের ক্লকে) দ্রুত (তাৎক্ষণিক)
সরলতা বেশি সহজ একটু জটিল
গ্লিচ ঝুঁকি কম বেশি
কাউন্টার উদাহরণ সাধারণ সিনক্রোনাস কাউন্টার লোডযোগ্য কাউন্টার

অবস্থা চিত্র

ফিনিট স্টেট মেশিন বোঝার সহজ উপায় হলো অবস্থা চিত্র।

মডুলো-৪ উর্ধ্বগামী কাউন্টারের অবস্থা চিত্র:

   ক্লক           ক্লক
 S0(00) -----> S1(01) -----> S2(10)
   ^                              |
   |           ক্লক               | ক্লক
   +------ S3(11) <--------------+

প্রতিটি বৃত্ত একটি অবস্থা, তীর দেখায় কোন ক্লকে কোথায় যায়।

ফিনিট স্টেট মেশিন ডিজাইনের ধাপ

যেকোনো ক্রমিক সার্কিট ডিজাইনের সাধারণ পদ্ধতি:

ধাপ ১: সমস্যা বিশ্লেষণ করে অবস্থার তালিকা তৈরি করো। ধাপ ২: অবস্থা চিত্র আঁকো। ধাপ ৩: অবস্থা সারণী তৈরি করো। ধাপ ৪: প্রতিটি অবস্থাকে বাইনারি কোড দাও। ধাপ ৫: উত্তেজনা সারণী তৈরি করো। ধাপ ৬: কার্নো মানচিত্র দিয়ে সমীকরণ বের করো। ধাপ ৭: সার্কিট তৈরি করো।

ঙ. কাউন্টার দিয়ে কম্পাঙ্ক বিভাজক

রেডিও স্টেশনের উপমা

একটি রেডিও স্টেশন ৯৮.৫ মেগাহার্টজে সম্প্রচার করে। কিন্তু স্টুডিওতে একটা মাত্র ১০ মেগাহার্টজের স্ফটিক দোলক আছে। কীভাবে ৯৮.৫ মেগাহার্টজ তৈরি করবে?

উত্তর হলো ফেজ লকড লুপ এবং কম্পাঙ্ক বিভাজক। কিন্তু সহজ ক্ষেত্রে শুধু কাউন্টার দিয়েই কম্পাঙ্ক ভাগ করা যায়।

কম্পাঙ্ক বিভাজনের নীতি

মডুলো-N কাউন্টার ইনপুট কম্পাঙ্ককে N দিয়ে ভাগ করে।

fout=finN

সিনক্রোনাস কাউন্টারে এই বিভাজন অত্যন্ত নির্ভুল কারণ সব ফ্লিপ-ফ্লপ একই ক্লকে পরিবর্তিত হয়।

কর্তব্যচক্র

n-বিট সিনক্রোনাস বাইনারি কাউন্টারের সর্বোচ্চ বিট Qn−1-এর কর্তব্যচক্র ঠিক ৫০%, কারণ:

  • মোট মডুলো-2n অবস্থার অর্ধেকে Qn−1=০।
  • বাকি অর্ধেকে Qn−1=১।

কিন্তু সাধারণ মডুলো-N কাউন্টারে (যেখানে N বিজোড় বা 2-এর ঘাত নয়) কর্তব্যচক্র ৫০% নাও হতে পারে।

বিভিন্ন মডুলো কাউন্টারে কর্তব্যচক্র
মডুলো আউটপুট বিট উচ্চ অবস্থা কর্তব্যচক্র
২ Q0 ১ টি ৫০%
৪ Q1 ২ টি ৫০%
৮ Q2 ৪ টি ৫০%
৬ Q2 ২ টি ৩৩.৩%
১০ Q3 ৪ টি ৪০%
১২ Q3 ৪ টি ৫০% (বিশেষ ক্ষেত্র)

৫০% কর্তব্যচক্র তৈরির কৌশল

বিজোড় মডুলোর কাউন্টারে ৫০% কর্তব্যচক্র পেতে একটি কৌশল: মডুলো-N কাউন্টারে উর্ধ্বগামী এবং নিম্নগামী উভয় প্রান্তে ফ্লিপ করো।

মডুলো-৫ কাউন্টার থেকে ৫০% কর্তব্যচক্রের কম্পাঙ্ক তৈরি: দুটি মডুলো-৫ কাউন্টার ব্যবহার করো, একটি ক্লকের উর্ধ্বগামী প্রান্তে, একটি নামতি প্রান্তে। তারপর উভয়ের আউটপুট অর গেটে দাও।

চ. ডিজিটাল ঘড়ি: সম্পূর্ণ সিনক্রোনাস ডিজাইন

অ্যাসিনক্রোনাস ঘড়ির সমস্যা

আগের ভাগে আমরা দেখেছিলাম অ্যাসিনক্রোনাস কাউন্টার দিয়ে ঘড়ি তৈরি হয়। কিন্তু সেই ঘড়িতে জমানো বিলম্বের কারণে প্রদর্শনে ক্ষণিকের ভুল সংখ্যা দেখা দিতে পারে।

সিনক্রোনাস কাউন্টার দিয়ে ঘড়ি তৈরি করলে এই সমস্যা নেই।

সিনক্রোনাস ঘড়ির ব্লক চিত্র

স্ফটিক দোলক (৩২.৭৬৮ kHz)

       |
       v

সিনক্রোনাস কম্পাঙ্ক বিভাজক (÷ ৩২৭৬৮)

       |
       v

১ Hz সক্রিয়করণ সংকেত (প্রতি সেকেন্ডে একবার)

       |
   +---+---+
   |       |
   v       v

সেকেন্ড কাউন্টার মিনিট কাউন্টার ঘণ্টা কাউন্টার (মডুলো-৬০) (মডুলো-৬০) (মডুলো-১২/২৪)

   |               |                   |
   v               v                   v

বিসিডি ডিকোডার বিসিডি ডিকোডার বিসিডি ডিকোডার

   |               |                   |
   v               v                   v

সাত-খণ্ড প্রদর্শক সাত-খণ্ড প্রদর্শক সাত-খণ্ড প্রদর্শক

সিনক্রোনাস সক্রিয়করণ সংকেত

সিনক্রোনাস ঘড়িতে সব কাউন্টার একই ক্লকে চলে। কিন্তু মিনিট কাউন্টার প্রতি সেকেন্ডে না বেড়ে প্রতি ৬০ সেকেন্ডে বাড়ে।

এটি করা হয় সক্রিয়করণ সংকেত দিয়ে:

  • সেকেন্ড কাউন্টার প্রতি ক্লকে বাড়ে (সক্রিয়করণ সংকেত সবসময় ১)।
  • মিনিট কাউন্টার বাড়ে শুধু যখন সেকেন্ড কাউন্টার ৫৯ থেকে ০-তে ফেরে।
  • ঘণ্টা কাউন্টার বাড়ে শুধু যখন মিনিট কাউন্টার ৫৯ থেকে ০-তে ফেরে।

এই সক্রিয়করণ সংকেতটি সেকেন্ড কাউন্টারের সমস্ত বিটের অ্যান্ড গেট দিয়ে তৈরি:

ENmin=Qs5⋅Qs4⋅Qs3⋅Qs2⋅Qs1⋅Qs0

অর্থাৎ সেকেন্ড কাউন্টার ৫৯ (বাইনারিতে ১১১০১১ বিসিডিতে) হলে এই সংকেত ১ হয়, এবং পরের ক্লকে মিনিট কাউন্টার বাড়ে।

অ্যালার্ম সার্কিট

ডিজিটাল অ্যালার্ম ঘড়িতে একটি তুলনাকারী সার্কিট থাকে যেটা বর্তমান সময় এবং নির্ধারিত অ্যালার্ম সময় তুলনা করে।

বর্তমান ঘণ্টা = অ্যালার্ম ঘণ্টা এবং বর্তমান মিনিট = অ্যালার্ম মিনিট হলে অ্যালার্ম বাজে।

এই তুলনা এক্স-নর গেট দিয়ে করা হয়। প্রতিটি বিট জোড়ায় এক্স-নর করো, তারপর সব এক্স-নরের আউটপুট অ্যান্ড গেটে দাও।

ছ. আধুনিক প্রয়োগ

ডিজিটাল যোগাযোগে কাউন্টার

আধুনিক যোগাযোগ ব্যবস্থায় সিনক্রোনাস কাউন্টার অপরিহার্য।

ইউএসবি যোগাযোগে: ডেটা প্যাকেটের ক্রম সংখ্যা রাখতে কাউন্টার ব্যবহার হয়। প্রতিটি প্যাকেটের সাথে একটি ক্রম সংখ্যা পাঠানো হয় যাতে গ্রাহক বুঝতে পারে কোনো প্যাকেট মাঝপথে হারিয়ে গেছে কিনা।

ইথারনেটে: নেটওয়ার্ক কার্ডে কাউন্টার দিয়ে পাঠানো ও পাওয়া প্যাকেটের সংখ্যা গণনা হয়।

মাইক্রোপ্রসেসরে প্রোগ্রাম কাউন্টার

প্রোগ্রাম কাউন্টার হলো মাইক্রোপ্রসেসরের একটি বিশেষ রেজিস্টার যেটা পরবর্তী নির্দেশের মেমরি ঠিকানা ধরে রাখে।

  • সাধারণ নির্দেশের পর: প্রোগ্রাম কাউন্টার ১ বাড়ে (একটি সিনক্রোনাস উর্ধ্বগামী কাউন্টার)।
  • জাম্প নির্দেশে: প্রোগ্রাম কাউন্টারে একটি নতুন মান লোড হয়।
  • ফাংশন কলে: বর্তমান মান স্ট্যাকে সংরক্ষিত হয়, নতুন মান লোড হয়।

প্রোগ্রাম কাউন্টার আসলে একটি লোডযোগ্য সিনক্রোনাস কাউন্টার।

সিডিডিআর মেমরিতে কাউন্টার

আধুনিক কম্পিউটারের র‍্যাম চিপে বার্স্ট মোডে একাধিক মেমরি ঘর পর পর পড়তে স্বয়ংক্রিয় ঠিকানা বৃদ্ধির জন্য সিনক্রোনাস কাউন্টার ব্যবহার হয়।

পিডব্লিউএম সংকেত তৈরি

পালস প্রস্থ পরিবর্তন সংকেত তৈরিতে কাউন্টার ব্যবহার হয়। একটি কাউন্টারের আউটপুট একটি তুলনাকারীতে দেওয়া হয়। যখন কাউন্টার মান একটি নির্দিষ্ট থ্রেশহোল্ডের নিচে থাকে আউটপুট উচ্চ, উপরে থাকলে নিম্ন।

এই পদ্ধতিতে মোটরের গতি, এলইডির উজ্জ্বলতা, এবং অডিও সংকেত নিয়ন্ত্রণ করা যায়।

সফটওয়্যার নির্ভর কাউন্টার

আধুনিক ফিল্ড প্রোগ্রামেবল গেট অ্যারেতে যেকোনো ধরনের কাউন্টার সফটওয়্যার দিয়ে প্রোগ্রাম করা যায়। হার্ডওয়্যার বর্ণনা ভাষায় মাত্র কয়েক লাইনে একটি পূর্ণ কাউন্টার লেখা যায়।

জ. অধ্যায়ের সারসংক্ষেপ

গুরুত্বপূর্ণ সূত্র ও নিয়ম

সিনক্রোনাস কাউন্টারের গুরুত্বপূর্ণ সূত্র
বিষয় সূত্র ব্যাখ্যা
বিট সংখ্যা থেকে মডুলো N=২n nটি ফ্লিপ-ফ্লপে সর্বোচ্চ 2n অবস্থা
মডুলো থেকে বিট সংখ্যা n=⌈log2N⌉ মডুলো-N-এ কমপক্ষে এতটা ফ্লিপ-ফ্লপ
রিং কাউন্টারের মডুলো N=n ফ্লিপ-ফ্লপের সংখ্যাই মডুলো
জনসন কাউন্টারের মডুলো N=2n ফ্লিপ-ফ্লপের দ্বিগুণ মডুলো
কম্পাঙ্ক বিভাজন fout=finN মডুলো-N কাউন্টার কম্পাঙ্ক N-এ ভাগ করে
জেকে ফ্লিপ-ফ্লপ টগল J=K=১ হলে টগল উভয়ে ১ দিলে অবস্থা উল্টে যায়
উর্ধ্বগামী সর্বনিম্ন বিট J0=K0=১ সর্বনিম্ন বিট সবসময় টগল করে
বাইনারি থেকে গ্রে Gi=Bi+1⊕Bi পাশের দুটি বাইনারি বিটের এক্স-অর
সর্বোচ্চ বিটের কর্তব্যচক্র (2n মডুলোতে) D=50% ঠিক অর্ধেক সময় উচ্চ থাকে
মডুলো-N রিসেট শর্ত গণনা = N হলে রিসেট N-এর বাইনারি রূপে ১-বিটগুলোর অ্যান্ড

পরিভাষার তালিকা

সম্পূর্ণ পরিভাষার তালিকা
পরিভাষা সংজ্ঞা
সিনক্রোনাস কাউন্টার সব ফ্লিপ-ফ্লপ একই ক্লক পায়, সব একসাথে পরিবর্তিত হয়
রিং কাউন্টার একটিমাত্র ১ বিট ঘুরতে থাকে, মডুলো = ফ্লিপ-ফ্লপ সংখ্যা
জনসন কাউন্টার টুইস্টেড রিং, শেষেরটার পরিপূরক আউটপুট প্রথমটার ইনপুটে, মডুলো = ২ × ফ্লিপ-ফ্লপ
গ্রে কোড পরপর দুটো অবস্থার মধ্যে মাত্র একটি বিট পরিবর্তন হয়
ফিনিট স্টেট মেশিন সীমিত সংখ্যক অবস্থাবিশিষ্ট ক্রমিক সার্কিট
মুর মেশিন আউটপুট শুধু বর্তমান অবস্থার উপর নির্ভর করে
মিলি মেশিন আউটপুট বর্তমান অবস্থা ও ইনপুট উভয়ের উপর নির্ভর করে
উত্তেজনা সমীকরণ ফ্লিপ-ফ্লপের ইনপুটের বুলিয়ান রাশি যা পরবর্তী অবস্থা নির্ধারণ করে
অবস্থা সারণী বর্তমান অবস্থা, ইনপুট ও পরবর্তী অবস্থার সম্পর্ক দেখানো সারণী
অবস্থা চিত্র অবস্থা ও তাদের মধ্যে রূপান্তর তীরের মাধ্যমে দেখানো চিত্র
কম্পাঙ্ক বিভাজক কাউন্টারকে ইনপুট কম্পাঙ্ক ভাগ করার কাজে ব্যবহার
কর্তব্যচক্র একটি চক্রে সংকেত উচ্চ থাকার সময়ের শতাংশ
সক্রিয়করণ সংকেত কোনো ব্লককে কাজ করার অনুমতি দেওয়ার সংকেত
পালস প্রস্থ পরিবর্তন কাউন্টার ও তুলনাকারী দিয়ে তৈরি পরিবর্তনযোগ্য কর্তব্যচক্রের সংকেত
প্রোগ্রাম কাউন্টার মাইক্রোপ্রসেসরে পরবর্তী নির্দেশের ঠিকানা ধারণকারী লোডযোগ্য কাউন্টার
রোটারি এনকোডার ঘূর্ণন কোণ পরিমাপের যন্ত্র, গ্রে কোড ব্যবহার করে
বার্স্ট মোড মেমরিতে একাধিক ঘর পর পর দ্রুত পড়ার পদ্ধতি
টুইস্টেড রিং জনসন কাউন্টারের আরেক নাম
মোবিয়াস কাউন্টার জনসন কাউন্টারের আরেক নাম, মোবিয়াস ফিতার সাথে সাদৃশ্যের জন্য
গ্লিচমুক্ত পরিবর্তনের সময় কোনো ভুল আউটপুট দেখা যায় না

বিস্তারিত উদাহরণ

উদাহরণ ১: তিন-বিট রিং কাউন্টার সম্পূর্ণ বিশ্লেষণ

তিনটি ডি ফ্লিপ-ফ্লপ দিয়ে রিং কাউন্টার তৈরি করো। প্রাথমিক অবস্থা Q2Q1Q0=১০০।

উত্তেজনা সমীকরণ:

D0=Q2
D1=Q0
D2=Q1

অবস্থা পরিবর্তন:

তিন-বিট রিং কাউন্টারের সম্পূর্ণ গণনা
ক্লক Q2 Q1 Q0 D2=Q1 D1=Q0 D0=Q2 ব্যাখ্যা
০ ১ ০ ০ ০ ০ ১ শুরু, ১ প্রথম ঘরে
১ ০ ০ ১ ০ ১ ০ ১ তৃতীয় ঘরে সরল
২ ০ ১ ০ ১ ০ ০ ১ দ্বিতীয় ঘরে সরল
৩ ১ ০ ০ ০ ০ ১ ১ আবার প্রথম ঘরে

মডুলো = ৩। তিনটি ফ্লিপ-ফ্লপে তিনটি অবস্থা।

উদাহরণ ২: তিন-বিট জনসন কাউন্টার, মডুলো-৬

তিনটি ডি ফ্লিপ-ফ্লপ দিয়ে জনসন কাউন্টার তৈরি করো।

উত্তেজনা সমীকরণ:

D0=Q2‾
D1=Q0
D2=Q1

সম্পূর্ণ অবস্থা সারণী:

তিন-বিট জনসন কাউন্টারের সম্পূর্ণ গণনা
ক্লক Q2 Q1 Q0 D0=Q2‾ ব্যাখ্যা
০ ০ ০ ০ ১ শুরু, সব শূন্য
১ ০ ০ ১ ১ প্রথম ১ ঢুকল
২ ০ ১ ১ ১ ১ ছড়াচ্ছে
৩ ১ ১ ১ ০ সব ১, এখন ০ ঢুকবে
৪ ১ ১ ০ ০ ০ ঢুকছে
৫ ১ ০ ০ ০ ০ ছড়াচ্ছে
৬ ০ ০ ০ ১ আবার শুরুতে ফিরল

মোট ৬টি অবস্থা, মডুলো-৬।

ডিকোডিং রাশি:

  • অবস্থা ০ (০০০): Q2‾⋅Q0‾
  • অবস্থা ১ (০০১): Q2‾⋅Q0
  • অবস্থা ২ (০১১): Q1‾⋅Q0 নয়, বরং Q0⋅Q1 এবং Q2‾: Q2‾⋅Q1
  • অবস্থা ৩ (১১১): Q2⋅Q0
  • অবস্থা ৪ (১১০): Q2⋅Q0‾
  • অবস্থা ৫ (১০০): Q2⋅Q1‾

উদাহরণ ৩: গ্রে কোড রূপান্তর হাতে-কলমে

দশমিক ১১-কে গ্রে কোডে রূপান্তর করো।

ধাপ ১: দশমিক ১১ = বাইনারি ১০১১।

তাই B3B2B1B0=১০১১।

ধাপ ২: গ্রে কোডের সূত্র প্রয়োগ:

G3=B3=১
G2=B3⊕B2=১⊕০=১
G1=B2⊕B1=০⊕১=১
G0=B1⊕B0=১⊕১=০

ফলাফল: দশমিক ১১ = বাইনারি ১০১১ = গ্রে কোড ১১১০।

যাচাই: দশমিক ১০ এর গ্রে কোড = ১১১১ (আগের উদাহরণ থেকে)। ১১১১ থেকে ১১১০-এ যেতে মাত্র একটি বিট (G0) পরিবর্তন হয়েছে। সঠিক।

উদাহরণ ৪: ফিনিট স্টেট মেশিন হিসেবে ট্র্যাফিক লাইট

একটি সহজ ট্র্যাফিক লাইট নিয়ন্ত্রণ সার্কিট ডিজাইন করো। তিনটি অবস্থা: সবুজ (S0), হলুদ (S1), লাল (S2)।

অবস্থা চিত্র: S0 (সবুজ) --> S1 (হলুদ) --> S2 (লাল) --> S0 (সবুজ)

অবস্থা কোডিং: দুটি বিট দিয়ে তিনটি অবস্থা কোড করা যায়। S0=০০,S1=০১,S2=১০।

অবস্থা সারণী:

ট্র্যাফিক লাইট অবস্থা সারণী
বর্তমান অবস্থা Q1Q0 পরবর্তী অবস্থা Q1+Q0+ আউটপুট (সবুজ, হলুদ, লাল)
সবুজ (S0) ০০ হলুদ (S1) ০১ ১০০
হলুদ (S1) ০১ লাল (S2) ১০ ০১০
লাল (S2) ১০ সবুজ (S0) ০০ ০০১

পরবর্তী অবস্থার বুলিয়ান রাশি:

Q1+=Q0
Q0+=Q1‾⋅Q0‾

আউটপুট রাশি (মুর মেশিন):

  • সবুজ: G=Q1‾⋅Q0‾
  • হলুদ: Y=Q1‾⋅Q0
  • লাল: R=Q1⋅Q0‾

উদাহরণ ৫: জনসন কাউন্টার দিয়ে ১০-ধাপের ক্রমিক আলো

পাঁচ-বিট জনসন কাউন্টার (মডুলো-১০) দিয়ে দশটি এলইডি একের পর এক জ্বালানোর সার্কিট ডিজাইন করো।

পাঁচটি ফ্লিপ-ফ্লপ, দশটি অবস্থা, প্রতিটি অবস্থায় একটি নির্দিষ্ট এলইডি জ্বলবে।

উত্তেজনা সমীকরণ:

D0=Q4‾
D1=Q0,D2=Q1,D3=Q2,D4=Q3

ডিকোডিং (প্রতিটি এলইডির জন্য):

  • এলইডি ০: Q4‾⋅Q0‾
  • এলইডি ১: Q4‾⋅Q0
  • এলইডি ২: Q3‾⋅Q1
  • এলইডি ৩: Q2‾⋅Q2... (এই প্যাটার্ন চলতে থাকে)

প্রতিটি এলইডির জন্য মাত্র একটি দুই-ইনপুটের অ্যান্ড গেট লাগে।

উদাহরণ ৬: গ্রে কোড কাউন্টার দিয়ে রোটারি এনকোডার

একটি রোবটের বাহু ৩৬০ ডিগ্রি ঘুরতে পারে। প্রতি ১ ডিগ্রিতে একটি ক্লক স্পন্দন তৈরি হয়। ৩৬০টি অবস্থান সংখ্যায়িত করতে হবে, এবং যেকোনো দুটো পাশের অবস্থানের মধ্যে মাত্র একটি বিট পার্থক্য থাকতে হবে।

প্রয়োজন: মডুলো-৩৬০ গ্রে কোড কাউন্টার।

৩৬০ সংখ্যাটির জন্য: n=⌈log2৩৬০⌉=⌈৮.৪৯⌉=৯ বিট।

নয়টি ফ্লিপ-ফ্লপে ৫১২টি অবস্থা সম্ভব, কিন্তু আমাদের শুধু ৩৬০টি দরকার।

পদ্ধতি: একটি ৯-বিট সিনক্রোনাস উর্ধ্বগামী কাউন্টার (০ থেকে ৩৫৯) তৈরি করো। তারপর কাউন্টারের বাইনারি আউটপুটকে হার্ডওয়্যার রূপান্তর সার্কিট দিয়ে গ্রে কোডে বদলাও।

রূপান্তর সার্কিট:

G8=B8
Gi=Bi+1⊕Bi (i = ০ থেকে ৭-এর জন্য)

এতে মাত্র আটটি এক্স-অর গেট লাগে।

উদাহরণ ৭: পালস প্রস্থ পরিবর্তন সার্কিট

একটি ৮-বিট সিনক্রোনাস কাউন্টার (মডুলো-২৫৬) দিয়ে পালস প্রস্থ পরিবর্তন সংকেত তৈরি করো যার কর্তব্যচক্র ৭৫%।

পদ্ধতি:

একটি ৮-বিট রেজিস্টারে থ্রেশহোল্ড মান রাখা হয়। ধরো কর্তব্যচক্র ৭৫% চাই, তাহলে থ্রেশহোল্ড = ৭৫×২.৫৬≈১৯২।

তুলনাকারী সার্কিট:

  • কাউন্টার < থ্রেশহোল্ড (১৯২): আউটপুট = ১।
  • কাউন্টার থ্রেশহোল্ড (১৯২) অথবা বেশি: আউটপুট = ০।
পালস প্রস্থ পরিবর্তন সংকেতের কর্তব্যচক্র
থ্রেশহোল্ড মান উচ্চ অবস্থা (চক্র সংখ্যা) কর্তব্যচক্র প্রয়োগ
৬৪ ৬৪ ২৫% কম গতির মোটর
১২৮ ১২৮ ৫০% মাঝারি গতি
১৯২ ১৯২ ৭৫% বেশি গতি
২৪৪ ২৪৪ ৯৫.৩% প্রায় সর্বোচ্চ গতি

অনুশীলনী

সহজ প্রশ্ন

১. একটি ৫-বিট রিং কাউন্টারের মডুলো কত? কতটি অবস্থা থাকবে?

উত্তর: মডুলো = n=৫। পাঁচটি অবস্থা থাকবে: ১০০০০, ০১০০০, ০০১০০, ০০০১০, ০০০০১।

২. একটি ৩-বিট জনসন কাউন্টারের মডুলো কত?

উত্তর: মডুলো = 2n=2×3=৬। ছটি অবস্থা।

৩. গ্রে কোডে ৭ থেকে ৮-তে যেতে কতটি বিট পরিবর্তন হয়?

উত্তর: মাত্র একটি বিট। ৭-এর গ্রে কোড = ০১০০, ৮-এর গ্রে কোড = ১১০০। শুধু G3 পরিবর্তন হয়েছে।

৪. মুর মেশিনে আউটপুট কীসের উপর নির্ভর করে?

উত্তর: শুধু বর্তমান অবস্থার উপর। ইনপুটের উপর নয়।

৫. মডুলো-১০ কম্পাঙ্ক বিভাজকে ৫০ Hz ইনপুট দিলে আউটপুট কম্পাঙ্ক কত?

উত্তর: fout=৫০১০=৫ Hz।

৬. রিং কাউন্টারে কোনো ডিকোডার কেন লাগে না?

উত্তর: কারণ প্রতিটি ফ্লিপ-ফ্লপের আউটপুট সরাসরি একটি অবস্থার নির্দেশক। যে ফ্লিপ-ফ্লপে ১ আছে, সেটাই বর্তমান অবস্থা।

৭. জনসন কাউন্টার এবং রিং কাউন্টারের মধ্যে সংযোগের পার্থক্য কী?

উত্তর: রিং কাউন্টারে শেষেরটার Q প্রথমটার D-এ যায়। জনসন কাউন্টারে শেষেরটার Q‾ (পরিপূরক) প্রথমটার D-এ যায়।

মাঝারি প্রশ্ন

৮. একটি ৪-বিট জনসন কাউন্টারে অবস্থা ০১১১-এর ডিকোডিং রাশি লেখো।

উত্তর: অবস্থা ০১১১-এ Q3=০ এবং Q2=১। অন্য প্রতিবেশী অবস্থা থেকে আলাদা। ডিকোডিং রাশি: Q3‾⋅Q2।

৯. দশমিক ১৩ কে গ্রে কোডে রূপান্তর করো।

উত্তর: ১৩ দশমিক = ১১০১ বাইনারি। তাই B3B2B1B0=১১০১।

G3=B3=১
G2=B3⊕B2=১⊕১=০
G1=B2⊕B1=১⊕০=১
G0=B1⊕B0=০⊕১=১

গ্রে কোড: ১০১১।

যাচাই: ১২-এর গ্রে কোড = ১০১০। ১০১০ থেকে ১০১১-এ মাত্র একটি বিট পরিবর্তন। সঠিক।

১০. একটি পাঁচ-বিট রিং কাউন্টার দিয়ে পাঁচটি মোটর পর্যায়ক্রমে নিয়ন্ত্রণ করতে চাও। সংযোগ পদ্ধতি বর্ণনা করো।

উত্তর: পাঁচটি ডি ফ্লিপ-ফ্লপ শ্রেণিতে সংযুক্ত করো। শেষেরটার Q4 প্রথমটার D0-তে সংযুক্ত। সব ফ্লিপ-ফ্লপে একই ক্লক।

প্রাথমিক অবস্থা: প্রথম ফ্লিপ-ফ্লপে প্রিসেট করে ১, বাকি চারটি ক্লিয়ার করে ০।

প্রতিটি মোটর সরাসরি একটি ফ্লিপ-ফ্লপের Q-তে সংযুক্ত। যখন সেই ফ্লিপ-ফ্লপে ১ থাকবে, মোটর চলবে।

ক্লক দিলে ১ একটার পর একটা ফ্লিপ-ফ্লপে সরবে, ফলে মোটরগুলো পর্যায়ক্রমে চলবে।

১১. মডুলো-৮ জনসন কাউন্টারের জন্য কতটি ফ্লিপ-ফ্লপ লাগবে এবং প্রতিটি অবস্থার ডিকোডিং রাশির সাধারণ রূপ কী?

উত্তর: জনসন কাউন্টারে মডুলো = 2n। তাই মডুলো-৮-এর জন্য n=82=4। চারটি ফ্লিপ-ফ্লপ লাগবে।

ডিকোডিং রাশির সাধারণ রূপ: প্রতিটি অবস্থা একটি পার্শ্ববর্তী জোড়া বিট দেখে চেনা যায়। মোট ৮টি অবস্থার প্রতিটির জন্য মাত্র একটি দুই-ইনপুটের অ্যান্ড গেট।

১২. ৩২৭৬৮ Hz থেকে সরাসরি ১ Hz তৈরি করতে কতটি দ্বিভাজক কাউন্টার লাগবে?

উত্তর: ৩২৭৬৮=২15। তাই ১৫টি মডুলো-২ (দ্বিভাজক) কাউন্টার ক্যাসকেডে লাগবে। অথবা একটি ১৫-বিট সিনক্রোনাস বাইনারি কাউন্টারের সর্বোচ্চ বিটের আউটপুট নিলেই হয়।

কঠিন প্রশ্ন

১৩. একটি চার-ধাপের ক্রমিক সার্কিট ডিজাইন করো যেটা ০১, ১০, ১১, ০০ ক্রমে চলে (সাধারণ বাইনারি উর্ধ্বগামী ক্রম নয়)। ফিনিট স্টেট মেশিন পদ্ধতিতে সমাধান করো।

উত্তর:

অবস্থা: S0=০১,S1=১০,S2=১১,S3=০০।

অবস্থা সারণী:

অবস্থা সারণী
বর্তমান Q1Q0 পরবর্তী Q1+Q0+
০১ ১০
১০ ১১
১১ ০০
০০ ০১

জেকে ফ্লিপ-ফ্লপের উত্তেজনা সারণী থেকে:

J1=Q1‾⋅Q0+Q1⋅Q0‾=Q1⊕Q0
K1=Q1⋅Q0+Q1‾⋅Q0‾... (কার্নো মানচিত্র দিয়ে সরলীকরণ করো)

বিস্তারিত হিসাব:

উত্তেজনা সারণী
Q1Q0 Q1+Q0+ J1 K1 J0 K0
০০ ০১ ০ X ১ X
০১ ১০ ১ X X ১
১০ ১১ X ০ ১ X
১১ ০০ X ১ X ১

কার্নো মানচিত্র থেকে সরলীকৃত সমীকরণ:

J1=Q0,K1=Q0
J0=Q1‾+Q0=Q1⋅Q0‾‾,K0=১

১৪. একটি ১০০ MHz দোলক থেকে ৯৬ kHz তৈরি করতে হবে। কোন মডুলো কাউন্টার ব্যবহার করবে এবং এটি কি সহজে বাস্তবায়নযোগ্য?

উত্তর: পার্স করতে ব্যর্থ (সিনট্যাক্স ত্রুটি): {\displaystyle N = \frac{\text{১০০,০০০,০০০}}{\text{৯৬,০০০}} = \text{১০৪১.৬\overline{৬}}}

এটি পূর্ণ সংখ্যা নয়, তাই সরাসরি বিভাজন সম্ভব নয়।

সমাধান ১: ১০০ MHz থেকে প্রথমে ÷১০০০ করে ১০০ kHz তৈরি করো, তারপর সেই ১০০ kHz থেকে ÷১০৪ করে ৯৬০ Hz পাও। কিন্তু ৯৬ kHz-এর জন্য ÷৯৬/১০ = ÷৯.৬, এটাও সম্ভব নয়।

সমাধান ২: ফেজ লকড লুপ ব্যবহার করো যেটা ভগ্নাংশ বিভাজন করতে পারে।

সমাধান ৩: ৯৮.৩০৪ MHz স্ফটিক ব্যবহার করো, তারপর ÷১০২৪ করলে ৯৬ kHz পাওয়া যায় (৯৮৩০৪/১০২৪=৯৬)।

১৫. একটি পাঁচ-বিট গ্রে কোড কাউন্টারের প্রথম তিনটি উত্তেজনা সমীকরণ বের করো।

উত্তর: পাঁচ-বিট গ্রে কোডের অবস্থা সারণী থেকে শুরু করে কার্নো মানচিত্র বিশ্লেষণ করলে:

J0=K0=Q4‾

এই সমীকরণ বলে সর্বনিম্ন বিট (Q0) টগল করে যখন সর্বোচ্চ বিট (Q4) শূন্য থাকে।

J1=K1=Q0⋅Q4‾
J2=K2=Q1⋅Q0‾

প্যাটার্ন লক্ষ করো: প্রতিটি বিট টগল করার শর্ত পাশের নিচের বিটগুলোর উপর নির্ভর করে।

১৬. মিলি মেশিন এবং মুর মেশিনের মধ্যে পার্থক্য উদাহরণ দিয়ে দেখাও। একই সমস্যা উভয় পদ্ধতিতে সমাধান করো।

উত্তর:

সমস্যা: একটি সার্কিট ডিজাইন করো যেটা ইনপুট X=১ হলে গণনা বাড়ায়, X=০ হলে গণনা বাড়ায় না। দুটি অবস্থা: S0=০,S1=১। আউটপুট Z = গণনা বেড়েছে কিনা।

মুর মেশিন পদ্ধতি: আউটপুট শুধু অবস্থার উপর নির্ভর করে।

তিনটি অবস্থা দরকার: অপেক্ষারত, গণনা বাড়ছে, গণনা বাড়েনি। প্রতিটি অবস্থার নিজস্ব আউটপুট।

মিলি মেশিন পদ্ধতি: আউটপুট অবস্থা ও ইনপুট উভয়ের উপর নির্ভর করে।

দুটি অবস্থাই যথেষ্ট।

মুর বনাম মিলি তুলনা
বৈশিষ্ট্য মুর মিলি
অবস্থার সংখ্যা বেশি লাগে কম লাগে
আউটপুটের সাড়া পরের ক্লকে তাৎক্ষণিক
গ্লিচ ঝুঁকি কম বেশি

১৭. একটি ডিজিটাল ডাইস (পাশা) সার্কিট ডিজাইন করো যেটা ১ থেকে ৬ পর্যন্ত সংখ্যা দেখায়। কোন ধরনের কাউন্টার ব্যবহার করবে?

উত্তর: প্রয়োজন: মডুলো-৬ কাউন্টার, ০ থেকে ৫ গুনবে। প্রদর্শনে ১ যোগ করে ১ থেকে ৬ দেখাবে।

তিন-বিট জনসন কাউন্টার সবচেয়ে উপযুক্ত। কারণ:

  • মডুলো-৬ সরাসরি পাওয়া যায়।
  • ডিকোডিং সহজ (প্রতিটি সংখ্যার জন্য একটি অ্যান্ড গেট)।
  • গ্লিচমুক্ত।

বোতাম চাপলে কাউন্টার দ্রুত চলবে। বোতাম ছাড়লে যে মানে ছিল সেটাই দেখাবে। এটা এলোমেলো বলে মনে হবে কারণ বোতাম ছাড়ার সময় অনিশ্চিত।

সাত-খণ্ড প্রদর্শকে ১-৬ দেখাতে জনসন কাউন্টারের আউটপুট থেকে সরাসরি ডিকোড করা সম্ভব।

১৮. বাইনারি উর্ধ্বগামী কাউন্টারের সর্বোচ্চ বিটের কর্তব্যচক্র সবসময় ঠিক ৫০% হয় কেন? গাণিতিকভাবে প্রমাণ করো।

উত্তর:

n-বিট সিনক্রোনাস বাইনারি উর্ধ্বগামী কাউন্টার ০ থেকে ২n−১ পর্যন্ত গোনে।

সর্বোচ্চ বিট Qn−1-এর মান:

  • ০ থেকে ২n−1−১ পর্যন্ত: Qn−1=০। এই অবস্থার সংখ্যা = ২n−1।
  • ২n−1 থেকে ২n−১ পর্যন্ত: Qn−1=১। এই অবস্থার সংখ্যা = ২n−1।

মোট অবস্থা = ২n। উচ্চ অবস্থা = ২n−1।

কর্তব্যচক্র = ২n−1২n=১২=৫০%।

এটি n-এর মান নির্বিশেষে সত্য। প্রমাণিত।

১৯. একটি ডিজিটাল তালা ডিজাইন করো যেটা ১, ৩, ২ ক্রমে বোতাম চাপলে খুলবে। ফিনিট স্টেট মেশিন পদ্ধতিতে সমাধান করো।

উত্তর:

অবস্থাগুলো:

  • S0: শুরু (কিছু চাপা হয়নি)
  • S1: ১ চাপা হয়েছে (সঠিক)
  • S2: ১, ৩ চাপা হয়েছে (সঠিক)
  • S3: ১, ৩, ২ চাপা হয়েছে (সঠিক, দরজা খোলো)
  • Serr: ভুল চাপা হয়েছে (রিসেট)

অবস্থা চিত্র:

S0 --১--> S1 --৩--> S2 --২--> S3 (খোলো)

^          |          |
|         অন্য       অন্য
|          |          |
+--<-- Serr <---------+

এই ডিজাইনে চারটি বিটের সাংকেতিক কোড লাগবে (পাঁচটি অবস্থার জন্য ৩ বিট)। প্রতিটি বোতামের জন্য একটি ইনপুট লাইন এবং ডিকোডার সার্কিট দিয়ে পরবর্তী অবস্থা নির্ধারণ করা হয়।

২০. একটি পূর্ণ সিনক্রোনাস ডিজিটাল ঘড়ির সার্কিটে সেকেন্ড কাউন্টার থেকে মিনিট কাউন্টারের সক্রিয়করণ সংকেত কীভাবে তৈরি হয়? রাশি লেখো এবং ব্যাখ্যা করো।

উত্তর:

সিনক্রোনাস ঘড়িতে সব কাউন্টার একই ক্লকে চলে। মিনিট কাউন্টার বাড়বে শুধু যখন সেকেন্ড কাউন্টার ৫৯ থেকে ০-তে ফেরে।

সেকেন্ড কাউন্টার মডুলো-৬০। বিসিডি পদ্ধতিতে ৫৯ = দশক ৫ (বাইনারি ০১০১) এবং একক ৯ (বাইনারি ১০০১)।

৫৯-এর বিসিডি কোড:

  • দশক ৫ = ০১০১: Qd2=০,Qd1=১,Qd0=০,Qd−1=১ (এখানে ৩-বিট দশক কাউন্টার: ৫ = ১০১)
  • একক ৯ = ১০০১: Qu3=১,Qu2=০,Qu1=০,Qu0=১

সক্রিয়করণ সংকেত:

ENmin=Qd2⋅Qd1‾⋅Qd0⋅Qu3⋅Qu2‾⋅Qu1‾⋅Qu0

সহজ করে বললে: দশক কাউন্টার ৫ এবং একক কাউন্টার ৯ হলে এই সংকেত ১ হয়। পরের ক্লকে দুটোই রিসেট হয় এবং মিনিট কাউন্টার ১ বাড়ে।

এই একটি সংকেত মিনিট কাউন্টারের সক্রিয়করণ পিনে (EN পিনে) যায়।

[[টেমপ্লেট:BOOKCATEGORY]]