PRAKTIKUM 1 Gerbang NOR, NAND dan XOR Tujuan Pembelajaran Mahasiswa dapat memahami rangkaian kombinasi gerbang logika NOR, NAND dan XOR.
Dasar Teori Gerbang NOR Ekspresi Boolean dari gerbang NOR adalah F = ̅̅̅̅̅̅̅̅ Pada teorema de Morgan, F = ̅̅̅̅̅̅̅̅ = ̅ x ̅ Ketika A = B, F = ̅̅̅̅̅̅̅̅ = ̅ +A = ̅ . Ketika B=0, F = ̅̅̅̅̅̅̅̅ = ̅ +0 = ̅ . Karena itu, gerbang NOR dapat digunakan untuk menyusun gerbang NOT, OR, AND, dan XOR. Kita akan mencoba menyusun berbagai gerbang logika pada percobaan ini, dengan menyusun gerbang NOR dengan berbagai cara. Simbol dari gerbang logika NOR ditunjukkan pada Gambar 1.1.
Gambar 1.1: Simbol Gerbang NOR Gerbang NAND Ekspresi Boolean dari gerbang NAND adalah F=̅̅̅̅̅̅̅ Pada teorema de Morgan, F =̅̅̅̅̅̅̅ = ̅ + ̅ Ketika A=B, F = ̅̅̅̅̅̅̅ = ̅ . Ketika B=1, F = ̅̅̅̅̅̅̅̅ = ̅ x 1. Seperti gerbang NOR, gerbang NAND bias digunakan untuk menyusun beberapa gerbang dasar lainnya. Kita akan mencoba menyusun berbagai gerbang logika pada percobaan ini,
1
dengan menyusun gerbang NAND dengan berbagai cara. Simbol dari gerbang logika NAND ditunjukkan pada Gambar 1.2.
Gambar 1.2: Simbol Gerbang NAND Gerbang XOR ̅= ̅B + A̅ Ekspresi Boolean dari gerbang EXOR adalah F = ̅ Simbol dari gerbang XOR ditunjukkan pada Gambar 1.3.
Gambar 1.3: Simbol Gerbang XOR Gerbang XOR bisa disusun menggunakan gerbang NOT, OR, AND, NOR atau NAND atau dengan menggunakan empat gerbang NAND seperti ditunjukkan dalam Gambar 1.4 (a dan b).
(a)
(b)
Gambar 1.4: Simbol Gerbang XOR : (a) dengan gerbang dasar; (b) dengan gerbang NAND saja. Karena F = ̅ B+ A ̅ , ketika B=0, F = ̅ x 0 + A x 1 = A x 1 = 1 dan sirkuit berperan sebagai buffer, ketika B=1, F = ̅ x 1 + A x 0 = ̅ x 1 = ̅ , sirkuit berperan sebagai inverter. Dengan kata lain, keadaan input dari gerbang XOR ditentukan apakah akan berperan sebagai buffer atau inverter. Pada percobaan ini, kita akan menggunakan gerbang logika dasar untuk menyusun gerbang NOR, NAND dan XOR dan mempelajari hubungan antara input dan outputnya.
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33002
2
Percobaan 1: Menyusun Gerbang NOR 1. Pada “Module KL-33002 block a”, gerbang NOR bernomor “U1a” akan digunakan untuk menyusun gerbang NOT seperti ditunjukkan pada Gambar 1.5.
Gambar 1.5: Gerbang NOR dipakai sebagai gerbang NOT 2. Hubungkan input A ke Data Switches SW0, B ke Data Switches SW1 dan output F1 ke Logic Indicator L1. Atur SW0 ke “0”, amati kondisi dari SW1=”0” dan SW1=”1”. Masukkan hasil percobaan ke dalam Tabel 1.1. Tabel 1.1: Tabel hasil percobaan B(SW1) 0 0 1 1
A (SW0) 0 1 0 1
F1
Apakah sirkuit berperan sebagai gerbang NOT ? 3. Masukkan connection clip antara A dan B. Hubungan A ke SW0 dan F1 ke L1. Bagaimanakah kondisi dari F1 ketika SW0=0 dan SW0=1. Masukkan hasil percobaan ke dalam Tabel 1.2. Tabel 1.2: Tabel hasil percobaan A-B (SW0) 0 1
F1
Apakah sirkuit berperan sebagai gerbang NOT ? 4. Gunakan “U1a” dan “U1c” untuk menyusun sebuah buffer yang ditunjukkan di pada Gambar 1.6 (sebelah kiri).
Gambar 1.6: Gerbang NOR digunakan Buffer dan OR gate
3
Masukkan connection clip antara A-B; F1-A1; A1-B1. Hubungkan input A ke SW0 dan output F3 ke L1. Bagaimanakah kondisi dari F3 ketika SW0=0 dan SW0=1? Masukkan hasil percobaan ke dalam Tabel 1.3. Tabel 1.3: Tabel hasil percobaan A-B (SW0) 0 1
F3
Apakah sirkuit berperan sebagai buffer? 5. Gunakan “U1a” dan “U1c” untuk menyusun sebuah gerbang OR yang ditunjukkan di pada Gambar 6 (sebelah kanan). Masukkan connection clip antara F1-A1; A1-B1. Hubungkan input A ke SW0, B ke SW1, dan output F3 ke L1. Masukkan hasil percobaan ke dalam Tabel 1.4. Tabel 1.4: Tabel hasil percobaan B(SW1) 0 0 1 1
A (SW0) 0 1 0 1
F3
6. Masukkan connection clip seperti pada Gambar 1.7.
Gambar 1.7: Modul KL-33002 Block A Sirkuit akan berperan sebagai gerbang AND. Hubungkan A ke SW0; D ke SW1; F1 ke A1; F2 ke B1; F3 ke L1. Ikuti masukkan yang diberikan pada Tabel 1.5 dan catat hasil percobaannya. Tabel 1.5: Tabel hasil percobaan D(SW1) 0 0 1 1
A (SW0) 0 1 0 1
4
F3
Percobaan 2: Menyusun Gerbang NAND 1. Masukkan connection clip seperti pada Gambar 1.8(a). Kemudian gunakan ”U2c” dan “U2d” untuk meyusun gerbang NOT seperti Gambar 1.8(b) bagian kiri.
(a)
(b)
Gambar 1.8: (a) Modul KL-33002 Block B ; (b) Rangkaian ekivalensi
2. Hubungkan input A pada Data Switch SW1, output F2 ke Logic Indicator L1. Amati outputnya. Masukkan hasil percobaan ke dalam Tabel 1.6. Tabel 1.6: Tabel hasil percobaan SW1 0 1
F2
Apakah sirkuit berperan sebagai gerbang NOT? 3. Hubungkan input A pada Data Switch SW1, input A1 ke Vcc (“1”) untuk membuat gerbang NOT seperti gambar 8(b) bagian kanan. Koneksi yang lain dibiarkan tetap sama. Masukkan hasil percobaan ke dalam Tabel 1.7. Tabel 1.7: Tabel hasil percobaan SW1 0 1
F2
Apakah sirkuit berperan sebagai gerbang NOT ?
4. Lepas connection clip dan pasang lagi sesuai gambar 1.9(a) untuk membuat gerbang AND yang ditunjukkan pada Gambar 1.9(b).
5
(a)
(b)
Gambar 1.9: (a) Modul KL-33002 Block B ; (b) Rangkaian ekivalensi
Hubungkan A ke SW1, A1 ke SW2, F2 ke A2 dan B2, F4 ke L1. Masukkan input seperti di bawah ini dan catat hasil percobaan pada Tabel 1.8. Tabel 1.8: Tabel hasil percobaan SW2(A1) 0 0 1 1
SW1(A) 0 1 0 1
F4
Apakah sirkuit berperan sebagai gerbang AND (F = A x B) ?
5. Masukkan connection clip menurut Gambar 1.10(a) untuk menyusun sirkuit pada Gambar 1.10(b).
(a)
(b)
Gambar 1.10: (a) Modul KL-33002 Block B ; (b) Rangkaian ekivalensi
Hubungkan A ke A1 dan SW1; F2 ke A2; D ke B1 dan SW2; F3 ke B2; F ke L1. Masukkan input seperti pada Tabel 1.9 dan catat outputnya.
6
Tabel 1.9: Tabel hasil percobaan SW2 (D) 0 0 1 1
SW1 (A) 0 1 0 1
F4
Apakah sirkuit berperan sebagai gerbang OR (F = A + B)?
Percobaan 3: Menyusun Gerbang XOR 1. Masukkan connection clip seperti pada Gambar 1.11(a) untuk menyusun sirkuit seperti Gambar 1.11(b).
(a)
(b)
Gambar 1.11: (a) Modul KL-33002 Block B ; (b) Rangkaian ekivalensi
2. Hubungkan input A ke SW1, D ke SW2, output F1 ke L1, F2 ke L2, F3 ke L3, dan F4 ke L4. 3. Ikuti input untuk A dan D pada Tabel 1.10 dan catat output hasil percobaannya. Tabel 1.10: Tabel hasil percobaan Input D 0 0 1 1
Output A 0 1 0 1
F1
F2
Tentukan ekspresi Boolean untuk F1, F2, F3, F4 ?
7
F3
F4
Percobaan 4: Menyusun gerbang XOR dengan gerbang logika dasar 1. Masukkan connection clip seperti pada Gambar 1.12(a) untuk menyusun sirkuit yang sama seperti Gambar 1.12(b)
(a)
(b)
Gambar 1.12: (a) Modul KL-33002 Block C ; (b) Rangkaian ekivalensi
2. Hubungkan input A, B, ke SW1, SW2; Output F1, F2, F3 ke L1, L2. L3. 3. Ikuti input untuk A dan B pada Tabel 1.11 dan catat outputnya. Tabel 1.11 Input SW2(B) SW1(A) 0 0 0 1 1 0 1 1
Latihan -
8
F1
Output F2
F3
PRAKTIKUM 2 Gerbang AND, OR dan Inverter Tujuan Pembelajaran Mahasiswa dapat memahami rangkaian kombinasi dari gerbang logika dasar AND, OR dan Inverter.
Dasar Teori Gerbang AND-OR-INVERTER terdiri dari dua gerbang AND, satu OR dan satu INVERTER (NOT). Simbol dari gerbang A-O-I seperti terlihat di Gambar 2.1.
Gambar 2.1: Gerbang AND-OR-INVERTER
Persamaan Boolean dari output F adalah : F = ̅̅̅̅̅̅̅̅̅̅̅
(1)
Persamaan (1) bisa diubah dengan teorema de morgan menjadi F = ( ̅ + ̅ ) x ( ̅+ ̅ )
(2)
Persamaan (1) disebut dengan “Sum Of Products (SOP)”. Persamaan (2) disebut dengan “Product of Sums (POS)”. Mudahnya, gerbang A-O-I adalah kombinasi logika dari “SOP”
9
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33002
Percobaan 1: Menyusun gerbang AND, OR dan Inverter 1. Gunakan modul U3a, U3b, U3c dan U4c di Blok C dari Modul Kl-33002 seperti tampak di Gambar 2.2(a), untuk membuat gerbang A-O-I dari Gambar 2.2(b). 2. Gambar 2.2(c) sama dengan sirkuit A-O-I yang menggunakan U3a,U3b. U3c digunakan sebagai gerbang OR.
(a)
(b)
(c)
Gambar 2.2: (a) Modul KL-33002 Block C; (b) Aktual circuit; (c) Ekivalen circuit.
3. Hubungkan input A, A1, B, B1 ke Data Switch SW0, SW1, SW2, SW3 secara berurutan. Hubungkan output F3, F4 ke Logic Indicator L1 dan L2. 4. Atur B dan B1 sehingga F2 = ”0” dan ikuti input dari A dan A1 dari Table 2.1 dan catat output hasil percobaan.
10
Tabel 2.1: Tabel hasil percobaan F2 = 0 A1 0 0 1 1
A 0 1 0 1
F3
F4
Apakah F3 berfungsi sebagai gerbang AND antara A dan A1? 5. Ketika F2 = A x A1)
, apakah F3 bertindak sebagai gerbang AND antara A dan A1? (F3
6. Ketika A = A1 = 0, sehingga F1=0. Ikuti input untuk B dan B1 seperti Tabel 2.2 dan catat output hasil percobaan. Tabel 2.2: Tabel hasil percobaan F1 = 0 B1 0 0 1 1
B 0 1 0 1
F3
F4
Apakah F3 bertindak sebagai gerbang AND antara B dan B1? 7. Ketika F1
, apakah F3 bertindak sebagai gerbang AND antara B dan B1?
8. Apakah F3 ekivalen dengan
?
Latihan 1.
Buat gerbang A-O-I menggunakan dasar logika gerbang CMOS.
2.
Buat sirkuit POS dengan
3.
Output dari gerbang A-O-I adalah ̅̅̅̅̅̅̅̅̅̅̅̅, Tuliskan outputnya jika ̅.
( ̅
̅)
11
( ̅
̅ ). ̅ dan
PRAKTIKUM 3 Half-Adder dan Full-Adder Tujuan Pembelajaran Mahasiswa dapat memahami karakteristik rangkaian half-adder dan full-adder dan penerapannya dalam fungsi aritmatika.
Dasar Teori Adders dapat dibagi ke dalam “Half-Adder” (HA) dan “Full-Adder” (FA). Half-Adder mengikuti aturan binary additional dan menganggap hanya tambahan 1 bit. Hasil tambahan adalah “carry” dan “sum”. Pada binary additional, “carry” dibangkitkan ketika jumlah 2 angka lebih besar dari 1. Ketika “1” dan “1” ditambah jumlahnya adalah 0 dan carry sama dengan 1. Half-adder dibatasi pada tambahan angka 1 bit. Penjumlahan dengan half-adder dijelaskan pada Gambar 3.1.
Gambar 3.1: Penjumlahan dengan half-adder Berbeda dengan half-adder, untuk full-adder dapat menunjukkan angka tambahan yang lebih dari 2 bit. Full-adder dibangun menggunakan 2 half-adder seperti pada gambar 3.2(a) dan 3.2(b) yang menunjukkan half-adder dan full-adder beserta dengan simbolnya.
(a)
12
(b) Gambar 3.2: Simbol dan rangkaian adder : (a) half-adder; (b) full-adder Untuk menunjukkan angka tambahan lebih dari 2 bit, pada Gambar 3.3 ditunjukkan rangkaian “parallel input” yang digunakan untuk membangkitkan penjumlahan secara bersama. Bagaimanapun, sum-adder berikutnya akan stabil hanya setelah carry-adder sebelumnya stabil. Contohnya pada Gambar 3.3, jumlah FA2 tidak akan stabil kecuali carry FA1 stabil.
Gambar 3.3: Block full-adder Ketika FA1 menambah A1 dan B1, sum S1 dan carry C1 dibangkitkan. C1 akan ditambahkan ke A2 dan B2 oleh FA2, pembangkit lain sum S2 dan carry yang lain C2. Dalam hal ini pada gambar 3, jumlah 4 adder tidak stabil pada waktu yang sama, terdapat delay atau tunda pada proses penambahan. Delay ini akan dihilangkan dengan penggunaan “Look-Ahead” adder. Look-ahead adder tidak menunggu adder sebelumnya untuk stabil, sebelum menunjukkan penambahan berikutnya dengan tujuan untuk menyimpan waktu. Pada ekspresi Boolean kita berasumsi : Pi = Ai Bi Gi = Ai x Bi
(1) (2)
Output dan carry dapat diekspresikan sebagai : Si = Pi Ci Ci + 1 = Gi + PiCi
(3) (4)
Gi disebut “carry generate”. Jika Ai dan Bi keduanya adalah “1”. Gi adalah “1” dan menghasilkan “carry input”. Pi disebut “carry transmit”, berhubungan ke pengiriman carry antara Ci dan Ci + 1. Jika kita mengganti fungsi carry oleh carry sebelumnya yang kita dapatkan bahwa: C2 = G1 + P1 C1 C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 C1 C4 = G3 + P3 C3 = G3 + P3 P2 G1 + P3 P2 C1
13
(5) (6) (7)
Gambar 3.4 menunjukkan bentuk carry dari look-ahead adder. Contoh IC look-ahead adder TTL adalah 74182.
Gambar 3.4: Bentuk carry dari look-ahead adder Binary adder dapat diubah ke BCD adder. Ketika BCD mempunyai 4 bit dengan angka terbesar 9, dan angka binary terbesar 4 bit adalah 15, maka ada perbedaan pada 6 antara binary dan BCD adder. Pada kondisi 6 harus ditambahkan ketika binary adder digunakan untuk menambah kode BCD : 1. Ketika ada carry lainnya. 2. Ketika sum lebih besar dari 9. Jika prioritas perintah adalah S8, S4, S2, S1 dan jumlah lebih besar dari 9 kemudian S8xS4 + S8xS2. Jika carry yang lain dilibatkan, berasumsi carry itu adalah CY, 6 harus ditambahkan. CY + S8 x S4 + S8 x S2
(8)
Berikut ini Gambar 3.5 yang menunjukkan rangkaian BCD adder.
Gambar 3.5: Rangkaian BCD adder
14
Peralatan 1. KL-31001 Digital Logic Lab 2. Modul KL-33003/KL-33004
Percobaan 1: Membangun half-adder dengan gerbang logika dasar 1. Masukkan connection clip menurut Gambar 3.6(a), menggunakan “U2a” dan “U3a” untuk memasang rangkaian half adder Gambar 3.6(b). Hubungkan Vcc ke +5V.
(a) (b) Gambar 3.6: (a) Modul KL-33004 Block A, (b) Rangkaian ekivalen 2. Hubungkan input A dan B ke Data Switches SW0 dan SW1. Hubungkan output F1 dan F2 ke Logic Indicator L1 dan L2. Ikuti input rangkaian untuk A dan B pada Tabel 1 dan catat output hasil percobaan. Table 3.1: Tabel hasil percobaan INPUT SW1(B) SW0(A) 0 0 0 1 1 0 1 1
OUT F1
F2
Tentukan output mana yang dijumlah dan mana yang carry! 3. Rangkailah kembali rangkaian menurut Gambar 3.7(a) untuk membangun rangkaian full-adder yang ditunjukkan Gambar 3.7(b).
15
(a)
(b)
Gambar 3.7: (a) Modul KL-33004 Block A, (b) Rangkaian ekivalen. 4. Hubungkan A, B, C ke SW1, SW2, dan SW3. A dan B adalah “aug-ends” dan C adalah carry sebelumnya. 5. Hubungkan F3 ke L1, F5 ke L2. Ikutilah input rangkaian pada Table 3.2 dan catat daerah output hasil percobaan. Tabel 3.2: Tabel hasil percobaan
SW3(C) 0 0 0 0 1 1 1 1
OUTPUT SW2(B) 0 0 1 1 0 0 1 1
OUT SW1(A) 0 1 0 1 0 1 0 1
F3
F5
Tentukan output mana yang menyatakan sum dan mana yang carry?
Percobaan 2: Membangun rangkaian full-adder dengan IC 1. U5 pada Blok B modul KL-33004 digunakan sebagai 4 bit adder, seperti ditunjukkan pada pada Gambar 3.8.
16
Gambar 3.8: Modul KL-33004 Block B
X = X3 X2 X1 X0 Y = Y3 Y2 Y1 Y0 = 3 2 1 0
(9) (10) (11)
2. Hubungkan input Y5 ke “0” (swith Output TTL “LOW”), jadi gerbang XOR U6a U6d, yang dihubungkan ke Y0 Y3, akan berlaku sebagai buffer. 3. Hubungkan input X0 X3 (add-ends), Y0 Y3 (aug-ends) ke DIP Swtches DIP2.0 2.3 dan DIP1.0 1.3. Hubungkan F1, 0(F8), 1(F9), 2(F10), 3(F11) ke L1 L5. 4. Catat hasil pengamatan pada Tabel 3.3, dan catat F1 dan dengan bilangan hexadecimal. (X dan Y dapat juga dihubungkan ke Thumbwheel Switches) Table 3.3: Tabel hasil percobaan INPUT Y 0 0 0 0 0 1 1 1 3 4
OUTPUT F1(CARRY)
X 0 1 6 9 F 3 6 8 6 8
17
4 8 9 A C F
F 7 9 B E F
Percobaan 3: Membangun high speed adder carry generator circuit 1. U3 (74182) pada Modul KL-33003 Blok A digunakan untuk membangun rangkaian pembangkit carry. Gambar 3.9(a) dan 3.9(b) menunjukkan diagram logika untuk 74182.
(a) (b) Gambar 3.9: (a) Modul KL-33003 Block A; (b) Rangkaian ekivalen.
Tabel kebenaran pada diagram tersebut dapat dilihat pada Tabel 3.4.
18
Tabel 3.4: Tabel kebenaran rangkaian pembangkit carry
2. Hubungkan input A0 A3 (add-ends) ke DIP Swicthes 1.0 1.3; B0 B3 (aug-ends) ke DIP2.0 2.3, pin Cn =”0” . Hubungkan Cn+x, Cn+y, Cn+z dan ̅ dan ̅ ke L1~L5. Seperti persamaan dibawah ini.
19
Catat hasil outputnya hasil percobaan ke dalam Tabel 3.5. Tabel 3.5: Tabel hasil percobaan
B3 0 0 0 0 1 1 1 0 1
B2 0 0 0 0 0 1 1 1 0
B1 0 1 0 1 1 1 1 1 0
INPUT B0 A3 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0
A2 0 0 0 0 0 1 1 1 1
A1 0 1 1 1 0 1 0 1 0
A0 1 0 0 1 0 1 1 0 1
Cn+x
OUTPUT Cn+y Cn+z ̅
̅
Bandingkan hasilnya dengan table kebenaran. Apakah sama ? (Jika Cn = 0, carry terakhir CY = G)
Percobaan 4: BCD Code Adder Circuit 1. Rangkaian pada Modul KL33040 Blok B seperti yang ditunjukkan pada Gambar 3.10 pada percobaan ini akan dipakai sebagai BCD Code Adder.
Gambar 3.10: Modul KL-33004 Block B 20
2. Hubungkan input X0 X3 ke DIP 1.0 1.3; 3. Hubungkan input Y0 Y3 ke DIP 2.0 2.3 dan Y5 = “0” (hubungkan ke GND). 4. U5 dan U9 adalah 7483 look ahead 4 bit BCD adder. Hubungkan F8 F11 dari output U5 ke input 7 segmen (D0) dan ke L1 L4. Hubungkan F1 ke L5 dan F2 ke L6. 5. F8 F11 adalah jumlah X0 X3 ditambah ke Y0 Y3 dan F1 carry. Hubungkan F4 F7 ke input 7 segmen (D1) dan F3 ke L7. Catatlah hasil percobaan pada Table 3.6. Table 3.6: Tabel hasil percobaan INPUT
OUTPUT(U5)
X3
X2
X1
X0
Y3
Y2
Y1
Y0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
F1
F11
Latihan -
21
F10
F9
LAST(U9) F8
F2
F3
F7
F6
F5
F4
7‟S
7‟S
D0
D1
PRAKTIKUM 4 Half-Subtractor dan FullSubtractor Tujuan Pembelajaran Mahasiswa dapat memahami teori komplemen dan penerapannya pada rangkaian halfsubtraktor dan full-subtractor.
Dasar Teori Rangkaian half-subtraktor dan full-subtraktor dapat dibangun dengan berdasarkan dari tabel kebenaran dan persamaan Boolean, atau gerbang logika dengan Karnaugh map. Pada praktikum ini kita akan menggunakan teori komplemen untuk menghasilkan rangkaian half-subtractor dan full-subtractor. Binary subtractor biasanya dihasilkan dari 2’s complement. Dua langkah untuk mendapatkan 2’s complement. Pertama, inverskan menjadi 1’s complement, contoh: “1” menjadi “0” dan “0” menjadi “1”. Kedua, menambahkan dengan “1” pada ke digit terakhir pada 1’s complement. Pada umumnya, subtraktor adalah penjumlahan dua buah bilangan, dengan bilangan pengurangnya adalah 2’s complement dari bilangan tersebut. Karena itu adder dapat digunakan sebagai subtraktor. Contohnya : Apa persamaan komplemen kedua untuk pengurangan decimal 11 – 10 ? Angka pengurang Yang dikurangi
Decimal 11 - 10 1
: 11 (decimal) = 1011 (biner) : 10 (decimal) = 1010 (biner) = 0101 (1’s complement) = 0110 (2’s complement)
-
Biner 1011 1010 1
1’s complement 1011 - 1011 0
2’s complement 1011 - 0110 10001
Carry “1” dibangkitkan pada subtrak 2’s complement. Half Subtractor Sebuah rangkaian subtractor terdiri dari half subtractor dan full subtractor. half subtractor mengurangkan dua buah bit input, dan menghasilkan nilai hasil pengurangan
22
(remain) dan nilai yang dipinjam (borrow-out). Half subtractor diletakkan sebagai pengurang dari bit-bit terendah (least significant bit / LSB). Blok diagram dari sebuah rangkaian half subtractor ditunjukkan pada Gambar 4.1.
Gambar 4.1: Blok Diagram Half Subtractor Prinsip kerja half-subtractor ditunjukkan pada Gambar 4.2.
Gambar 4.2: Prinsip Kerja Half Subtractor Sebuah half- subtractor mempunyai tabel kebenaran seperti ditunjukkan pada Tabel 4.1. Tabel 4.1: Tabel Kebenaran Half Subtractor
A0 B0 0 0 1 1
0 1 0 1
R0
Bout
0 1 1 0
0 1 0 0
Berdasarkan output yang didapatkan dari tabel kebenaran, dibuat rangkaian seperti Gambar 4.3.
Gambar 4.3. Rangkaian Half Subtractor
23
Full Subtractor Sebuah full-subtractor mengurangkan dua bilangan yang telah dikonversikan menjadi bilangan-bilangan biner. Masing-masing bit pada posisi yang sama saling dikurangkan. Full-subtractor mengurangkan dua bit input dan nilai borrow-out dari pengurangan bit sebelumnya. Output dari full-subtractor adalah hasil pengurangan (remain) dan bit pinjamannya (borrow-out). Blok diagram dari sebuah full-subtractor diberikan pada Gambar 4.4.
Gambar 4.4: Blok Diagram Full Subtractor Tabel kebenaran untuk sebuah full subtractor diberikan pada Tabel 4.2. Tabel 4.2: Tabel Kebenaran Full Subtractor Bin A1 B1 (C) (A) (B) 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
R1 (DF) 0 1 1 0 1 0 0 1
Bout (BW) 0 1 0 0 1 1 0 1
Berdasarkan output yang didapatkan dari tabel kebenaran, dibuat rangkaian seperti Gambar 4.5.
Gambar 4.5: Rangkaian Full Subtractor
Dari rangkaian adder 4 bit kita dapat memasang rangkaian subtractor 4 bit atau lebih. Ketika ditambahkan Bn-1 = “0” maka semua gerbang XOR berlaku sebagai buffer. Dan ketika Bn-1=”1” maka semua gerbang XOR berlaku sebagai gerbang
24
NOT. Input Y berfungsi menjadi 1’s complement dan menambah “1” dari Cin. Outputnya adalah Cn (carry) dan Bn (borrow), Cn dan Bn tergantung pada Bn-1. Gambar 4.6 menunjukkan dua rangkaian adder atau subtraktor.
Gambar 4.6: Dua Rangkaian Adder atau Subtraktor
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33004
Percobaan 1: Membangun rangkaian subtraktor dengan gerbang logika dasar 1. Masukkan connection clip sesuai dengan Gambar 4.7.
Gambar 4.7: Modul KL-33004 Block A
2. Hubungkan input A, B dan C ke Data Switch SW0, SW1 dan SW2. Output F2 ke Logic Indicator L1; F1 ke L2; F3 ke L3; F5 ke L4.
25
Ketika C = 0 rangkaian adalah half subtraktor: o F1 adalah output borrow; o F2 adalah selisih dan F5=F2; o F4=0; F3=F1. Ketika C=1 rangkaian adalah full subtraktor: o F3 adalah borrow output o F5 adalah difference output. 3. Catat output rangkaian pada Tabel 4.3. Table 4.3: Tabel hasil percobaan
input
Half-subtraktor Half-adder
Full-subtraktor Full-adder
C 0 0 0 0 1 1 1 1
Borrow
A 0 0 1 1 0 0 1 1
B 1 0 1 0 0 1 0 1
F1
Difference Sum F2
F3
F5
Percobaan 2: Full-Subtractor dan Rangkaian Inverter 1. Rangkaian pada modul KL-33004 block b pada Gambar 4.8(a) adalah sama dengan rangkaian adder/subtraktor pada Gambar 4.8(b).
(a)
(b)
Gambar 4.8: (a) Modul KL-33004 Block B; (b) Rangkaian ekivalen
26
2. Hubungkan input X3 X0 ke DIP Switch 1.31.0; Y3Y0 ke DIP 2.3Dip 2.0; Y5 ke SW0. 3. Hubungkan output F1 ke L1; F11 F8 ke L5 L2. 4. Untuk melaksanakan operasi subtrak, hubungkan Y5 ke “1” (atau Cin U5=1). Ikuti input rangkaian di bawah dan catat daerah output pada Table 4. Tabel 4.4: Tabel hasil percobaan X3 0 0 1 1 1 1 1 1 1 1
X2 1 1 0 0 0 0 0 0 0 1
X1 0 0 0 0 0 0 1 1 1 1
INPUT X0 Y3 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1
Y2 1 0 0 0 0 1 1 1 0 0
Y1 0 1 1 0 0 1 1 0 1 1
Latihan -
27
Y0 0 1 1 1 0 1 0 1 0 0
F1
F11
OUTPUT F10 F9
F8
PRAKTIKUM 5 Encoder dan Decoder Tujuan Pembelajaran Mahasiswa dapat memahami prinsip kerja dari rangkaian encoder dan decorder.
Dasar Teori Encoder Rangkaian encoder merupakan rangkaian kombinasi dari gerbang logika yang menerima satu / lebih dari satu input dan menggenerasikannya ke dalam code output yang lebih spesifik. Hanya satu input yang ditriger dalam satu waktu. Sebuah encoder dengan input n-bit dan output n-bit ditunjukan pada gambar 5.1. Ketika satu dari input ditriger maka akan ada n-bit output pada outputnya.
Gambar 5.1: Encoder Encoder Octal ke biner Encoder octal ke biner seperti ditunjukan pada gambar 2. Ada 8 input A1~A7 (0~7); dan tiga output biner Q0,Q1,Q2 (000~111). Jika input A0=”0” maka respon dari output Q2 Q1 Q0 adalah samadengan “000”.
Gambar 5.2: Encoder Octal
28
Biasanya, A0 tidak dihubungkan pada gerbang input. Jika A1=”1” maka Q2 Q1 Q0=001. Ketika A2=”1” maka output Q2 Q1 Q0=010. Tidak akan ada lebih dari 1 diantara input. Sebagai contoh, jika A2=”1” dan A3=”1” maka Q2 Q1 Q0=011. Jika A3, A4 masingmasing adalah “1” diwaktu yang sama, Q2 Q1 Q0=111. Masing-masing output adalah salah. Encoder matrik Jika tidak ada encoder yang sesuai dengan spesifikasi yang dibutuhkan, maka kita dapat membuat salah satunya dengan menggunakan diode. Gambar 5.3 menunjukan sebuah encoder matriks sederhana yang dibentuk dari diode.
Gambar 5.3: Encoder matrix Hanya satu dari X0~X4 yang akan ditriger dalam satu waktu. Ketika X0=”1”, Y3 Y2 Y1 Y0 = “1011”. Ketika X1=”1”, Y3 Y2 Y1 Y0 = “0110”. Rangkaian digital biasanya sangat tepat digunakan untuk memproses sinyal input yang bervariasi berdasarkan prioritas. Salah satu jenis encoder yang umum adalah “encoder prioritas”, dimana proses input berdasarkan prioritas dapat digunakan dalam rangkaian semacam ini. Ketika gerbang input dengan prioritas tinggi di-triger, output akan merespon terhadap prioritas tertinggi dengan mengabaikan kondisi input prioritas rendah. IC 74147 adalah sebuah encoder BCD output prioritas 9-1, prioritas input bekerja berdasarkan urutan ascending, gerbang 1 adalah prioritas terendah dan gerbang 9 adalah prioritas tertinggi. Outputnya adalah code BCD. Tabel 5.1 adalah table kebenaran untuk IC 74147 dengan 10-4 encoder prioritas. Tabel 5.1: Tabel kebenaran 74147
29
IC 74147 di-triger oleh kondisi logika “low”. Ketika input 1~9 dalam kondisi “high”, output DCBA = ”HHHH”. Ketika input 2 dan 5 di-triger maka output ditentukan oleh input 5, yang mempunyai prioritas lebih tinggi daripada input 2. Ketika input 2, 5 dan 7 di-triger bersama, input 7 akan menentukan outputnya.
Decoder Decoder adalah suatu rangkaian logika yang akan mendeteksi keberadaan nomor biner tertentu. Input untuk decorder adalah nomor parallel biner dan output biner merupakan sinyal yang menunjukkan ada atau tidak adanya jumlah tertentu. Pintu gerbang AND dapat digunakan sebagai rangkaian decoder dasar, dan output gerbang akan menjadi biner “1” hanya jika semua input biner “1”. Koneksi yang tepat dari input gerbang AND pada data akan memastikan kebenaran deteksi dari setiap bilangan biner. Decoder Biner-ke-Oktal Sebuah decoder biner-ke-oktal ditampilkan pada Gambar 5.4.
Gambar 5.4: Decoder biner-ke-oktal Terdapat 3 input biner A, B, C dan 8 output oktal Q0~Q7. Jika CBA = “010” output Q2 = “1”. Ketika CBA = “111” keluaran Q7= “1”.
Peralatan 1. 2. 3. 4.
KL-31001 digital logic lab, Modul KL 33004 KL-33005 KL-33006 Multimeter
ENCODER 30
Percobaan 1: Membangun rangkaian 4-2 encoder dengan gerbang dasar 1. Susunlah rangkaian pada Modul KL-33005 Block A sesuai dengan Gambar 5.5.
Gambar 5.5: KL-33005 Block A 2. Hubungkan Vcc pada +5v. 3. Hubungkan input A dan B pada data switch SW0 - SW3 secara berurutan. Output F8 dan F9 pada logic indicator L0 dan L1.
4. Ikuti tabel input dibawah ini secara berurutan dan catat outputnya. Tabel 5.2: Tabel hasil percobaan D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
31
F8 F9
5. Hilangkan koneksi antara A dan A1 ; hubungkan A1 dan F1 seperti gambar 5.6. Yang lain tetap sama. Ikuti input Table 5.3 dan catat outputnya.
Gambar 5.6: Modul KL-33005 Block A Tabel 5.3: Tabel hasil percobaan D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
F8 F9
6. Bandingkan Tabel 5.2 dan 5.3. Apa perbedaan diantara keduanya?
Percobaan 2: Membangun Encoder 9-4 dengan IC TTL 1. 7414 (u7) dalam KL-33006. Hubungkan Vcc pada +5V.
32
Gambar 5.7: Modul KL-33006 Block A 2. Hubungkan input A1-A8 to DIP switch 1.0-1.7, A9 pada 2.0. 3. Hubungkan output F1-F4 pada logic indicator L1-L4. 4. Masukan input sesuai Table 5.4 dan catat hasilnya. Tabel 5.4: Tabel hasil percobaan A9
A8
A7
A6
A5
A4
A3
A2
A1
0 0 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 0 0 0
1 1 1 1 1 1 0 0 1 0 0
1 1 1 1 1 0 1 0 1 1 0
1 1 1 1 0 0 1 0 1 1 1
1 1 1 0 1 0 1 1 0 1 1
1 1 0 0 1 0 1 1 0 1 1
F4
F3
F2
F1
DECODER Percobaan 3: Membangun Decoder 2 ke 4 dengan gerbang dasar. 1. Modul KL-3305 Blok C akan digunakan dalam bagian percobaan. Hubungkan Vcc ke +5 V
33
Gambar 5.8: Modul KL-3305 Block C 2. Hubungkan input A, B pada data switch SW0 dan SW1. Hubungkan output F1-F4 untuk indicator logika pada L0-L3. 3. Ikuti masukan A dan B dan catat outputnya. Tabel 5.5: Tabel hasil percobaan B A 0 0 0 1 1 0 1 1
F1 F2 F3 F4
Percobaan 4: Membangun sebuah Decoder 4 ke 10 dengan IC TTL 1. U10 (7442) pada modul KL-33004 blok C akan digunakan dalam bagian percobaan. 7442 adalah IC decoder BCD-ke-Desimal.
Gambar 5.9: Modul KL-33004 Blok C
34
2. Hubungkan input A1, B1, C1, D1 ke BCD output "1", "2", "4", "8" dari masingmasing switch Thumbwheel. Hubungkan output 0-9 untuk logika L0-L9 Indicator. Swicth Thumbwheel merupakan alat mekanis yang mengubah nomor kode BCD. 3. Adanya tegangan pada masukan logika tinggi menunjukkan HIGH atau "1", tidak adanya tegangan menunjukkan STATE logika rendah atau "0". Amati output channel di L0-L9. Catat input dan output kondisi logika dalam Tabel 5.6. Tabel 5.6: Tabel hasil percobaan
0 1 2 3 4 5 6 7 8 9
D 0 1 0 1 0 1 0 1 0 1
C 0 0 1 1 0 0 1 1 0 0
B 0 0 0 0 1 1 1 1 0 0
A 0 0 0 0 0 0 0 0 1 1
0
1
2
3
4
5
6
7
8
9
Swicthes Thumbwheel terdiri dari bagian seperti pada Gambar 5.9.
Gambar 5.9: Bagian dari Thumbwheel switch
Percobaan 5: BCD-7-Segment Decoder 1. Hubungkan input A, B, C, D U5 (7448) pada modul KL-33005 blok B. dengan switch SW3, SW2, SW1, SW0. IC 7448 adalah decoder BCD-to-7segmen dengan output pull-up internal. Hubungkan "RB1" ke DIP switch 1.0; "BI/RB0" ke L0; "LT" ke DIP 1.1; dan mengatur DIP 1.0 dan 1.1 ke "HIGH". 2. Ikuti urutan masukan untuk D, C, B, A seperti pada Tabel 5.7 dan catat output layar 7-segmen.
35
Gambar 5.10: Modul KL-33005 Blok B 3. Set DIP 1.1 ke "LOW" sementara DIP 1.0 tetap "HIGH". Ulangi langkah 2. Apakah output berbeda dari langkah 2? 4. Set DIP 1.0 ke "LOW" dan DIP 1.1 ke "HIGH". Ulangi langkah 2. Bandingkan output dengan langkah 2 antara DCBA = 0000 ~ 1001. Apakah outputnya berbeda? Tabel 5.7: Tabel hasil percobaan D C B A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
RBI=HIGH ; LT=HIGH DISPLAY
RBI=HIGH; LT=LOW DISPLAY
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Latihan -
36
RBI=LOW; LT=HIGH DISPLAY
PRAKTIKUM 6 Multiplexer dan Demultiplexer Tujuan Pembelajaran Mahasiswa dapat memahami prinsip kerja rangkaian multiplexer dan demultiplexer.
Dasar Teori Multiplexer Multiplexer atau MUX adalah rangkaian logika yang terdiri dari beberapa input untuk menghasilkan sebuah output. Salah satu dari input-input tersebut dipilih oleh gerbang selector dan di teruskan pada single output. Jumlah dari gerbang selector ditentukan dari kapasitas multiplekser. Sebagai contoh, jika MUX tertentu hanya memiliki satu gerbang selector. Ini menunjukan “MUX 2 line to 1” karena satu selector hanya dapat memilih dari 2 input. MUX dengan 3 gerbang selector disebut MUX 8 line-to-1, karena 3 selektor dapat memilih sebuah output dari 8 input. MUX juga bias disebut data selector karena dapat memilih satu output dari beberapa input. Expresi fungsi, seperti F(CBA) = ∑(0, 1, 2, 6, 7), dapat dengan mudah dieksekusi dalam MUX. Fungsi F menghasilkan fungsi SOP (CB+CB) dari kondisi 0, 1, 2, 6, 7. Berdasarkan 4 line to 1 line MUX dibawah, output ditentukan oleh kondisi selector A, dan C. Ketika CBA=000, 001, 010, 110, 111 maka output F adalah 1. Dan dalam kondisi lainnya F=0.
Gambar 6.1: Hasil penyederhanaan fungsi F(CBA) = ∑(0, 1, 2, 6, 7)
Demultiplexer Demultiplexer atau DMUX pada dasarnya adalah rangkaian logika yang berkebalikan dari multiplexer. DMUX mempunyai satu input dan beberapa output. Input dapat dihubungkan kesalah satu dari beberapa output terminal selector. DMUX juga
37
berperansebagai “Distributor Data” atau “Lintasan Data”. Diagram pin yang dimaksud ditunjukkan di Gambar 6.2.
Gambar 6.2: Simbol Demultiplexer Ketika ke 3 terminal selector A, B dan C berada di gerbang logika LOW (CBA=000), data di input D dikirimke output nomer 0. ketika CBA=010, input dikirimkanke output nomer 2. Gabungan gerbang terminal selector menunjukkan lokasi data output. Ketika CBA=111 , data dikirimkan ke output terakhir (output nomer 7). Dari menyatukan MUX dan DMUX, system hubungan transmisi yang panjang dapat dinyalakan, meningkatkan efisiensi dari lintasant ransmisi. Gambar 6.2(b) menunjukkan rangkaian kombinational MUX-DMUX dengan 16 input, 16 output dan 4 selektor.
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33006
MULTIPLEXER Percobaan 1: Merangkai 2 to 1 multiplexer. 1. Gunakan modul KL-33006 Block E untuk merangkai 2 to 1 mux.
Gambar 6.3: Modul KL-33006 Block E 2. Hubungkan input A, B pada Data switches SW0, SW1, selector C pada SW2. Hubungkan output F3 pada Logic indicator L0.
38
3. Masukan input sesuai table dibawah dan catat kondisi F3. Input mana yang menentukan output? Tabel 5.1: Tabel hasil percobaan C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
F3
Percobaan 2: Menggunakan multiplexer untuk membuat fungsi 1. Gunakan Module KL-33006 Block F.
Gambar 6.4: Modul KL-33006 Block F. 2. Gunakan U6 (74151)
Rangkai rangkaian sesuai dengan Gambar 6.4 untuk melengkapi fungsi diatas. D, C, B, A memiliki 16 variasi yang mungkin dan 74151 hanya memiliki 8 variasi, D akan digunkan sebagai data input. 3. Hubungkan input D, C, B, A pada SW3, SW2, SW1, SW0 secara berurutan. Hubungkan Y pada L0. Masukan data sesuai Tabel 6.2. Tabel 6.2. Tabel hasil percobaan
39
D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
Y
Percobaan 3: Merangkai 8 to 1 MUX dengan IC TTL 1. Gunakan U6 (74151)pada modul KL-33006
Gambar 6.5: Modul KL-33006 Block F 2. Berdasarakan datasheet untuk spesifikasi 74151 Ketika CBA=000 data di D0 mengirim output pada F Ketika CBA=010 data di D2 mengirim output pada F Ketika CBA=111 data di D7 mengirim output pada F IC hanya akan bekerja dengan baik hanya jika STROBE=0 Y akan bernilai 0 ketika STROBE=1 3. Hubungkan input D0-D7 pada DIP Switch 1.0~1.7; Input C, B, A, pada Data Switches SW2, SW1, SW0. Masukan data sesuai Table 6.3. Atur D0-D7 dan catat outputnya. Tentukan input mana diantara D0-D7 yang mempengaruhi F.
40
Tabel 6.3. Tabel hasil percobaan C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
F
DEMULTIPLEXER Percobaan 4: Merangkai 2 Output Gerbang Logika Dasar
Demultiplexer dengan
1. Hubungkan kabel penghubung sesuai dengan Gambar 6.6. Hubungkan A ke data switch SW0; C ke SW3; F1 dan F2 ke Logic Indicator L0 dan L1.
Gambar 6.6: Modul KL-33006 Block E 2. Set C ke “0” dan ganti data input A. Amati bagaimana F1 dan F2 berubah. Set C ke “1”, ubah A dan amati bagaimana hasil F1 dan F2 ketika A berubah. Tabel 6.4: Hasil percobaan 4 C A F1 F2 0 0 1 0 1 1
Percobaan 5: Merangkai 8 output demultiplexer dengan CMOS IC 1. U2 (4051) di module KL-33006 blok E digunakan di sesi dari percobaan ini.
41
Gambar 6.7: Modul KL-33006 Block B
2. Hubungkan E ke DIP 1.0; D ke DIP 1.1; A ke SW0; B ke SW1; C ke SW2; output Y0 - Y7 ke Logic indicator Y0 - Y7. 3. Di D=0, berikan input 1-0-1-0 ke input E dan amati output Y0-Y7. Apakah output berubah seperti input yang telah diberikanan? Tabel 6.5: Tabel hasil percobaan D 0
E 0 1
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Di D=1, berikankan input 1-0-1-0 ke input E danamati output Y0 - Y7. Apakah output berubah seperti input yang telah diberikankan?
Tabel 6.6: Tabel hasil percobaan D 1
E 0 1
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Yang mana dari D yang berubah seperti output? E0 lebih redup dari E1. Jika salah satu D dan E adalah satu, maka Y0-Y7 adalah 1 input CBA tidak berpengaruh. Gunakan masukan yang sama untuk E (1-0-1-0), ikuti masukan untuk A, B dan C yang diberikan di tabel. catat gerbang output.
42
Tabel 6.7: Tabel hasil percobaan D
0
E 0 1 0 1
C
B
A
0
0
0
0
0
1
0 0 1 1 1 1
1 1 0 0 1 1
0 1 0 1 0 1
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
4. Ulangi merangkai rangkaian dari melepas hubungan di step 2. Hubungkan Y0 - Y7 ke DIP1.0 - 1.7; E ke L0; D ke SW3; C ke SW2; B ke SW1; A ke SW0. Ubahlah gerbang Y0 - Y7 dari 1 ke 0 ke 1 (1-0-1) dan amati E. apakah E mengikuti perubahan Y0~Y7 ? Ikuti input untuk C, B, A di Tabel 6.8 dan amati hubungan antara E dan Y0~Y7. Apakah Table 6.8 benar? Apakah hubungan antara E dan Y0-Y7 di Table 6.8 masih tercantum ketika gerbang D berubah?
Tabel 6.8: Tabel hubungan E dan Y0-Y7 C
B
A
E
0
0
0
Y0
0
0
1
Y1
0
1
0
Y2
0
1
1
Y3
1
0
0
Y4
1
0
1
Y5
1
1
0
Y6
1
1
1
Y7
43
PRAKTIKUM 7 Ocilator IC-555 Tujuan Pembelajaran Mahasiswa dapat memahami struktur dan aplikasi dari rangakaian oscillator 555.
Dasar Teori IC 555 merupakan elemen yg di gunakan secara luas dalam circuit digital dan industri circuit kontrol. IC ini digunakan untuk merangkai mono-stable, stable sirkuit seperti sirkuit VCO. IC 555 terdiri dari berapa bagian sebagaimana berikut : 1. 2. 3. 4. 5.
Down comparator Up comparator Discharge transistor Flip-flop Output driver
Skematik diagram dari IC 555 di tunjukkan pada Gambar 7.1. Dikarenakan terdapat comparators maka IC 555 juga disebut IC ”linear”.
Gambar 7.1: Skematik diagram IC 555 Keluaran dari down-comparator akan ”0” jika input kurang dari 1/3 Vcc. Ketika output dari down-comparator ”0”, maka flip-flop dapatclear. Jika flip-flop setmakapembebasanakan di trigger dan output menjadi ”1”. Sebaliknya, jika flipflopclear,pembebasan transistorakan terhenti dan output menjadi ”0”. Pin yang terdapat di IC 555 sebagai berikut :
44
1. Pin 2 (TRIGGER) : aktif saat ”0” Trigger flip-flop sehingga output Q pada keadaan ”High”. Jika tegangan input pada pin 2 lebih besar dari 1/3 Vcc maka output ”1”, jika lebih rendah dari 1/3 Vcc maka output akan ”0”. 2. Pin 4 (RESET) : aktif saat ”1 Ketika RESET=0 output Q=0. Jika RESET terhubung ke ground atau tegangan input lebih rendah dari 0.4V maka output ”0”. Jika input lebih besar dari 1V atau open maka output ”1”. 3. Pin 6 (THRESHOLD) : aktif saat ”1” Ketika THRESHOLD aktif maka output flip-flop akan kembali ke keadaan ”Low”. Output akan ”1” ketika tegangan input lebih besar dari 2/3 Vcc dan akan ”0” jika tegangan input lebih rendah dari 2/3 Vcc atau open. Dalam hal ini, 3 pin ini prioritas utamanya adalah : RESET → TRIGGER → THRESHOLD 4. Pin 7 (DISCHARGE) Ketika pin 3 (OUTPUT) pada keadaan ”High”, pin 7 akan terputus dari ground. Jika output pada keadaan ”Low” maka transistor Q menjadi konduktif dan pin 7 akan terhubung ke ground. 5. Pin 5 (CONTROL VOLTAGE) Terminal input untuk tegangan eksternal yang mengontrol THRESHOLD dan TRIGGER membutuhkan level tegangan. 6. Pin 8 (Vcc) : Range : 4.5V~16V 7. Pin 3 (OUTPUT) Keadaan output ”High”, ”Low” sampai dengan 200mA. Gambar 7.2 menunjukkan sebuah monostable oscillation circuit dibentuk dengan IC 555.
Gambar 7.2: Rangkaian Oscillator
45
Memisalkan tidak ada tegangan capacitive pada permulaan, tidak ada perulangan pelepasan pada pin 7 karena transistor tidak menyalurkan. Vcc akan mengisi C melalui (Ra + Rb). Ketika tegangan mencapai 2/3 Vcc, pin 7 akan mulai melepas. Pelepasan akan berhenti ketika tegangan jatuh dibawah 1/3 Vcc dan mulai lagi sampai 2/3 Vcc telah dicapai, mengulangi siklus pelepasan-pengisian ini lagi dan lagi. Pada Gambar 7.2 kita dapat melihat gelombang . Dengan mengansumsikan tidak ada kapasitas tegangan di awal, sehingga tidak ada pembebasan tegangan pada pin 7 karena transistor tidak konduktif. VCC akan membebaskan C melalui (RA+RB). Ketika tegangan mencapai 2/3 VCC, pin 7 akan memulai pembebasan. Pembebasan berhenti saat tegangan turun menjadi 1/3 VCC dan akan memulai lagi sebelum mencapai 2/3 VCC, pengulangan charge-discharge ini terjadi secara terus menerus. Pada figure 335, kita lihat bentuk gelombang sinyal berubah-ubah antara 1/3 dan 2/3 VCC. Loop pembebasan adalah = (RA+RB)xC. Loop pembebasan (Discharge) adalah RBxC. Bila waktu mengisi (charge) dari 1/3 hingga 2/3 VCC dinamai T1; waktu charge dari 0 ke 1/3 VCC dinamai t1; dan dari 0 ke 2/3 VCC dinamau t2 sehingga T1=t2-t1 atau T=0.7(RA+RB)xC. Dengan mengansumsikan waktu pembebasan dari 2/3 VCC hingga 1/3 VCC dinamai T2, T2=0.7RBxC. Sirkuit pengisian mengandung R1,D1 dan C sedangkan sirkuit pembebasan mengandung R2, D2 dan C. karena R1=R2 dan D1=D2, T1 akan sama dengan T2 dan siklus kerja sama dengan 50%.
Gambar 7.3: Rangkaian IC 555
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33007 3. Osiloskop
46
Percobaan 1: Rangkaian Oscilator IC-555 1. Hubungkan koneksi berdasarkan Gambar 7.4 dan hubungkan pin 4 ke Vcc.
(a)
(b)
Gambar 7.4: (a) Modul KL-33007 Block D, (b) Rangkaian ekivalen 2. Ukur dan catat Pin 3(F1) berdasarkan kondisi berikut:
Gambar 7.5: Grafik hasil percobaan Apa yang terjadi jika pin 4 di groundkan?
47
3. Hubungkan koneksi berdasarkan Gambar 7.6(a) untuk menyusun rangkaian Gambar 7.6(b).
(a)
(b)
Gambar 7.6: (a) Modul KL-33007 Block D ; (b) Rangkain ekuivalen 4. Ukur dan catat gelombang dari TP3 dan F1 berdasarkan kondisi berikut:
Gambar 7.7: Grafik hasil percobaan 5. Hubungkan Vcc ke Adjustable Power Supply pada KL-31001. Berapa tegangan yang diperbolehkan? 48
Percobaan 2: Rangkaian oscilator pengontrol tegangan 1. Hubungkan koneksi berdasarkan Gambar 7.8 untuk membuat sirkuit VCO. Ukur tegangan pada pin 5 (Vr) dengan voltmeter.
(a)
(b)
Gambar 7.8: (a) Modul KL-33007 Block D; (b) Rangkain ekuivalen Apa yang terjadi pada Vr ketika tegangan tidak ada? Akan ada frekuensi output “fo” pada output (pin3) ketika Vr=2/3Vcc. Bagaimana bisa frekuensi output berubah ketika tegangan terhubung dan Vr berubah dari 0 V ke Vcc? 2. Lepas R13 dari pin 5 dan hubungkan kesine atau gelombang segitiga. Frekuensi “fr” sekitar 100Hz. Ukur dan cari gelombang output pada pin 3. Large Vr (probe x10) Volt/div : 2V
Gambar 7.9: Grafik hasil percobaan
49
Simulasi Kesalahan Sebutkan kesalahan yang mungkin bila IC 555 tidak berosilasi dan tegangan pada pin 6 dan 7 mendekati Vcc.
Latihan 1. Gunakan IC 555 dan susun sirkuit di bawah ini. Ukur output tegangan Vo.
Gambar 7.10: Rangkaian IC 555
2. Manfaatkan karakteristik unik pin 2 dan 6 IC 555 untuk menyusun pengisi baterai otomatis. Mulai mengisi jika tegangan baterai dibawah 7.8 V dan berhenti mengisi jika mencapai 8.4 V.
50
PRAKTIKUM 8 Flip-Flop dan Shift Register Tujuan Pembelajaran Mahasiswa dapat memahami prinsip kerja rangkaian flip-flop dan shift register.
Dasar Teori Dua gerbang NOT, atau INVERTER pada IC ditunjukkan pada Gambar 8.1, output dari IC2 terhubung dengan input IC1. Pada saat output IC1 bernilai “1” output pada IC2 akan bernilai “0”. Hal tersebut dikarenakan output IC2 terhubung dengan input IC1, input pada IC1 akan di kembalikan sehingga bernilai “1” lagi. Jika sinyal eksternal terhubung dengan input IC1, output IC1 akan bernilai „0‟ sedangkan output IC2 akan bernilai „1‟(output dari IC1 kembali ke „0‟).
Gambar 8.1: Rangkaian inverter Berikut ini penjelasan dari Gambar 8.1: Jika sinyal eksternal di misalkan sebagai A dan output IC2 sebagai B, ketika A maupun B bernilai „1‟, output pad IC1 bernilai „0‟. Jika gerbang NOT pada gambar 4.1 digantikan dengan dua gerbang NOR dan dua input dimisalkan sebagai R dan S, maka terbentuklah R-S flip-flop. Gambar 4.2 R=Reset, output Q di Reset menjadi 0 S=Set, output Q di Set menjadi 1
Gambar 8.2: Rangkaian inverter dari NOR
51
Output pada IC1 disebut Q(normal output) sedangkan output IC2 disebut Q(komplemen output). Sebuah flip-flop akan mengubah kondisi logika nya ketika ada input logika yang sesuai di aplikasikan pada flip-flop. Hal tersebut akan berlangsung pada kondisi stable selama power diberikan atau sampai input berubah. Pada banyak kasus, flip-flop dibangun dari gerbang NOR atau NAND. Gambar 8.3(a) menunjukkan gerbang NOR positif R-S flip-flop. Gambar 8.3(b) adalah gerbang NAND negative R-S flip-flop.
(a)
(b)
Gambar 8.3: (a) Gerbang NOR positif R-S flip-flop; (b) Gerbang NAND negative R-S flip-flop.
R-S flip-flop merupakan bentuk flip-flop yang paling sederhana dan bisa digunakan untuk membangun flip-flop lainnya, oleh karena itu R-S flip-flop disebut juga “basic flip-flop”. Tabel 8.1 adalah table kebenaran dari R-S flip-flop. Qn adalah kondisi output sekarang sedangkan Qn+1 adalah kondisi output selanjutnya.
Tabel 8.1: Tabel kebenaran R-S flip-flop R 0 0 1 1
S 0 1 0 1
Qn+1 Qn 1 0 ?
Karakteristik dari R-S flip-flop dapat di ketahui dari tabel kebenaran : Ketika R=0 dan S=0, Qn+1=Qn jadi Qn+1 bernilai sama dengan nilai Qn sebelumnya, dimana itu bisa bernilai “0” atau “1”. Ketika R=0 dan S=1, flip-flop akan berada dalam kondisi set “1” jadi Qn+1=”1”. Ketika R=1 dan S=0, flip-flop akan berada dalam kondisi reset “0” jadi Qn+1=”0”. Ketika R=1 dan S=1, Qn+1 bisa bernilai “0” atau “1” secara bersamaan. Karena output tidak memungkinkan berada pada 2 kondisi yang sama Qn+1 bernilai “undefined” atau berada pada kondisi “limbo” ketika R=S=1. Gambar 8.5 menunjukkan symbol-simbol yang terdapat pada R-S flip-flop. CK adalah sinyal clock, flip-flop akan berubah kondisinya ketika CK terdeteksi. PR=Preset; tanpa memperhatikan CK, PR akan mengatur output Q menjadi set “1”
52
CL=Clear; tanpa memperhatikan CK, CL akan mengatur output Q menjadi reset “0”.
Gambar 8.5: Simbol R-S flip-flop D flip-flop dapat dibentuk dengan menggunakan R-S flip-flop.Perhatikan dengan seksama symbol D flip-flop dan skema dari D flip-flop yang dibangun dengan menggunakan R-S flip-flop pada gambar 8.6 (a) dan (b).
(a)
(b)
Gambar 8.6: (a) Simbol D flip-flop; (b) D flip-flop dari R-S flip-flop D flip-flop biasanya digunakan untuk transmisi data. Tabel 8.2 adalah tabel kebenaran dari D flip-flop. Tabel 8.2: Tabel Kebenaran D flip-flop CK 0 0 1 1
D 0 1 0 1
Qn+1 Qn Qn 0 1
T flip-flop dapat dibentuk menggunakan D flip-flop. Perhatikan dengan seksama simbol D flip-flop dan skema dari T flip-flop yang dibentuk dari D flip-flop pada Gambar 8.7 (a) dan (b). Tabel 8.3 adalah table kebenaran untuk T flip-flop.
(a)
(b)
Gambar 8.7: (a) Simbol T flip-flop; (b) T flip-flop dari D flip-flop 53
Tabel 8.3: Tabel kebenaran T flip-flop CK 0 0 1 1
T 0 1 0 1
Qn+1 Qn Qn Qn Qn
Dari Table 8.3 dapat dilihat bahwa output T flip-flop akan berubah hanya jika T=1 dan CK=1. Ditentukan nilai Qn=”0” pada saat kondisi awal ketika T=1 dan CK=1, Output T flip flop akan bernilai “1”. Output T flip flop akan bernilai “1” kembali sampai T=1 , CK=1 lagi, selain dalam kondisi tersebut output akan kembali bernilai “0”. Output dari T flip-flop bergantian memunculkan biner “0” dan “1” ketika T=1, CK=1. Karakteristik unik dari T flip flop berarti “dibagi-dengan-2” rangkaian dapat di bentuk dengan T flip flop. Pada Gambar 8.8 dapat dilihat, terdapat dua input gelombang akan tetapi hanya muncul satu output yang keluar. T flip-flop biasanya digunakan pada delay rangkaian counter.
Gambar 8.8: Output gelombang dari T flip-flop J-K flip-flop dapat meng eliminasi kondisi “undefined” dari R-S flip-flop. Simbol dari JK flip-flop dapat dilihat pada Gambar 8.9 (a).
(a)
(b)
Gambar 8.9: (a) Simbol J-K flip-flop; (b) J-K flip-flop dari S-R flip-flop Gambar 8.9(b) menunjukkan Rangkaian ekivalen J-K Flip-Flop yang dibangun dengan RS Flip-flop. Mengacu kepada tabel kebenaran (Tabel 8.4). J-K Flip-flop sama seperti R-S Flip-flop kcuali ketika J=1, K=1 dan CK=1 sementara J-K Flip-flop mirip seperti T-Flipflop.
54
Tabel 8.4: Tabel kebenaran JK flip-flop CK 0 0 0 0 1 1 1 1
J 0 0 1 1 0 0 1 1
K 0 1 0 1 0 1 0 1
Qn+1 Qn Qn Qn Qn Qn 0 1 Qn
Karena J-K Flip-flop tidak memiliki status yang tidak terdefinisi dan dapat digunakan untuk membangun beberapa flip=flop, maka J-K flip-flop disebut juga “flip-flop universal”. Gambar 8.10 adalah rangkaian dari master-slave J-K flip-flop.
Gambar 8.10: Master Slave pada J-K flp-flop Ketika CK=0, master flip-flop tidak dapat menerima input baru sehingga outputnya di Q dan Q‟ tetap, Q dan Q‟ dikirimkan ke output slave flip-flop Q dan Q‟. Ketika CK=1, master flip-flop dapat menerima input baru, akan tetapi Q dan Q‟ dari slave flip-flop tidak berubah. Gambar 8.11 adalah timming diagram dari master slave flip-flop. Ketika CK=1, input berubah secara berurutan hingga negative edge dari CK dan nilai input yang terakhir ditahan. Ketika CK=0, output dari master flip-flop dikirimkan ke slave flip-flop sehingga hal ini adalah negative edge trigger dari CK.
Gambar 8.11: Timming diagram dari master slave flip-flop
55
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33008
Percobaan 1: Membangun RS flip-flop dari gerbang logika dasar 1. Hubungkan input A3, A4 ke Pulser Switches SWA A‟ (TTL), SWB B‟ (TTL) output. Hubungkan output F6 dan F7 ke logic indicator L1, L2 Bagaimana keadaan dari F6 dan F7? Matikan power untuk beberapa detik dan nyalakan kembali. Bagaimana keadaan dari F6 dan F7 sekarang?
(a)
(b)
Gambar 8.12: (a) Modul KL-33008 Block D; (b) Rangkaian ekivalen 2. Ikuti input pada Tabel 8.5. Amati dan catat F6 dan F7. Tabel 8.5: Tabel hasil percobaan STATES 0 1 2 3
A4 0 0
A3 0
F6
F7
0
3. Tentukan output Q dan Q‟, input R dan S. (Set pulser switch ke „1‟, lalu „0‟ dan „1‟ lagi). 4. Hubungkan connection clips menurut Gambar 8.12(a) untuk membangun rangkaian pada gambar 8.12(b). Hubungkan input A1, A2 ke Pulser Switches output SWA A, SW B.
56
Gambar 8.13: Rangkaian R-S flip-flop 5. Ikuti urutan input pada Tabel 8.6. Amati dan catat F6 dan F7. Tabel 8.6: Tabel hasil percobaan STATES 0 1 2 3
A5 0 0
A1 0
F6
F7
0
Percobaan 2: Membangun D flip-flop dengan R-S flip-flop 1.
Hubungkan connection clip sesuai dengan Gambar 8.14(a) untuk membangun rangkaian D flip-flop dari Gambar 8.14(b)
(a)
(b)
Gambar 8.14: (a) Modul KL-33008 Block D; (b) Rangkaian ekivalen 2.
Hubungkan A1 ke SW1; CK2 ke output SWA A dan F6 ke L1.
3.
Ikuti input yang ada pada Tabel 8.7. Amati dan catat kondisi outputnya.
57
Tabel 8.7: Tabel hasil percobaan CK 0 0
A1 0 1 0 1
F6
Percobaan 3: Membangun JK flip-flop dengan D flip-flop 1.
Hubungkan connection clip sesuai dengan Gambar 8.15(b) untuk membangun rangkaian T flip-flop dari Gambar 8.15(b). Hubungkan CK2 ke output SWB B; A1 ke SW0; A5 ke SW1; F6 ke L1.
(a)
(b)
Gambar 8.15: (a) Modul KL-33008 Block D; (b) Rangkaian ekivalen 2.
Ikuti input pada Tabel 8.8. Amati dan catat kondisi outputnya. Tabel 8.8: Tabel hasil percobaan CK2
A5 0 0 1 1
A1 0 1 0 1
F6
Percobaan 4: Membangun JK flip-flop dengan SR flip-flop 1.
Hubungkan connection clip sesuai dengan Gambar 8.16(a) untuk membangun rangkaian J-K flip-flop dari Gambar 8.16(b). Hubungkan CK1 ke output SWA A; J ke SW0; K ke SW1; F1, F2, F6, F7, ke L0, L1, L2, L3 secara berurutan.
58
(a)
(b)
Gambar 8.16: (a) Modul KL-33008 Block D; (b) Rangkaian ekivalen 2.
Ikuti input yang ada pada Tabel 8.9. Amati dan catat kondisi outputnya. Tabel 8.9: Tabel hasil percobaan CK2
CK 0 1 0 0 1 0 0 1 0 0 1 0
K 0 0 0 0 0 0 1 1 1 1 1 1
J 0 0 0 1 1 1 0 0 0 1 1 1
F1
F2
F6
F7
Percobaan 5: Membangun shift register dengan D flip-flop 1.
Blok C dari modul KL-33008 akan digunakan untuk percobaan kali ini.
Gambar 8.17: Modul KL-33008 Block C
59
2.
Hubungkan B(clear) ke SW0; A(I/P) ke SW1; Ck ke output SWA Q; F1,F2,F3,F4 ke L1,L2,L3,L4 secara berurutan.
3.
Buat SW0 bernilai „0‟, hubungkan ke clear B, lalu ubah nilai SW0 menjadi „1‟.
4.
Ikuti aturan input untuk A(I/P) dibawah ini: a. Ketika A=‟1‟, kirim signal dari SWA ke CK b. Ketika A=‟0‟, kirim signal dari SWA ke CK c. Ketika A=‟0‟, kirim signal dari SWA ke CK d. Ketika A=‟1‟, kirim signal dari SWA ke CK
5.
Amati output yang dihasilkan setelah 4 CK ditambahkan. Apakah sesuai dengan input rangkaian sequence? Ini adalah rangkaian serial di hubungan rangkaian keluaran paralel.
6.
Amati output yang dihasilkan dari F4. Apakah sesuai dengan input I/P pertama? Kirim ke CK yang lain dan amati F4 kembali. Apakah sesuai dengan input I/P kedua? Ini adalah rangkaian keluaran seri-seri.
Percobaan 6: Membangun shift register dengan preset left/right 1.
Block b yang ada pada Modul KL-33008 akan digunakan untuk percobaan kali ini.
Gambar 8.18: Modul KL-33008 Block B 2.
Lengkapi hubungan berikut: Input A,B,C,D ke Output SW0, SW1, SW2, SW3 F1, F2, F3, F4 ke L0, L1, L2, L3. D1 (LOAD) ke output SWA A C1 (CK) ke output SWB B B1 (I/P) ke DIP2.1 Tabel 8.10: Tabel mode kontrol
60
3.
Ikuti aturan input untuk A1 pada Tabel 8.11. Amati dan catat hasil outputnya. Tabel 8.11: Tabel hasil percobaan DIP2.1 0 0 1 1 1 0 1 1
CK
L0
L1
L2
L3
Atur A1 menjadi bernilai „1‟ dan ikuti input D,C,B,A pada Tabel 8.12. Amati dan catat outpunya.
4.
Tabel 8.12: Tabel hasil percobaan CK
D 0 1 1 0 0
C 0 0 1 1 1
B 1 1 1 1 1
A 0 0 0 1 0
F4
F3
F2
F1
Percobaan 7: Membangun rangkaian pengurang noise dengan SR flip flop 1.
Rangkaian S-R flip flop yang ada pada Gambar 8.19 akan digunakan pada percobaan kali ini.
(a)
(b)
Gambar 8.19: (a) Modul KL-33008 Block D; (b) Rangkaian ekivalen
61
2.
Hubungkan input A4 ke SW0. Hubungkan A3 ke output dari Clock Generator. Output Clock Generator berperan sebagai sumber dari noise untuk S-R flip-flop.
3.
Ukur F6 ketika A4=‟1‟ F6=____.
4.
Hubungkan A3 ke SW0, A4 ke Clock Generator. Ukur F6 ketika A3=‟1‟. F6=____.
Latihan -
62
PRAKTIKUM 9 Counter Tujuan Pembelajaran Mahasiswa dapat memahami prinsip kerja counter yang dibangun dengan J-K flip-flop.
Dasar Teori Counter dibangun dengan flip-flop dan gerbang logika dasar. Dari percobaan sebelumnya, kita menemukan bahwa T flip-flop menggantikan letak outputnya diantara biner "0" dan "1" ketika input T=1 dan CK=1.
Gambar 9.1: Rangkaian counter Berdasarkan Gambar 9.1 dimana tiga T flip-flop dihubungkan secara seri. Output Q dari flip-flop di depan digunakan sebagai input CK untuk setiap flip-flop berikutnya. Asumsikan jumlah flip-flop yang tersambung secara seri adalah “n” dan terdapat “n” input, output dari flip-flop terakhir adalah n/2n. Gelombang output seperti pada Gambar 9.2. Dari Gambar 9.2 dapat kita lihat bahwa output normal A, B, C terhitung “up” saat output complement A, B, C terhitung “down”, jadi CK ditrigger pada sisi negative. A memiliki dua kali siklus dan setengah frekuensi CK B memiliki dua kali siklus dan setengah frekuensi A C memiliki dua kali siklus dan setengah frekuensi B
63
Gambar 9.2: Timming diagram pada rangkaian counter Jika CK ditrigger pada sisi positif, gelombang outpunya akan terlihat seperti pada Gambar 9.3. Terlihat dengan jelas A,B, dan C terhitung “up”. Sirkuit pada Gambar 9.3 akan terhitung “up” ketika CK terhubung dengan Q. Ketika CK terhubung dengan Q‟ , sirkuit akan terhitung “down”.
Gambar 9.3: Timming diagram pada rangkaian counter JK flip flop adalah flip fliop universal yang biasanya digunakan dalam percobaan untuk membangun counter dasar. Rangkaian pada Gambar 9.4 adalah up/down counter yang dibangun dengan JK flip-flop yang dihubungkan secara seri .
Gambar 9.4: Rangkaian counter dari J-K flip-flop
64
Ketika M=o, CK terhubung dengan Q dan rangkaian akan terhitung “UP” Ketika M=1, CK terhubung dengan Q‟ dan rangkaian akan terhitung “DOWN”
Koneksi serial, seperti Gambar 9.4 berdasar dari “Asynchronous Counting”. Dengan tujuan untuk mendapatkan efek “dibagi sejumlah n”, outputnya harus terhubung dengan “CLEAR” pin. Gambar 9.5 menunjukkan rangkaian “dibagi-oleh-5”. Kita dapat melihat dari tabel kebenaran (Tabel 9.1) bahwa kondisi “0” dan “5” setara, membentuk sebuah loop yang disebut rangkaian “dibagi-oleh-5”.
Gambar 9.5: Rangkaian counter “dibagi-oleh-5”
Tabel 9.1: Tabel counter STATE 0 1 2 3 4 5 6
C 0 0 0 0 1 0 0
B 0 0 1 1 0 0 0
A 0 1 0 1 0 0 1
Dalam Gambar 9.5, A dan C terhubung dengan “CL” melalui gerbang AND. Karena kondisi “5” adalah 102, ketika CBA=101 counter direset. Metode lain untuk mencapai operasi dibagi-oleh-N asinkron ditunjukkan Gambar 9.6, yang merupakan rangkaian counter dibagi-oleh-5. Pada CBA=”100”, output C dihubungkan dengan CL melalui gerbang AND. Sebuah kapasitor ditambahkan pada CL untuk memperpanjang fungsi “CLEAR”. Kapasitor mempertahankan kondisi “1” dan menjaga flip-flop dalam mode “CLEAR” ketikan CK turun. Di sisi negative Ck, counter masih disable.
65
Gambar 9.6: Rangkaian counter “dibagi-oleh-5” Koneksi serial antara rangkaian dibagi-oleh-2 dan dibagi-oleh-5 membentuk sebuah counter BCD. Sebuah 1 Hz timing signal dapat dibangkitkan ketika counter industrial seperti rangkaian dibagi-oleh-10 atau dibagi-oleh-6 digunakan dalam hubungan dengan power AC 60 Hz. Jika semua CK dihubungkan bersama, sebuah counter sinkron terbentuk. Kecepatan operasinya jauh lebih cepat dibandingkan dengan counter asinkron yang dihubungkan secara serial, tetapi mendesain counter non 2n dengan counter sinkron jauh lebih kompleks. Gambar 9.7 menunjukkan counter 4 bit “dibagi-oleh-16”.
Gambar 9.7: Rangkaian counter 4-bit “dibagi-oleh-16”. Gambar 9.8 menunjukkan rangkaian counter sinkron dibagi-oleh-5. Strukturnya lebih kompleks daripada counter asiknron.
Gambar 9.8: Synchronous counter “dibagi-oleh-5”.
Peralatan 1. KL-31001 Digital Logic Lab 2. Module KL-33009/KL-33010 3. Osiloskop
66
Percobaan 1: Asynchronous Up-Counter Biner 1.
Pasang connection clip sesuai Gambar 9.9 untuk membangun rangkaian pada Gambar 9.10.
Gambar 9.9: Modul KL-33009 Block A
Gambar 9.10: Rangkaian ekivalen 2. Hubungkan A2 (clear) ke SW0; A1 ke +5v; output F1, F3, F5, F7 ke L1~L4 berturut-turut dan B1 (CK) ke Clock Generator, atur frekuensi output pada 1 kHz. 3. Atur SW0 ke “1” pada awalnyaagar output clear; kemudian atur SW0 ke “0” untuk mrmulai counting. Ukur CK dan output dengan osiloskop, catat output pada Gambar 9.11.
67
Gambar 9.11: Grafik hasil percobaan 4. Apa yang terjadi jika SW0 diatur pada “1” selama proses counting?
Percobaan 2: Asynchronous Decade Up-Counter 1. U4 (7490) pada modul KL-33010 blok D, ditunjukkan pada Gambar 9.11, akan digunakan dalam percobaan ini. Blok digram fungsional dari U4 ditunjukkan pada Gambar 9.12.
Gambar 9.11: Modul KL-33010 Block D
Gambar 9.12: Rangkaian ekivalen
68
2. Hubungkan C3, C4 ke SW0 dan SW1; D1, D2 ke SW2 dan SW3; F1~F4 ke L1~L4; A2 ke output SWA Q; B2 ke output SWB Q. 3. (A) Hubungkan C3, C4, D1, D2 ke ground dan A2 ke pulse SWA Q. Ukur dan catat gelombang output dalam Gambar 9.13(a). (B) Hubungkan C3, C4, D1, D2 ke ground dan B2 ke pulse SWB Q. Ukur dan catat gelombang output dalam Gambar 9.13(b).
(a)
(b)
Gambar 9.13: Grafik hasil percobaan 4. Hubungkan F1 ke B2; A2 ke pulse 1 kHz. Ukur dan catat A2 (CK), F1, F2, F3, F4 dalam Gambar 9.14.
Gambar 9.14: Grafik hasil percobaan 5. Hubungkan C3, C4 pada +5V; D1, D2 pada ground. Bagaimana outputnya? 6. Hubungkan D1, D2 pada +5V; C3, C4 pada ground. Bagaimana outputnya?
69
Percobaan 3: Asynchronous “Devided by-N” Up-Counter 1. U3 (&493) pada modul KL-33010 Blok C, ditunjukkan pada Gambar 9.15, kan digunakan pada percobaan ini. Blok diagram fungsional dari U3 ditunjukkan pada Gambar 9.16.
Gambar 9.15: Modul KL-33010 block C
Gambar 9.16: Rangkaian ekivalen 2. Hubungkan B1(CK) ke output Clock Generator dan hubungkan output F2, F3, F4 ke L2, L3, L4. 3. Hubungkan input C1 dan C2(clear) ke salah satu dari dua output F2, F3, F4 sepertti yang ditunjukkan pada Tabel 4-13. Amati dan catat kondisi F2, F3, F4 pada dalam tabel 4-13. Ukur CK dan F4 dengan osiloskop dan gambar gelombang output. Tentukan tipe couter apakah yang ditunjukkan pada setiap koneksi. Tabel 9.2: Tabel hasil percobaan C1 – C2 CONNECT F2 CONNECT F3 CONNECT F4 CONNECT F2 F3 CONNECT F2 F4 CONNECT F3 F4
70
F2 F3 F4
Gambar 9.16: Gambar Signal (1)
Gambar 9.17: Gambar Signal (2)
Gambar 9.18: Gambar Signal (3)
Gambar 9.19: Gambar Signal (4)
71
Gambar 9.20: Gambar Signal (5)
Gambar 9.21: Gambar Signal (6)
Percobaan 4: Asynchronous Binary Down Counter 1.
Hubungkan connection clips sesuai dengan gambar 4-44 untuk membangun rangkaian Gambar 9.21:
Gambar 9.21: Modul KL-33009 Block A
72
Gambar 9.22: Rangkaian ekivalen
2.
Hubungkan A2(Clear) ke SW0 = 5v; A1 ke +5v; B1(CK) ke 1 kHz output dari clock generator. Hubungkan F2, F4, F6, F8 ke L5- L8.
3.
Ukur outputnya dengan oscilloscope. Gambarkan gelombang outputnya dalam Gambar 9.23.
Gambar 9.23: Grafik hasil percobaan
Percobaan 5: Synchronous Binary Up-Counter 1.
Hubungkan connection clip sesuai pada Gambar fif.4-47 untuk membangun rangkaian Gambar 9.24.
73
Gambar 9.24: Modul KL-33009 Blok A
Gambar 9.25: Rangkaian ekivalen 2.
Hubungkan A1 ke +5v; A2(clear) ke SW1 = 5v; B1 (CK) ke 1 kHz output dari Clock Generator. Ukur gelombang output dengan oscilloscope. Gambarkan gelombang outputnya dalam Gambar 9.26.
Gambar 9.26: Grafik hasil percobaan
74
Percobaan 6: Synchronous Binary Up/Down Counter 1.
Hubungkan connection clips sesuai dengan Gambar 9.27 untuk membangun rangkaian Gambar 9.28.
Gambar 9.27: Modul KL-33009 Block A
Gambar 9.28: Rangkaian ekivalen 2.
Hubungkan A2 (clear) ke SW1; A1 ke SW2; B1 ke 1 kHz output dari clock generator. (A) Saat A1= “1”, ukur gelombang pada CK, F1, F3, F5, F7 dengan oscilosscope. Gambarkan gelombang outputnya dalam Gambar 9.29.
75
Gambar 9.29: Grafik hasil percobaan (B) Saat A1= “0”, ukur gelombang pada CK, F1, F3, F5, F7 dengan oscilloscope. Gambarkan gelombang output dalam Gambar 9.30.
Gambar 9.30: Grafik hasil percobaan
Percobaan 7: Presetable Binary Up/Down Counter 1.
U1 (74193) pada modul KL-33010 Blok A (Gambar 9.31) akan digunakan pada bagian percobaan ini. Tabel adalah tabel kebenaran untuk 74193
Gambar 9.31: Modul KL-33010 Block A
76
Tabel 9.3: Tabel input dan output pada up-down counter
2.
Hubungkan C6 (Load) ke SW0; C5 (Clear) ke SW1; D3~D6 ke DIP1.0~ DIP1.3; F1-F4 (QA- QD) ke L1-L4; F5(CY) ke L5; F6(BW) ke L6. Hubungkan juga F1- F4 ke salah satu dari tampilan 7 segment digital.
3.
Mode “UP” : Hubungkan B3(DN) ke “1”; C5(Clear) ke “0” dan set SW1(C6) ke “1” a.
Atur output dari Clock Generator ke 1Hz dan hubungkan ke A3 (UP). Amati dan catat output tampilan digitalnya dalam Tabel 9.4.
Tabel 9.4: Tabel hasil percobaan CK 0 1 2 3 4 5
b.
CK 6 7 8 9 10 11
Hubungkan A3 (UO) ke 1kHz, ukur dan gambarkan output gelombangnya dalam Gambar 9.32.
77
Gambar 9.32: Grafik hasil percobaan c.
Apakah output dari F1-F4 berubah ketika posisi D3 dan D4 dirubah?
d.
Set SW0 ke “1” dan C5 (Clear) ke “0” Hubungkan A3 (UP) ke 1 Hz, amati dan catat output tampilan digitalnya dalam Tabel 9.5. Tabel 9.5: Tabel hasil percobaan CK 0 1 2 3 4 5
e.
CK 6 7 8 9 10 11 12
Hubungkan A3 (UP) ke 1kHz, ukur dan catat gelombang outputnya dalam Gambar 9.33.
Gambar 9.33: Grafik hasil percobaan 78
f.
Apakah output dari F1- F4 berubah ketika posisi D3 dan D4 dirubah ?
g.
Hubungkan C5 dan C6 ke “0” dan “1” secara berturut-turut. Ulangi langkah I, II, II dan catat outputnya dalam Tabel 9.6 dan Gambar 9.34. Tabel 9.6: Tabel hasil percobaan CK 0 1 2 3 4 5
CK 6 7 8 9 10 11 12
Gambar 9.34: Grafik hasil percobaan h.
Hubungkan C5, C6 ke “0” dan ikuti input rangkaian untuk D3, D4, D5, D6 dalam Tabel 9.7. Amati dan catat outputnya. Tabel 9.7: Tabel hasil percobaan
D6 0 0 0 0 1 1 1 1 1
D5 0 0 1 1 0 0 1 1 1
D4 0 1 0 1 0 0 0 0 1
D3 0 0 1 1 1 0 0 1 1
F4
79
F3
F2
F1
i.
Hubungkan A3 ke “1”, F1~F4 ke Li~L4 dan 7 segment digital, C5(clear) ke “0” dan C6(Load) ke “1”.
j.
Hubungkan B3 (DN) ke 1 Hz dan catat outputnya dalam Tabel 9.8. Tabel 9.8: Tabel hasil percobaan
D6 0 0 0 0 1 1 1 1 1
k.
D5 0 0 1 1 0 0 1 1 1
D4 0 1 0 1 0 0 0 0 1
D3 0 0 1 1 1 0 0 1 1
F4
F3
F2
F1
Hubungkan B3 (DN) ke frekuensi 1kHz, ukur dan gambar output bentuk gelombang pada Gambar 9.35.
Gambar 9.34: Grafik hasil percobaan
Percobaan 8: Ring Counter 1.
Masukkan connection clip berdasarkan Gambar 9.35 untuk membuat rangkaian pada Gambar 9.36. Hubungkan output F1, F3, F5, F7 ke L1~L4 berurutan.
80
Gambar 9.35: Modul KL-33009 Block A
Gambar 9.36: Rangkaian ekivalen
2.
Hubungkan input A2 ke SWA Ᾱ output; B2 (preset) ke SWB ̅ output; CK ke 1Hz. Kirim pulsa ke A2 lalu B2. Catat tampilan output pada Tabel 9.9. Tabel 9.9: Tabel percobaan CK 0 1 2 3 4 5 6 7 8 9
F7
F5
81
F3
F1
3.
Hubungkan CK ke output dari CLOCK GEN, ukur dan gambarkan bentuk gelombang output pada Gambar 9.37.
Gambar 9.37: Grafik hasil percobaan
Percobaan 9: Johnson’s Counter 1.
Hubungkan connection clip berdasarkan Gambar 9.38 untuk membuat rangkaian pada Gambar 9.39. Hubungkan J dan K dari U1a ke F8 dan F7 secara berurutan.
Gambar 9.38: Modul KL-33009 Block A
82
Gambar 9.39: Rangakaian ekivalen 2. Hubungkan A2 (Clear) SWA Ᾱ output; B1 (CK) ke SWB ̅ ; B2 (Preset) ke „1‟; output F1, F3, F5, F7 ke L1~L4 secara berurutan. Kirim pulsa dari SWA untuk meng-clear counter. Masukkan sinyal CK dari SWB dan catat tampilan outputnya pada Tabel 9.10. Tabel 9.10: Tabel hasil percobaan CK 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
F7
F5
F3
F1
3. Hubungkan CK ke output CLOCK GEN, ukur dan gambarkan bentuk gelombang output pada Gambar 9.39.
83
Gambar 9.39: Grafik hasil percobaan
Latihan -
84
PRAKTIKUM 10 Programable Logic: Pengenalan WinCupl Tujuan Pembelajaran
Mahasiswa dapat mendesain gerbang logika dasar dengan WinCupl.
Dasar Teori WinCUPL adalah software untuk pemrograman gerbang - gerbang logika ke dalam PLD yang dikeluarkan oleh atmel. Terdapat keyword pada winCupl yang diberikan berikut ini:
NAME, adalah baris yang digunakan untuk menulis nama file, panjang max 32 character. PARTNO, nomor seri perusahaan yang dikeluarkan untuk IC PLD tersebut. REVISION, nomor revisi dari program yang akan dikerjakan, biasanya diawali dengan 01. DATE, tanggal pembuatan program. DESIGNER, nama designer. COMPANY, nama perusahaan yang memproduksi IC PLD yang digunakan. ASSEMBLY LOCATION DEVICE, tipe atau model dari IC PLD yang digunakan.
Dari keyword - keyword di atas, yang penting untuk diisi adalah nama file dan device yang digunakan. Untuk keyword yang lainnya bisa dibiarkan sesuai dengan kondisi awalnya. Keyword juga bisa dilakukan perubahan di dalam window yang akan disediakan untuk melakukan pengetikan program. Setelah sukes membuat file baru, akan diminta untuk memasukkan banyaknya jumlah input dan output. Setelah selesai memasukkan I/O, tampilan window untuk mengetik programnya. Penulisan variable pada winCupl itu sendiri mempunyai aturan - aturannya, antara lain : Untuk variabel biasa : variabel yang digunakan tanpa menggunakan index. Untuk variabel ini dapat Berupa kombinasi huruf, angka dan underscore. Untuk nama variable harus terdiri atas huruf dan bersifat case sensitive. Untuk variabel dengan index : variabel yang digunakan untuk menadai sederetan variabel, alamat atau untuk item yang berurutan. Variabel berindeks ini diisi dengan bilangan desimal yang dimulai dari 0 hingga 31. Sehingga apabila variabel dengan index lebih dari 31, maka bukan dianggap sebagai variabel berindex, tetapi index biasa.
85
Field adalah suatu deklarasi terhadap sekelompok bit ( group of bit ). Grup bit ini harus dalam bentuk variabel berindex, dimana tidak bole terdiri dari variabel berindex dan sekaligus variabel tanpa index. Untuk Field itu sendiri, ada baiknya isi variabelnya berurut, sehingga dalam penulisan dapat disingkat. Contohnya [A0, A1, A2, A3, A4]. Bentuk ini dapat diperpendek menjadi [A0..4] atau kebalikannya [A4..0]. Harus diingat bahwa titik - titik penunjuknya harus berjumlah dua. Untuk seluruh program, setiap statement yang ada harus diakhiri dengan sebuah tanda titik - koma ( ; ). Untuk pemberian comment kepada statement yang ada, bisa digunakan tanda “ /* ”dan “ */ “. Untuk operator - operator yang disediakan oleh winCupl itu sendiri antara lain : Tabel 10.1: Logical operator Operator ! & # $
Contoh !A A&B A#B A $B
Keterangan NOT AND OR XOR
Prioritas 1 2 3 4
Tabel 10.2: Arithmetic operator Operator ** * / % + -
Contoh 2**4 2*i 4/2 9%8 2+4 4-i
Keterangan Exponentiation Multiplication Division Modulus Addition Subtraction
Prioritas 1 2 2 2 3 3
Program yang dibuat tentu saja dapat bersifat kombinasional maupun sekuensial. Selain itu juga disediakan pembuatan tabel kebenaran. Syntax - syntax yang terdapat pada winCupl antara lain :
Logic equations Truth tables State machine syntax Condition syntax User-defined functions
Format - format file yang dihasilkan dengan mencompile dan mensimulasikan program dengan winCupl, antara lain adalah PDF, WO, ABS, JED, PLD, SI, SIM dan SO. Dari format file – file yang dihasilkan tersebut, yang akana digunakan untuk proses pemrograman ke dalam IC PLD adalah file dengan format JED. WinCUPL adalah program (Software Development Tools) buatan ATMEL yang berfungsi untuk memprogram PLD (Programmable Logic Device). Program ini tidak tertutup untuk digunakan PLD diluar keluaran ATMEL. Contohnya PLD keluaran LATTICE GAL 16V8 dapat memakai program ini.
86
Syntax-Syntax dan Deklarasi Variable pada WinCupl Karena wincupl merupakan software development tools untuk memprogram PLD. Maka nantinya kita akan sering bermain dengan gerbang-gerbang logika. Pada WinCupl penulisan gerbang logika mempunyai syntax sebagai berikut : Contoh input yang ada diberi nama in0 dan in1 a) And : in0 & in1 ; /* gerbang and */ Penulisannya dengan cara menempatkan character “&” diantara kedua inputnya. b) Or : in0 # in1 ; /* gerbang or */ Penulisannya dengan cara menempatkan character “#” diantara kedua inputnya. c) Not : !in0 ; /*gerbang not*/ Penulisannya dengan cara menempatkan character “!“ sebelum inputnya. d) XOR : in0 $ in1 ; /*gerbang exclusive or*/ Penulisannya dengan cara menempatkan character $ diantara kedua inputnya e) NAND : !(in0 & in1) ; /*gerbang not and*/ Penulisannya dengan cara menempatkan character “&” diantara kedua inputnya lalu diberi vtanda kurung serta di depannya diletakkan character “!” f) NOR : !(in0 # in1) ; /*gerbang not or*/ Penulisannya dengan cara menempatkan character “#” diantara kedua inputnya lalu diberi tanda kurung serta di depannya diletakkan character “!” g) XNOR : !( in0 $ in1 ) ; /*gerbang exclusive not or*/ Penulisannya dengan cara menempatkan character “$” diantara kedua inputnya lalu diberi tanda kurung serta di depannya diletakkan character “!” Namun demikian kita dapat mengubah character-character tersebut menggunakan katakata yang lebih familiar dengan kita. Hal ini bertujuan untuk mempermudah pembacaan program yang telah kita buat. Hal ini dapat dilakukan dengan melakukan dekalarasi terlebih dahulu sebelum kita memulai menulis program.
$define $define $define $define
negasi ! and & or # xor $
Out0 = in0 and in1;
Jika sebelumnya untuk menuliskan gerbang and dengan memberikan character & diantara kedua inputnya, maka character tersebut dapat diganti dengan tulisan and (sesuai dengan kata-kata yang telah kita define di atas untuk mengganti character &).
Out0 = negasi in1;
87
Jika sebelumnya untuk menuliskan gerbang not dengan memberikan character ! sebelum inputnya, maka character tersebut dapat diganti dengan tulisan negasi (sesuai dengan kata-kata yang telah kita define di atas untuk mengganti character !).
Out0 = in0 xor in1;
Jika sebelumnya untuk menuliskan gerbang exclusive or dengan memberikan character $ diantara kedua inputnya, maka character tersebut dapat diganti dengan tulisan xor (sesuai dengan kata-kata yang telah kita define di atas untuk mengganti character $). Setelah kita mengenal character-character yang kita gunakan untuk melakukan operasi logika. Ada beberapa hal yang perlu kita ketahui untuk mempermudah pendeklarasian nama pin dan field. Pada umumnya kita mendeklarasikan pin input sebagai berikut :
Pin Pin Pin Pin
2 3 4 5
= = = =
in0; in1; in2; in3;
Hal diatas dapat diganti dengan menggabungkannya ke dalam sebuah kalimat perintah sebagai berikut :
Pin [2..5] = [in0..3]; Pin [2..5] = [in0,in1,in2,in3]; Pin [2..5] = [in0,in1..in3] ;
Ketiga pin diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya mempunyai maksud yang sama dengan pendeklarasian pin input secara umum di atas. Hal ini berlaku juga di pin Output, pada umumnya kita mendeklarasikan pin output, sebagai berikut :
Pin Pin Pin Pin
2 3 4 5
= = = =
out0; out1; out2; out3;
Hal diatas dapat diganti dengan menggabungkannya ke dalam sebuah kalimat perintah sebagai berikut :
88
Pin [2..5] = [out0..3]; Pin [2..5] = [out0,out1,out2,out3]; Pin [2..5] = [out0,out1..out3];
Ketiga pin diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya mempunyai maksud yang sama dengan pendeklarasian pin output secara umum di atas. Hal ini berlaku juga untuk pendeklarasian field, Pada umumnya kita mendeklarasikan field sebagai berikut :
Field input = [in0,in1,in2,in3];
Hal diatas dapat diganti menjadi penulisan yang lebih simple menjadi :
Field input = [in0..3]; Field input = [in0,in1..3];
Kedua cara penulisan diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya mempunyai maksud yang sama dengan pendeklarasian field secara umum di atas, hal ini juga berlaku untuk pendeklarasian field output (dengan cara yang sama). Sebuah PLD (programmable logic device) adalah sebuah chip yang dapat diprogramuntuk menggantikan banyak gerbang logika dan flip-flop dalam rangkaian logika. The PLD yang akan kita gunakan adalah yang ATF16V8B.
Gambar 10.1: Konfigurasi pin ATF16V8 Terdapat 10 pin khusus input (I0 - I9) dan 8 pin yang dapat berupa input atau output (I/O0 - I/O7), ditambah dua pin untuk power suplly, Vcc dan Gnd. Ketika akan digunakan sebagai sebuah counter atau apa pun dengan yang menggunakan clock maka anda harus menggunkan pin 1 sebagai input clock.
89
Peralatan 1. 2. 3. 4. 5. 6. 7. 8.
Komputer Software WinCupl Universal Prpgrammer IC ATF16v8 Bread Board Led Kabel Jumper Power supply
Percobaan 1: Mengenal Aplikasi WinCupl 1. Install Aplikasi WinCupl. 2. Jalankan aplikasi WinCupl.
Gambar 10.2: Tampilan WinCupl 3. Buka File -> Open -> Atmel dan buka file Barrel22.PLD.
Gambar 10.3: Tampilan Open File 90
4. Wincupl Development Environment terdiri dari main program yang terletak pada Editor Window. Messages Window menunjukkan Pesan yang dihasilkan dalam proses kompilasi dan Project Wondow disisi kanan menampilkan daftar file yang dihasilkan oleh proses kompilasi.
Gambar 10.4: Tampilan Wincupl Development Environment 5. Klik menu Option-> Compiler 6. Tab pada Ouput Files. Klik pada Fuse Plot dan Equations pada Doc File Option. Dan klik OK
Gambar 10.5: Tampilan Compiler Options
91
7. Klik Option -> Device. Jendela yang muncul adalah daftar dari Package type dan Atmel EPLD Supported. Pada bagian kiri bawah terdapat jendela Device Mnemonic dan Check Box (√) untuk Device in file. Hilangkan tanda (√) atau Deselect pada Device in file dan pilih ATF22V10B. Bandingkan device mnemonic dengan Header pada main program yang terletak di Editor window.
Gambar 10.6: Tampilan Device Selection 8. Klik RUN -> Device dependent compile. Selanjutnya akan muncul proses untuk compile the file. Device Dependent Compile (Run menu): Perintah ini untuk mengkompilasi hasil disain menggunakan device yg spesifik. Anda dapat menetapkan device dengan pernyataan device di bagian header atau dengan memilih device pada Tab Devices dari Dialog Options. 9. Jika proses kompilasi berhasil, double klik pada file Barrel22.SI. maka akan keluar jendela “Open with Winsim..”
Gambar 10.7: Tampilan Open with Winsim 10. Klik Yes, maka akan terbuka WINSIM [WinSiM functional simulator].
92
Gambar 10.8: Tampilan Winsim
Percobaan 2: Disain Gerbang Logika Dasar dengan PLD 1. Jalankan aplikasi WinCupl. 2. Jika ini adalah pertama kalinya menggunakan WinCUPL pada komputer ini maka untuk mengatur tempat penyimpanan file sehingga menyimpan file Anda di “My Documents”. Yaitu dengan cara klik Options → WinCUPL → General dan cari folder “My Documents” 3. Memulai project baru. Percobaan pertama akan membuat gerbang NAND.
Gambar 10.9: Gerbang NAND 4. Klik File -> New -> project. 5. Berikan nama file yang mudah sepeti “nand”, karena menggunkan ATF16v8 maka pada klom device tulis g16v8. Klik OK.
93
Gambar 10.10: Design properties 6. Terdapat 2 input pada gerbang nand, maka isikan 2 dan klik OK
Gambar 10.11: Input Pin 7. Terdapat 1 output pada gerbang nand
Gambar 10.12: Output Pin 8. Kita tidak menggunkan pinnodes, maka isikan 0 dan klik OK
Gambar 10.13: Pinnodes
94
9. Sekarang kita perlu menginisialisasi pin yang kita gunakan. Pin input harus pin 1-9 atau 11, pin output harus pin 12-19. Kita menggunakan pin 5 dan 6 sebagai input dan pin 15 sebagai output.
/* *************** INPUT PINS *********************/ PIN 5 = A ; /* Use pin 5 as first input */ PIN 6 = B ; /* Use pin 6 as second input */ /* *************** OUTPUT PINS *********************/ PIN 15 = Q ; /* Use pin 15 as output
*/
Catatan: "PIN 5 = A;" disebut pernyataan, setiap pernyataan diakhiri dengan titik koma. Sesuatu di antara / * dan * / adalah komentar. WinCUPL mengabaikan komentar, komentar yang ada untuk menjelaskan kode Anda kepada orang lain dan untuk mengingatkan Anda apa yang Anda lakukan ketika Anda melihat kode Anda menulis beberapa hari yang lalu. 10. Anda kemudian harus mengetikkan pernyataan logika untuk gerbang NAND. /**************** LOGIC *********************/ Q = !(A&B);
Gunakan tabel berikut untuk memahami pernyataan logika. Tabel 10.3: Tabel operator logika Operator
Description
!
NOT
&
AND
#
OR
$
XOR
11. Sekarang mengkompilasi kode untuk menghasilkan file yang dibutuhkan untuk memprogram chip. 12. Klik Run → Device Dependent Compile atau klik 13. Sekarang Anda harus memeriksa desain bekerja menggunakan simulator. 14. Klik Utilities → WinSim Or klik 15. Gunakan desain proyek yang baru saja dikompilasi menggunakan File → New.
95
16. Klik pada
dan pilih file yang telah dibuat tadi NAND.PLD then
press 17. Tambahkan signal : Signal → Add Signal atau klik 18. Pilih A dan klik
,
19. Pilih B dan klik
,
20. Pilih Q dan klik
, dan klik
21. Ada empat state atau kombinasi yang memungkinan dengan dua input sehingga anda perlu menggunakan empat vector, sehingga menambah 3 vector lainnya dengan menggunakan Signal → Add Vector atau klok
dan tambahkan 3 vector.
22. Sekarang mengatur sinyal input low pada A1 dengan cara mengklik kanan di kotak A1 dan pilih input drive yang low atau hanya klik kiri di bagian tengah bawah dari kotak A1.
Gambar 10.14: Simulasi Dan pada A2 berikan input high dan kemudian membuat tampilan grafik seluruh seperti ini.
Gambar 10.15: Simulasi input nand Catatan: Jangan mengubah sinyal output Q
96
23. Simulasikan output dengan cara klik Simulator → Run Simulator atau klik selanjutnya klik OK.
Latihan 1.
Disain Gebang logika NOT A, NOT B, AND, OR, NOR, XOR, XNOR.
2.
Desain PLD untuk mengendalikan sistem pemanas ruangan. Pemanas bekerja ketika tidak panas, bukan hari libur dan akhir pekan. Gunakan kata-kata yang digaris bawahi sebagai input dan output
97
PRAKTIKUM 11 Programable Logic: Rangkaian Kombinasional Tujuan Pembelajaran Mahasiswa dapat mendisain rangkiaian kombinasional dengan menggunakan PLD.
Dasar Teori Rangkaian Penjumlah Biner Half Adder (HA). Half adder adalah suatu rangkaian penjumlah system bilangan biner yang paling sederhana. Rangkaian ini hanya dapat digunakan untuk operasi penjumlahan data bilangan biner sampai 1 bit saja. Rangkaian half adder mempunyai 2 masukan dan 2 keluaran yaitu Summary out (Sum) dan Carry out (Carry). Secara blok diagram dapat digambar sebagai berikut :
Gambar 11.1: Blok diagram half adder Masukan :
Keluaran :
A = B =
1 0 ------ + 0 1
Masukan :
Keluaran :
Carry Sum
A = 1 B = 1 ---------- + 1 0
Carry Sum
Dimana A dan B merupakan data-data Input. Operasi dari HA dapat ditunjukkan pada tabel kebenaran berikut :
98
Tabel 11.1: Tabel kebenaran Half Adder
Persamaan logikanya adalah: Sum = (A’ . B) + (A . B’) serta Carry = A. B Half Adder dapat diimplementasikan dengan menggunakan EX-OR gate ataususunan gate yang membentuk fungsi EX-OR untuk sum dan AND gate untuk carry. Rangkaian HA dapat ditunjukkan pada gambar 6.6.a. untuk HA yang disusun dari EX-OR dan AND dan gambar 6.6.b. untuk HA yang disusun dari AND, OR dan NOT gate.
Gambar 11.2: Rangkaian half adder Full Adder (FA) Rangkaian full adder dapat digunakan untuk menjumlahkan bilangan biner yang lebih dari 1 bit. Ciri pokok dari Full adder dibandingkan dengan half adder terletak pada jenis/jumlah masukan. Pada Full adder terdapat tambahan satu masukan, yaitu Carry_in.
Gambar 11.3: Blok diagram full adder
Masukan :
Keluaran :
Carry_in = 0 A =1 B =0 ------ + 0 1
Masukan :
Carry_in = 1 A =1 B =1 ------- + Keluaran : 11
Carry_out Sum
Carry_out Sum
Rangkaian FA dapat disusun oleh dua buah Half Adder yang di-OR-kan. 99
Gambar 11.4: Rangkaian full adder disusun dari 2 half adder
Operasi dari Full Adder dapat ditunjukkan pada tabel kebenaran berikut : Tabel 11.2: Tabel Full Adder
Dari tabel kebenaran dapat dituliskan ekspresi logika untuk Sum dan carry : Sum = A’B’Cin + A’B Cin’ + A B’Cin’ + A B Cin Carry = A’B Cin + A B’ Cin + A B Cin’ + A B Cin Persamaan di atas disederhanakan dengan menggunakan K-Map :
Gambar 11.5: Karnaugh map untuk Sum
Gambar 11.6: Karnaugh map untuk Carry-out
100
Persamaan logikanya adalah : = A‟B‟Cin + A‟B Cin‟ + A B‟Cin‟ + A B Cin = (A‟B‟ + AB ) Cin + (A‟B + AB‟) Cin‟ Sum = (A + B) + C_in C_out = (A.B) + (A.C_in) + (B.C_in) Sum
Berdasarkan tabel kebenaran dapat disusun juga Full Adder seperti ditunjukkan pada Gambar 11.7.
Gambar 11.7: Rangkaian Full Adder
Peralatan 1. 2. 3. 4. 5. 6. 7. 8.
Komputer Software WinCupl Universal Prpgrammer IC ATF16v8 Bread Board Led Kabel Jumper Power supply
Percobaan: 1. Buka Aplikasi WinCupl. Tuliskan program Full adder seperti di bawah ini. /* *************** INPUT PINS *********************/ PIN 2=Cin;/* */ PIN 3=B; /* */ PIN 4=A; /* */ /* *************** OUTPUT PINS *********************/ PIN 14 = Sum;/* */ PIN 15 = Cout; /* */ Sum = A $ B $ Cin; Cout=A&B # A&Cin # B&Cin;
101
2. Simulasikan hasilnya.
Gambar 11.8: Hasil simulasi Full Adder 3. Disain rangkaian half dan full subbstractor. Tuliskan tabel kebenarannya. 4. Tuliskan program cupl dan simulasikan.
Latihan 1. Disain rangkaian decoder 3 to 8. 2. Disain rangkaian code convertion dari 4 bit binery to 4 bit grey code. 3. Disain rangkaian bcd to 7‟segmen.
102
PRAKTIKUM 12 Programable Logic: Rangkaian Sekuensial Tujuan Pembelajaran Mahasiswa dapat mendisain rangkaian counter dengan menggunakan PLD.
Dasar Teori Counter Counter (penghitung atau pencacah) adalah rangkaian sirkuit digital yang bisa dipakai untuk menghitung pulsa atau sinyal digital yang umumnya dihasilkan dari osilator. Penghitung ini bisa menghitung pulsa secara biner murni (binary counter) ataupun secara desimal-terkodekan-secara-biner (decimal counter). Dalam penghitung biner murni, angka 9 dinyatakan dalam bentuk bilangan biner 1001, dan berikutnya angka 10 dinyatakan dalam bentuk biner 1010. Sedangkan dalam penghitung desimal-terkodekan-secara-biner, angka 9 adalah biner 1001, tetapi angka 10 dinyatakan dalam bentuk: 0001 0000. Angka desimal 100 dalam biner murni adalah 1100100, sedangkan dalam BCD adalah 0001 0000 0000 (3 buah digit desimal masingmasing dari kelompok 4 bit).
Gambar 12.1: Counter 4 Bit
103
Untuk jelasnya, angka desimal 0 sampai 17 (yang kita kenal sehari-hari), jika dinyatakan dalam bilangan biner murni dan biner BCD ( dengan 5 bit), akan nampak seperti di bawah ini. Angka 0 sampai 9 mempunyai bentuk biner murni dan biner BCD yang sama, tetapi mulai dari angka 10 keduanya belainan. Rangkaian penghitung ini kebanyakan dipakai dalam alat penghitung pulsa putaran mesin, atau putaran roda kendaraan. Berdasarkan jumlah pulsa yang terhitung per detik atau per menit, kita dapat menentukan kecepatan putaran mesin, kecepatan jalannya kendaraan, jarak yang ditempuh, dll. Misalnya, kalau jumlah putaran per detik dari roda kendaraan adalah 10, dan panjang busur lingkaran (keliling) roda ban itu = 1 meter, maka kendaraan itu berjalan sepanjang 10 meter per detik. Dengan kata lain jika dinyatakan dalam km/jam, kecepatan kendaraan itu menjadi 10*60*60 = 36.000 meter per jam, atau 36 km/jam. Alat penghitung ini (baik yang biner maupun desimal BCD) merupakan bagian penting dalam sistem peralatan digital dan penggunaannya dalam bidang industri. Selain untuk menghitung pulsa putaran, penghitung/pencacah juga dipakai untuk menghitung pulsa waktu, alat yang penting dalam bidang telekomunikasi yaitu untuk mencatat lama pembicaraan. Penghitung bisa dipakai juga untuk mengontrol robot kapan harus aktif (pada jam berapa, atau setelah berapa menit lagi). Banyak contoh lain yang bisa disebutkan mengenai penggunaan penghitung ini dalam bidang kontrol dan elektronika digital.
Peralatan 1. 2. 3. 4. 5. 6. 7. 8.
Komputer Software WinCupl Universal Prpgrammer IC ATF16v8 Bread Board Led Kabel Jumper Power supply
Percobaan: 1. Jalankan aplikasi WinCupl. 2. Buat program baru dengan nama “count” dengan 1 input, 4 output dan tanpa nodes. Device yang digunakan g16v8. Input clock harus di pin 1 dan inisialisaikan semua output hingga seperi berikut ini: /* *************** INPUT PINS *********************/ PIN 1 = clk; /* Clock input */ /* *************** OUTPUT PINS *********************/ PIN [12..15] = [Q0..Q3]; /* Binary outputs */
104
[12..15] artinya pin 12 sampai 15 menjadi pin 12=Q0, pin 13=Q1, pin 14=Q2, pin 15=Q3. Sehingga inisialiasai pin yang lain dapat di hapus. 3. Gunakan FIELD statement untuk semua pin output menjadi single number. FIELD
count = [Q3..Q0];
Sehingga count adalah bilangan yang terdiri dari Q3(8s), Q2(4s), Q1(2s) dan Q0(1s). 4. Dengan menggunakan perintah SEQUENCE, tambahkan program ini dan lalu lakukan kompilasi.
SEQUENCE COUNT { PRESENT 0 NEXT PRESENT 1 NEXT PRESENT 2 NEXT PRESENT 3 NEXT PRESENT 4 NEXT PRESENT 5 NEXT PRESENT 6 NEXT }
1; 2; 3; 4; 5; 6; 1;
5. Uji program dengan menggunakan simulator. Jalankan WinSIM (add the signals) clk, Q0, Q1, Q2 dan Q3 selanjutnya klik
dan tambahkan .
6. Tambahkan 8 vector 7. Klik kanan pada salah satu cell pada kolom clock dan pilih Set Whole Signal ke C, ini akan membuat gelombang kotak atau pulsa pada clock input. 8. Simulasikan disan dengan menggunakan benar.
dan amati hasil output apakah sudah
Latihan 1. Disian grey code counter 4 bit. 2. Disain counter bilangan ganjil. Bilangan 1, 3, 5, 7, 9 ddan kembali ke 1 lagi.
105