Penjumlah dan flip-flop
| English | Bahasa Indonesia |
|---|---|
| carry/ˈkæri/ | carry |
| half adder/hɑːf ˈædə/ | half adder |
| full adder/fʊl ˈædə/ | full adder |
| flip-flop/flɪp flɒp/ | flip-flop |
| ripple-carry adder/ˈrɪpl ˈkæri ˈædə/ | ripple-carry adder |
| bistable/baɪˈsteɪbl/ | bistabil |
| counters/ˈkaʊntəz/ | counter |
| SRAM/ˈesræm/ | SRAM |
| SR flip-flop/ˌes ˈɑː flɪp flɒp/ | SR flip-flop |
| JK flip-flop/ˌdʒeɪ ˈkeɪ flɪp flɒp/ | JK flip-flop |
| toggle/ˈtɒɡl/ | toggle |
Bagaimana mesin yang hanya tahu benar dan salah melakukan aritmatika
- Prosesor tidak memiliki penjumlah dalam arti sesuatu yang mengerti angka. Ia memiliki gerbang yang menjawab benar atau salah, dan tidak ada lagi.
- Namun $1 + 1 = 10$ muncul dari dua gerbang: XOR menghasilkan digit jumlah, AND menghasilkan carry. Itu seluruh unit aritmatika dalam skala mini, dan menghubungkan salinannya menambahkan bilangan dengan lebar apa pun.
- Bagian lain dari komputer adalah mengingat, dan satu bit memori juga hanyalah gerbang, dirangkai sedemikian rupa sehingga outputnya umpan balik ke inputnya dan tetap.
- Pelajaran ini adalah half adder, full adder, dan flip-flop yang menyimpan satu bit.
Half adder
- Half adder menjumlahkan dua bit tunggal, $A$ dan $B$, menghasilkan sum $S$ dan carry $C$.
| A | B | S | C |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
- Baca kolom: $S$ bernilai 1 ketika tepat satu input bernilai 1, yang merupakan XOR. $C$ bernilai 1 hanya ketika keduanya bernilai 1, yang merupakan AND. Jadi $S = A \oplus B$ dan $C = A \cdot B$.
- Ia mengabaikan carry in apa pun, itulah sebabnya ia hanya "setengah" penjumlah dan tidak dapat dihubungkan secara berantai sendiri.

Dua gerbang, dan penjumlahan biner ada
Gerbang di dalam penjumlah
Bit jumlah half-adder adalah gerbang XOR dan carry-nya adalah gerbang AND — ubah A dan B dan lihat baris tabel kebenaran menyala.
Dalam half adder, output jumlah S dihasilkan oleh gerbang mana?
$S = A \text{ XOR } B$ (1 ketika input berbeda); carry adalah $A \text{ AND } B$.
Dalam half adder, output carry C dihasilkan oleh gerbang tunggal mana?
C bernilai 1 hanya ketika kedua input bernilai 1, yang merupakan AND. Jumlah S bernilai 1 ketika tepat satu input bernilai 1, yang merupakan XOR.
Full adder
- Full adder menjumlahkan tiga bit: $A$, $B$ dan carry-in, menghasilkan sum dan carry-out. $S = A \oplus B \oplus C_{\text{in}}$.
- Dapat dibangun dari dua half adders ditambah gerbang OR: half adder pertama menjumlahkan $A$ dan $B$, kedua menjumlahkan sum tersebut dengan carry-in, dan OR menggabungkan dua carry.
- Hubungkan full adders secara berantai sehingga setiap carry-out memberi makan carry-in berikutnya, dan Anda memiliki ripple-carry adder multi-bit: empat di antaranya menjumlahkan dua bilangan 4-bit.

Carry adalah hal yang harus bergerak, itulah sebabnya disebut ripple
Pasangkan setiap blok bangunan dengan fungsinya.
Penjumlah menambahkan bit (rangkai full adder untuk penjumlahan multi-bit); flip-flop menyimpan bit (JK memperbaiki keadaan terlarang SR).
Bagaimana full adder berbeda dari half adder?
Full adder menjumlahkan A, B, dan carry-in (sehingga penjumlah dapat dirangkai) — dibangun dari dua half adder ditambah gerbang OR.
Contoh terpecahkan: mengapa full adder, bukan dua half adders
- Jelaskan mengapa penjumlahan 4-bit dibangun dari full adders daripada half adders.
- Menjumlahkan dua bilangan 4-bit kolom per kolom, setiap kolom kecuali kolom paling kanan mungkin menerima carry dari kolom di sebelah kanannya, sehingga memiliki tiga input untuk ditambahkan, bukan dua.
- Half adder tidak memiliki carry-in, jadi tidak dapat mengambil input ketiga itu, dan carry akan hilang begitu saja.
- Hanya kolom paling signifikan yang tidak memiliki carry-in, jadi half adder akan cocok di sana; dalam praktik semuanya adalah full adders, dengan carry-in pertama dikaitkan ke 0.
Mengapa penjumlah 4-bit harus menggunakan full adder daripada half adder?
Half adder memang menghasilkan carry; yang dimilikinya adalah ketiadaan carry-in, sehingga ia tidak dapat menerima carry yang datang dari kolom sebelumnya.
Susunlah proses pembangunan penjumlah ripple-carry 4-bit secara berurutan.
Gerbang membentuk half adder, half adder membentuk full adder, full adder dirangkai menjadi penjumlah lebar kata. Carry yang merambat sepanjang jalur inilah yang memberinya namanya.
Flip-flops
- Flip-flop adalah sirkuit bistable: ia memiliki dua keadaan stabil, 0 dan 1, dan ia mengingat keadaan mana yang sedang dialami. Menyimpan tepat satu bit.
- Ini adalah elemen dasar register, di mana $n$ bit berarti $n$ flip-flop, dari counter, dan dari sel-sel SRAM.
- Berbeda dengan penjumlah, yang outputnya hanya bergantung pada inputnya sekarang, output flip-flop bergantung pada masa lalu inputnya. Itulah makna memori pada tingkat sirkuit.
Flip-flop digunakan untuk:
Flip-flop memiliki dua keadaan stabil dan memegang satu bit — blok bangunan register dan SRAM.
Flip-flop bersifat bistabil — ia memiliki dua keadaan stabil dan mengingat satu bit — yang membuatnya menjadi blok bangunan register dan SRAM.
Rangkaian flip-flop memberikan register dan counter; cache SRAM dibangun darinya (tidak perlu refresh, berbeda dengan DRAM).
SR dan JK
- Flip-flop SR SR memiliki input S (set) dan R (reset) dan output $Q$ dan $\overline{Q}$, dibangun dari dua gerbang NOR yang saling menyilang.
S=1, R=0menetapkan $Q$ menjadi 1.S=0, R=1mereset $Q$ menjadi 0.S=0, R=0menahan keadaan saat ini, yang merupakan memori.S=1, R=1tidak valid: meminta set dan reset sekaligus.- Flip-flop JK JK menghilangkan cacat itu dengan memberikan input
1,1makna: toggle, sehingga output berbalik ke kebalikannya. Itu membuatnya ideal untuk counter, karena rantai flip-flop yang beralih menghitung dalam biner. - JK biasanya dikeplok: input hanya bertindak pada tepi clock, yang menjaga setiap flip-flop di mesin tetap sinkron.

Input yang tidak valid diubah menjadi yang berguna
Untuk SR flip-flop, pernyataan manakah yang benar? Pilih semua yang berlaku.
Toggling pada 1,1 adalah peningkatan dari JK. Pada SR, input meminta set dan reset sekaligus dan dianggap tidak valid.
Perilaku toggle pada flip-flop JK membuatnya cocok untuk membangun counter.
Rantai flip-flop yang masing-masing melakukan toggle pada inputnya menghitung dalam biner. Mengon Clock-kan mereka menjaga setiap tahap tetap sinkron.
Contoh terpecahkan: melacak flip-flop SR
- $Q$ saat ini adalah 0. Berikan $Q$ setelah input S=1 R=0, kemudian S=0 R=0, kemudian S=0 R=1.
- S=1, R=0 menetapkan output, sehingga $Q$ menjadi 1.
- S=0, R=0 menahan, jadi $Q$ tetap 1. Ini adalah langkah yang menunjukkan bahwa ini adalah memori: input mengatakan tidak apa-apa, dan output bertahan.
- S=0, R=1 mereset, jadi $Q$ menjadi 0. Jika S=1 dan R=1 diterapkan, jawabannya adalah input tidak valid, bukan sebuah nilai.
⟦⟧ Nilai yang sering terlewat
- $S = A \oplus B$ dan $C = A \cdot B$: XOR untuk sum, AND untuk carry. Menukarnya kehilangan kedua poin.
- "Half" berarti tidak ada carry-in, bukan "setengah bit".
- Full adder adalah dua half adders ditambah OR, dan OR menggabungkan dua carry.
- Pada flip-flop SR,
0,0menahan dan1,1tidak valid. Peningkatan JK adalah bahwa1,1beralih.
Anda telah memahaminya
- half adder: dua bit masuk, $S = A \oplus B$ dari XOR dan $C = A \cdot B$ dari AND; tidak ada carry-in
- full adder: tiga bit masuk, dibangun dari dua half adders ditambah OR; hubungkan secara berantai, carry-out ke carry-in, untuk ripple-carry adder
- flip-flop adalah bistable dan menyimpan satu bit; $n$ flip-flop membuat register $n$-bit, dan mereka adalah sel-sel SRAM
- SR: set, reset,
0,0menahan,1,1tidak valid · JK:1,1beralih, yang membuat counter, dan diklok agar tetap sinkron