16 / 63 · Konsep
Adder dan struktur perambatan carry
Turunkan persamaan full adder dan analisis fungsi, lebar, serta tundaan ripple-carry bersama-sama.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Menyatakan penjumlahan satu bit dengan dua bit
Jumlah berada pada 0–3, sehingga diperlukan bit jumlah dan carry ke posisi berikutnya . Jumlah masukan 1 yang ganjil menghasilkan bit jumlah 1; sedikitnya dua masukan 1 menghasilkan carry 1.
Definisikan generate dan propagate , sehingga , dengan berarti OR. Half adder adalah kasus tanpa carry masuk: jumlahnya XOR dan carry-nya AND.
Ubah ketiga masukan dan pastikan a+b+cin = sum+2×cout selalu berlaku. Carry menjadi masukan posisi berikutnya dan tidak memiliki bobot yang sama dengan sum.
a + b + cin = sum + 2 × cout
Sejauh mana carry merambat?
Pada 1111 + 0001 empat bit, bit 0 menghasilkan carry yang diteruskan ke tiga posisi berikutnya. Jumlah tersimpan 0000 dan carry akhir 1. Pada struktur ripple-carry, posisi tinggi mungkin harus menunggu carry dari posisi rendah.
Ekspansi persamaan menunjukkan kemungkinan menghitung carry secara paralel. Adder cepat menggabungkan generate/propagate kelompok, dengan pertukaran luas dan tundaan yang melibatkan fan-in, pengawatan, serta pustaka sel. Operator + RTL tidak selalu diimplementasikan sebagai satu rangkaian ripple-carry.
Nyatakan lebar jumlah dalam desain
logic [3:0] a, b, sum;
logic cin, cout;
logic [4:0] wide_sum;
assign wide_sum = {1'b0, a} + {1'b0, b} + {4'b0000, cin};
assign sum = wide_sum[3:0];
assign cout = wide_sum[4];Karena , lima bit cukup. Tentukan dahulu apakah hanya bit rendah diperlukan, carry diteruskan, atau saturasi dibutuhkan. Elemen interaktif memeriksa tabel kebenaranTabel kebenaran Tabel seluruh kombinasi masukan beserta keluarannya. Perubahan terhadap waktu diperiksa terpisah melalui gelombang. Selengkapnya satu full adder, bukan mengukur tundaan hasil sintesis nyata.
Ubah masukan
Coba sendiri
Untuk unsigned empat bit, hitung jumlah lengkap, jumlah empat bit, dan carry saat , , . Apakah carry saja menentukan overflow jika rangkaian yang sama ditafsirkan sebagai penjumlahan signed?
Baca penjelasan
Jumlah lengkap 16, atau 10000: sum=0000 dan carry=1. Pada interpretasi signed, 1001 adalah -7, sehingga , masih dalam rentang. Carry dan overflow signed adalah kondisi berbeda.