LEVEL 2
ডিজিটাল লজিক ও কম্পিউটার সংগঠন
Digital Logic & Computer Organization
এই মডিউল যে প্রশ্নের উত্তর দেয়কয়েক কোটি on/off switch দিয়ে "যোগ করা" কীভাবে সম্ভব হয়?
এখানে আমরা abstraction-এর একদম নিচে নামি। একটা transistor একটা switch। কয়েকটা switch মিলে gate। Gate মিলে adder। Adder মিলে ALU। ALU + memory + control = CPU। প্রতিটা ধাপ নিজে হাতে বানাব।
লেসন
- 01Transistor — একটা সুইচ যা কম্পিউটেশনের জন্ম দিলএকটা transistor আসলে একটা voltage দিয়ে নিয়ন্ত্রিত সুইচ মাত্র — কিন্তু এই সরল সুইচ, একটা সুচিন্তিত voltage-margin কনভেনশনের সাথে মিলে, অবিশ্বস্ত analog physics-এর উপর একটা নিখুঁত বিশ্বস্ত digital জগৎ তৈরি করে।
- 02CMOS Gate — Transistor জোড়া লাগিয়ে প্রথম Logic তৈরিএকটা NMOS আর একটা PMOS-কে বিপরীতমুখী pull-down/pull-up নেটওয়ার্ক হিসেবে জোড়া দিলে প্রথম logic gate জন্ম নেয় — আর CMOS প্রযুক্তির গঠনগত কারণেই NAND/NOR সবচেয়ে সস্তা, AND/OR নয়।
- 03NAND-এর সর্বজনীনতা — একটা মাত্র gate দিয়ে সবকিছুNAND দিয়েই NOT, AND, OR — এমনকি XOR — বানানো যায়; যেহেতু {AND, OR, NOT} ইতিমধ্যে functionally complete (Level 0), তাই NAND একাই যেকোনো Boolean function বাস্তবায়নের জন্য যথেষ্ট।
- 04Boolean Simplification বাস্তব Circuit-এ — Gate গোনার হিসাবK-map দিয়ে হাতে minimize করা এবার সত্যিকারের circuit-এ প্রয়োগ — একটা ৪-input voting circuit আর একটা 7-segment decoder দিয়ে gate ও transistor সংখ্যা মেপে minimization-এর আসল দাম বোঝা।
- 05Adder Circuit — গণিত থেকে সিলিকনে যোগফলHalf-adder থেকে full-adder, তারপর n-bit ripple-carry chain — গণিতের mod 2ⁿ addition এবার সিলিকনে। আর কেন carry ripple করাটাই adder-এর আসল শত্রু, carry-lookahead কীভাবে সেটা কমায়।
- 06Subtractor আর Comparator — একই Adder-এর দ্বিতীয় জীবনsigned-integers লেসনের প্রতিশ্রুতি এবার সিলিকনে — একই adder circuit-এ কয়েকটা XOR gate যোগ করেই বিয়োগ, তুলনা, আর ALU-র zero/carry/overflow flag সব বেরিয়ে আসে।
- 07Multiplexer ও Decoder — ডেটা রাউটিং-এর ভাষাMUX এক তথ্য-নির্বাচক — N ইনপুট, log₂N select লাইন, ১ আউটপুট — আর এর dual, decoder। এই দুইটা ব্লক দিয়েই CPU-র মধ্যে data আর control সিগন্যাল রাউট হয়।
- 08ALU Design — Arithmetic Logic Unit-এর ভেতরের স্থাপত্যALU-তে adder/subtractor, bitwise logic unit, আর shifter — সবগুলো প্রতিটা চক্রে সমান্তরালে গণনা হয়; একটা op-select code driven output MUX ঠিক করে কোনটা 'জেতে'। এটাই curriculum-এর প্রথম প্রোগ্রামযোগ্য হার্ডওয়্যার।
- 09Latch ও Flip-Flop — সার্কিট যখন প্রথম মনে রাখতে শেখেএকটা gate-এর আউটপুট নিজের ইনপুটে ফিরিয়ে দিলে (feedback) সার্কিট প্রথমবার 'মনে রাখতে' শেখে — SR latch থেকে D latch হয়ে edge-triggered flip-flop পর্যন্ত, এটাই combinational থেকে sequential logic-এ প্রবেশের মুহূর্ত।
- 10Register ও Register File — একাধিক Bit-এর স্মৃতিN-টা D flip-flop এক clock-এ বাঁধা হলে register হয়; write-enable আর reset control যোগ হলে সেটা programmable memory element; আর register-এর array-কে address দিয়ে access করলেই সেটা CPU-র general-purpose register file।
- 11Clock ও Timing — যেখানে 'তাৎক্ষণিক' ধারণাটা ভেঙে যায়কোনো circuit-ই তাৎক্ষণিক কাজ করে না — প্রতিটা gate সময় নেয়, আর সেই সময়টাই setup/hold constraint, max clock frequency, আর metastability-র জন্ম দেয়। এই লেসনেই ডিজিটাল লজিকের বিমূর্ত জগৎ প্রথমবার সরাসরি physics-এর মুখোমুখি হয়।
- 12Finite State Machine — Sequential Logic-এর আনুষ্ঠানিক কাঠামোপ্রতিটা sequential circuit আসলে একটা FSM — বর্তমান state (register-এ রাখা) আর input মিলে next state ও output গণনা করে, ঠিক clock-এর নিয়ম মেনে; এই একই কাঠামো একটা সাধারণ counter থেকে CPU-র control unit পর্যন্ত সবখানে ফিরে আসে।
- 13Counter ও Shift Register — সময় ধরে চলমান StateCounter হলো সবচেয়ে সরল আকর্ষণীয় FSM — state নিজেই একটা সংখ্যা, transition সবসময় +1 mod N, অর্থাৎ হার্ডওয়্যারে বাস্তবায়িত modular arithmetic। Shift register সেই একই flip-flop chain-কে ভিন্নভাবে সাজিয়ে serial-parallel রূপান্তরের ভিত্তি তৈরি করে।
- 14SRAM ও DRAM — একটা bit-কে ভৌতভাবে ধরে রাখাSRAM 6 transistor দিয়ে feedback-এ bit ধরে রাখে — দ্রুত কিন্তু ব্যয়বহুল। DRAM 1 transistor + 1 capacitor দিয়ে — সস্তা ও ঘন কিন্তু leak করে, তাই refresh লাগে। দুটোই address হয় row decoder আর column mux দিয়ে।
- 15Datapath ও Control Unit — যেখানে সব টুকরো একটা CPU হয়ে ওঠেRegister file + ALU + memory + MUX-কে বাসে জুড়ে datapath বানানো হয় — এটাই CPU-র 'পেশি'। তার উপর একটা FSM বসিয়ে control unit বানানো হয় — এটাই 'মস্তিষ্ক', যেটা প্রতি cycle-এ ঠিক করে কোন signal assert হবে। দুটো মিলেই একটা CPU।
- 16HDL ও Verilog পরিচিতি — Schematic যখন কোড হয়ে যায়Billion-transistor চিপ হাতে schematic এঁকে ডিজাইন করা অসম্ভব — তাই hardware বর্ণনা করা হয় কোডে, একটা Hardware Description Language-এ। আজ আমরা দেখব structural বনাম behavioral Verilog, wire বনাম reg-এর আসল অর্থ, sequential circuit ও FSM কোড করা, আর কীভাবে একই কোড simulate (verify) এবং synthesize (বাস্তব gate-এ রূপান্তর) — দুইটা সম্পূর্ণ ভিন্ন কাজে ব্যবহৃত হয়।
যা যা থাকছে
- Semiconductor ও transistor basics (MOSFET)
- CMOS — NOT, NAND, NOR নির্মাণ
- Logic gates ও universality of NAND
- Boolean algebra, De Morgan, simplification
- Karnaugh maps
- Combinational circuits — adder, subtractor, comparator
- Multiplexer, demultiplexer, decoder, encoder
- ALU design
- Latches ও flip-flops (SR, D, JK, T)
- Registers ও register files
- Clock, timing, setup/hold, propagation delay
- Finite state machines
- Counters ও shift registers
- Memory — SRAM, DRAM cell-level
- Datapath ও control unit
- HDL introduction — Verilog/SystemVerilog
প্রজেক্ট
Gate Simulator
●●●○○Netlist থেকে circuit simulate করা — propagation সহ।
8-bit ALU
●●●○○Logisim + Verilog দুইভাবেই ADD/SUB/AND/OR/XOR/SHIFT সহ ALU।
FSM Vending Machine
●●○○○State diagram → truth table → flip-flop circuit।
Single-cycle CPU (Verilog)
●●●●●Datapath + control unit, নিজের mini-ISA চালানো।