সরাসরি পর্বে যান
পর্ব ২২ · ৫৫-এর মধ্যে · মডিউল ৩

ফ্লিপ-ফ্লপ, রেজিস্টার আর কাউন্টার

Sequential Circuits — Latches, Flip-Flops, Clock, Registers, Shift Registers and Counters

Taught in Bangla, this lesson explains sequential circuits that remember: combinational versus sequential logic, the SR latch built from two NOR gates, the clock signal, D, JK and T flip-flops, registers and shift registers, counters that count pulses, and where they are used from digital clocks to state machines, with tips for checking flip-flop answers.

এই পর্বে যা শিখবেন

  • combinational আর sequential সার্কিটের পার্থক্য, আর feedback কীভাবে স্মৃতি তৈরি করে
  • SR latch, clocked SR, D, JK আর T flip-flop — truth table আর characteristic table-সহ
  • ক্লক সিগন্যাল, কম্পাঙ্ক, পর্যায়কাল, আর edge-triggered বনাম level-triggered
  • রেজিস্টার, চার রকম shift register আর তাদের ব্যবহার
  • ripple counter, mod-N কাউন্টার, synchronous আর up/down কাউন্টার, আর state machine-এর ধারণা

১ · যে সার্কিট মনে রাখে — combinational বনাম sequential

অফিসের লিফটে উঠে “৭” লেখা বোতামটি একবার চাপলেন। আঙুল সরিয়ে নিলেন, তবু বোতামের বাতি জ্বলেই থাকে। লিফট সাত তলায় পৌঁছালে তবেই বাতি নেভে। খেয়াল করুন, বোতামটি “মনে রেখেছে” যে কেউ একবার চেপেছিল — যদিও এই মুহূর্তে কেউ চাপছে না।

এবার বাসার কলিং বেলের কথা ভাবুন। যতক্ষণ চেপে রাখবেন, ততক্ষণ বাজবে; ছাড়লেই থামবে। বেলের কোনো স্মৃতি নেই — এখন চাপ আছে কি না, শুধু সেটুকুই দেখে।

ডিজিটাল সার্কিটও এই দুই রকমের। পর্ব ২০-এ দেখেছেন logic gate (AND, OR, NOT, NAND, NOR), আর পর্ব ২১-এ সেগুলো জুড়ে বানানো অ্যাডার, ডিকোডার, মাল্টিপ্লেক্সার। ওই সব সার্কিট কলিং বেলের মতো — আউটপুট নির্ভর করে শুধু এই মুহূর্তের ইনপুটের ওপর। এদের বলে combinational circuit. আর লিফটের বোতামের মতো যে সার্কিট আগের ঘটনা মনে রাখে, তার নাম sequential circuit.

🔔 Combinational (স্মৃতিহীন)

আউটপুট = শুধু বর্তমান ইনপুটের ফল। একই ইনপুট দিলে সবসময় একই আউটপুট। কোনো ক্লক লাগে না।

অ্যাডার, এনকোডার, ডিকোডার, MUX

🛗 Sequential (স্মৃতিওয়ালা)

আউটপুট = বর্তমান ইনপুট + আগের অবস্থা (state). একই ইনপুট দিলেও আগের ঘটনাভেদে আউটপুট আলাদা হতে পারে। সাধারণত ক্লকের তালে চলে।

latch, flip-flop, রেজিস্টার, কাউন্টার

স্মৃতির রহস্য — feedback

গেট দিয়ে স্মৃতি বানানো যায় কীভাবে? কৌশলটি অবাক করার মতো সহজ: একটি গেটের আউটপুট ঘুরিয়ে আবার ইনপুটে ফেরত দিন। একে বলে feedback. তখন আউটপুট নিজেই নিজেকে টিকিয়ে রাখে — যেমন দুজন বন্ধু একে অপরকে বারবার একই কথা মনে করিয়ে দিলে কথাটি আর ভোলা যায় না। এভাবে তৈরি সার্কিট একটি bit — 0 বা 1 — ধরে রাখতে পারে, যতক্ষণ বিদ্যুৎ আছে।

Sequential সার্কিটের সাধারণ নকশা

Combinational logic + memory (flip-flops) + feedback + clock

Sequential সার্কিটের ব্লক নকশা বাঁ দিক থেকে ইনপুট combinational অংশে ঢোকে, সেখান থেকে আউটপুট ডান দিকে বের হয়। আউটপুটের একটি শাখা নিচের মেমরি বা flip-flop অংশে যায়, আর মেমরির বর্তমান অবস্থা আবার combinational অংশে ফেরত আসে। নিচ থেকে ক্লক মেমরিতে ঢোকে। ইনপুট Combinational অংশ লজিক গেট (পর্ব ২০, ২১) আউটপুট পরের অবস্থা মেমরি (flip-flop) আগের অবস্থা মনে রাখে বর্তমান অবস্থা CLK (ক্লক)
ছবি ২২.১ — লাল তীর দুটিই feedback: মেমরি “বর্তমান অবস্থা” জানায়, combinational অংশ “পরের অবস্থা” হিসাব করে, আর ক্লকের টিকে মেমরি সেটি গ্রহণ করে।
মূল ধারণা

Sequential সার্কিট = combinational সার্কিট + স্মৃতি + feedback. স্মৃতির ক্ষুদ্রতম একক হলো ১ bit ধরে রাখার একটি সার্কিট — latch বা flip-flop. আর একটি clock signal (নিয়মিত টিক) কোটি কোটি এমন bit-কে একসাথে, এক তালে বদলাতে দেয়। CPU-র register, কাউন্টার, এমনকি পুরো CPU-র “এখন কোন কাজ চলছে” — সবই এভাবে মনে রাখা হয়।

২ · SR latch — দুটি NOR গেটের আলিঙ্গন

সবচেয়ে সরল স্মৃতি-সার্কিটটি বানাতে লাগে মাত্র দুটি NOR গেট। মনে করিয়ে দিই: NOR-এর আউটপুট 1 হয় কেবল তখনই, যখন তার সব ইনপুট 0. কোনো একটি ইনপুটও 1 হলে আউটপুট 0 (পর্ব ২০)।

এখন দুটি NOR গেট এমনভাবে জুড়ুন যে প্রথমটির আউটপুট দ্বিতীয়টির ইনপুটে যায়, আর দ্বিতীয়টির আউটপুট প্রথমটির ইনপুটে — একে বলে cross-coupled, যেন দুজন হাত ধরাধরি করে আছে। বাকি দুটি খালি ইনপুটের নাম S (Set — 1 বসানো) আর R (Reset — 0 বসানো)। আউটপুট দুটির নাম Q আর Q′ (Q-এর উল্টো)। এই সার্কিটের নাম SR latch.

দুটি NOR গেটে SR latch

Cross-coupled NOR latch: Q = NOR(R, Q′), Q′ = NOR(S, Q)

NOR গেট দিয়ে SR latch ওপরের NOR গেটে ইনপুট R আর নিচের গেটের আউটপুট Q′, তার আউটপুট Q. নিচের NOR গেটে ইনপুট S আর ওপরের গেটের আউটপুট Q, তার আউটপুট Q′. দুটি আউটপুট আড়াআড়ি তারের মাধ্যমে একে অপরের ইনপুটে ফেরত যায়। R (Reset) S (Set) NOR ১ NOR ২ Q Q′ আড়াআড়ি feedback
ছবি ২২.২ — নীল তার: Q ফিরে যায় NOR ২-এ। কমলা তার: Q′ ফিরে যায় NOR ১-এ। এই দুটি ফেরত-তারই সার্কিটের স্মৃতি।

এবার ধাপে ধাপে দেখুন, S আর R বদলালে Q আর Q′ কী করে — আর আউটপুট কীভাবে ঘুরে এসে নিজেকে টিকিয়ে রাখে:

latch-এর ভেতরে এই মুহূর্তে
ইনপুট S, R
NOR ২ হিসাব করে Q′
NOR ১ হিসাব করে Q
Q · Q′
অবস্থা
  1. শুরু। ধরুন latch-এ এখন 0 রাখা আছে: Q = 0, Q′ = 1. S আর R দুটোই 0. NOR ২ দেখে S = 0 আর Q = 0 → আউটপুট 1. NOR ১ দেখে R = 0 আর Q′ = 1 → আউটপুট 0. হিসাব নিজের সাথে মিলে যায় — অবস্থা স্থির।
  2. Set: S = 1. NOR ২-এর একটি ইনপুট 1, তাই Q′ সঙ্গে সঙ্গে 0. এই 0 ঘুরে NOR ১-এ যায়; এখন NOR ১-এর দুটি ইনপুটই 0 (R = 0, Q′ = 0), তাই Q = 1. এই 1 আবার NOR ২-এ ফিরে Q′-কে 0-তেই আটকে রাখে। লিফটের বোতাম চাপা হলো।
  3. Hold: S আবার 0. আঙুল সরালেন। এখন NOR ২ দেখে S = 0 আর Q = 1 → Q′ = 0 থাকে। NOR ১ দেখে Q′ = 0 → Q = 1 থাকে। কোনো ইনপুট ছাড়াই 1 টিকে আছে — feedback-ই মনে রাখছে। এটিই স্মৃতি।
  4. Reset: R = 1. NOR ১-এর একটি ইনপুট 1, তাই Q = 0. এই 0 NOR ২-এ গেলে NOR ২-এর দুটি ইনপুটই 0 → Q′ = 1, আর সেই 1 ফিরে Q-কে 0-তে আটকে রাখে। লিফট পৌঁছাল, বাতি নিভল।
  5. Hold: R আবার 0. S = R = 0, আর latch এবার 0 মনে রাখে। খেয়াল করুন: ধাপ ৩ আর ধাপ ৫-এ ইনপুট হুবহু এক (S = 0, R = 0), অথচ আউটপুট আলাদা — একবার 1, একবার 0. আগে কী ঘটেছিল, তার ওপর নির্ভর করছে। এটিই sequential সার্কিটের সংজ্ঞা।
  6. নিষিদ্ধ: S = R = 1. দুটি NOR-এরই একটি করে ইনপুট 1, তাই Q = 0 আর Q′ = 0 — অথচ Q′ হওয়ার কথা Q-এর উল্টো! আরও বড় সমস্যা পরে: দুটি ইনপুট একসাথে 0-তে ফিরলে দুটি গেটই 1 হতে দৌড়ায়, আর কে জিতবে তা আগে থেকে বলা যায় না। তাই এই অবস্থাকে invalid বা নিষিদ্ধ ধরা হয়।

SR latch-এর truth table (NOR দিয়ে)

SRQ (পরের)Q′ (পরের)অবস্থা
00Q (আগের মান)Q′ (আগের মান)Hold / No change — মনে রাখে
0101Reset — 0 বসে
1010Set — 1 বসে
1100Invalid / নিষিদ্ধ — ব্যবহার করা হয় না

NAND দিয়ে বানালে উল্টো নিয়ম। পাঠ্যবইয়ে অনেক সময় দুটি NAND গেটে বানানো latch দেখানো হয়, যার ইনপুটের নাম S′ আর R′ (active-low — 0 দিলে কাজ করে)। সেখানে S′ = R′ = 1 মানে hold, আর S′ = R′ = 0 নিষিদ্ধ (তখন Q = Q′ = 1). পরীক্ষায় প্রশ্নে কোন গেট দেওয়া আছে, আগে দেখে নিন।

হাসপাতালের নার্স-কল বোতামের কথা ভাবুন। রোগী একবার বোতাম চাপলেন (Set) — নার্সের ঘরে বাতি জ্বলল, আর রোগী হাত সরালেও জ্বলে থাকে (Hold). নার্স এসে রিসেট বোতাম চাপলেন (Reset) — বাতি নিভল, আর তা নিভেই থাকে। কিন্তু রোগী আর নার্স যদি ঠিক একই মুহূর্তে নিজের নিজের বোতাম চেপে ধরে রাখেন? বাতি জ্বলবে না নিভবে — সার্কিট বিভ্রান্ত। ঠিক এটিই SR latch-এর নিষিদ্ধ অবস্থা।

৩ · ক্লক — সবাইকে এক তালে চালানোর ঢোল

একটি SR latch ইনপুট বদলালেই সাড়া দেয়। কিন্তু একটি CPU-তে কোটি কোটি latch থাকে, আর প্রতিটি গেটের ভেতর দিয়ে সংকেত যেতে সামান্য সময় লাগে — একে বলে propagation delay. কোনো তার একটু লম্বা, কোনো পথে গেট একটু বেশি — ফলে কিছু bit আগে পৌঁছায়, কিছু পরে। সবাই নিজের ইচ্ছেমতো বদলালে মাঝপথের ভুল মানও মনে রাখা হয়ে যেত।

সমাধান হলো একটি clock signal — একটানা, নিয়মিত তালে 0 আর 1-এর মধ্যে ওঠানামা করা একটি সংকেত। নৌকাবাইচের কথা ভাবুন: ঢোলের প্রতিটি বাড়িতে সব মাঝি একসাথে বৈঠা ফেলেন। দুই বাড়ির মাঝের সময়ে সবাই প্রস্তুতি নেন, কিন্তু বৈঠা পড়ে শুধু ঢোলের শব্দে। ডিজিটাল সার্কিটেও তাই — দুই টিকের মাঝে গেটগুলো হিসাব শেষ করে, আর ক্লকের টিকে সব মেমরি একসাথে নতুন মান গ্রহণ করে।

ক্লক সিগন্যাল — উঠতি ধার, নামতি ধার আর পর্যায়কাল

Clock waveform: rising edge, falling edge, period T = 1/f

ক্লক সিগন্যালের তরঙ্গ একটি বর্গাকার তরঙ্গ 0 আর 1-এর মধ্যে নিয়মিত ওঠানামা করছে। প্রতিটি উঠতি ধারে লাল ত্রিভুজ চিহ্ন। প্রথম উচ্চ অংশ সবুজ রঙে ভরা। নিচে একটি উঠতি ধার থেকে পরের উঠতি ধার পর্যন্ত দূরত্বকে পর্যায়কাল T বলা হয়েছে। 1 0 ▲ উঠতি ধার (rising edge) — 0 থেকে 1 পর্যায়কাল T = 1/f সবুজ = CLK 1 থাকার সময় নামতি ধার (falling edge) = 1 থেকে 0
ছবি ২২.৩ — edge-triggered flip-flop শুধু লাল চিহ্নের মুহূর্তে মান নেয়; level-triggered latch সবুজ অংশের পুরো সময় জুড়ে ইনপুটের দিকে খোলা থাকে।

ক্লকের দুটি মাপ মনে রাখুন। কম্পাঙ্ক (frequency, f): প্রতি সেকেন্ডে কতবার টিক — একক হার্জ (Hz). পর্যায়কাল (period, T): একটি টিক থেকে পরের টিক পর্যন্ত সময়। দুটির সম্পর্ক সরল: T = 1/f. একটি ৩ GHz CPU-র clock speed মানে সেকেন্ডে ৩০০ কোটি টিক; তাহলে T = ১ ÷ (৩ × ১০৯) ≈ ০.৩৩ ন্যানোসেকেন্ড। এই সময়ে আলোও মাত্র প্রায় ১০ সেন্টিমিটার যেতে পারে! CPU প্রতিটি টিকে কী করে, আর কোর কী — বিস্তারিত পর্ব ২৪-এ।

T = 1 / f
১ GHz → ১ ns · ৩ GHz → ≈ ০.৩৩ ns · ১ Hz → ১ সেকেন্ড

Clocked SR flip-flop — দরজায় পাহারাদার

SR latch-এর সামনে দুটি AND গেট বসান: একটিতে S আর CLK, অন্যটিতে R আর CLK. এখন CLK = 0 হলে দুটি AND-এর আউটপুটই 0 — latch যা আছে তাই রাখে, S আর R যা-ই হোক। CLK = 1 হলেই কেবল S আর R ভেতরে পৌঁছায়। ক্লক যেন দরজার পাহারাদার — অনুমতি না দিলে কেউ ঢুকতে পারে না। একে বলে clocked SR flip-flop (কেউ কেউ gated SR latch বলেন)। পাঠ্যবইয়ে প্রায়ই এই কাজ দুটি NAND গেট দিয়ে দেখানো হয় — ফল একই।

CLKSRQn+1মন্তব্য
0××Qnক্লক নেই — কোনো পরিবর্তন নেই (× মানে যা-ই হোক)
100QnHold
1010Reset
1101Set
111?Invalid — এখনো নিষিদ্ধ

এখানে Qn মানে ক্লকের আগের মান, আর Qn+1 মানে ক্লকের পরের মান। পরের অবস্থা আগের অবস্থার ওপর কীভাবে নির্ভর করে, তা দেখানো এই ধরনের টেবিলকে বলে characteristic table. Clocked SR-এর characteristic equation: Qn+1 = S + R′Qn (শর্ত: S·R = 0).

Level-triggered বনাম edge-triggered — latch আর flip-flop-এর আসল পার্থক্য

  • Level-triggered (latch): CLK (বা enable) যতক্ষণ 1, ততক্ষণ দরজা খোলা — এর মধ্যে ইনপুট দশবার বদলালে আউটপুটও দশবার বদলায়। ছবি ২২.৩-এর সবুজ অংশের পুরো সময়টাই “খোলা”।
  • Edge-triggered (flip-flop): শুধু ক্লকের ধারের মুহূর্তে — সাধারণত উঠতি ধারে (rising/positive edge), কখনো নামতি ধারে (falling/negative edge) — ইনপুটের একটি “ছবি তুলে” রাখে। বাকি পুরো সময় ইনপুট যা-ই করুক, আউটপুট স্থির।

ক্যামেরার উদাহরণে বোঝা সহজ: latch হলো ভিডিও — যতক্ষণ রেকর্ড চলছে, সব নড়াচড়া ধরে। Flip-flop হলো শাটার চাপা স্থিরচিত্র — ঠিক এক মুহূর্তের ছবি। কম্পিউটারের নকশায় flip-flop বেশি নিরাপদ, কারণ টিকের মাঝের এলোমেলো মানগুলো সে গ্রহণই করে না। নকশার প্রতীকে ক্লক ইনপুটের পাশে ছোট ত্রিভুজ (▷) মানে edge-triggered; ত্রিভুজের আগে ছোট বৃত্ত মানে নামতি ধারে কাজ করে।

৪ · D, JK আর T flip-flop — তিন রকম স্মৃতি-কোষ

SR-এর নিষিদ্ধ অবস্থা নকশাকারীদের মাথাব্যথা। এর তিনটি জনপ্রিয় সমাধান আছে — তিনটি আলাদা flip-flop. নিচের ছবিতে তাদের প্রতীক:

D, JK আর T flip-flop-এর প্রতীক

Block symbols — ▷ = edge-triggered clock input

তিনটি flip-flop-এর প্রতীক তিনটি আয়তাকার বাক্স। প্রথমটিতে ইনপুট D আর ক্লক, দ্বিতীয়টিতে ইনপুট J, K আর ক্লক, তৃতীয়টিতে ইনপুট T আর ক্লক। প্রতিটির ডান দিকে আউটপুট Q আর Q′. DQQ′ JKQQ′ TQQ′ CLKCLKCLK D flip-flopJK flip-flopT flip-flop
ছবি ২২.৪ — তিনটিই ১ bit রাখে, আর তিনটিই ক্লকের ধারে মান বদলায়; পার্থক্য শুধু ইনপুটের নিয়মে।

D flip-flop — “যা দেবে, তাই রাখব”

D flip-flop-এ ইনপুট একটিই — D (Data বা Delay). ভেতরে D সরাসরি S-এ যায়, আর একটি NOT গেট পার হয়ে R-এ যায়। ফলে S আর R কখনো একসাথে 1 হতে পারে না — নিষিদ্ধ অবস্থা চিরতরে বিদায়। নিয়মটি এক বাক্যের: ক্লকের ধারে Q = D, বাকি সময় Q স্থির। পরীক্ষার খাতায় যেমন — প্রশ্ন দেখে উত্তর লেখার সময় যা-ই ভাবুন, ঘণ্টা বাজার মুহূর্তে খাতায় যা লেখা আছে, সেটিই জমা। রেজিস্টারের প্রতিটি bit এই D flip-flop-এ রাখা হয় — এটিই ডিজিটাল দুনিয়ার মৌলিক ১-bit মেমরি কোষ।

ক্লকের ধারDQn+1মন্তব্য
নেই×Qnমনে রাখে
↑00Reset
↑11Set

Characteristic equation: Qn+1 = D. সরল বলেই আজকের প্রায় সব চিপে D flip-flop-ই সবচেয়ে বেশি ব্যবহৃত।

JK flip-flop — নিষিদ্ধ অবস্থাকে কাজে লাগানো

JK flip-flop-এ J কাজ করে S-এর মতো (set), K কাজ করে R-এর মতো (reset). কিন্তু ভেতরে আউটপুট Q আর Q′ ঘুরিয়ে এনে ইনপুটের গেটে দেওয়া হয়, যাতে J = K = 1 হলে নিষিদ্ধ না হয়ে আউটপুট উল্টে যায় — 0 থাকলে 1, 1 থাকলে 0. একে বলে toggle. টিভির রিমোটের পাওয়ার বোতাম এমন — একবার চাপলে চালু, আবার চাপলে বন্ধ।

JKQn+1 (ক্লকের ধারের পরে)অবস্থা
00QnHold — কোনো পরিবর্তন নেই
010Reset
101Set
11Q′nToggle — উল্টে যায়

Characteristic equation: Qn+1 = J·Q′n + K′·Qn. একটি সতর্কতা: পুরোনো level-triggered JK-তে CLK অনেকক্ষণ 1 থাকলে J = K = 1 অবস্থায় আউটপুট একবার নয়, বারবার উল্টাতে থাকত — একে বলে race-around condition. সমাধান হিসেবে আসে master-slave JK (দুটি latch পরপর — একটি ক্লক 1 থাকার সময় নেয়, অন্যটি 0 হলে ছাড়ে) আর পরে edge-triggered JK.

T flip-flop — শুধু উল্টানো, তাই কম্পাঙ্ক অর্ধেক

JK-এর J আর K একসাথে জুড়ে একটি ইনপুট বানালে পাওয়া যায় T flip-flop (Toggle). T = 0 হলে মনে রাখে, T = 1 হলে প্রতিটি ক্লকের ধারে উল্টে যায়। Characteristic equation: Qn+1 = T ⊕ Qn (⊕ = XOR).

TQnQn+1অবস্থা
000Hold
011
101Toggle
110

T = 1 রেখে ক্লক দিলে মজার একটি জিনিস ঘটে। প্রতি দুটি ক্লক-টিকে Q একবার 0 থেকে 1 হয়ে আবার 0-তে ফেরে — অর্থাৎ Q-এর কম্পাঙ্ক ক্লকের ঠিক অর্ধেক। নিচের timing diagram (সময়ের সাথে সংকেতের ছবি) দেখুন:

T flip-flop (T = 1) — প্রতি উঠতি ধারে Q উল্টায়

Timing diagram: Q has half the clock frequency (divide-by-2)

T flip-flop-এর timing diagram ওপরে ক্লকের পাঁচটি পালস, নিচে আউটপুট Q. প্রতিটি উঠতি ধারে Q উল্টে যায়, তাই Q-এর একটি পূর্ণ পর্যায় ক্লকের দুটি পর্যায়ের সমান। CLK Q Q = 1Q = 0Q = 1Q = 0Q = 1 ক্লক: কম্পাঙ্ক f · Q: কম্পাঙ্ক f ÷ ২ (frequency divider)
ছবি ২২.৫ — শুরুতে Q = 0. প্রতিটি ড্যাশ দাগ একটি উঠতি ধার; সেখানেই Q উল্টায়। ক্লকের ২টি পালসে Q-এর ১টি পালস।

এই কারণে T flip-flop-কে বলে frequency divider (কম্পাঙ্ক ভাজক)। দুটি পরপর জুড়লে ÷ ৪, তিনটিতে ÷ ৮, n-টিতে ÷ 2n. এই সরল কৌশলটি পরের অংশের কাউন্টারের ভিত্তি।

চারটি এক টেবিলে

ধরনইনপুটCharacteristic equationনিষিদ্ধ অবস্থা?প্রধান ব্যবহার
SRS, RQn+1 = S + R′Qnহ্যাঁ (S = R = 1)সরল latch, বোতাম ধরে রাখা
DDQn+1 = Dনারেজিস্টার, মেমরি কোষ
JKJ, KQn+1 = JQ′n + K′Qnনা — J = K = 1 মানে toggleকাউন্টার, সব কাজের flip-flop
TTQn+1 = T ⊕ Qnনাকাউন্টার, frequency divider

৫ · রেজিস্টার — flip-flop-এর সারি

একটি flip-flop রাখে ১ bit. কিন্তু CPU কাজ করে একসাথে ৮, ১৬, ৩২ বা ৬৪ bit নিয়ে। সমাধান সোজা: অনেকগুলো D flip-flop পাশাপাশি বসান, সবার ক্লক একই তারে জুড়ে দিন। এটিই register. চারটি D flip-flop = একটি 4-bit register; প্রতিটির নিজের D ইনপুট আর নিজের Q আউটপুট, আর একটিই ক্লক।

ক্লকের ধারে চারটি bit একসাথে ভেতরে ঢোকে — একে বলে parallel load. যেমন D-তে 1011 দিয়ে একটি পালস দিলে রেজিস্টারে 1011 বসে। এরপর D-তে যা-ই দিন, পরের পালস না আসা পর্যন্ত রেজিস্টার 1011-ই ধরে রাখে। ধারণাগতভাবে CPU-র একটি 64-bit register হলো এমন ৬৪টি flip-flop-এর সারি (আধুনিক চিপে register file তৈরি হয় বিশেষ ধরনের দ্রুত, SRAM-সদৃশ কোষে, কিন্তু মূল নীতি একই)। মেমরির সব স্তরের মধ্যে register কেন সবচেয়ে দ্রুত, তা পর্ব ০৪-এ দেখেছেন।

Shift register — bit-এর লাইন সরে সরে চলা

এবার D flip-flop-গুলোকে অন্যভাবে জুড়ুন: প্রথমটির Q দিন দ্বিতীয়টির D-তে, দ্বিতীয়টির Q তৃতীয়টির D-তে — এভাবে শিকলের মতো। প্রতিটি ক্লক পালসে প্রতিটি bit এক ঘর ডানে সরে যায়, আর বাঁ দিক দিয়ে একটি নতুন bit ঢোকে। এর নাম shift register. ট্রেনের টিকিটের লাইনের মতো — প্রতিবার কাউন্টারের ঘণ্টা বাজলে সবাই এক পা এগোয়, সামনের জন বেরিয়ে যান, পেছনে নতুন একজন দাঁড়ান।

4-bit shift register (D flip-flop দিয়ে)

Serial in at FF0 · common clock · parallel outputs Q0–Q3 · serial out at FF3

চারটি D flip-flop দিয়ে shift register চারটি D flip-flop বাঁ থেকে ডানে সাজানো। বাঁ দিকের সিরিয়াল ইনপুট FF0-এর D-তে যায়, প্রতিটির Q পরেরটির D-তে যায়, শেষেরটির Q সিরিয়াল আউটপুট। নিচে একটি সাধারণ ক্লক লাইন চারটিতেই যায়। ওপরে প্রতিটি থেকে Q0 থেকে Q3 প্যারালাল আউটপুট বের হয়। DQDQ DQDQ FF0FF1FF2FF3 Q0Q1Q2Q3 সিরিয়াল ইন সিরিয়াল আউট CLK (সবার জন্য একটিই)
ছবি ২২.৬ — প্রতিটি পালসে প্রতিটি bit এক ঘর ডানে সরে। ওপরের Q0–Q3 একসাথে পড়লে SIPO; শুধু ডান প্রান্ত থেকে পড়লে SISO.

নিচের stepper-এ সিরিয়াল ইনপুটে একটি একটি করে 1, 0, 1, 1 পাঠানো হচ্ছে — দেখুন bit-গুলো কীভাবে লাইন ধরে এগোয়:

প্রতিটি পালসের পরে
পালস
সিরিয়াল ইনপুটে
FF0 FF1 FF2 FF3
সিরিয়াল আউট (FF3 থেকে বেরোল)
  1. খালি লাইন। চারটি flip-flop-ই 0. সিরিয়াল ইনপুটে আমরা পরপর 1, 0, 1, 1 পাঠাব — প্রতি পালসে একটি bit. কিবোর্ড বা USB তারে ঠিক এভাবেই ডেটা একটি একটি bit করে আসে।
  2. পালস ১ — প্রথম bit 1. সবাই একসাথে এক ঘর ডানে: FF0 নেয় ইনপুটের 1, FF1 নেয় FF0-এর পুরোনো 0, ইত্যাদি। FF3-এর পুরোনো 0 বেরিয়ে গেল। ফল: 1 0 0 0.
  3. পালস ২ — bit 0. আগের 1 সরে FF1-এ গেল, FF0-তে ঢুকল নতুন 0. ফল: 0 1 0 0. লক্ষ করুন, সব flip-flop ক্লকের একই ধারে বদলায় — তাই কেউ কারও নতুন মান দেখে না, সবাই পুরোনো মানই নেয়। Edge-triggered হওয়ার এটিই সুবিধা।
  4. পালস ৩ — bit 1. ফল: 1 0 1 0. প্রথম পাঠানো 1 এখন FF2-তে।
  5. পালস ৪ — bit 1. ফল: 1 1 0 1. চারটি পালসে চারটি bit ভেতরে ঢুকে গেছে। এখন Q0–Q3 একসাথে পড়লে পাওয়া যায় পুরো 4-bit শব্দ — এটিই serial-in parallel-out (SIPO): তারে একটি একটি bit এসেছে, ভেতরে একসাথে একটি পুরো সংখ্যা।
  6. পালস ৫ — bit বেরিয়ে যায়। আরেকটি পালস দিলে প্রথম পাঠানো 1 FF3 থেকে সিরিয়াল আউটপুটে বেরিয়ে আসে, ৪ পালস দেরিতে। শুধু এই প্রান্ত থেকে পড়লে তা serial-in serial-out (SISO) — একটি “ডিলে লাইন”।

চার রকম shift register

ধরনডেটা ঢোকেডেটা বেরোয়ব্যবহার
SISO (Serial In Serial Out)একটি একটি bitএকটি একটি bit, n পালস পরেসংকেত দেরি করানো (delay)
SIPO (Serial In Parallel Out)একটি একটি bitসব bit একসাথেসিরিয়াল তারের ডেটা থেকে byte বানানো (USB, কিবোর্ড, UART); কম পিনে অনেক LED চালানো (যেমন 74HC595 চিপ)
PISO (Parallel In Serial Out)সব bit একসাথেএকটি একটি bitএকটি byte-কে তারে পাঠানোর জন্য সারিতে সাজানো
PIPO (Parallel In Parallel Out)সব bit একসাথেসব bit একসাথেসাধারণ রেজিস্টার — অস্থায়ী সংরক্ষণ

বাঁয়ে সরানো = ২ দিয়ে গুণ

দশমিকে একটি সংখ্যার শেষে 0 বসালে (৩৫ → ৩৫০) মান ১০ গুণ হয়। বাইনারিতে একই কারণে প্রতিটি bit এক ঘর বাঁয়ে সরালে মান ২ গুণ হয়: 0011 (৩) → 0110 (৬) → 1100 (১২)। আর ডানে সরালে ২ দিয়ে ভাগ (ভাগশেষ ফেলে): 1100 (১২) → 0110 (৬)। CPU-তে গুণ-ভাগের চেয়ে shift অনেক সস্তা ও দ্রুত, তাই compiler সুযোগ পেলেই “× ৮”-কে “৩ ঘর বাঁয়ে সরানো” বানিয়ে দেয় (পর্ব ১৭-এর বাইনারি গণিতের সাথে মিলিয়ে দেখুন)। তবে খেয়াল রাখুন: 4-bit রেজিস্টারে 1100-কে আবার বাঁয়ে সরালে বাঁ প্রান্তের 1 হারিয়ে যায় — ফল 1000 (৮), ২৪ নয়। এটি overflow.

৬ · কাউন্টার — পালস গোনার যন্ত্র

অংশ ৪-এ দেখেছেন, T = 1 রাখা একটি T flip-flop ক্লকের কম্পাঙ্ক অর্ধেক করে। এখন কয়েকটি T flip-flop শিকলের মতো জুড়ুন: প্রথমটির ক্লকে আসল পালস, আর প্রতিটির Q পরেরটির ক্লকে। প্রতিটি flip-flop আগেরটির চেয়ে অর্ধেক গতিতে উল্টায় — আর মিলিয়ে পড়লে দেখা যায়, তারা বাইনারিতে গুনছে! এটিই counter, আর এই নকশার নাম ripple counter বা asynchronous counter.

3-bit ripple (asynchronous) up counter

Negative-edge T flip-flops, T = 1; each Q clocks the next stage

তিনটি T flip-flop দিয়ে ripple counter তিনটি T flip-flop, প্রতিটির T ইনপুট 1-এ বাঁধা। ক্লক পালস শুধু প্রথমটিতে যায়। প্রথমটির আউটপুট Q0 দ্বিতীয়টির ক্লকে, দ্বিতীয়টির Q1 তৃতীয়টির ক্লকে যায়। ক্লক ইনপুটের সামনে ছোট বৃত্ত মানে নামতি ধারে কাজ করে। ওপরে Q0, Q1, Q2 আউটপুট। TQTQTQ 111 FF0FF1FF2 Q0 (LSB)Q1Q2 (MSB) CLK ক্লক শুধু FF0-তে · প্রতিটি Q 1 থেকে 0 হলে পরেরটি উল্টায় — পরিবর্তন ঢেউয়ের মতো ছড়ায়
ছবি ২২.৭ — ক্লক ইনপুটের সামনের ছোট বৃত্ত মানে নামতি ধারে (1 → 0) কাজ। T flip-flop-এর বদলে J = K = 1 রাখা JK flip-flop দিয়েও হুবহু একই সার্কিট হয়।

নিয়মটি একটি: FF0 প্রতিটি পালসে উল্টায়; বাকি প্রতিটি উল্টায় কেবল তখন, যখন তার আগেরটি 1 থেকে 0-তে নামে। ঠিক যেমন বাইনারিতে ১ যোগ করলে ডান দিকের 1-গুলো 0 হয়ে carry বাঁয়ে যায় (পর্ব ১৭)। এবার ধাপে ধাপে গুনুন:

কাউন্টারের অবস্থা
ক্লক পালস
Q2 Q1 Q0
দশমিকে
কে উল্টাল
  1. শুরু: 000. তিনটি flip-flop-ই 0 (একটি clear/reset তার দিয়ে শুরুতে সবাইকে 0 করা হয়)। Q2 Q1 Q0 = 000 = দশমিকে ০.
  2. পালস ১. FF0 উল্টে 0 → 1. Q0 উঠল (0 → 1), নামেনি, তাই FF1 কিছু করে না। ফল 001 = ১.
  3. পালস ২. FF0 উল্টে 1 → 0. এই নামতি ধারটিই FF1-এর ক্লক — FF1 উল্টে 0 → 1. Q1 উঠল, তাই FF2 চুপ। ফল 010 = ২. পরিবর্তন একটি থেকে পরেরটিতে ঢেউয়ের মতো গেল — তাই নাম ripple (ঢেউ)।
  4. পালস ৩. শুধু FF0: 0 → 1. ফল 011 = ৩.
  5. পালস ৪ — লম্বা ঢেউ। FF0: 1 → 0, তাতে FF1: 1 → 0, তাতে FF2: 0 → 1. তিনটি flip-flop-ই বদলাল, তবে একসাথে নয় — একটির পর একটি, প্রতিটিতে সামান্য দেরি। ফল 100 = ৪.
  6. পালস ৫. FF0: 0 → 1. ফল 101 = ৫.
  7. পালস ৬. FF0: 1 → 0, তাতে FF1: 0 → 1. ফল 110 = ৬.
  8. পালস ৭. FF0: 0 → 1. ফল 111 = ৭ — 3 bit-এ সর্বোচ্চ সংখ্যা।
  9. পালস ৮ — শূন্যে ফেরা। সব 1 → 0 হয়ে আবার 000. তিন bit-এ ৮টি আলাদা অবস্থা (০–৭), তাই একে বলে mod-8 কাউন্টার। গাড়ির পুরোনো দূরত্ব-মিটার যেমন ৯৯৯৯৯ পার হয়ে ০০০০০-এ ফেরে।

কয়টি flip-flop লাগবে — mod-N কাউন্টার

একটি কাউন্টার যতগুলো আলাদা অবস্থা পার হয়ে আবার শুরুতে ফেরে, সেই সংখ্যাকে বলে তার modulus. এমন কাউন্টারকে বলে mod-N counter. n-টি flip-flop-এ সর্বোচ্চ 2nটি অবস্থা (০ থেকে 2n − ১)। তাই mod-N কাউন্টারের জন্য সবচেয়ে ছোট n নিতে হয়, যাতে 2n ≥ N হয়।

কাউন্টারগোনেন্যূনতম flip-flopকারণ
mod-4০–৩২22 = ৪
mod-6০–৫৩22 = ৪ কম, 23 = ৮ যথেষ্ট
mod-10 (decade)০–৯৪23 = ৮ কম, 24 = ১৬ যথেষ্ট
mod-16০–১৫৪24 = ১৬, পুরোটাই ব্যবহার
mod-60 (সেকেন্ড)০–৫৯৬25 = ৩২ কম, 26 = ৬৪ যথেষ্ট

Mod-10 (decade) কাউন্টার — ডিজিটাল ঘড়ির অঙ্ক

৪টি flip-flop স্বাভাবিকভাবে ০ থেকে ১৫ পর্যন্ত গোনে। কিন্তু ঘড়ির একক অঙ্কের দরকার ০ থেকে ৯. কৌশল: কাউন্টার যখনই 1010 (দশ) ছোঁয়, তখনই সব flip-flop-কে 0 করে দেওয়া হয়। 1010-এ শুধু Q3 আর Q1 একসাথে 1 (০ থেকে ৯-এর মধ্যে আর কোথাও এমন হয় না), তাই একটি NAND গেটে Q3 আর Q1 দিলে তার আউটপুট 0 হয়ে সব flip-flop-এর active-low clear ইনপুট চালিয়ে দেয়। ফলে 1010 অবস্থাটি মুহূর্তের জন্য তৈরি হয়েই মিলিয়ে যায়, আর গোনা চলে ০, ১, … ৯, ০, ১, … — এটিই decade counter. ৭৪-সিরিজের পুরোনো চিপ 7490 এমন একটি decade counter, আর 7493 একটি 4-bit বাইনারি কাউন্টার — ল্যাবে এগুলো প্রায়ই দেখা যায়। একই কৌশলে যেকোনো mod-N বানানো যায়: N-এর বাইনারি রূপে যে bit-গুলো 1, সেগুলো NAND-এ দিন।

Synchronous কাউন্টার আর up/down কাউন্টার

Ripple counter-এর দুর্বলতা হলো ঢেউ। প্রতিটি flip-flop-এ কয়েক ন্যানোসেকেন্ড দেরি জমতে জমতে বড় কাউন্টারে শেষ bit অনেক পরে বদলায়, আর মাঝপথে কিছুক্ষণ ভুল সংখ্যা (যেমন 011 থেকে 100-এ যাওয়ার পথে 010, তারপর 000) দেখা যায়। দ্রুত সার্কিটে এটি বিপজ্জনক।

সমাধান synchronous counter: সব flip-flop একই ক্লক পায়, আর প্রতিটি উল্টাবে কি না তা ঠিক করে ছোট কিছু AND গেট। নিয়ম বাইনারি যোগ থেকেই আসে — একটি bit উল্টায় কেবল তখন, যখন তার ডানের সব bit 1: T0 = 1, T1 = Q0, T2 = Q0·Q1, T3 = Q0·Q1·Q2. সব একই ধারে বদলায়, ঢেউ নেই — দ্রুত আর নির্ভরযোগ্য, শুধু গেট একটু বেশি লাগে। CPU-র ভেতরের কাউন্টারগুলো (যেমন পরের নির্দেশের ঠিকানা রাখা program counter, পর্ব ২৪) এ ধরনের synchronous নকশায় চলে।

Up/down counter দুই দিকেই গুনতে পারে — একটি নিয়ন্ত্রণ তার (UP/DOWN) ঠিক করে। নিচে গোনার (down) জন্য পরের flip-flop-এর ক্লকে Q-এর বদলে Q′ দেওয়া হয় (ripple নকশায়), ফলে ৭, ৬, ৫ … ০, ৭ — এভাবে চলে। ক্রিকেটের স্কোরবোর্ডে “বাকি বল” বা মাইক্রোওয়েভের টাইমার এমন নিচে-গোনা কাউন্টার।

নিজে চালিয়ে দেখুন — register আর কাউন্টারের সিমুলেটর

নিচের ছোট প্রোগ্রামটি সত্যিকারের সময় বা টাইমার ছাড়াই ক্লক পালস “অনুকরণ” করে — লুপের প্রতিটি ঘুর একটি পালস। প্রথমে একটি 4-bit D register, তারপর একটি 4-bit ripple counter আর একটি mod-10 কাউন্টার পাশাপাশি ১৬টি পালস পায়। চালান চাপুন:

// D flip-flop register: ক্লকের ধারে Q = D, বাকি সময় মান ধরে রাখে
const reg = [0, 0, 0, 0];
const clockIn = (d) => d.forEach((b, i) => { reg[i] = b; });
clockIn([1, 0, 1, 1]);
console.log("পালস ১ → register:", reg.join(""));
console.log("D = 0110, ক্লক নেই → register:", reg.join(""));
clockIn([0, 1, 1, 0]);                 // এবার ক্লক এল
console.log("পালস ২ → register:", reg.join(""));
// T flip-flop (T=1) দিয়ে ripple counter; q[0] = LSB
function tick(q) {
  for (let i = 0; i < q.length; i++) {
    q[i] ^= 1;                        // toggle
    if (q[i] === 1) break;            // 1→0 হলেই শুধু পরেরটিতে ঢেউ যায়
  }
}
const c4 = [0, 0, 0, 0], c10 = [0, 0, 0, 0], out4 = [], out10 = [];
for (let p = 1; p <= 16; p++) {
  tick(c4); tick(c10);
  out4.push([...c4].reverse().join(""));
  if (c10[3] && c10[1]) c10.fill(0);  // 1010 (দশ) হলেই clear
  out10.push(parseInt([...c10].reverse().join(""), 2));
}
console.log("4-bit:", out4.join(" "));
console.log("mod-10:", out10.join(" "));

প্রত্যাশিত আউটপুট: পালস ১ → register: 1011, তারপর D = 0110, ক্লক নেই → register: 1011 (D বদলালেও ক্লক ছাড়া রেজিস্টার পুরোনো মান ধরে রাখে — এটিই স্মৃতি), তারপর পালস ২ → register: 0110. 4-bit কাউন্টার দেখায় 0001 0010 … 1111 0000 — ১৬টি পালসে পুরো চক্র ঘুরে শূন্যে ফেরা। আর mod-10: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6. tick ফাংশনটি ripple-এর নিয়মটিই লিখেছে: প্রতিটি flip-flop উল্টানো হয় (^= 1); যে উল্টে 1 হলো, সেখানে ঢেউ থামে, আর যে 1 থেকে 0 হলো, সে পরেরটিকে উল্টাতে বলে। c10[3] && c10[1] হলো সেই NAND-এর শর্ত — Q3 আর Q1 একসাথে 1 হলেই clear. শর্ত বদলে c10[2] && c10[1] লিখলে কী হয়? (অনুশীলন ৪ দেখুন।)

৭ · কোথায় কাজে লাগে — ঘড়ি থেকে state machine

ডিজিটাল ঘড়ি আর স্টপওয়াচ

হাতের ডিজিটাল ঘড়ির ভেতরে একটি ছোট কোয়ার্টজ স্ফটিক সেকেন্ডে ঠিক ৩২,৭৬৮ বার কাঁপে। সংখ্যাটি অদ্ভুত মনে হলেও আসলে 215. তাই ১৫টি T flip-flop পরপর জুড়লে (প্রতিটি ÷ ২) শেষে পাওয়া যায় ঠিক ১ Hz — সেকেন্ডে একটি পালস। সেই পালস যায় একটি mod-10 কাউন্টারে (সেকেন্ডের একক অঙ্ক), তার প্রতি ১০ পালসে একটি পালস যায় mod-6 কাউন্টারে (সেকেন্ডের দশক অঙ্ক) — দুটি মিলে mod-60. একইভাবে মিনিট, তারপর ঘণ্টার জন্য mod-12 বা mod-24. প্রতিটি কাউন্টারের আউটপুট পর্ব ২১-এর BCD-to-7-segment ডিকোডার দিয়ে পর্দার অঙ্কে বদলায়। স্টপওয়াচও একই — শুধু শুরু-থামা-রিসেট বোতাম যোগ হয়।

মেমরি কোষ — SRAM

CPU-র cache যে SRAM দিয়ে তৈরি, তার প্রতিটি কোষ মূলত একটি latch: দুটি NOT গেট (inverter) মুখোমুখি জোড়া — একটির আউটপুট অন্যটির ইনপুট, ঠিক SR latch-এর মতো আড়াআড়ি feedback — আর পড়া-লেখার জন্য দুটি ট্রানজিস্টর। মোট ৬টি transistor, তাই একে বলে 6T কোষ। বিদ্যুৎ থাকা পর্যন্ত মান ধরে রাখে, refresh লাগে না। কেন cache-এ এটিই ব্যবহার হয়, আর মেমরি হায়ারার্কি কীভাবে সাজানো — পর্ব ২৫-এ।

Finite state machine — অবস্থার মানচিত্র

এবার সবচেয়ে বড় ধারণা। কয়েকটি flip-flop মিলে মনে রাখে যন্ত্রটি এখন কোন “অবস্থা”-য় আছে, আর combinational লজিক ঠিক করে ইনপুট দেখে পরের অবস্থা কী হবে (ছবি ২২.১ আবার দেখুন)। নির্দিষ্টসংখ্যক অবস্থা আর তাদের মধ্যে যাওয়ার নিয়ম — এই মডেলকে বলে finite state machine (FSM). চৌরাস্তার ট্রাফিক বাতি এর সহজ উদাহরণ (সময়গুলো কাল্পনিক, শুধু বোঝার জন্য):

নিয়ন্ত্রকের ভেতরে
অবস্থা (Q1 Q0)
বাতি
টাইমার কাউন্টার
পরের অবস্থা হবে
  1. অবস্থা 00 = সবুজ। দুটি D flip-flop-এ 00 রাখা। একটি down counter ৩০ থেকে নিচে গুনছে (ক্লক ধরুন ১ Hz). টাইমার শেষ না হওয়া পর্যন্ত পরের অবস্থা = এখনকার অবস্থা।
  2. টাইমার শেষ। কাউন্টার ০ ছুঁলে “শেষ” সংকেত 1 হয়। Combinational লজিক হিসাব করে: “এখন 00, শেষ = 1, তাই পরের অবস্থা 01.” পরের ক্লকের ধারে flip-flop-গুলো 01 নেবে।
  3. অবস্থা 01 = হলুদ। ডিকোডার (পর্ব ২১) 01 দেখে হলুদ বাতি জ্বালায়, টাইমারে ৫ বসে। শেষ হলে পরের অবস্থা 10.
  4. অবস্থা 10 = লাল। ৩০ সেকেন্ড লাল। শেষ হলে পরের অবস্থা 00. খেয়াল করুন, 11 অবস্থাটি ব্যবহার হয়নি — দুটি flip-flop-এ ৪টি অবস্থা সম্ভব, আমাদের লাগে ৩টি (ঠিক mod-N হিসাবের মতো)। ভালো নকশায় ভুলক্রমে 11-এ পৌঁছালে সেখান থেকে লালে নিয়ে যাওয়ার নিয়ম রাখা হয় — নিরাপদ দিকে।
  5. আবার সবুজ। চক্র চলতেই থাকে। পুরো নিয়ন্ত্রক = ২টি flip-flop (অবস্থা) + একটি কাউন্টার (সময়) + কয়েকটি গেট (নিয়ম)। পথচারী-বোতাম যোগ করতে চাইলে শুধু একটি ইনপুট আর একটি নতুন অবস্থা যোগ হয়।

এই একই ছকে চলে লিফট (কোন তলায়, ওপরে না নিচে যাচ্ছে, দরজা খোলা না বন্ধ), ওয়াশিং মেশিন (ভেজানো → ধোয়া → নিংড়ানো), ভেন্ডিং মেশিন (কত টাকা ঢুকেছে), এমনকি CPU-র নিয়ন্ত্রণ অংশ — যা প্রতিটি নির্দেশের জন্য fetch, decode, execute ধাপে ঘোরে (পর্ব ২৪)। কম্পিউটার আসলে একটি বিশাল state machine: register, cache আর RAM-এর সব bit মিলে তার “অবস্থা”, আর প্রতিটি ক্লক টিকে সে পরের অবস্থায় যায়।

পরীক্ষা ও ইন্টারভিউতে — এ ধরনের প্রশ্ন প্রায়ই আসে (HSC সৃজনশীল প্রশ্নের “জ্ঞানমূলক” ও “অনুধাবনমূলক” অংশে, আর চাকরির MCQ-তে):

  • একটি flip-flop কত bit রাখে? ১ bit. n-bit রেজিস্টারে লাগে n-টি flip-flop.
  • Latch আর flip-flop-এর পার্থক্য? Latch level-triggered (enable 1 থাকার পুরো সময় ইনপুট অনুসরণ করে); flip-flop edge-triggered (শুধু ক্লকের ধারে মান নেয়)।
  • Mod-N কাউন্টারে কয়টি flip-flop? সবচেয়ে ছোট n, যাতে 2n ≥ N; যেমন mod-10-এ ৪টি, mod-6-এ ৩টি। n-টি flip-flop-এ সর্বোচ্চ গণনা 2n − ১.
  • Shift register-এর ব্যবহার? সিরিয়াল ↔ প্যারালাল রূপান্তর (USB, কিবোর্ড), বাঁয়ে সরিয়ে ২ দিয়ে গুণ / ডানে সরিয়ে ২ দিয়ে ভাগ, ডেটা দেরি করানো।
  • SR flip-flop-এর অবৈধ অবস্থা কোনটি, কীভাবে দূর হয়? NOR-ভিত্তিকে S = R = 1 (NAND-ভিত্তিকে দুটোই 0); D flip-flop (S-R-এ উল্টো সংকেত) বা JK flip-flop (J = K = 1 মানে toggle) দিয়ে দূর হয়।

আরও গভীরে: Flip-flop-এর ভেতরে আরও সূক্ষ্ম নিয়ম আছে — setup time (ক্লকের ধারের কত আগে D স্থির থাকতে হবে) আর hold time (পরে কতক্ষণ)। এই সময় ভাঙলে কী হয়, তা ভাবনার প্রশ্ন ৩-এ দেখবেন। Excitation table, master-slave নকশার ভেতরের গেট, ring আর Johnson counter, আর Moore বনাম Mealy state machine নকশা করতে চাইলে আমাদের Computer Architecture & Digital Logic কোর্সের flip-flop, কাউন্টার আর state machine পর্বগুলো দেখুন।

৮ · AI-এর যুগে — flip-flop-এর উত্তর যাচাই করুন

AI চ্যাটবট flip-flop-এর ব্যাখ্যা খুব গুছিয়ে লেখে, কিন্তু সময়ের খুঁটিনাটি (timing) আর সীমান্ত-অবস্থায় (edge case) প্রায়ই অস্পষ্ট বা ভুল বলে — কারণ নামগুলো কাছাকাছি (SR/JK/T), আর অনলাইনের নোটেই এগুলো প্রায়ই গুলিয়ে থাকে। ভালো খবর: এখানে যাচাই করা খুব সহজ — characteristic table আর একটি ছোট সিমুলেটরই বিচারক।

AI-এর সাধারণ ভুলকীভাবে ধরবেন
“SR-এ S = R = 1 দিলে toggle হয়” — JK-এর নিয়ম SR-এ বসিয়ে দেওয়াNOR latch-এ নিজে হিসাব করুন: দুটি NOR-এরই একটি ইনপুট 1, তাই Q = Q′ = 0 — নিষিদ্ধ
“JK-তে J = K = 1 নিষিদ্ধ”JK-এর characteristic table: 11 মানে toggle — JK তৈরিই হয়েছে এই সমস্যা দূর করতে
Latch আর flip-flop এক জিনিস বলাপ্রশ্ন করুন: “enable 1 থাকা অবস্থায় D দুবার বদলালে আউটপুট কী করে?” latch-এ দুবার বদলায়, flip-flop-এ বদলায় না
Ripple counter-এ “সব flip-flop একসাথে বদলায়” বলাripple-এ শুধু প্রথমটি ক্লক পায়; একসাথে বদলায় synchronous কাউন্টারে
Mod-N-এ flip-flop সংখ্যা ভুল (যেমন mod-10-এ ৫টি বা ১০টি)2n ≥ N দিয়ে নিজে হিসাব: 24 = ১৬ ≥ ১০, তাই ৪
Timing diagram-এ ভুল ধারে পরিবর্তন দেখানোপ্রতীকে বৃত্ত (নামতি ধার) আছে কি না দেখুন; প্রতিটি পরিবর্তন একটি ক্লক-ধারের সাথে মেলান

নিচের prompt-টি কপি করে ব্যবহার করুন। AI-কে নিজের উত্তর টেবিল দিয়ে প্রমাণ করতে আর অনিশ্চিত জায়গা আলাদা করতে বলা হয়েছে:

আমি HSC/চাকরির পরীক্ষার জন্য flip-flop পড়ছি। একটি positive-edge triggered JK flip-flop-এ শুরুতে Q = 0. পরপর ৬টি ক্লক পালসে (J, K) = (1,0), (0,0), (1,1), (1,1), (0,1), (1,1). ১. প্রতিটি পালসের পরে Q কত হবে, একটি টেবিলে দেখাও — প্রতিটি সারিতে characteristic table-এর কোন সারি ব্যবহার করলে, তা লেখো। ২. একই প্রশ্ন NOR-ভিত্তিক SR flip-flop-এ করলে (J-এর জায়গায় S, K-এর জায়গায় R) কোন পালসে সমস্যা হবে, আর কেন? ৩. latch আর flip-flop-এর পার্থক্য একটি timing উদাহরণ দিয়ে বোঝাও। ৪. যে জায়গায় তুমি নিশ্চিত নও বা পাঠ্যবইভেদে নিয়ম আলাদা (যেমন NAND বনাম NOR latch), তা আলাদা করে চিহ্নিত করো।

AI-এর উত্তর হাতে পেলে — যাচাইয়ের চেকলিস্ট

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন। ইতিহাস আর প্রকৌশলের এই গল্পগুলো flip-flop-কে নতুন চোখে দেখাবে।

প্র ০১প্রথম flip-flop তৈরি হয়েছিল ১৯১৮ সালে, ভ্যাকুয়াম টিউব দিয়ে — কম্পিউটার আসার কয়েক দশক আগে। কারা বানালেন, আর কেন?

১৯১৮ সালে ব্রিটিশ পদার্থবিদ William Eccles আর F. W. Jordan একটি সার্কিটের পেটেন্টের আবেদন করেন, আর ১৯১৯ সালে তার বিবরণ প্রকাশ করেন। তাঁরা একে বলেছিলেন “trigger relay”. সার্কিটে ছিল দুটি vacuum tube (triode), এমনভাবে জোড়া যে একটির আউটপুট অন্যটির ইনপুট নিয়ন্ত্রণ করে — ঠিক এই পর্বের দুটি NOR গেটের মতো আড়াআড়ি feedback. ফলে যেকোনো মুহূর্তে একটি টিউব চালু আর অন্যটি বন্ধ থাকে, আর একটি ছোট বৈদ্যুতিক ধাক্কা (trigger) দিলে অবস্থা উল্টে যায়, তারপর সেখানেই থেকে যায়। দুটি স্থির অবস্থা — তাই একে পরে বলা হয় bistable multivibrator; আর উল্টে যাওয়া-ফেরার ভঙ্গি থেকে নাম হয় flip-flop.

তখন কম্পিউটারের কোনো ধারণাই বাস্তবে ছিল না; উদ্দেশ্য ছিল বেতার যোগাযোগ আর সংকেত নিয়ে পরীক্ষা। কিন্তু ১৯৩০–৪০-এর দশকে বিজ্ঞানীরা বুঝলেন, এই সার্কিট একটি bit মনে রাখতে পারে, আর কয়েকটি পরপর জুড়লে পালস গুনতে পারে। পারমাণবিক বিকিরণ মাপার যন্ত্রে দ্রুত কণা গোনার জন্য এমন “scale-of-two” কাউন্টার ব্যবহার শুরু হয় — ঠিক এই পর্বের T flip-flop শিকল। দ্বিতীয় বিশ্বযুদ্ধের সময় ব্রিটেনের Colossus আর যুক্তরাষ্ট্রের ENIAC-এর মতো প্রথম দিকের ইলেকট্রনিক কম্পিউটারেও গণনা আর মনে রাখার কাজে টিউবের flip-flop ব্যবহার হয়েছিল। প্রতিটি টিউব গরম হতো, বিদ্যুৎ খেত, আর মাঝে মাঝে পুড়ে যেত — হাজার হাজার টিউবের যন্ত্র চালু রাখা ছিল বিরাট চ্যালেঞ্জ (পর্ব ০২-এর প্রথম প্রজন্মের গল্প)।

তারপর এল ট্রানজিস্টর, এল integrated circuit — কিন্তু নকশাটি বদলায়নি। আজকের চিপের প্রতিটি flip-flop আর প্রতিটি SRAM কোষ এখনো সেই একই ধারণা: দুটি উল্টো-করা অংশ একে অপরকে টিকিয়ে রাখে। শুধু আকার কোটি গুণ ছোট আর গতি কোটি গুণ বেশি।

মূল উপলব্ধি: স্মৃতির মূল কৌশল — দুটি অংশের পারস্পরিক feedback — এক শতাব্দীরও বেশি পুরোনো, আর যন্ত্রের উপাদান (টিউব → ট্রানজিস্টর → ন্যানোমিটার মাপের চিপ) বদলালেও ধারণাটি অটুট। ভালো ধারণা প্রযুক্তির চেয়ে বেশি দিন টেকে।

প্র ০২ক্লক কেন সবকিছু এক তালে চালায়? আর ২০০০-এর দশকের মাঝামাঝি GHz-এর দৌড় হঠাৎ থামল কেন?

একটি CPU-তে কোটি কোটি গেট। প্রতিটি গেটে সংকেত পৌঁছাতে সামান্য সময় লাগে, আর বিভিন্ন পথের দেরি আলাদা। ক্লক ছাড়া কাজ করতে গেলে প্রতিটি অংশকে জিজ্ঞেস করতে হতো, “হিসাব কি শেষ হয়েছে?” — নকশা হতো ভয়ানক জটিল। ক্লক একটি সরল চুক্তি দেয়: দুই টিকের মাঝে সব গেট হিসাব শেষ করবে, আর টিকের মুহূর্তে সব flip-flop একসাথে ফল গ্রহণ করবে। নকশাকারীর কাজ হয় শুধু নিশ্চিত করা যে সবচেয়ে লম্বা পথটিও (critical path) এক পর্যায়কালের মধ্যে শেষ হয়। তাই ক্লকের গতি = CPU-র গতির একটি বড় মাপ।

১৯৭১ সালের প্রথম মাইক্রোপ্রসেসর Intel 4004 চলত সেকেন্ডে কয়েকশো হাজার টিকে (kHz-এর ঘরে)। ১৯৯০-এর দশকে MHz থেকে ২০০০ সালের দিকে ১ GHz পার হয়। Intel-এর Pentium 4 প্রায় ৩.৮ GHz পর্যন্ত ওঠে, আর পরিকল্পনা ছিল আরও বহু দূর যাওয়ার। কিন্তু ২০০৪–২০০৫ নাগাদ দৌড় কার্যত থেমে যায়, আর ৪ GHz-এর একটি পরিকল্পিত সংস্করণ বাতিল হয়।

কারণ তাপ। প্রতিটি টিকে কোটি transistor চার্জ-ডিসচার্জ হয়; খরচ হওয়া শক্তি মোটামুটি কম্পাঙ্ক × ভোল্টেজ2-এর সমানুপাতিক। আগে প্রতি প্রজন্মে transistor ছোট হলে ভোল্টেজও কমানো যেত (Dennard scaling), তাই গতি বাড়লেও তাপ সামলানো যেত। কিন্তু ২০০০-এর দশকের মাঝামাঝি ভোল্টেজ আর কমানো যাচ্ছিল না — অল্প ভোল্টেজে transistor ঠিকমতো বন্ধ হয় না, ফুটো দিয়ে বিদ্যুৎ চুইয়ে যায়। ফলে ঘড়ি বাড়ালেই চিপ এত গরম হতো যে সাধারণ কুলারে ঠান্ডা রাখা অসম্ভব হয়ে পড়ছিল — একে বলা হয় “power wall”.

শিল্প তখন দিক বদলায়: এক কোর দ্রুত না করে কয়েকটি কোর পাশাপাশি বসানো (multicore). ২০০৫–২০০৬ সালে ডুয়াল-কোর প্রসেসর সাধারণ ক্রেতার কাছে আসে। আজকের ল্যাপটপের ক্লক এখনো সাধারণত ৩–৫ GHz-এর ঘরে, কিন্তু কোর অনেক, প্রতি টিকে কাজ বেশি, আর cache বড়। বিস্তারিত পর্ব ২৪-এ।

মূল উপলব্ধি: ক্লক নকশাকে সরল করে, কিন্তু গতিকে বেঁধে দেয় তাপ আর পদার্থবিজ্ঞান। “বেশি GHz = বেশি দ্রুত” কথাটি একই প্রজন্মের মধ্যে আংশিক সত্য, প্রজন্মের তুলনায় নয় — আধুনিক কম্পিউটারের গতি আসে সমান্তরাল কাজ আর ভালো নকশা থেকে।

প্র ০৩Flip-flop কি কখনো “সিদ্ধান্ত নিতে পারে না”? Metastability কী, আর এটি কেন বাস্তব সমস্যা?

এই পর্বে আমরা ধরে নিয়েছি flip-flop-এর আউটপুট সবসময় পরিষ্কার 0 বা 1. বাস্তবে একটি শর্ত আছে: ক্লকের ধারের সামান্য আগে (setup time) আর সামান্য পরে (hold time) D ইনপুট স্থির থাকতে হবে। এই ছোট জানালার ভেতরেই D বদলালে flip-flop বিপদে পড়ে — সে না পুরো 0, না পুরো 1, মাঝামাঝি একটি ভোল্টেজে কিছুক্ষণ ঝুলে থাকতে পারে। একে বলে metastability.

একটি উপমা: একটি বল পাহাড়ের চূড়ায় রাখা। দুই পাশে দুটি উপত্যকা — একটি 0, একটি 1. বলটি চূড়ায় একদম মাঝখানে থাকলে তাত্ত্বিকভাবে অনেকক্ষণ দাঁড়িয়ে থাকতে পারে, তারপর হঠাৎ কোনো এক দিকে গড়িয়ে পড়ে। কোন দিকে আর কতক্ষণ পরে — আগে থেকে বলা যায় না। cross-coupled গেট দুটির feedback ঠিক এমন দুটি উপত্যকা তৈরি করে, আর মাঝখানে থাকে একটি অস্থির ভারসাম্যের বিন্দু। SR latch-এর “S = R = 1 থেকে একসাথে 0” অবস্থাও একই ধরনের দৌড়।

সমস্যাটি বাস্তবে আসে যখন বাইরের জগতের সংকেত — একটি বোতাম চাপা, নেটওয়ার্ক কার্ডের ডেটা, অন্য ক্লকে চলা একটি চিপ — CPU-র ক্লকের সাথে মিল রেখে আসে না। কোটি বারে একবার হলেও সেই সংকেত ঠিক জানালার ভেতরে বদলাবেই। ঝুলে থাকা মান সার্কিটের দুই অংশ দুইভাবে পড়লে একটি অংশ ভাবে 0, আরেকটি ভাবে 1 — ফল রহস্যময়, বিরল, খুঁজে পাওয়া কঠিন ত্রুটি।

প্রকৌশলীরা এটি পুরোপুরি দূর করতে পারেন না — পদার্থবিজ্ঞানের দিক থেকেই অসম্ভব বলে ধরা হয়। তবে সম্ভাবনা নগণ্য করা যায়: বাইরের সংকেতকে পরপর দুটি (কখনো তিনটি) flip-flop-এর ভেতর দিয়ে পাঠানো হয় — একে বলে synchronizer. প্রথমটি ঝুলে গেলেও পুরো একটি ক্লক পর্যায় সময় পায় স্থির হওয়ার জন্য, আর দ্বিতীয়টি প্রায় নিশ্চিতভাবে পরিষ্কার মান পায়। এভাবে ভুলের গড় ব্যবধান (MTBF) বছর থেকে শত-হাজার বছরে ঠেলে দেওয়া যায়।

মূল উপলব্ধি: ডিজিটাল জগতের “পরিষ্কার 0 আর 1” আসলে একটি বিমূর্ততা — নিচে আছে অবিচ্ছিন্ন ভোল্টেজ আর সময়ের পদার্থবিজ্ঞান। ভালো প্রকৌশল এই অনিশ্চয়তা অস্বীকার করে না, বরং মেপে নিরাপদ সীমার নিচে নামায়। এই স্তরগুলোর গল্প পরের পর্বে (পর্ব ২৩)।

প্র ০৪SRAM রাখে flip-flop-এর মতো কোষে, DRAM রাখে ছোট capacitor-এ। cache কেন SRAM, আর মূল RAM কেন DRAM?

দুটির গঠন পাশাপাশি রাখুন। SRAM-এর একটি কোষে থাকে দুটি inverter, মুখোমুখি জোড়া — এই পর্বের latch-এর মতোই আড়াআড়ি feedback — আর পড়া-লেখার জন্য দুটি দরজা-transistor: মোট ৬টি। যতক্ষণ বিদ্যুৎ আছে, feedback নিজেই মান টিকিয়ে রাখে; কিছু করতে হয় না। পড়াও দ্রুত, কারণ কোষটি নিজেই শক্তিশালী সংকেত দেয়।

DRAM-এর কোষে থাকে মাত্র একটি transistor আর একটি ছোট capacitor (চার্জ ধরে রাখার পাত্র)। চার্জ আছে মানে 1, নেই মানে 0. কোনো feedback নেই, তাই চার্জ ধীরে ধীরে চুইয়ে যায় — প্রতিটি কোষকে কয়েক ডজন মিলিসেকেন্ডের মধ্যে (প্রচলিত মানে প্রায় ৬৪ ms) আবার পড়ে লিখে দিতে হয়, একে বলে refresh. আর পড়ার সময় capacitor-এর ক্ষীণ চার্জ বিশেষ সার্কিটে বড় করে বুঝতে হয়, পড়লেই চার্জ নষ্ট হয় বলে আবার লিখতে হয়। সব মিলিয়ে ধীর।

তাহলে সব জায়গায় SRAM দিলেই হয়? সমস্যা জায়গা আর দাম। ৬টি transistor-এর কোষ ১টি transistor আর ১টি capacitor-এর কোষের চেয়ে অনেক গুণ বেশি জায়গা নেয়। একই চিপে SRAM-এ যদি কয়েক MB আঁটে, DRAM-এ আঁটে কয়েক GB. তাই নকশাকারীরা দুটিকে মিলিয়ে ব্যবহার করেন: CPU-র একদম কাছে ছোট কিন্তু অতি-দ্রুত SRAM cache (L1, L2, L3), আর বাইরে বড় কিন্তু সস্তা DRAM. প্রোগ্রাম সাধারণত বারবার একই বা কাছের ডেটা চায় (locality), তাই ছোট cache-ই বেশিরভাগ চাহিদা মেটায়।

দুটিই volatile — বিদ্যুৎ গেলে দুটিই ভোলে (পর্ব ০৪)। আর মজার বিষয়, register থেকে cache পর্যন্ত CPU-র সবচেয়ে দ্রুত সব মেমরিই আসলে এই পর্বের flip-flop/latch পরিবারের সদস্য। মেমরি হায়ারার্কির পুরো নকশা পর্ব ২৫-এ।

মূল উপলব্ধি: মেমরির নকশা মানেই আপস — feedback দিয়ে স্থির রাখা (দ্রুত কিন্তু বড়) বনাম চার্জ জমিয়ে রাখা (ঘন কিন্তু refresh লাগে)। কোনো একটি “সেরা” নয়; সঠিক জায়গায় সঠিকটি বসানোই প্রকৌশল।

প্র ০৫ট্রাফিক বাতি, লিফট, ইন্টারনেটের প্রোটোকল — সবখানেই finite state machine. এই ধারণা কোথা থেকে এল, আর কেন এত শক্তিশালী?

Sequential সার্কিটকে গাণিতিকভাবে বর্ণনা করার দুটি বিখ্যাত পদ্ধতি এসেছিল ১৯৫০-এর দশকের মাঝামাঝি, Bell Labs আর তার আশপাশের গবেষকদের হাত ধরে। ১৯৫৫ সালে George Mealy এমন মডেল দেন, যেখানে আউটপুট নির্ভর করে বর্তমান অবস্থা আর ইনপুট — দুটির ওপর (Mealy machine). ১৯৫৬ সালে Edward Moore মডেল দেন, যেখানে আউটপুট নির্ভর করে শুধু বর্তমান অবস্থার ওপর (Moore machine) — এই পর্বের ট্রাফিক বাতি এমন, বাতির রং শুধু অবস্থা দেখেই ঠিক হয়। দুটি মডেলই বলে: যন্ত্র = নির্দিষ্টসংখ্যক অবস্থা + অবস্থা বদলের নিয়ম + আউটপুটের নিয়ম।

শক্তিটা এখানে যে, একবার অবস্থা আর নিয়মের তালিকা (state diagram) আঁকতে পারলে বাকিটা প্রায় যান্ত্রিক: প্রতিটি অবস্থাকে বাইনারি নম্বর দিন, ততগুলো flip-flop নিন (৩টি অবস্থায় ২টি), আর নিয়মগুলোকে truth table বানিয়ে পর্ব ১৯-২০-এর কৌশলে গেটে রূপ দিন। লিফট নিয়ন্ত্রক, ওয়াশিং মেশিন, মাইক্রোওয়েভ, গাড়ির ইঞ্জিনের নিয়ন্ত্রক, কিবোর্ডের চিপ — সবই এভাবে তৈরি।

ধারণাটি হার্ডওয়্যারের বাইরেও ছড়িয়েছে। ইন্টারনেটের TCP প্রোটোকল (পর্ব ৩৩) একটি সংযোগকে কয়েকটি নামকরা অবস্থার মধ্য দিয়ে নেয় — যেমন LISTEN, SYN-SENT, ESTABLISHED, TIME-WAIT — আর প্রতিটি প্যাকেট দেখে ঠিক করে পরের অবস্থা কী। কম্পিউটারের ভাষা-অনুবাদক (compiler) লেখা পড়ার সময় শব্দ চেনে state machine দিয়ে; টেক্সট খোঁজার regular expression-ও ভেতরে একটি state machine. গেমের চরিত্র (হাঁটছে → দৌড়াচ্ছে → লাফাচ্ছে), মোবাইল অ্যাপের পর্দা (লগইন → হোম → পেমেন্ট), bKash-এর মতো লেনদেন (শুরু → PIN যাচাই → সফল/ব্যর্থ) — সবখানেই অবস্থা আর নিয়ম।

আর একটি কারণে FSM অমূল্য: যাচাই। অবস্থার সংখ্যা সীমিত বলে প্রতিটি অবস্থা আর প্রতিটি ইনপুট পরীক্ষা করে দেখা যায় — “লাল আর সবুজ কি কখনো একসাথে জ্বলতে পারে?” প্রশ্নের নিশ্চিত উত্তর পাওয়া যায়। নিরাপত্তা-গুরুত্বপূর্ণ যন্ত্রে (রেল সিগন্যাল, চিকিৎসা যন্ত্র) এই ধরনের আনুষ্ঠানিক যাচাই খুব কাজে লাগে।

মূল উপলব্ধি: “এখন কোন অবস্থায় আছি, আর কী ঘটলে কোথায় যাব” — এই সরল প্রশ্ন দিয়ে জটিল আচরণকে সাজানো যায়। flip-flop সেই “এখন”-কে মনে রাখে; তাই flip-flop বুঝলে আপনি শুধু একটি সার্কিট নয়, কম্পিউটার বিজ্ঞানের অন্যতম কেন্দ্রীয় চিন্তার ধরন বুঝলেন।

অনুশীলন

খাতা-কলম নিন — টেবিল এঁকে হিসাব করাই আসল কাজ। শুধু শেষটিতে সিমুলেটরের একটি লাইন বদলাতে হবে।

  1. SR latch-এর অবস্থা বের করুন: একটি NOR-ভিত্তিক SR latch-এ শুরুতে Q = 0. পরপর ইনপুট (S, R) = (0,0), (1,0), (0,0), (0,1), (0,0), (1,0). প্রতিটির পরে Q আর Q′ কত?

    (0,0): hold → Q = 0, Q′ = 1. (1,0): set → Q = 1, Q′ = 0. (0,0): hold → Q = 1, Q′ = 0. (0,1): reset → Q = 0, Q′ = 1. (0,0): hold → Q = 0, Q′ = 1. (1,0): set → Q = 1, Q′ = 0. ধারা: 0, 1, 1, 0, 0, 1. লক্ষ করুন, তৃতীয় আর পঞ্চম ইনপুট একই (0,0), কিন্তু Q আলাদা — আগের ঘটনার ওপর নির্ভর করছে।

  2. JK আর T flip-flop: (ক) একটি JK flip-flop-এ শুরুতে Q = 0; পরপর পালসে (J, K) = (1,0), (0,0), (1,1), (1,1), (0,1). প্রতি পালসের পর Q কত? (খ) একটি T flip-flop-এ শুরুতে Q = 1; পরপর T = 1, 0, 1, 1. Q কত হবে?

    (ক) (1,0) set → 1; (0,0) hold → 1; (1,1) toggle → 0; (1,1) toggle → 1; (0,1) reset → 0. ধারা: 1, 1, 0, 1, 0.

    (খ) T = 1 → 0; T = 0 → 0; T = 1 → 1; T = 1 → 0. ধারা: 0, 0, 1, 0. Qn+1 = T ⊕ Qn দিয়ে প্রতিটি মিলিয়ে নিন।

  3. কাউন্টার নকশার হিসাব: (ক) একটি স্টপওয়াচের মিনিটের ঘর ০০ থেকে ৫৯ দেখায়। পুরোটি একটি বাইনারি কাউন্টারে করলে ন্যূনতম কয়টি flip-flop? দুটি আলাদা অঙ্ক (একক আর দশক) হিসেবে করলে কয়টি? (খ) একটি ৫১২ Hz সংকেত থেকে ১ Hz পেতে কয়টি T flip-flop পরপর লাগবে? (গ) 4-bit রেজিস্টারে 0101 আছে; একবার বাঁয়ে shift (ডানে 0 ঢুকছে) করলে কী হবে, দশমিকে কত?

    (ক) ৬০টি অবস্থা: 25 = ৩২ কম, 26 = ৬৪ যথেষ্ট — ৬টি. আলাদা অঙ্ক হিসেবে: একক অঙ্ক mod-10 (৪টি) + দশক অঙ্ক mod-6 (৩টি) = ৭টি. একটি বেশি লাগে, কিন্তু প্রতিটি অঙ্ক সরাসরি 7-segment ডিকোডারে দেওয়া যায় — তাই ডিজিটাল ঘড়িতে দ্বিতীয় পদ্ধতিই প্রচলিত।

    (খ) ৫১২ = 29, তাই ৯টি; প্রতিটি ÷ ২: ৫১২ → ২৫৬ → … → ১.

    (গ) 0101 (৫) → 1010 (১০) — ঠিক দ্বিগুণ।

  4. সিমুলেটরে mod-6: অংশ ৬-এর সিমুলেটরে c10[3] && c10[1]-এর জায়গায় c10[2] && c10[1] লিখে চালান। mod-10: লাইনে এখন কী দেখায়, আর কেন? কাউন্টারটি এখন mod কত?

    আউটপুট হবে 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 — এখন এটি mod-6 কাউন্টার (লেবেলটি এখনো “mod-10” লেখা থাকবে, কারণ সেটি শুধু লেখা)। কারণ: ৬ = বাইনারিতে 0110, যেখানে Q2 আর Q1 দুটোই 1; ০ থেকে ৫-এর কোনো সংখ্যায় এই দুটি একসাথে 1 নয় (৫ = 0101, ৪ = 0100, ৩ = 0011). তাই কাউন্টার ৬ ছুঁতেই clear হয়। এটিই ডিজিটাল ঘড়ির সেকেন্ডের দশক অঙ্ক।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমএকটি 3-bit up counter (Q2 Q1 Q0) শুরু থেকে প্রতিটি পালসে যে ক্রমে যায় — সাজান (▲▼ চেপে সরান)

  1. 000 (শুরু)
  2. 001
  3. 010
  4. 011
  5. 100
  6. 101

NOR গেট দিয়ে তৈরি একটি SR latch-এ S = 1 আর R = 1 দিলে কী হয়?

  • আউটপুট উল্টে যায় (toggle)
  • আগের মান ধরে রাখে (hold)
  • Q আর Q′ দুটোই 0 হয় — নিষিদ্ধ (invalid) অবস্থা
  • Q = 1, Q′ = 0 (set)

একটি JK flip-flop-এ J = 1 আর K = 1 রেখে একটি ক্লক-ধার দিলে আউটপুট Q কী হয়?

  • অবৈধ অবস্থা হয়
  • আগের মানের উল্টো হয় (toggle)
  • সবসময় 1 হয়
  • আগের মান অপরিবর্তিত থাকে

একটি mod-10 (decade) কাউন্টার বানাতে ন্যূনতম কয়টি flip-flop লাগে?

  • ৪টি
  • ৩টি
  • ৫টি
  • ১০টি

কোন flip-flop-এ ক্লকের ধারে আউটপুট সরাসরি ইনপুটের মান নেয় (Qn+1 = ইনপুট), আর তাই রেজিস্টারের মৌলিক ১-bit কোষ হিসেবে সবচেয়ে বেশি ব্যবহৃত?

  • T flip-flop
  • JK flip-flop
  • SR flip-flop
  • D flip-flop

একটি 4-bit shift register-এ 0011 আছে। একবার বাঁয়ে shift করলে (ডান দিকে 0 ঢোকে) নতুন মান আর তার অর্থ কী?

  • 0001 — মান অর্ধেক
  • 0110 — মান দ্বিগুণ (৩ → ৬)
  • 1100 — মান চার গুণ
  • 1100 — সব bit উল্টে যায়

ডিজিটাল ঘড়ির কোয়ার্টজ স্ফটিক সেকেন্ডে ৩২,৭৬৮ বার কাঁপে (= 215). সেখান থেকে ঠিক ১ Hz পেতে কয়টি T flip-flop (T = 1) পরপর লাগে?

  • ৮টি
  • ১৬টি
  • ১৫টি
  • ১০টি

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. Sequential = combinational + স্মৃতি + feedback. আউটপুট নির্ভর করে বর্তমান ইনপুট আর আগের অবস্থার ওপর।
  2. NOR SR latch: 00 hold, 01 reset, 10 set, 11 নিষিদ্ধ। Latch level-triggered, flip-flop edge-triggered.
  3. D: Qn+1 = D (রেজিস্টারের কোষ)। JK: 11 মানে toggle. T: T = 1 মানে toggle, কম্পাঙ্ক ÷ ২.
  4. ক্লক: T = 1/f; ৩ GHz ≈ ০.৩৩ ns. রেজিস্টার = flip-flop-এর সারি; shift register: SISO, SIPO, PISO, PIPO; বাঁয়ে shift = × ২.
  5. কাউন্টার: n-টি flip-flop → ০ থেকে 2n − ১; mod-N-এ 2n ≥ N; ripple-এ ঢেউ, synchronous-এ সবাই একসাথে। ঘড়ি, ট্রাফিক বাতি, CPU — সবই state machine.

পরের পর্বে: মডিউল ৩ শেষ — গেট থেকে flip-flop পর্যন্ত সব ইট আপনার হাতে। এবার মডিউল ৪-এ ওপরে উঠব: ট্রানজিস্টর থেকে গেট, গেট থেকে CPU, CPU থেকে অপারেটিং সিস্টেম আর অ্যাপ — কীভাবে স্তরের পর স্তর বিমূর্ততা দিয়ে আধুনিক কম্পিউটার গড়ে ওঠে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান