Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Blok Rangkaian Kombinasional TSK505 - Sistem Digital Lanjut Eko Didik Widianto Teknik Sistem Komputer - Universitas Diponegoro Blok Rangkaian Kombinasional Review Kuliah I I Sebelumnya dibahas tentang metodologi desain sistem digital menggunakan Xilinx ISE dan pengantar HDL (Verilog) Berikutnya akan dibahas tentang sintaks verilog dan desain blok rangkaian kombinasional, meliputi: I I I I I multiplekser 2-ke-1 multiplekser 4-ke-1 enkoder biner 2-ke-4 (one-hot encoding) enkoder prioritas Referensi: 1. Verilog Tutorial (online): http://www.asic-world.com/verilog/veritut.html 2. Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with Verilog/VHDL, 2nd Edition, McGraw-Hill, 2005 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Bahasan Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Desain Rangkaian Logika Blok Rangkaian Kombinasional Rangkaian Kombinasional dan Sekuensial I Rangkaian digital: kombinasional dan sekuensial I Rangkaian kombinasional I Nilai keluaran rangkaian di suatu waktu hanya ditentukan oleh nilai dari masukannya di waktu tersebut I I Tidak ada penyimpanan informasi atau ketergantungan terhadap nilai sebelumnya Misalnya: multiplekser, enkoder, dekoder, demux, ALU I Rangkaian sekuensial I I I I Nilai keluaran rangkaian di suatu waktu ditentukan oleh nilai masukannya waktu itu dan nilai keluaran sebelumnya Menyertakan storage untuk menyimpan nilai masukan Elemen dasar untuk menyimpan data 1-bit adalah flip-flop Sebagian besar rangkaian digital adalah sekuensial I Register, counter Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Desain Blok Rangkaian Kombinasional Problem Desain Ditentukan fungsi 4-variabel: @2011,Eko Didik Widianto Desain Rangkaian Logika f = X = Y Desain Rangkaian Logika m(2, 3, 8, 9, 10, 11, 13) M(0, 1, 4, 5, 6, 7, 12, 14, 15) Diinginkan: implementasikan fungsi tersebut dengan FPGA Solusi: (harus dapat tersintesis) 1. Menggunakan primitive gate 2. Menggunakan operator bitwise 3. Menggunakan CASE (1) dan (2) membutuhkan proses penyederhanaan rangkaian Simulasi Blok Rangkaian Kombinasional Penyederhanaan Fungsi I Penyederhanaan dengan K-map Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional I f1,min = (x1 + x3 ) (x 2 + x 3 ) (x 2 + x4 ) I f2,min = x1 x2 + x2 x3 + x1 x3 x4 Solusi Desain (1) Desain Menggunakan Primitive Gate I Menggunakan entry skematik Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Skematik Gerbang (Verilog) Hasil Generate dari Skematik I Deskripsi struktural Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Skematik Gerbang (RTL) Primitive Gate Sudah Tersintesis Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Solusi Desain (2) Menggunakan Operator Bitwise di HDL I Deskripsi ~ & | ^ ^~ atau ~^ Bitwise NOT Bitwise AND Bitwise OR Bitwise XOR Bitwise XNOR @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional File desain: design_example_1.v I I Operator Desain Blok Rangkaian Kombinasional Deskripsi struktural dan perilaku File testbench: design_example_1_tb.v module design_example_1( input X1, input X2, input X3, input X4, output f1 ); assign f1 = ( X1 & !X2 ) | (!X2 & X3) | (X1 & !X3 & X4); endmodule Skematik RTL RTL Menggunakan LUT Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Solusi Desain (3) Menggunakan Case (design_example_2.v) I Deskripsi struktural dan perilaku I Menggunakan sensitivity list Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Skematik RTL RTL Menggunakan LUT Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Testbench Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi I Masukan: x1, x2, x3, x4 I Untuk module: I I I design_example: UUT, output: f1 design_example_1: UUT1, output: f2 design_example_2: UUT2, output: f3 Blok Rangkaian Kombinasional Diagram Pewaktuan Hasil Simulasi Ketiga Desain Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional Preferensi Desain Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Desain Rangkaian Logika Simulasi Blok Rangkaian Kombinasional I Mana yang dipilih? Desain Blok Rangkaian Kombinasional Multiplekser 2 Jalur @2011,Eko Didik Widianto Sebuah rangkaian multiplekser (MUX) mempunyai N buah masukan SELECT Maksimal 2N jalur data masukan Satu output MUX melewatkan nilai sinyal dari salah satu data masukan ke jalur keluaran tergantung dari nilai masukan SELECT MUX 2-masukan Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen s 0 1 f (s, x1 , x2 ) x1 x2 HDL: Multiplekser 2 Jalur Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika I Menggunakan continous assignment Blok Rangkaian Kombinasional Multiplekser I I operator bitwise conditional I Menggunakan always: if-then I Code dan simulasi! Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen I I desain testbench Dekoder Hex-ke-7 Segmen Multiplekser 4 Jalur MUX 4-masukan memilih satu dari 4 data masukan yang akan dilewatkan ke keluaran Ditentukan oleh nilai 2 jalur SELECT (s0 , s1 ) Dapat dikonstruksi menggunakan 3 buah MUX 2-masukan Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Multiplekser 4 Jalur Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan continous assignment I Menggunakan always I Code dan simulasi! Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen 74LS151: Multiplekser 8 jalur Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: 74LS151 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser I Menggunakan always I Code dan simulasi! Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Enkoder One-hot Encoding: Salah Satu Masukan Harus ’1’ I Enkoder mengurangi jumlah bit yang diperlukan untuk merepresentasikan suatu informasi (data) I Contoh penggunaan untuk transmisi informasi dalam sistem digital sehingga mengurangi jumlah saluran transmisi, atau ruang penyimpanan Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Enkoder Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan always I Case Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Code dan Simulasi! Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Enkoder Prioritas I Salah satu kelas enkoder: enkoder prioritas I I Sinyal masukan mempunyai level prioritas Keluaran enkoder menunjukkan masukan aktif yang mempunyai prioritas tertinggi I Jika masukan dengan prioritas tinggi ’assert’, masukan dengan prioritas lebih rendah diabaikan Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Asumsi: w3 mempunyai prioritas lebih tinggi daripada w0 I I Keluaran z menunjukkan bahwa tidak ada masukan bernilai ’1’ Persamaan fungsi yo, y1 dan z? Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Enkoder Prioritas Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser I Menggunakan always Enkoder Demultiplekser Dekoder I I Casez: ’z’ dianggap don’t care Casex: ’x’ dan ’z’ dianggap don’t care Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen I Code dan simulasi! Dekoder Hex-ke-7 Segmen Desain Blok Rangkaian Kombinasional Demultiplekser @2011,Eko Didik Widianto I I Desain Rangkaian Logika Sebuah multiplekser memilih satu dari n masukan data menjadi satu keluaran Blok Rangkaian Kombinasional Demultiplekser melakukan sebaliknya, yaitu menempatkan nilai satu masukan ke salah satu dari n jalur keluaran Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 I n Dapat diwujudkan menggunakan dekoder n − ke − 2 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Demultiplekser 2-ke-4 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan always I case Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Code dan simulasi! Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Dekoder I Rangkaian dekoder: mendekode informasi (data) terkode I Mempunyai N masukan data dan 2N keluaran (mis: dekoder 3 masukan mempunyai 8 jalur keluaran) I Hanya satu keluaran yang di-assert (diaktifkan) dalam satu waktu (one-hot decoding) I Assert: ke nilai 1 (logika positif/active-high) atau 0 (logika negatif/active-low) I Tiap keluaran ditentukan oleh satu valuasi nilai masukan Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder I Masukan ENABLE (En) digunakan untuk mematikan (disable) keluaran I Asumsi keluaran active-high: I Jika En=0, tidak ada keluaran dekoder yang di-assert I Jika En=1, satu keluaran di-assert sesuai valuasi masukan Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Aplikasi Dekoder: Pengalamatan ROM I Dekoder seringkali digunakan untuk mendekodekan jalur alamat chip memori I m Misalnya di ROM (Read-only Memory) 2 × n Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Rangkaian Dekoder 2-ke-4 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Dekoder 2-ke-4 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan always I if-then, case Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Code dan simulasi! Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Rangkaian Dekoder 3-ke-8 I Dekoder 3-ke-8 dapat tersusun dari 2 buah dekoder 2-ke-4 (mis: asumsi active-high) I Dekoder 4-ke-16 dapat tersusun dari 5 dekoder 2-ke-4. Bagaimana? Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Susunan tersebut disebut pohon dekoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen 74138: Dekoder 3-ke-8 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Dekoder 3-ke-8 (Active low) Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan always I if-then, case Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Code dan simulasi! Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Desain Blok Rangkaian Kombinasional Demultiplekser @2011,Eko Didik Widianto I I Desain Rangkaian Logika Sebuah multiplekser memilih satu dari n masukan data menjadi satu keluaran Blok Rangkaian Kombinasional Demultiplekser melakukan sebaliknya, yaitu menempatkan nilai satu masukan ke salah satu dari n jalur keluaran Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 I n Dapat diwujudkan menggunakan dekoder n − ke − 2 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen HDL: Demultiplekser 2-ke-4 Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder I Menggunakan always I case Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser I Code dan simulasi! Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Dekoder BCD-ke-7 Segment Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen Dekoder Hexa-ke-7 Segment Desain Blok Rangkaian Kombinasional @2011,Eko Didik Widianto Desain Rangkaian Logika Blok Rangkaian Kombinasional Multiplekser Enkoder Demultiplekser Dekoder Dekoder 2-ke-4 Dekoder 3-ke-8 Demultiplekser Dekoder BCD-ke-7 Segmen Dekoder Hex-ke-7 Segmen