• Tidak ada hasil yang ditemukan

Realisasi Rangkaian Kombinasional

N/A
N/A
Protected

Academic year: 2021

Membagikan "Realisasi Rangkaian Kombinasional"

Copied!
67
0
0

Teks penuh

(1)

a. XOR, Parity generator/checker

Exclusive-OR atau XOR yang dinotasikan dengan symbol , adalah operator logika yang akan memberikan nilai 1 apabila x bernilai 1 atau apabila y bernilai 1, namun bukan saat keduanya, x dan y bernilai 1. XOR memiliki fungsi Boolean.

𝑥 ⨁𝑦 = 𝑥𝑦+ 𝑥𝑦

Komplemen dari XOR adalah XNOR, adalah operator logika yang akan memberikan nilai 1 apabila x dan y bernilai 0 atau bernilai 1. XNOR memiliki fungsi Boolean.

𝑥 ⨁𝑦 = 𝑥𝑦 + 𝑥𝑦

Gambar 4.10. Rangkaian POS dengan gerbang NOR

Simbol gerbang serta table kebenaran XOR dan XNOR ditunjukkan pada gambar 4.11

Gambar. 4.11. Tabel Kebenaran XOR dan XNOR

(2)

Dari table kebenaran XOR dan XNOR dapat dilihat bahwa operator XOR dan XNOR dapat digunakan untuk mengecek parity. XOR untuk mengecek parity ganjil, sedangkan XNOR untuk mengecek parity genap. Fungsi XOR mengecek parity ganjil apabila nilai binary memiliki jumlah angka 1 ganjil. Dan sebaliknya pada fungsi XNOR akan mengecek parity genap apabila nilai binary memiliki jumlah angka 1 genap. Sehingga fungsi XOR sangat membantu dalam error-detection dan pengkoreksian kode, karena kedua system tersebut menggunakan fungsi parity.

Parity bit adalah extra bit yang ditambahkan pada binary message untuk membuat jumlah angka 1 pada binary message ganjil atau genap. Pesan dan parity bit tersebut dikirim, kemudian di cek oleh receiver untuk mengetahui apakah terjadi error pada pesan atau tidak. Error akan terdeteksi apabila nilai parity tidak sesuai dengan yang diharapkan. Rangkaian yang membangkitkan nilai parity disebut parity generator, sedangkan rangkaian yang mengecek nilai parity disebut parity generator.

Contoh 4.1 :

Sebuah system even-parity-generator akan mengirim pesan 4-bit bersama dengan bit even parity-nya. Tabel kebenaran untuk parity generator ditunjukkan pada table 4.2

Tabel 4.2 even-parity-generator

Inputnya adalah 4-bit pesan (x,y,z) dan outputnya adalah bit parity. Pada pesan 4-bit yang bernilai ganjil, output akan bernilai 1, agar jumlah angka 1 bernilai genap (even-parity-generator). Maka fungsi outputnya adalah

𝑃 = 𝑥⨁𝑦⨁𝑧

(3)

Gambar 4.12. Implementasi rangkaian

Selanjutnya pesan 4-bit dan bit parity-nya dikirim, dan dicek oleh rangkaian parity checker, apakah ada error pada pesan yang telah dikirim. Error akan terjadi apabila 4-bit yang diterima, jumlah angka 1-nya tidak berjumlah genap. Rangkaian parity checker akan memberi nilai 1 pada output (C) apabila terjadi error atau angka 1 pada bit pesan bernilai ganjil. Table kebenaran untuk fungsi even-parity-checker ditunjukkan pada table 4.4

Tabel 4.4. Tabel kebenaran even-parity-checker

Maka fungsi outputnya adalah

𝐶 = 𝑥⨁𝑦⨁𝑧⨁𝑃

Implementasi rangkaian diunjukkan pada gambar 4.14

(4)

b. Hamming code (parity Code) generator / checker

Hamming Code adalah salah satu kode tunggal pengoreksi kesalahan (single error-correcting code) yang digunakan dalam RAM ditemukan oleh RW Hamming. Dalam kode Hamming, bit parity ditambahkan ke dalam bit-bit informasi, jika suatu saat ada perubahan bit-bit data ketika proses transmisi, maka bit-bit informasi asli masih bisa diselamatkan. Bit k parity ditambahkan ke word data n-bit, membentuk kata baru dari n + k bits. Posisi bit nomor berurutan dari 1 sampai n + k. Bit parity tambahan diberikan pada bit-bit informasi sebelum ditransmisikan, sedangkan pada sisi penerima dilakukan pengecekan dengan algoritma yang sama dengan pembangkitan bit parity tambahan. Cara pengisian bit tambahan pada bit-bit informasi x, adalah sebagai berikut :

Untuk bit data 4-bit, bit-bit data terletak pada posisi 4,5,6, dan 7. Bit pengisi terletak pada posisi 1,2,4 (2K) --> K = jumlah bitdata -1. Tabel Hamming untuk informasi 4 bit terlihat pada tabel 5.1.

Tabel 5.1. Tabel Hamming 4 bit

Data/bit 𝑎1 𝑎2 𝑎4 𝑎4 𝑎5 𝑎6 𝑎7 0000 0 0 0 0 0 0 0 0001 1 1 0 1 0 0 1 0010 0 1 0 1 0 1 0 0011 1 0 0 0 0 1 1 0100 1 0 0 1 1 0 0 0101 0 1 0 0 1 0 1 0110 1 1 0 0 1 1 0 𝑎1 𝑎2 𝑎4 𝑎4 𝑎5 𝑎6 𝑎7 x x 1 x 0 1 1 Bit data / Bit Pengisi informasi

(5)

0111 0 0 0 1 1 1 1 1000 1 1 1 0 0 0 0 1001 0 0 1 1 0 0 1 1010 1 0 1 1 0 1 0 1011 0 1 1 0 0 1 1 1100 0 1 1 1 1 0 0 1101 1 0 1 0 1 0 1 1110 0 0 1 0 1 1 0 1111 1 1 1 1 1 1 1

Nilai bit pengisi / cek : (untuk informasi 4 bit) diperoleh melalui rumus berikut ini :

𝑎1 = 𝑎4⨁ 𝑎5 ⨁𝑎7 𝑎2 = 𝑎4⨁ 𝑎6 ⨁𝑎7 𝑎4 = 𝑎5⨁ 𝑎6 ⨁𝑎7 Untuk informasi n-bit, nilai bit pengisi / cek adalah :

𝑎1 = 4,5,7,9,11,14,15,... 𝑎2 = 4,6,7,10,11,14,15,... 𝑎4 = 5,6,7,12,14,14,15,20,21,22,24, … 𝑎8 = 9 − 15, 24 − 41, 40 − 47, ... 𝑎16 = 17 − 41, 48 − 64, 80 − 95, … 𝑎42 = 44 − 64, 96 − 127, 160 − 191, … Dst..

Perhatikan, misalnya, data word 8-bit 11000100. Kami menyertakan 4 paritas bit dengan kata 8-bit dan 12 bit mengatur sebagai berikut:

Bit Position

1 2 4 4 5 6 7 8 9 10 11 12

𝑃1 𝑃2 1 𝑃4 1 0 0 𝑃8 0 1 0 0

4 bit parity 𝑃1, 𝑃2, 𝑃4, 𝑑𝑎𝑛 𝑃8 berada pada posisi 1,2,4, dan 8. 8 bit word data berada pada posisinya. Tiap bit parity dihitung berdasarkan rumus berikut ini :

𝑃1 = 𝑋𝑂𝑅 𝑏𝑖𝑡 4,5,7,9,11 =1 ⨁ 1 ⨁ 0 ⨁ 0 ⨁ 0 = 0 𝑃2 = 𝑋𝑂𝑅 𝑏𝑖𝑡 4,6,7,10,11 =1 ⨁ 0 ⨁ 0 ⨁ 1 ⨁ 0 = 0

(6)

𝑃8 = 𝑋𝑂𝑅 𝑏𝑖𝑡 9,10,11,12 =1 ⨁ 0 ⨁ 0 ⨁ 0 = 1

Operasi EXOR menampilkan fungsi ganjil, outputnya = 1 untuk jumlah variabel 1 yang jumlahnya ganjil. Dan outputnya = 0, untuk jumlah variabel bernilai 1 jumlahnya genap. Sehingga tiap bit parity diset pada jumlah keseluruhan variabel bernilai 1 pada posisi yang dicek termasuk didalamnya bit parity, akan selalu genap. 8 bit data word dimasukkan dalam memory secara bersama-sama dengan 4 bit parity sebagaimana 12 bit word composit. Penggantian 4 P bit pada posisi yang sesuai, maka diperoleh 12 bit composite word yang dimasukkan dalam memory : Bit

Position

0 0 1 1 1 0 0 1 0 1 0 0 1 2 4 4 5 6 7 8 9 10 11 12 Ketika 12 bit data dibaca dari memory, kemudian dicek kembali nilai errornya. Parity dicek keseluruhan dengan kombinasi bit yang sama termasuk bit parity. 4 bit yang dicek dievaluasi dengan cara berikut ini :

𝐶1 = 𝑋𝑂𝑅 𝑏𝑖𝑡 1,4,5,7,9,11 𝐶2 = 𝑋𝑂𝑅 𝑏𝑖𝑡 2,4,6,7,10,11

𝐶4 = 𝑋𝑂𝑅 𝑏𝑖𝑡 4,5,6,7,12 𝐶8 = 𝑋𝑂𝑅 𝑏𝑖𝑡 8,9,10,11,12

Hasil C = 𝐶8𝐶4𝐶2𝐶1 = 0000, mengindikasikan bahwa tidak ada error yang terjadi. Tetapi, jika C ≠ 0, sehingga 4 bit binary dibentuk dengan bit cek yang mengindikasikan bit error. Sebagai contoh, mengingat 4 kasus berikut :

Bit Position 1 2 4 4 5 6 7 8 9 10 11 12 0 0 1 1 1 0 0 1 0 1 0 0 No Error 1 0 1 1 1 0 0 1 0 1 0 0 Error in bit 1 0 0 1 1 0 0 0 1 0 1 0 0 Error in bit 5 Pada kasus pertama, tidak ada error pada 12 bit word. Pada kasus yang kedua, terjadi error pada posisi bit 1 karena berubah dari 0 ke 1. Kasus ketiga menunjukkan

(7)

adanya error pada posisi bit 5, dengan perubahan dari 1 ke 0. Pengevaluasian XOR dari bit yang berkorespondensi, menentukan 4 bit cek dengan cara :

𝐶8 𝐶4 𝐶2 𝐶1

For no error 0 0 0 0

With error in bit 1 0 0 0 1

With error in bit 5 0 1 0 1

C = 0000, dengan nilai error pada bit 1, diperoleh nilai C = 0001 dan nilai error pada bit 5, nilai C = 0101. Ketika binary number C tidak sama dengan 0000, memberikan posisi pada bit error. Error dapat diperbaiki dengan melengkapi bit yang berkorespondensi. Error dapat terjadi pada word data atau pada salah satu bit parity.

Hamming code terdiri dari k bit cek dan n bit data, untuk keseluruhan bit n + k. Nilai C terdiri dari k bit dan memiliki range 2𝑘, nilainya diantara 0 dan 2𝑘 − 1. Satu dari nilai ini, biasanya adalah 0, yang digunakan untuk mengindikasikan bahwa tidak ada error yang terdeteksi. Nilai 2𝑘 − 1 untuk mengindikasikan bit 𝑛 + 𝑘 telah error. Tiap nilai 2𝑘− 1 dapat digunakan secara unik untuk mendeskripsikan bit yang error. Oleh karena itu, rentang k harus sama dengan atau lebih besar dari 𝑛 + 𝑘, hubungan antar keduanya adalah :

2𝑘 − 1 ≥ 𝑛 + 𝑘

pemecahan untun pada bagian k, diperoleh :

2𝑘 − 1 − 𝑘 ≥ 𝑛

Hubungan ini memberikan formula untuk membangun sejumlah bit data yang dapat digunakan pada konjungsi dengan k bit cek. Sebagai contoh, ketika k = 4, jumlah bit data yang dapat digunakan 𝑛 ≤ 24− 1 − 4 = 4. Untuk k = 4, diperoleh

24− 1 − 4 = 11, diberikan 𝑛 ≤ 11. Word data paling tidak 11 bit, tetapi harus memiliki paling tidak 5 bit, sebaliknya hanya 4 bit cek yang dibutuhkan. Hal ini membenarkan penggunaan 4 bit cek untuk 8 bit data pada contoh sebelumnya. Rentang nilai n untuk variasi nilai k, terlihat pada tabel 5.2. Pengelompokkan bit untuk parity generation dan checking dapat ditentukan dari sederetan binary number 1,4,5,7 dan sebagainya. Bit Signifikan kedua adalah 1 pada binary number 2,4,6,7 dan sebagainya. Perbandingan jumlah ini dengan posisi bit yang digunakan

(8)

untuk men-generate dan checking bit parity pada hamming code, perlu dicatat hubungan

Tabel 5.2. Rentang Bit Data untuk k bit cek

Jumlah bit cek , k Rentang bit data, n

4 2 - 4

4 5 - 11

5 12 - 26

6 27 - 57

7 58 - 120

antara pengelompokkan bit pada code dan posisi bit - 1 pada urutan binary count. Tiap grup dari permulaan bit dimulai dengan angka 2:1,2,4,8,16,... Angka ini juga merupakan nomer posisi dari bit parity. Sehingga dapat dituliskan untuk informasi n-bit, cara pengecekkan adalah :

1. Tanda semua posisi bit yang merupakan pangkat dua sebagai bit parity (posisi 1, 2, 4, 8, 16, 42, 64, ...).

2. Posisiyang lain digunakan sebagai bit data yang akan dikodekan (posisi 4, 5, 6, 7, 9, 10, 11, 12, 14, ...).

3. Masing-masingbit pengecek menghitung bit setiap posisi dengan cara menge-cek dan melewati, sebagai berikut:

a. Posisi1 : cek 1 bit, lewat 1 bit, cek 1 bit, lewat 1 bit dsb (1,4,5,7,9,11,14,15…).

b. Posisi2 : cek 2 bit, lewat 2 bit, cek 2 bit, lewat 2 bit dsb (2,4,6,7,10,11,14,15,…).

c. Posisi4 : cek 4 bit, lewat 4 bit, cek 4 bit, lewat 4 bit dsb (4,5,6,7,12,14,14,15,20,21,22,24, …).

d. Posisi8 : cek 8 bit, lewat 8 bit, cek 8 bit, lewat 8 bit dsb (8-15,24-41,40-47,...)

e. Posisi42 : cek42 bit, lewat 42 bit, cek42 bit, lewat 42 bit, dsb (42-64,96-127,160-191,...).

Bernilai bit parity = 1, jika total bit "1" diposisi yang dicek adalah ganjil (odd) dan bernilai 0 jika total bit "1" adalah genap (Even).

(9)

Single-Error Correction, Double-Error Detection

Hamming Code dapat mendeteksi dan mengoreksi hanya untuk error tunggal. Dengan menambahkan parity lainnya pada code word, hamming code dapat digunakan untuk mengoreksi error tunggal dan mendeteksi error ganda. Jika tambahan bit parity, kemudian 12 bit code word sebelumnya menjadi 001110010100𝑃14, dimana 𝑃14 dievaluasi dari EXOR dari 12 bit lainnya. Hal ini memproduksi 14 bit word 0011100101001 (parity genap). Saat 14 bit word dibaca dari memory, bit cek di evaluasi, sebagaimana parity pada keseluruhan 14 bit. Jika P = 0, parity benar (parity genap), tetapi jika P = 1, kemudian keseluruhan 14 bit parity adalah incorrect (odd parity). Sehingga dapat disimpulkan :

a. Jika C = 0 dan P = 0, maka tidak ada error yang terjadi

b. Jika 𝐶 ≠ 0 dan P = 1, error tunggal yang terjadi dan dapat diperbaiki c. Jika 𝐶 ≠ 0 dan P = 0, error ganda yang terdeteksi, akan tetapi tidak dapat

diperbaiki.

d. Jika C = 0 dan P = 1, Error terjadi pada bit 𝑃14

Skema ini dapat mendeteksi lebih dari 2 error, akan tetapi tidak menggaransi untuk mendeteksi seluruh error.

Contoh Soal :

1. Bagaimana bentuk data yang ditransmisikan dengan kode Hamming, jika diketahui bit data = 1010 ?

Jawab :

𝑎1 = 𝑎4⨁𝑎5 ⨁𝑎7 → 𝑎1 = 1 + 0 + 0 = 1 𝑎2 = 𝑎4⨁𝑎6 ⨁𝑎7 → 𝑎2 = 1 + 1 + 0 = 0

𝑎4 = 𝑎5⨁𝑎6 ⨁𝑎7 → 𝑎4 = 0 + 1 + 0 = 1

sehingga bentuk data yang ditransmisikan menjadi : 1011010. 2. Sebuah urutan data diterima : 0010011

dengan nilai : e1 = 0

e2 = 1 e4 = 0

Tentukan bit diposisi mana yang salah?Berapa nilai data asli (sebelum ditambah bit parity)?

Jawab :

𝑒1 = 𝑎1⨁𝑎4⨁𝑎5 ⨁𝑎7 = 0 + 1 + 0 + 1 = 0 → 𝑏𝑒𝑛𝑎𝑟

𝑒2 = 𝑎2⨁𝑎4⨁𝑎6 ⨁𝑎7 = 0 + 1 + 1 + 1 = 1 → 𝑠𝑎𝑙𝑎ℎ 𝑒4 = 𝑎4⨁𝑎5⨁𝑎6 ⨁𝑎7 = 0 + 0 + 1 + 1 = 1 → 𝑏𝑒𝑛𝑎𝑟

(10)

𝑎1 = 𝑎4⨁𝑎5 ⨁𝑎7 → 𝑎1 = 1 + 0 + 1 = 0 → 𝑠𝑎𝑚𝑎 𝑑𝑒𝑛𝑔𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑘𝑖𝑟𝑖𝑚 𝑎2 = 𝑎4⨁𝑎6 ⨁𝑎7 → 𝑎2 = 1 + 1 + 1 = 1 → 𝑡𝑖𝑑𝑎𝑘 𝑠𝑎𝑚𝑎 𝑑𝑒𝑛𝑔𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑘𝑖𝑟𝑖𝑚

𝑎4 = 𝑎5⨁𝑎6 ⨁𝑎7 → 𝑎4 = 0 + 1 + 1 = 0 → 𝑠𝑎𝑚𝑎 𝑑𝑒𝑛𝑔𝑎𝑛 𝑦𝑎𝑛𝑔 𝑑𝑖𝑘𝑖𝑟𝑖𝑚

Berarti bit diposisi 2 yang salah, seharusnya yang diterima adalah : 0110011 nilai data asli = 𝑎4 𝑎5 𝑎6 𝑎7 = 1011.

(11)

Adder adalah rangkaian untuk melakukan operasi aritmatika penjumlahan. Pada bab ini akan dijelaskan 4 macam adder :

1. Half adder

Half adder adalah rangkaian adder yang hanya memiliki input untuk bilangan yang ingin dijumlahkan, tanpa ada carry sebagai input. Tabel kebenaran dan rangkaian half adder ditunjukkan pada gambar 4.14

Gambar 4.14 Tabel kebenaran dan Rangkaian

Selain itu, dari table kebenaran dapat dilihat bahwa Sum memiliki logika kebenaran yang sama dengan XOR, maka rangkaian pada gambar 4.15 dapat diganti dengan gambar 4.16.

Gambar 4.15. Rangkaian Half Adder dengan XOR 2. Full Adder

Full adder adalah rangkaian adder yang memiliki input untuk bilangan yang ingin dijumlahkan, carry input. Tabel kebenaran dan rangkaian full adder ditunjukkan pada gambar 4.16

Net 1 Net 2 A B CARR Y SUM

(12)

Gambar 4.16. Tabel Kebenaran dan Rangkaian Cin B A \Cin \ B \ A A B Cin SUM Cout

(13)

Disederhanakan menjadi

Sehingga rangkaian full adder menjadi seperti yang ditunjukkan pada gambar 4.17

Gambar 4.17. Rangkaian Full Adder

Selain itu, 1-bit full adder juga dapat disusun dari 2 half adder seperti yang ditunjukkan pada gambar 4.18.

(14)

4. Ripple Carry Adder dan Look Ahead Adder

Dari gambar 4.18 dimana 1-bit full adder dapat disusun dari 2 half adder, maka full adder dapat disusun secara seri untuk membuat n-bit full adder, dimana bit carry-out pada full adder sebelumnya menjadi input bit carry-in selanjutnya. Oleh karena itu, konfigurasi n-bit full adder yang disusun dari beberapa 1-bit full adder disebut Ripple-carry adder. Pada gambar 4.19 menujukkan blok diagram dari 4-bit Ripple-carry adder, dimana berfungsi untuk menjumlahkan 4 bit yaitu X4 X2 X1 X0

dengan Y4 Y2 Y1 Y0. Gambar 4.22 adalah rangkaian 16-bit riplle adder. Gambar 4.20

dan 4.21 menunjukkan look ahead carry. Pada look ahead adder carry digenerate secara pararel

Gambar 4.19 Ripple Carry Adder

(15)
(16)

Gambar 4.22 16 bit Ripple Adder d. Subtractor (HS, FS)

Substractor adalah rangkaian untuk melakukan operasi aritmatika pengurangan. Substractor juga bisa disusun dari adder dengan prinsipx bilangan pengurangan diubah menjadi bernilai negative, seperti fungsi X – Y = X + (-Y). Konsep dari substractor terlihat pada gambar 4.24. Pada bab ini akan dijelaskan 4 macam substractor :

1. Half substractor 2. Full substractor 3. Ripple substractor Half Substractor

Half substractor adalah rangkaian substractor yang hanya memiliki input untuk bilangan yang ingin dikurangkan, tanpa ada borrow sebagai input. Tabel

(17)

kebenaran dan rangkaian half substractor ditunjukkan pada gambar 4.24. Jika x ≥ y, maka ada 4 kemungkinan yakni 0 - 0 = 0, 1 - 0 = 1 dan 1 - 1 = 0. Jika x < y, maka diperoleh nilai 0 - 1, dan harus memnjam borrow (Bo --> borrow out ) 1 pada

kondisi setelahnya. Half substractor membutuhkan 2 output, output pertama adalah hasil dari pengurangan kedua input direpresentasikan sebagai nilai Di

(Difference). Output kedua adalah direpresentasikan sebagai nilai Bi (Borrow).

Gambar 2.24. Konsep substractor pada sistem digital

Nilai output Bi benilai 0 selama x ≥ y, dan bernilai 1 untuk x = 0 dan y = 1. dari tabel

kebenaran diperoleh persamaan sebagai berikut :

𝐷 = 𝑥𝑦 + 𝑥𝑦

𝐵 = 𝑥𝑦

Full substractor

Full substractor adalah rangkaian substractor yang memiliki input untuk bilangan yang ingin dikurangkan, dan borrow input. Tabel kebenaran dan rangkaian full substractor ditunjukkan pada gambar 4.24 dan 4.25.

(18)

Gambar 4.24 menunjukkan map Fungsi Boolean untuk kedua output dari full substractor, menghasilkan nilai fungsi sebagai berikut :

𝐷𝑖 = 𝑥𝑦𝑧 + 𝑥𝑦𝑧+ 𝑥𝑦𝑧

𝐵𝑖 = 𝑥𝑦 + 𝑥𝑧 + 𝑦𝑧

Rangkaian full substractor terlihat pada gambar 4.26, Full substractor dapat dibangun dengan 2 half substractor.

Gambar 4.24. Map karnaugh full substractor

(19)

Ripple-carry substractor

Dari gambar 4.24(a) dimana 1-bit full substractor dapat disusun dari 2 half substractor, maka full substractor dapat disusun secara seri untuk membuat n-bit full substractor, dimana bit borrow-out pada full substractor sebelumnya menjadi input bit borrow-in selanjutnya. Oleh karena itu, konfigurasi n-bit full substractor yang disusun dari beberapa 1-bit full substractor disebut Ripple-carry substractor. Pada gambar 4.27 menujukkan blok diagram dari 4-bit Ripple-carry substractor, dimana berfungsi untuk mengurangkan 4 bit yaitu A4 A2 A1 A0 dengan B4 B2 B1 B0.

Gambar 4.25 (a) Binary substraction tables, (b) Tabel Kebenaran untuk half substractor, (c) Blok untuk half substractor, (d) Rangkaian logika untuk half

substractor. e. Multiplier

Multiplier adalah rangkaian untuk melakukan operasi aritmatika perkalian. Seperti :

(20)

Gambar 4.26. Full Substractor (a) Block symbol; (b) Full substractor yang dibangun dari 2 half adder; (c) Diagram logika

(21)

Pada perhitungan perkalian diatas, dapat dilihat masing-masing dikalikan dengan operator AND, kemudian hasil perkalian dijumlah, namun terlebih dahulu 0000, 1011, dan 1011 digeser ke kiri terlebih dahulu dengan bantuan shifter register. Cara lain yaitu dengan membuat table kebenaran untuk menemukan fungsi perkalian.Contoh akan dibuat rangkaian perkalian 2-bit perkalian. Tabel kebenaran untuk 2-bit perkalian A (A1,A0) dikali B (B1,B0), dan hasil perkalian P (P4,P2,P1,P0),

ditunjukkan pada table 4.4.

Dengan bantuan Kmap diperoleh fungsi untuk masing-masing perkaliannya P0 = A0.B0

P1 = A1’.A0.B1 + A1.A0.B0’ + A1.B1’.B0 + A1.A0’.B0

P2 = A1.B1.B0’ + A1.A0’.B1

P4 = A1.A0.B1.B0

(22)

f. Shifter combinational

Shifter combinational adalah rangkaian yang dapat menggeser nilai bit, baik dari kiri ke kanan, maupun dari kanan ke kiri. Saat bergeser, bit terakhir akan dibuang dan bit awal akan diisi dengan 0. Shifter kombinasional memiliki saklar control untuk memilih arah penggeseran.

Tabel kebenaran untuk rangkaian 2-bit shifter, dan implementasi pada rangkaiannya ditunjukkan pada gambar 4.28. S adalah sakalar control, dan D1, D0

adalah bit input. Apabila S bernilai 0, maka bit input akan digeser ke kiri, misalnya dari 01 menjadi 10. Sebaliknya apabila S bernilai 1, maka bit input akan digeser ke kanan, misalnya dari 10 menjadi 01. Gambar 4.29 untuk 4-bit shifter.

Pada gambar 4.40 menunjukkan rangkaian 8-bit Shifter kombinasional, dengan 8-bit input (D0 - D7), 8-bit output (S0 - S7), dan 1-bit saklar control (C). Saat C

bernilai 1, maka rangkaian akan menggeser bit ke kanan, contoh dari 11111111 menjadi 0111111. Sebaliknya saat C bernilai 0, maka rangkaian akan menggeser bit ke kiri, contoh dari 11111111 menjadi 11111110.

(23)

Gambar 4.28.Tabel Kebenaran shifter kombinasional g. Kompator dan Desain komparator, VHDL

Komparator adalah rangkaian yang membandingkan 2 binary input A dan B, dimana masing-masing bit inputnya dibandingkan apakah outputnya dapat berupa A = B, A > B, atau A < B. Berdasarkan table kebenaran dan disederhanakan dengan Kmap persamaan komparator untuk A (A0 A1 A2A4) dan B

(B0 B1 B2B4) adalah Dimana Xi = ai.bi + ai'.bi'

(A = B): X4.X2.X1.X0

(A > B): a4b4' + X4a2b2' + X4X2a1b1' + X4X2X1a0b0'

(A < B): a4'b4 + X4a2'b2 + X4X2a1'b1 + X4X2X1a0'b0

(24)

Gambar 4.40. 4 bit shifter kombinasional

Persamaan tersebut diimplementasikan pada rangkaian seperti yang ditunjukkan pada gambar 4.41.

Pada table kebenaran dapat dilihat rangkaian untuk A (A0 A1 A2A4) = B (B0 B1 B2B4),

dapat diganti dengan XNOR. XNOR dapat digunakan untuk mengecek apakan nilai dua bit tersebut sama atau tidak. Pada gambar 4.42 menunjukkan rangkaian comparator 4-bit, yang membandingkan apakah A (A0 A1 A2A4) = B (B0 B1 B2B4).

(25)

Gambar 4.41. Rangkaian Komparator

(26)

Comparator dapat dibentuk dengan VHDL, berikut kode program VHDl untuk komparator 1-bit: library ieee; use ieee.std_logic_1164.all; entity comparator is port(a : in std_logic; b : in std_logic;

aequab : out std_logic); end comparator; architecture RTL of comparator is begin process begin if a = b then aequab <= '1'; else aequab <= '0'; end if; end process; end RTL;

untuk komparator 2 bit, terlihat pada code vhdl berikut :

Library ieee;

use ieee.Std_Logic_1164.All; Entity Comparator is

Port( a,b : in Std_Logic_Vector(1 downto 0); amoreb,alessb,aequab : out Std_Logic); end Comparator; Architecture RTL of Comparator is begin process begin if a = b then aequab <= '1';

(27)

amoreb <= '0'; alessb <= '0'; else if a > b then amoreb <= '1'; aequab <= '0'; alessb <= '0'; else alessb <= '1'; aequab <= '0'; amoreb <= '0'; end if; end if; end process; end RTL;

h. Multiplexer dan Demultiplexer

Multiplexer adalah suatu rangkaian dimana memiliki banyak input namun hanya memiliki 1 output, dan ada saklar sebagai pemilih input untuk memilih input mana yang akan diteruskan ke output. Secara umum ada 2n jalur input dan n jalur selector. Cara kerjanya seperti system pada switch rel kereta api, dimana memilih jalur kereta mana yang akan diteruskan menuju satu jalur rel kereta api, seperti yang ditunjukkan pada gambar 4.44

Gambar 4.44. Ilustrasi multiplexer

Banyaknya saklar pemilih input bergantung pada jumlah input :

• 4 input mux  membutuhkan 2 saklar pemilih

• 8 input mux  membutuhkan 4 saklar pemilih

(28)

Contoh akan dibuat rangkaian multiplexer 2 input seperti ditunjukkan pada gambar 4.44

Gambar 4.44. Multiplexer

Table kebenaran multiplexer untuk 2 input, dengan 1 saklar pemilih ditunjukkan pada table 4.5.

Tabel 4.5. Tabel Kebenaran Multiplexer

Dari table kebenaran tersebut diperoleh persamaan yang optimal multiplexer 2 input adalah Z = S’.A + S.B. Implemenrtasi pada desain rangkaian ditunjukkan pada gambar 4.45.

Gambar 4.45 Rangkaian hasil logic function

Multiplexer 4 ke 1 terlihat pada gambar 4.46. Tiap inputnya terhubung dengan gerbang AND. Tabel kebenaran multiplexer terlihat pada tabel 4.6.

(29)

Tabel 4.6. Tabel Kebenaran Multiplexer dengan 2 Select Line Input Output S0 S1 D0 D1 D2 D4 X Ket 0 0 0 X X X 0 D0 0 0 1 X X X 1 0 1 X 0 X X 0 D1 0 1 X 1 X X 1 1 0 X X 0 X 0 D2 1 0 X X 1 X 1 1 1 X X X 0 0 D4 1 1 X X X 1 1

Tabel kebenaran multiplexer 2 input dan 4 bit wide (74x157), terlihat pada gambar 4.3.

Tabel 4.3 Tabel Kebenaran Multiplexer 2 input dan 4 bit wide

(30)

Contoh Soal :

Implementasikan fungsi berikut ini dengan multiplexer :

𝐹 𝐴, 𝐵, 𝐶, 𝐷 = (0,1,4,4,8,9,15)

Jawaban:

Karena terdapat 4 variabel maka dibutuhkan multiplexer dengan 4 jalur selector dan 8 input. Input A, B, C, D. Tabel kebenaran dan Implementasinya terlihat pada gambar 4.49.

Demultiplexer adalah rangkaian logika yang menerima satu input data dan mendistribusikan input tersebut ke beberapa output yang tersedia. Seleksi data-data input dilakukan oleh selector line, yang juga merupakan input dari demultiplekser tersebut. Blok diagram sebuah demultiplexer ditunjukan oleh gambar 4.40. Tabel kebenaran demultiplexer terlihat pada tabel 4.8.

(31)

Gambar 4.49. Rangkaian multiplexer 4 bit jalur 2 ke 1

(32)

Gambar 4.40. Block Diagram Demultiplexer

Tabel 4.8. Tabel Kebenaran Demultiplexer 2 jalur selector

Input Output S0 S1 Inp Oo O1 O2 O4 0 0 0 0 X X X 0 0 1 1 X X X 0 1 0 X 0 X X 0 1 1 X 1 X X 1 0 0 X X 0 X 1 0 1 X X 1 X 1 1 0 X X X 0 1 1 1 X X X 1

(33)

Gambar 4.41. Rangkaian demultiplexer 1 ke 4 h. Dekoder

Dekoder adlah rangkaian kombinasional yang mengubah (mengkonversikan) informasi biner dari n jalur input kepada 2n jalur output. Blok Diagram dekoder diberikan pada gambar 4.42. Beberapa rangkaian dekoder yang sering dijumpai adalah dekoder 4 x 8 (4 bit input dan 8 bit output), dekoder 4 x 16, dekoder BCD to Decimal (4 bit input dan 10 output line), dekoder BCD to 7 segment (4 bit input dan 8 output line). Sebagai contoh berikut adalah dekoder 4 ke 8, dimana 4 variabel input menghasilkan 8 variabel output. Rangkaian terlihat pada gambar 4.44.

(34)

Gambar 4.44. Rangkaian Dekoder 4 ke 8

Untuk setiap kombinasi input, menghasilkan 7 jalur output yang bernilai 0, dan hanya ada 1 output yang bernilai 1. Nilai output yang bernilai 1 merepresentasikan minterm dari binary number yang tersedia dalam jalur input.

(35)

Beberapa dekoder juga dapat dibentuk melalui gerbang NAND. Dekoder ini terdiri dari satu atau lebih jalur enable. Untuk mengontrol operasi pada rangkaian. dekoder 2 ke 4 dengan enable input dibangun dengan gerbang NAND, rangkaian beroperasi dengan output komplemen dan komplemen dari input enable. Dekoder akan aktif ketika E bernilai 0 (active low - enable). Rangkaian dan tabel kebenaran dekoder 2 ke 4 disajikan pada gambar 4.44.

Gambar 4.44. (a) logic diagram (b) tabel kebenaran dekoder 2 ke 4

i. Encoder

Encoder adalah rangkaian kombinasional yang menampilkan inversi dari operasi dekoder, enkoder memiliki 2n (lebih sedikit) jalur input dan n jalur output, hanya salah satu dari input-input tersebut yang diaktifkan pada waktu tertentu, yang selanjutnya akan menghasilkan kode output N-bit. Blok diagram encoder terlihat pada gambar 4.45.

Gambar 4.45. Blok Diagram Encoder

Enkoder dapat diimplementasikan dengan gerbang OR dimana input ditentukan secara langsung dari tabel kebenaran. Operasi enkoder terlihat pada fungsi logika berikut ini :

(36)

𝑧 = 𝐷1+ 𝐷4 + 𝐷5 + 𝐷7 𝑦 = 𝐷2 + 𝐷4 + 𝐷6 + 𝐷7

𝑥 = 𝐷4 + 𝐷5+ 𝐷6+ 𝐷7

Tabel 4.8 Tabel Kebenaran octal to binary Encoder

Rangkaian digital dari encoder 8 ke 3 disajikan pada Gambar 4.46.

Gambar 4.46. Rangkaian Dekoder 8 ke 3

Priority Encoder

Sebuah Priority Encoder adalah rangkaian Encoder yang mempunyai fungsi prioritas. Operasi dari rangkaian Priority Encoder adalah sebagai berikut : jika ada dua atau lebih input bernilai "1" pada saat yang sama, maka input yang mempunyai

(37)

prioritas tertinggi yang akan diambil. Tabel Kebenaran Priority Encoder diberikan pada tabel 4.9. Kondisi "x" adalah kondisi dont care, yang menyatakan nilai input bisa "1" dan "0". Input D3 mempunyai prioritas tertinggi, sehingga bila input ini bernilai "1" maka output X dan Y keduanya akan bernilai "1" (11 menyatakan biner dari 3). Input D2 mempunyai prioritas kedua, dengan output X dan Y bernilai 10 menyatakan biner 2, dimana input D2 = "1" dan D3 = "0". Input D1 adalah prioritas ketiga dengan output X dan Y bernilai 01 menyatakan biner 1, dimana input D1 = "1", sedangkan D2 = D3 = "0". Prioritas terendah adalah input D0, yang akan memberikan output X dan Y = 00 (menyatakan biner 0), jika input D1 bernilai "1", sedang ketiga input lainnya bernilai "0". Map Karnaugh dari priority encoder terlihat pada gambar 4.47.

Tabel 4.9. Tabel Kebenaran Priority Encoder

Dari Tabel Kebenaran dapat dibuat K-Map seperti gambar 4.47 untuk masing-masing output X, Y, dan V (V adalah nilai output Validitas, yang akan bernilai "1" jika satu atau lebih inputnya bernilai "1" dan bernilai "0" jika tidak ada inputnya yang bernilai "1").

Persamaan boolean dari fungsi logika pada tabel kebenaran (tabel 4.9) adalah sebagai berikut :

𝑥 = 𝐷2+ 𝐷3 𝑦 = 𝐷3+ 𝐷1𝐷2′

(38)

Gambar 4.47. Map Karnaugh priority encoder sehingga rangakaian priority encoder disajikan pada gambar 4.48.

Gambar 4.48. Rangkaian Priority Encoder j. Realisasi Rangkaian dengan dekoder

Rangkaian dasar dekoder 2 ke 4 ditunjukkan pada Gambar 4.49. Pada rangkaian lersebut dapat diperhatikan bagian keluaran yang aktif tergantung dengan konfigurasi masukan yang dibenkan pada masukan 11 dan 10, misal dengan dibenkan masukan '0' pada II dan 10 maka inverter akan membenkan nilai ' 1' pada gerbang AND yang terhubung dengan OO selnngga OO aktif. Dengan suatu konfigurasi masukan decoder tanpa pembahk akan mengaktifkan salah satu ujung keluaranma saja. sehmgga dengan menghubungkan beberapa keluaran dengan

(39)

sebuah gerbang OR akan sama artinya dengan memihh sederetaii konfigurasi yang di benkan pada masukannya dan berarti juga bahwa keluaran 1 adalah suatu fungsi mmterm dengan variable [M_A , M_B dan M_C. Misalnya implementasi fungsi mmterm F=( 0, 2. 3, 5 ).

Gambar 4.49. Realisasi rangkaian dekoder 2 ke 4 menggunakan gerbang AND Sedangkan implementasi decoder sebagai generator fungsi maxterm dapat dibuat menggunakan sebuah decoder dengan pembalik yang akan mengaktifkan semua keluaranya kecuali keluaran yang sesuai dengan konfigurasi masukan Misalnya implementasi dekoder sebagai generator fungsi maxterm F= (3,4,5,6.7) ditunjukkan pada Gambar 4.50.

Gambar 4.50. Generator fungsi maxterm menggunakan dekoder k. Realisasi Rangkaian dengan Multiplexer

(40)

Kasus I

Implementasikan fungsi minterm F= ∑XYZ(0, 3, 5, 6) menggunakan MUX 8 KE 1 Jika F adalah fungsi minterm maka F=1 pada fungsi-fungsi F=-X-Y-Z atau F=~XYZ atau F=X-YZ atau F=XY-Z, jadi untuk mengirnplementasikan fungsi mi sebuah MUX 8 KE 1 dapat di rangkai seperti pada Gambar 4.51.

Gambar 4.51. Implementasi Rangkaian MUX 8 ke 1 pada kasus 1 Kasus 2

Untuk tungsi maxterm F= ∑ XYZ (0, 3. 5. 6). F=0 hanya jika F= -X~Y~Z atau F = -XY7 atau F=X~YZ atau F=XY~X. jadi untuk mengimplementasikan fungsi ini sebuah MUX 8 ke 1 dapat di rangkai seperti pada Gambar 4.52.

(41)

Kasus 3

Implementasikan fungsi minterm F=∑ (0, 3, 5, 6) dengan sebuah MUX 4 ke 1. Dengan menggunakan aljabar Boolean secara langsung dapat di lakukan dengan cara memilih sinyal kendali. dalam hal ini nilai teilinggi Fungsi adalah 6 sehingga MUX yang tepat adalah MUX 8 Ke 1 yang memiliki 3 sinyal kendali misalnya X, Y dan Z, dan fungsi F = X-Y-Z + -XYX + X-YZ + XY~Z , dapat langsung di Implementasikan, sedangkan dengan menggunakan MUX 4 KE 1 maka dua sinyal pemilih harus ditentukan dari ketiga sinyal tersebut, misalkan dipilih dua hagian MSB yaitu X dan Y . sehingga fungsi dapat ditulis ulang sebagai berikut:

F=~X~Y(~Z)+ ~X Y( Z )+ X~Y( Z )+ X Y(~Z)

Cara lain dapat dilakukan dengan menggunakan label reduksi terlihat di Tabel 4.12. Tabel 4.12. Tabel Reduksi

X Y Z F 0 0 0 0 1 NOT_Z 1 0 0 1 0 2 0 1 0 0 NOT_Z 3 0 1 1 1 4 1 0 0 0 NOT_Z 5 1 0 1 1 6 1 1 0 1 NOT_Z 7 1 1 1 0

(42)

Kasus 4

Implememasikan fungsi minterm F = ∑(0,1,2,3,5,7) dengan sebuah MUX 8 ke 1. Pada kasus ini fungsi tidak dapat secara langsung diimplementasikan menggunakan MUX 8 KE 1 karena rentang masukannva tidak mencukupi. sehingga dibutuhkan tabel reduksi masukan seperti yang dltunjukkan pada Tabel 4.13.

Tabel 4.13. Tabel Reduksi masukan

W X Y Z F 0 0 0 0 0 1 1 1 0 0 0 1 1 2 0 0 1 0 1 1 3 0 0 1 1 1 4 0 1 0 0 0 Z 5 0 1 0 1 1 6 0 1 1 0 0 Z 7 0 1 1 1 1 8 1 0 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 Z 11 1 0 1 1 1 12 1 1 0 0 0 Z 13 1 1 0 1 1 14 1 1 1 0 0 0 15 1 1 1 1 0

Berdasarkan Tabel 4.13 maka dapat dibuat rangkaian MUX 8 ke 1 untuk mengimplementasikan fungsi F seperti ditunjukkan pada gambar 4.54.

(43)

KASUS 5

Implementasikan fungsi minterm F = ∑ (3,4,5,6,7,11,15) dengan menggunakan MUX 16 KE I pada kasus ini rentang masukan MUX mencukupi sehingga dapat langsung digunakan. Pada fungsi ini F=1 hanya jika F = ∑ WXYZ (3,4,5,6,7,11,15) Sehingga rangkaian dan fungsi dapat di buat seperti pada Gambar 4.55.

Gambar 4.55. Implementasi rangkaian MUX 8 16 ke 1 pada kasus 5 Kasus 6a

Implementasikan Fungsi minterm F=∑ABCD (3. 4. 5. 6, 7. 11, 15) dalam MUX 8 ke 1, kerena rentang raasukan MUX tidak mencukupi maka harus dilakukan reduksi seperti pada Tabel 4.14.

Tabel 4.14. tabel Reduksi Masukan

A B C D F Dec 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 2 0 0 1 0 0 D 3 0 0 1 1 1 2 4 0 1 0 0 1 1 5 0 1 0 1 1 3 6 0 1 1 0 1 1 7 0 1 1 1 1

(44)

Tabel 4.14. tabel Reduksi Masukan (Lanjutan) A B C D F Dec 4 8 1 0 0 0 0 0 9 1 0 0 1 0 5 10 1 0 1 0 0 0 11 1 0 1 1 1 6 12 1 1 0 0 0 0 13 1 1 0 1 1 7 14 1 1 1 0 0 D 15 1 1 1 1 0

Dari tabel reduksi tersebut diperoleh rangkaian implementasi fungsi seperti pada gambar 4.56.

Gambar 4.56. Rangkaian implementasi MUX ke 1 pada kasus 6 Kasus 6b

Implementasikan fungsi minterm = ∑ABCD(3,4,5,6,7,11,15) dalam MUX 8 ke 1 menggunakan teknik 2 MUX 8 ke 1 dengan Enable. Perhatikan table 4.15

Tabel 4.15. Tabel Reduksi Masukan MUX 8 ke 1

A B C D F 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 1

(45)

Tabel 4.15. tabel Reduksi Masukan (Lanjutan) A B C D F 0 1 0 0 0 0 1 1 0 0 1 0 2 1 0 1 0 0 3 1 0 1 1 1 4 1 1 0 0 0 5 1 1 0 1 0 6 1 1 1 0 0 7 1 1 1 1 1

Pada tabel 4.15. "A" sebagai MSB dapat digunakan sebagai pemilih salah satu dari kedua MUX 8 ke 1 yang dengan menghubungkannya dengan masukan EN (enable), karena harus salah satu yang bekerja maka ditambahkan inverting seperti pada gambar 4.57. dengan masukan terinversi adalah MUX 8 ke 1 untuk menerima masukan 4 bit.

Gambar 4.57. Rangkaian implementasi 2 MUX 8 ke 1 pada kasus 6b Kasus 7a

Implementasikan fungsi minterm F = ∑(3, 4, 5, 6, 7, 11, 15) dalam MUX 4 ke 1 dengan teknik dekomposisi. Masukan dan keluaran fungsi terlihat pada tabel 4.16,

(46)

Tabel 4.16. Tabel Kebenaran FUNGSI Asli (kiri) dan reduksi Dekomposisi I (kanan)

Setelah dilakukan reduksi dekomposisi ke mUX 8 ke 1 maka selanjutnya dapat dilakukan reduksi ke MUX 4 ke 1 seperti ditunjukkan pada Tabel 4.17.

Tabel 4.17.

Tabel Kebenaran Fungsi Dekomposisi II

Dari tabel 4.17 dapat diformasi masukan fungsi untuk MUX 4 ke 1 sehingga selanjutnya dapat dilakukan implementasi fungsi menggunakan MUX 4 ke 1 seperti ditunjukkan pada Gambar 4.58.

A B C D F Reduksi A B C D F Dec 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 2 0 0 1 0 0 1 2 0 0 1 0 1 D 3 0 0 1 1 1 3 0 0 1 1 1 4 0 1 0 0 1 2 4 0 1 0 0 0 1 5 0 1 0 1 1 5 0 1 0 1 1 6 0 1 1 0 1 3 6 0 1 1 0 0 1 7 0 1 1 1 1 7 0 1 1 1 1 8 1 0 0 0 0 4 8 1 0 0 0 0 0 9 1 0 0 1 0 9 1 0 0 1 0 10 1 0 1 0 0 5 10 1 0 1 0 0 0 11 1 0 1 1 1 11 1 0 1 1 1 12 1 1 0 0 0 6 12 1 1 0 0 0 0 13 1 1 0 1 1 13 1 1 0 1 1 14 1 1 1 0 0 7 14 1 1 1 0 0 D 15 1 1 1 1 1 15 1 1 1 1 0 Reduksi A B C F Dec 0 0 0 0 0 0 CD 1 0 0 1 D 1 2 0 1 0 1 1 3 0 1 1 1 2 4 1 0 0 0 CD 5 1 0 1 D 3 6 1 1 0 0 CD 7 1 1 1 D

(47)

Gambar 4.58. Rangkaian implementassi MUX 4 ke 1 pada kasus 7a Kasus 7b

Implementasikan fungsi minterm F = ∑ (3,4,5,6,7,11,15) dalam MUX 4 ke 1. Secara cepat fungsi tersebut dapat diimplementasikan menggunakan MUX 16 ke 1 jadi dengan MUX 4 ke 1. Masukan harus direduksi dengan cara dibagi 4 seperti ditunjukkan pada tabel 4.18.

Tabel. 4.18. Tabel Reduksi fungsi kasus 7b

A B C D F 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 0 14 1 1 1 0 0 15 1 1 1 1 1

Dari tabel 4.18. Masukan telah direduksi untuk dibagi menjadi empat agar mencukupi untuk diimplementasikan menggunakan MUX 4 ke 1, hasil implementasi seperti ditunjukkan pada Gambar 4.59.

(48)

Gambar 4.59. Rangkaian Implementasi MUX 4 ke 1 pada kasus 7b l. Memory (ALU, RAM, ROM)

l.1

ALU (Alogaritmik Logic Unit)

Logika aritmatika unit (ALU) adalah rangkaian digital yang melakukan aritmatika dan logis operasi. ALU adalah sebuah blok fundamental dari central processing unit (CPU) untuk melaksanakan operasi aritmatika dan operasi logika, bahkan mikroprosesor yang paling sederhana mengandung ALU yang digunakan sebagai timer. Gambar 4.60 menunjukkan blok diagram ALU.

(49)

ALU dapat bekerja secara langsung melalui Control Unit, ALU melakukan operasi seperti ADD, SUB, NOT, OR, AND, dan XOR. Data diinputkan dari dan dikeluarkan ke array register. Sinyal kontrol dari control unit menentukan tipe operasi yang ditampilkan. Input data terdiri dari 2 operand yakni operand A dan operand B yang dimasukkan ke register dan memiliki n bit data. Data output terdiri dari S. ALU juga menghasilkan ooutput sinyal status seperti :

a. Zero (ketika hasil operasi = 0) b. Negative (ketika hasil operasi < 0)

c. Carry (ketika operasi hasilnya adalah carry)

d. Overflow (Ketika hasilnya adalah sejumlah bit yang dialokasikan dalam media penyimpan).

Beberapa contoh operasi pada ALU : A. Ripple Carry Adder (RCA)

(50)

Minimalisasi sel dan implementasi RCA :

Tabel 4.19 menunjukkan tabel kebenaran dari RCA. Map Karnaugh

dari RCA dijelaksna sehingga menghasilkan persamaan boolean.

(51)

B.

Accumulator

Banyak perhitungan yang terdiri dari pengulangan penambahan

dan pengurangan yang ditampilkan hasilnya pada operasi sebelumnya.

Accumulator didedikasikan bagi register, yang digunakan untuk

menampilkan operasi perulangan ini seperti pada gambar .

(52)

C.

Multiplication

C.1. Binary Multiplication

Metode :

Perkalian dapat ditampilkan melalui multiplier unit sebagai

rangkaian kombinational, dengan multiplicand dan bit multiplier

sebagai input dan bit sebagai output.

Tabel 4.20. tabel kebenaran Binary Multiplication

Dari tabel tersebut dapat dibentuk map karnaughnya,

B1B0

A1A0

00

01

11

10

00

0

0

0

0

01

0

1

1

0

11

0

1

1

0

10

0

0

0

0

Sehingga dihasilkan P

0

= A

0

B

0

(53)

C2. Add & Shift Multiplication

Multiplication ditampillkan oleh computer dengan perulangan

penambahan

Prinsipnya berdasarkan metode “pencil dan kertas” menyiapkan

komputasi per bagian dan menggesernya sebelum ditambahkan

untuk menghitung hasil akhirnya.

Contoh :

Perkalian positif number

15

10

. 13

10

= 1111

2

. 1101

2

Hasil verifikasinya adalah 11000011

2

= 195

10

Hal ini dapat dilakukan pula dengan metode lain, yakni

(54)

C.4. Multiplication Negative Number

Bit tanda yang menggambarkan bilangan positif dan negatif

adalah

0 - positif number

1 – negatif number

Product magnitude adalah hasil dari magnitude dari multiplicand

dan multiplier.

Implementasi

Tanda untuk product P

sb

adalah :

Positif jika tanda dari multiplier (X

sb

) dan multiplicand (Y

sb

)

adalah sama

Negatif jika tandanya berbeda

C.5. Algoritma Booth untuk perkalian (2 komplemen)

Algoritmanya :

1.

Inisialisasi hasil register dengan 0, hal ini akan memasukkan

keduanya baik partiaal product dan hasil akhir

2.

Jika bit multiplier yang diujicobakan adalah “10” dikurangi dengan

multiplicand dari product partial.

3.

Jika bit multiplier yang diujikan adalah “01”,

menambahkan

multiplicand dari partial product.

4.

Jika bit multiplier yang diujikan adalah “00” atau “11”, maka

do

nothing.

5.

Secara aritmetika GESER KANAN pada partial product

6.

Penggunaan bit set yang berdekatan dari sebuah multiplier.

7.

Jika masih ada bit multiplier yang akan digunakan akan

dilanjutkan pada langkah (b).

Contoh :

(55)

Hasil verifikasi : 1111011111

2

= -33

10

C.5. Pembagian

Algoritma pembagian, adalah :

a)

Inisialisasi hasil register (Accumulator - A) dengan 0, hal ini akan

memasukkan keduanya baik remainder dan hasil setelah

pembagian.

b)

Mengcopy hasil pembagi pada least significant bagian A

c)

Jika hasil dari the most significant part (AH) lebih besar atau sama

dengan pembagi, kurangkan divisor dari AH dan menset hasil

selanjutnya dengan bit = 1.

d)

Jika hasil dari the most significant part (AH) lebih besar atau sama

dengan pembagi, jangan lakukan apapun dan menset hasil

selanjutnya dengan bit = 0.

(56)

e)

Geser ke kanan hasilnya, mengenalkan posisi least significant bit

yang ditentukan.

f)

Jika algoritma yang ditentukan, lebih sedikit jumlah bitnya maka

pembaginya, algoritma akan kembali ke langkah b.

Contoh :

35

10

/7

10

= 100011

2

/000111

2

Yang dibagi (A) = 100011 (35

10

)

Pembagi (B) = 000111 (7

10

)

Hasilnya

= 000101 (5

10

)

(57)

I.2

ROM (Read Only Memory)

Read-Only Memory (ROM) pada dasarnya adalah sebuah perangkat memori di mana informasi biner secara permanen disimpan. Informasi biner harus ditentukan oleh perancang dankemudian tertanam di unit untuk membentuk pola interkoneksi yang diperlukan.

Sebuah diagram blok ROM terdiri dari k input dan n output ditunjukkan pada Gambar. 4.61. Masukan memberikan alamat untuk memori, dan output memberikan data bit disimpan dari kata yang dipilih oleh alamat. Jumlah word dalam ROM ditentukan dari fakta bahwa k jalur alamat input dibutuhkan untuk menspesifikasi 2𝑘 𝑤𝑜𝑟𝑑. ROM tidak memiliki input data, karena tidak memiliki operasi menulis. Sirkuit terpadu ROM chip memiliki satu atau lebih input dan kadang-kadang datang dengan tiga keadaan output untuk memfasilitasi pembangunan array besar ROM.

Gambar 4.61. Blok Diagram ROM

Perhatikan, misalnya, 32 * 8 ROM. Unit ini terdiri dari 32 word dari 8 bit masing-masing. Ada lima jalur input yang membentuk bilangan biner dari 0 sampai 31 untuk alamat. Gambar 4.61 menunjukkan konstruksi logika internal ROM ini. Kelima input yang diterjemahkan ke dalam 32 output yang berbeda dengan cara 5 x 32 decoder. Setiap output dari decoder merupakan alamat memori. 32 output dari decoder yang terhubung ke masing masing dari delapan gerbang OR. Diagram menunjukkan logika konvensi array yang digunakan dalam rangkaian kompleks. Setiap gerbang OR memiliki memiliki 32 input. masing-masing output decoder yang terhubung ke salah satu masukan dari masing-masing gerbang OR. Karena setiap OR gerbang memiliki 32 koneksi input dan ada 8 gerbang OR, ROM berisi 32 x 8 = 256 koneksi internal. Secara umum, 2𝑘𝑥 𝑛 ROM memiliki k x 2𝑘.

Penyimpanan biner internal ROM ditentukan oleh tabel kebenaran yang menunjukkan isi kata dalam setiap alamat. Sebagai contoh, isi 32 x 8 ROM mungkin ditentukan dengan tabel kebenaran yang sama dengan yang ditunjukkan pada Tabel

(58)

4.21. Tabel kebenaran menunjukkan lima input di mana tercantum 32 alamat. Setiap alamat menyimpan kata 8 bit, yang tercantum dalam output kolom. Tabel tersebut menunjukkan hanya empat pertama dan empat kata terakhir dalam ROM. Tabel 4.21 lengkap harus menyertakan daftar semua 32 kata.

Sebagai contoh, pemrograman ROM sesuai dengan tabel kebenaran diberikan oleh Tabel 4.21, hasil konfigurasi ditunjukkan pada Gambar. 4.62. Setiap nilai 0 tercantum dalam tabel kebenaran menentukan adanya sambungan, dan setiap 1 yang terdaftar menentukan jalan yang diperoleh oleh koneksi. Sebagai contoh, tabel menentukan word data delapan bit 10110010 untuk penyimpanan permanen di alamat 3. Keempat nilai 0 dalam word diprogram dengan menggabungkan antara output 3 dari decoder dan masukan dari gerbang OR terkait dengan output A6 , A3 , A2 , Dan A0 . Keempat 1 di kata ditandai dengan x untuk menunjukkan koneksi sementara, di tempat titik digunakan untuk koneksi permanen dalam diagram logika. Ketika masukan dari ROM adalah 00011, semua output dari decoder adalah 0 kecuali untuk output 3, yang pada logika 1. Sinyal setara dengan logika 1 pada output decoder 3 menyebar melalui koneksi ke gerbang OR output A7 , A5 , A4 , dan A1. Itu output empat lainnya tetap di 0. Hasilnya word disimpan 10110010 diterapkan untuk output data yang delapan. Setiap gerbang OR memiliki

2𝑘 input, yang terhubung ke masing-masing output decoder.

(59)

Tabel 7.3 ROM Truth Tabel Input Output 𝑰𝟒 𝑰𝟑 𝑰𝟐 𝑰𝟏 𝑰𝟎 𝑨𝟕 𝑨𝟔 𝑨𝟓 𝑨𝟒 𝑨𝟑 𝑨𝟐 𝑨𝟏 𝑨𝟎 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1

Implementasi Rangkaian Kombinasional

Operasi internal ROM dapat ditafsirkan dalam dua cara. Pertama interpretasi dari sebuah unit memori yang berisi pola tetap word yang tersimpan. Kedua interpretasi bahwa unit yang mengimplementasikan rangkaian kombinasional. Pada cara pandang ini, masing masing terminal output dipertimbangkan secara terpisah sebagai output dari Fungsi Boolean dinyatakan sebagai jumlah dari minterm. Sebagai contoh, ROM Gambar. 7.10 adalah rangkaian kombinasional dengan delapan output, masing-masing fungsi dari lima variabel masukan. Output A7 dapat dinyatakan dalam jumlah minterm berikut ini :

𝐴7 𝐼4, 𝐼3, 𝐼2, 𝐼1, 𝐼0 = (0, 2, 3, … ,29)

Hubungan ditandai dengan x pada gambar menghasilkan minterm untuk penjumlahan. Semua crosspoint tidak terhubung dan tidak termasuk dalam penjumlahan. Dalam prakteknya, ketika rangkaian kombinasional dirancang dengan cara ROM, tidak diperlukan merancang logika atau untuk menunjukkan koneksi gerbang internal didalam unit.

Langkah pertama adalah untuk mendapatkan tabel kebenaran dari rangkaian kombinasional. Tabel 4.22 adalah tabel kebenaran untuk sirkuit kombinasional. Tiga input dan enam output diperlukan untuk mengakomodasi semua bilangan biner yang mungkin. Output 𝐵0 selalu sama dengan masukan A0, Jadi tidak perlu untuk

(60)

menghasilkan 𝐵0 dengan ROM, karena itu sama dengan variabel masukan. Selain itu, Output 𝐵1selalu 0, sehingga output ini adalah sebuah konstanta yang dikenal. Kami benar-benar perlu untuk menghasilkan hanya empat output dengan ROM, dua lainnya dapat segera diperoleh. Ukuran minimum ROM diperlukan harus memiliki tiga input dan empat output. Tiga input menentukan delapan word, jadi ROM memiliki ukuran 8 x 4. Implementasi ROM ditunjukkan pada Gambar. 7.11. Tiga input menentukan delapan word dari empat bit masing-masing. Tabel kebenaran di Gambar. 4.63 (b) menentukan informasi yang diperlukan untuk pemrograman ROM. Blok diagram Gambar. 4.63 (a) menunjukkan koneksi yang diperlukan pada rangkaian kombinasional.

Tabel 7.22 Tabel Kebenaran Rangkaian

Input Output Decimal

𝐴2 𝐴1 𝐴0 𝐵5 𝐵4 𝐵3 𝐵2 𝐵1 𝐵0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 4 0 1 1 0 0 1 0 0 1 9 1 0 0 0 1 0 0 0 0 16 1 0 1 0 1 1 0 0 1 25 1 1 0 1 0 0 1 0 0 36 1 1 1 1 1 0 0 0 1 49

(61)

Jenis ROM

Jalur diperlukan dalam ROM dapat diprogram dalam empat cara yang berbeda. Cara pemograman pada ROM adalah sebagai berikut :

1. Mask Programming. Tabel kebenaran dapat disampaikan dalam bentuk khusus yang disediakan oleh produsen atau format yang ditentukan pada media output komputer. Pabrik membuat mask yang berkorespondensi pada tiap bagian untuk memproduksi nilai 0 dan 1.

2. Pro-grammable Read-Only Memory, atau PROM. unit PROM berisi semua sekering, memberikan semua nilai 1 dalam bit word yang tersimpan. Sekering di PROM ditiup oleh penerapan sebuah pulsa tegangan tinggi ke perangkat melalui pin khusus. Prosedur hardware untuk programmable ROM atau PROM tidak dapat diubah, dan sekali diprogram, pola tetap bersifat permanen dan tidak dapat diubah. Setelah pola bit telah ditetapkan, unit harus dibuang jika pola bit yang akan diubah.

3. Erasable PROM, atau EPROM, yang dapat direstrukturisasi dari keadaan awal meskipun telah diprogram sebelumnya. Ketika EPROM ditempatkan di bawah sinar ultraviolet khusus untuk panjang waktu tertentu, radiasi gelombang pendek pembuangan gerbang mengambang internal yang berfungsi sebagai koneksi diprogram. Setelah penghapusan, EPROM kembali ke keadaan awal dan dapat diprogram kembali untuk satu set nilai baru. Electrically Erasable PROM (EEPROM atau E2PROM). Perangkat ini seperti EPROM, kecuali bahwa koneksi diprogram sebelumnya bisa terhapus dengan sinyal listrik bukan sinar ultraviolet. Keuntungannya adalah bahwa perangkat dapat dihapus tanpa menghapusnya dari soketnya. Perangkat memori flash mirip dengan EEPROMs, tetapi memiliki tambahan built-in sirkuit untuk selektif memprogram dan menghapus perangkat di sirkuit, tanpa perlu khusus programmer.

m. PAL

PAL disebut pula sebagai programmable gate array. PAL memproduksi jalur memori monolitik yang dikarakteristikkan dengan 8 hingga 16 input, tersedia secara internal dalam bentuk asli dan komplemennya yakni 2 sampai 8 output dengan variasi jumlah product term. PAL berbeda dari PLA pada jumlah output yang ditetapkan. Sejumlah PAL tersedia dengan feedback dan output yang diregisterkan. Gambar 4.64. adalah PAL dengan 2 buah MUX 1 ke 8 dan 5 buah gerbang NOR.

(62)
(63)
(64)
(65)

Demux

b. K

(66)

Tambahan

1. A symbol is a graphical model of the input and output pins

A schematic is a functional model of how outputs are related to input values 2. Detecting all 0s, Use NOR

Detecting equality, Use XNOR

Detecting odd # of 1s, Use XOR, Useful for generating “parity” bit common for detecting errors

Lj’a

I nvert er

AND

(67)

Gambar

Gambar 4.14 Tabel kebenaran dan Rangkaian
Gambar 4.16. Tabel Kebenaran dan Rangkaian Cin B A \Cin  \ B  \ A A B Cin  SUM Cout
Gambar 4.21 look ahead adder
Gambar 2.24. Konsep substractor pada sistem digital
+7

Referensi

Garis besar

Dokumen terkait

Aplikasi simulasi rangkaian kombinasional sebagai media pembelajaran yang telah dibuat dapat memberikan hasil keluaran yang tepat berdasarkan perhitungan dari

Penelitian ini adalah tahap awal dari implementasi CRC generator pada FPGA dimana belum dilakukan proses duplikasi rangkaian perangkat keras yang dihasilkan untuk

Rangkaian synapse yang merupakan salah satu rangkaian pada Jaringan Syaraf Tiruan dapat dibuat menggunakan rangkaian analog multiplier jika beberapa input dan bobot yang

Rangkaian ini dirancang menggunakan gerbang logika dan D flip-flop dengan melalui beberapa tahap diantaranya: identifikasi masalah, state diagram, tabel kebenaran,

Berdasarkan pembahasan yang dilakukan dengan menggunakan 3, 6 dan 7 persamaan linear dari rangkaian listrik, implementasi metode eliminasi Gauss menggunakan Matlab

∙ Boolean Equation berfungsi untuk mendefenisikan suatu fungsi dalam rangkaian menggunakan bilangan biner yang terdiri angka 0 dan 1 serta symbol operasi logika..

Susunlah rangkaian logika menggunakan gerbang logika NOR (maks. 4 buah) untuk mendapatkan logika NOT, AND, OR, NAND dan EXNOR dan buktikan secara matematis

Prinsip kerja percobaan ini yaitu merangkai rangkaian kombina- sional dan komparator dari gerbang logika dasar dengan menggunakan IC 7408, IC 7432, dan IC 7485 dengan keluaran yang