Logic and Computer Design Fundamental Chapter 2 Rangkaian Logika Kombinasi Bagian 2 : Optimisasi Rangkaian M. Mano & Charles R. Kime 2008, Pearson Education, Inc
Overview Bagian 1 – Rangkaian Gerbang dan Persamaan Boolean. Logika Biner dan Gerbang Aljabar Boolean Standard Forms Bagian 2 – Optimasi Rangkaian Optimasi 2 – level Manipulasi Peta Optimasi Praktis (Espresso) Optimasi Rangkaian Multi-Level Bagian 3 – Gerbang2 tambahan dan rangkaian Tipe2 gerbang yang lain Operator Exclusive-OR dan Gerbang Outputs High-Impedance
Optimisasi Rangkaian Tujuan: Membuat implementasi yang paling sederhana dari fungsi yang diberikan. Optimisasi adalah pendekatan untuk menyederhanakan fungsi yang ada dengan menggunakan prosedur dan algoritma yang khusus. Optimisasi membutuhkan kriteria biaya untuk mengukur kesederhanaan rangkaian. Batasan kriteria biaya yang dipakai adalah :: Biaya Literal (L) Biaya Gate input (G) Biaya Gate input denganNOTs (GN)
Biaya Literal Literal – suatu variable atau komplemen-nya Biaya Literal – jumlah literal yang muncul pada ekspresi Bolean, yang mempengaruhi diagram rangk logika. Contoh: F = BD + A C + A L = 8 F = BD + A C + A + AB L = F = (A + B)(A + D)(B + C + )( + + D) L = Solusi mana yang terbaik? B C D 2nd Literal Cost = 11 3rd Literal Cost = 10 The first solution is best B B D C D B C
Biaya Input Gerbang Biaya input Gerbang – jumlah input ke gerbang pada implementasi berkaitan dengan persamaan yang ada. (G - inverters not counted, GN - inverters counted) Untuk pers SOP dan POS, dapat dicari dari pers, dengan menghitung jumlah : Semua literal yang muncul Jumlah terms, tidak termasuk single literal terms,(G) dan optionally, jumlah single literals yang dikomplemenkan (GN). Contoh: F = BD + A C + A G = 11, GN = 14 F = BD + A C + A + AB G = , GN = F = (A + )(A + D)(B + C + )( + + D) G = , GN = Solusi mana yang terbaik? G = 15, GN = 18 (second value includes inverter inputs) G = 14, GN = 17 1st solution is best B C D B B D C B D B C
Kriteria Biaya (continued) GN = G + 2 = 9 GN(gate input count with NOTs) Tambahkan input ke inverter Contoh 1: F = A + B C + L = 5 L (literal count) menghitung input AND dan input single literal OR. B C G = L + 2 = 7 G (gate input count) Tambahkan sisa input gerbang OR A B C F
Kriteria Biaya (continued) F Contoh 2: F = A B C + L = 6 G = 8 GN = 11 F = (A + )( + C)( + B) L = 6 G = 9 GN = 12 Fungsi yang sama dan biaya literal yang sama Rangk pertama gate input count dan gate input count dengan NOTs lebih baik. Pilihlah! A B C C B A F A B C
Optimisasi Fungsi Boolean Minimisasi biaya gerbang input(or literal) dari suatu (a set of) Pers Boolean akan mengurangi biaya rangkaian. Kita pilih biaya gerbang input. Aljabar Boolean dan teknik grafik merupakan alat untuk meminimisasi nilai kriteria biaya. Beberapa pertanyaan penting: Kapan kita berhenti berusaha mengurangi biaya? Bagaimana diketahui biaya sudah minimum? Diperkenalkan teknik grafik menggunakan Karnaugh maps (Singk: K-maps,)
Karnaugh Maps (K-map) K-map adalah suatu himpunan ‘kotak’ Masing2 kotak menyatakan minterm Himpunan Kotak adalah representasi grafik dari Fungsi Boolean . Kotak yang berdekatan berbeda nilai satu variabel Sebagai alternatif ekspresi aljabar untuk fungsi yang sama, ditunjukkan dengan pola kotak2. K-map dapat dilihat sebagai : Versi yang lain dari truth table/tabel kebenaran Topologikal Venn diagram yang biasanya digunakan sebagai visualisasi dari algebra of sets
Beberapa kegunaan K-Maps Sangat berarti untuk: Mencari optimum atau mendekati optimum Bentuk standard SOP dan POS dan 2 – level implementasi rangk AND/OR and OR/AND Untuk fungsi dengan jumlah variabel sedikit Konsep visualisasi untuk me-manipulasi ekspresi Boolean dan Menunjukkan konsep yang digunakan pada program computer-aided design untuk menyederhanakan rangkaian yang besar.
Peta dengan Dua Variabel. Peta Karnaugh 2-variable : Catatan,bahwa minterm m0 dan minterm m1 adalah “adjacent” dengan nilai variabel y berbeda. Serupa, minterm m0 dan minterm m2 berbeda pada variabel x . Juga, m1 dan m3 berbeda pada variabel x Terakhir, m2 dan m3 berbeda pada variabel y y = 0 y = 1 x = 0 m 0 = 1 = x = 1 2 = 3 = y x
K-Map dan Tabel Kebenaran K-Map hanya berbeda bentuk dari tabel kebenaran. Contoh: – Fungsi 2 – variabel: Dipilih, a,b,c dan d dari set {0,1} untuk implementasi fungsi , F(x,y). Function Table K-Map Input Values (x,y) Function Value F(x,y) 0 0 a 0 1 b 1 0 c 1 1 d y = 0 y = 1 x = 0 a b x = 1 c d
Representasi Fungsi K-Map F = x y = 0 y = 1 x = 0 x = 1 1 Contoh: F(x,y) = x Untuk fungsi F(x,y), dua cell yang berdekatan yang berisi ‘1’s dapat digabung langsung menggunakan Minimization Theorem: x y ) , ( F = +
Representasi Fungsi K-Map Contoh: G(x,y) = x + y Untuk fungsi G(x,y), dua cell yang berdekatan yang berisi ‘1’s dapat digabung langsung menggunakan Minimization Theorem: G = x+y y = 0 y = 1 x = 0 1 x = 1 ( ) ( ) y x xy ) , ( G + = Duplicate x y
Peta dengan 3 – Variabel z y x K-map tiga-variabel : Dimana masing2 minterm merupakan bentuk perkalian : Catatan, bila nilai biner hanya berbeda satu, minterms pada K-Map berdekatan yz=00 yz=01 yz=11 yz=10 x=0 m0 m1 m3 m2 x=1 m4 m5 m7 m6 yz=00 yz=01 yz=11 yz=10 x=0 x=1 z y x
Alternative memberikan label pada peta. Yang sering dilakukan pada Peta Memasukkan nilai pada peta dan Membaca bentuk perkalian dari peta. Alternative labelings sangat berguna: y y z y z x 1 2 4 3 5 6 7 y x 00 01 11 10 1 3 2 1 4 5 7 6 x z
Contoh Fungsi: Minterms dari F diisi dengan "1" pada peta dan tinggalkan minterms F kosong Contoh: Ingat: Nilai dari lokasi 8 kotak berdasarkan urutan variabel (a atau x = most significant and c atau z=least significant) abc atau xyz y x 1 2 4 3 5 6 7 z x y 1 2 4 3 5 6 7 z
Menggabungkan antar kotak. Dengan menggabungkan kotak2, berarti mengurangi jumlah literal bentuk perkalian, mengurangi biaya literal, yang berati pula mengurangi 2 kriteria biaya yang lain. Pada K-map 3-variabel : Satu kotak menyatakan minterm dengan 3 variabel Dua kotak berdekatan menyatakan bentuk perkalian dengan 2 variabel. Empat kotak “adjacent”(berdekatan) menyatakan bentuk perkalian dengan 1 variabel. Delapan kotak “adjacent” berarti seluruhnya 1(no variables) dan nilainnya = 1.
Contoh: Menggabung Kotak2 x y 1 2 4 3 5 6 7 z Contoh : Bila Dengan Teori Minimisasi tiga kali: Jadi empat terms yang membentuk 2 ×2 adalah = "y". z y x ) , ( F + = z y yz + = y =
Peta 3 variabel Mengurangi perkalian literal untuk format standard SOP sehubungan rectangles pada K-maps yang terdiri dari hitungan cell yang merupakan pangkat 2. Rectangles dari 2 cells menyatakan 2 minterms yang berdekatan; untuk 4 cells menyatakan 4 minterms yng membentuk “pairwise adjacent” ring. Rectangles dapat terdiri dari bukan cell yang berdekatan seperti digambarkan oleh “pairwise adjacent” ring diatas.
Peta 3 variabel Topological warps of 3-variable K-maps that show all adjacencies: Venn Diagram Cylinder X 4 Y 6 Z 5 7 3 2 1
Peta 3 variabel y x z Contoh penggabungan 2-cell Rectangles: Tuliskanlah penggabungan yang dihasilkan y 1 3 2 5 6 4 7 x z
Peta 3 variabel y x z Contoh penggabungan 4-cell Rectangles: Tuliskanlah penggabungan yang dihasilkan y 1 3 2 5 6 4 7 x z
Peta 3 variabel y 1 x z z y x + F(x, y, z) = K-map dapat dipakai untuk menyederhanakan Fungsi Boolean dengan metode yang sistematik, dengan mengcover ‘1’ pada peta. Contoh: Sederhanakan: z y x + y 1 x z F(x, y, z) =
Tiga Variabel dengan penyederhanaan Peta. Gunakan K-map untuk mencari SOP yang optimum dari: F = Z’ + X’ Y’ + X Y
Soal F(A,B,C) = m(0,2,3,4) F(X,Y,Z) = m(1,5,3,4) F(P,Q,R) = m(1,6,4,3) F(A,B,C) = m(0,4,3,1)
Peta 4 Variabel Peta dan lokasi dari minterms: 8 9 10 11 12 13 14 15 1 1 3 2 5 6 4 7 X Y Z W Variable Order
4 Variabel Terms Peta dengan 4 Var dapat mempunyai hubungan rectangular sbb: A single 1 = 4 variables, (i.e. Minterm) Two 1s = 3 variables, Four 1s = 2 variables Eight 1s = 1 variable, Sixteen 1s = zero variables (i.e. Constant "1")
4 Variabel Terms Contoh bentuk Rectangles: 8 9 10 11 12 13 14 15 1 3 2 1 3 2 5 6 4 7 X Y Z W
4 Variabel Terms Contoh bentuk Rectangles: Y 8 9 10 11 12 13 14 15 1 3 1 3 2 5 6 4 7 X W Z
Penyederhanaan Peta 4 variabel. = S F(W, X, Y, Z) (0, 2,4,5,6,7, 8,10,13,15 ) m F = XZ + X'Z'
Penyederhanaan Peta 4 variabel. = S F(W, X, Y, Z) (3,4,5,7,9,1 3,14,15 ) m F = W' X Y' + W' Y Z + WXY + WY'Z
Penyederhanaan sistematik. Suatu Prime implicant adalah bentuk perkalian yang didapat dengan menggabung se-banyak2-nya kotak yang berdekatan pada peta menjadi rectangle dengan jumlah kotak suatu pangkat 2 Prime Implicant disebut Essential Prime implicant bila ia hanya prime implicant yang mencover satu atau lebih minterm. Prime Implicants dan Essential Prime Implicants dapat dicari dengan meneliti K-map.. Suatu set dari prime implicants “mengcovers seluruh minterms" bila, untuk masing2 minterm dari fungsi, paling tidak satu prime implicant ada pada suatu set prime implicants termasuk minterm.
Penyederhanaan sistematik. A Prime Implicant is a product term obtained by combining the maximum possible number of adjacent squares in the map into a rectangle with the number of squares a power of 2. A prime implicant is called an Essential Prime Implicant if it is the only prime implicant that covers (includes) one or more minterms. Prime Implicants and Essential Prime Implicants can be determined by inspection of a K-Map. A set of prime implicants "covers all minterms" if, for each minterm of the function, at least one prime implicant in the set of prime implicants includes the minterm.
Contoh dari Prime Implicants Carilah SELURUH Prime Implicants CD ESSENTIAL Prime Implicants C 1 B D A 1 B C D A D B D B C B Minterms covered by single prime implicant BD BD AD B A
Latihan mencari Prime Implicant Carilah semua prime implicants untuk: Prime implicants are: A, B'C, and B'D'
Contoh Lain Carilah semua prime implicants untuk: Hint: Ternyata ada tujuh prime implicants! Prime Implicants are AB, B C' D', A' C' D', A' B' D', A' B' C, A' C D, B C D.
K-map dengan 5 Variabel atau lebih. Untuk soal 5 var, digunakan 2 K-map 4 var yang berdekatan. Akan menjadi lebih susah untuk menggambarkan-nya untuk minterm yang berdekatan untuk menseleksi PI. Dapat dilakukan dengan mengembangkan soal ke 6 var dengan menggunakan 4 K-map. X Y Z W V = 0 X Z W V = 1 Y
K-map dengan Don't Cares Kadang2 tabel fungsi atau peta berisi masukan yang dikenal sebagai: Nilai input untuk minterm yang tidak pernah terjadi, atau Nilai output untuk minterm yang tidak digunakan Dalam hal ini, nilai output tidak perlu didefinisikan. Kecuali, nilai output didefinisikan sbg don’t care Dengan menempatkan “don't cares” (“x”) pada tabel fungsi atau peta, kemungkinan biaya rangk logika menjadi lebih murah. Contoh 1: Suatu fungsi logik mempunyai kode biner BCD digit sebagai input. Hanya kode 0-9 yang digunakan. Enam kode yang lain 1010 sampai 1111 tidak terjadi , maka kode ini diberi kode “x” untuk menyatakan don’t care.
K-map dengan Don't Cares Contoh 2 : A circuit that represents a very common situation that occurs in computer design has two distinct sets of input variables: A, B, and C which take on all possible combinations, and Y which takes on values 0 or 1. and a single output Z. The circuit that receives the output Z observes it only for combinations of A, B, and C such A = 1 and B = 1 or C = 0, otherwise ignoring it. Thus, Z is specified only for those combinations, and for all other combinations of A, B, and C, Z is a don’t care. Specifically, Z must be specified for AB + C = 1, and is a don’t care for : AB + C = (A + B)C = AC + BC = 1 Ultimately, each don’t care “x” entry may take on either a 0 or 1 value in resulting solutions For example, an “x” may take on value “0” in an SOP solution and value “1” in a POS solution, or vice-versa. Any minterm with value “x” need not be covered by a prime implicant.
Contoh: BCD “5 atau lebih” Peta dibawah memberikan fungsi F1(w,x,y,z) dimana didefinisikan sbg "5 atau lebih" pd BCD inputs. Dengan menggunakan don't cares untuk 6 non-BCD kombinasi: F1 (w,x,y,z) = w + x z + x y G = 7 Ini mempunyai biaya < F2 dimana “don't cares” dianggap sbg "0s." G = 12 Untuk fungsi khusus, biaya G untuk solusi POS untuk F1(w,x,y,z) tidak berubah dg menggunakan don't cares. y 1 3 2 1 1 1 1 4 5 7 6 x y x w z z) y, x, F2(w, + = X X X X 12 13 15 14 w 1 1 X X 8 9 11 10 z
Contoh P O S Carilah solusi untuk POS yang optimum: Hint: Gunakan dan komplemenkan, untuk medapatkan hasilnya. F F' = B' D' + A' B F = (B + D)(A + B')
Optimisasi Algoritma Carilah semua prime implicants. Termasuk semua essential prime implicants pada solusinya Pilihlah biaya yang minimum dari non-essential prime implicants untuk meng-cover semua minterms yang belum di-cover:
Aturan Seleksi Prime Implicant Minimise prime implicant yang overlap sebanyak mungkin. Khususnya pada solusi akhir, yakinkan bahwa setiap prime implicant yang terpilih termasuk setidaknya satu minterm tidak termasuk pada prime implicant terpilih yang lain.
Contoh Aturan seleksi: Sederhanakan F(A, B, C, D) yang diberikan di K-map. Selected Essential 1 B D A C 1 B D A C 1 Minterms covered by essential prime implicants
Contoh Aturan seleksi dengan don’t care: Sederhanakan F(A, B, C, D) yang diberikan pada K-map. Selected Essential 1 x B D A C 1 x B D A C Minterms covered by essential prime implicants
Optimisasi Praktis Masalah: Algoritma Optimisasi Automatis : Dibutuhkan minterm sbg point awal Dibutuhkan penentuan seluruh prime implicants, dan/atau Dibutuhkan proses seleksi dengan menemukan beberapa calon penyelesaian yang potensial. Solusi: Secara umum Algoritma sub-optimum tidak dibutuhkan pada hal diatas.
PENYEDERHANAAN DENGAN ALGORITMA EKSPRESSO Tugas: Pelajari tentang : PENYEDERHANAAN DENGAN ALGORITMA EKSPRESSO Presentasi dikelas….random, dengan ppt yang ada
Simplified Espresso Algorithm Input Function F and its initial cover F Initialize Cost = Gate Input Cost of F Loop 1: Execute EXPAND On first pass only, execute ESSENTIAL_PRIMES Execute IRREDUNDANT_COVER If Cost not improved, goto OUT, Else update Cost Loop 2: Execute REDUCE Goto Loop 1 Out: Execute LAST GASP If Cost not improved, goto QUIT Else goto Loop 2 Quit: Place Essential Primes back in F Return Final F and Final Cost
Contoh Algoritma: Espresso Penggambaran pada K-map: B D A C B D A C 1 1 1 1 1 X 1 1 1 1 1 1 1 1 1 1 1 1 Original F & EXPAND ESSENTIAL & IRREDUNDANT COVER
Contoh Algoritma: Espresso Lanjutan: B D A C B D A C X X 1 1 1 1 1 1 1 1 1 1 1 1 Pengurangan Penambahan
Contoh Algoritma: Espresso Lanjutan: B D A C B D A C X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 IRREDUNDANT COVER After REDUCE, EXPAND, IRREDUNDANT COVER, LAST GASP, QUIT
Contoh Algoritma: Espresso Biaya Solusi ini : 2 + 2 + 3 + 3 + 4 = 14 Mencari solusi optimum dan dibandingkan : There are two optimum solutions one of which is the one obtained by Espresso. B D A C Essential 1 1 1 1 1 1 1 Selected 1 1 1 Minterms covered by essential prime implicants
Optimasi Multiple-Level Rangkaian Multiple-level adalah : Rangkaian yang bukan hanya 2 level (dengan atau tanpa input dan/atau output inverter) Rangkaian Multiple-level dapat mengurangi biaya input gerbangnya dibandingkan dengan rangkaian 2- level (SOP and POS) Optimasi Multiple-level ditunjukkan oleh penerapan transformasi ke rangk yang dinyata kan dalam persamaan pada saat penghitungan biaya.
Transformasi Factoring – mencari bentuk faktor dari ekspresi SOP atau POS Secara Aljabar – Tidak menggunakan aksioma khusus pada Aljabar Boolean seperti pada komplemen atau idempotence Boolean – menggunakan aksioma unik pada Aljabar Boolean Dekomposisi – ekspresi dari suatu fungsi sebagai set dari suatu fungsi baru.
Transformasi (lanjutan) Substitusi dari G ke F – ekspresi fungsi F sebagai fungsi dari G dan beberapa atau semua variabel aslinya. Eliminasi - Inverse dari substitusi Extraksi – penerapan dekomposisi pada fungsi multiple secara serentak.
Contoh Transformasi Factoring Aljabar F = + B + ABC + AC G = 16 F = ( + B ) + A (BC + C ) G = 16 Factoring lagi: F = ( B + ) + AC (B + ) G = 12 F = ( + AC) (B + ) G = 10 A C D A C D A C D C D A C D D A C D
Contoh Transformasi Dekomposisi Suku -2: B + dan + AC dapat didefinikan sebagai fungsi baru masing2 : E dan H, dekomposisi dari F: F = E H, E = B + , and H = + AC G = 10 Urutan transformasi ini dapat mengurangi G dari 16 to 10, penghematan yang cukup. Hasil akhir rangkaian terdiri dari 3-level ditambah input inverter. D A C D A C
Contoh Transformasi Substitusi dari E ke F Pengembalian F ke sebelum factoring terakhir : F = ( B + ) + AC (B + ) G = 12 Bila E = B + , dan substitusi ke F: F = E + ACE G = 10 Subsitusi ini menghasilkan biaya yang sama seperti pada saat dekomposisi. A C D D D A C
Contoh Transformasi Eliminasi X = B + C Y = A + B Z = X + C Y G = 10 Dimulai dari set fungsi yang baru. X = B + C Y = A + B Z = X + C Y G = 10 Eliminasi X and Y from Z: Z = (B + C) + C (A + B) G = 10 “Flattening” (Konversi ke ekspresi SOP ): Z = B + C + AC + BC G = 12 Ini menaikkan biaya, tapi mendapatkan ekspresi SOP yang baru untuk dua-level optimisasi. A A A A
Contoh Transformasi Dua-level Optimisasi Z = B + C G = 4 Hasil dari 2-level optimisasi adalah : Z = B + C G = 4 Contoh ini menggambarkan bahwa : Optimisasi dapat dimulai dari beberapa set persamaan, tidak hanya dengan minterm atau tabel kebenaran. Kenaikan hitungan input gerbang G sementara selama dilakukan urutan transformasi dapat menghasilkan solusi akhir dengan G yang lebih kecil. A
Contoh Transformasi Extraksi E = + BD H = C + BCD G = 16 F = + BD Dimulai dengan dua fungsi: E = + BD H = C + BCD G = 16 Dicari factor yang sesuai dan didefinisikan sebagai fungsi: F = + BD Dapat ditunjukkan ekstrasi dengan ekspresi-kan E dan H sebagai tiga fungsi: F = + BD, E = F, H = CF G = 10 Pengurangan biaya G dihasilkan dari ‘sharing of logic’ antara dua output fungsi. A B D A B D B D B D A
Terms of Use All (or portions) of this material © 2008 by Pearson Education, Inc. Permission is given to incorporate this material or adaptations thereof into classroom presentations and handouts to instructors in courses adopting the latest edition of Logic and Computer Design Fundamentals as the course textbook. These materials or adaptations thereof are not to be sold or otherwise offered for consideration. This Terms of Use slide or page is to be included within the original materials or any adaptations thereof.