Desain TKC305 - Sistem Lanjut Desain Eko Didik Sistem Komputer - Universitas Diponegoro Review Kuliah Sebelumnya dibahas tentang metodologi desain sistem digital menggunakan Xilinx ISE dan pengantar HDL (Verilog) Berikutnya akan dibahas tentang desain HDL untuk blok rangkaian kombinasional, meliputi: Referensi: desain rangkaian logika dengan kebutuhan spesifikasi ditentukan multiplekser 2-ke-1, 4-ke-1, 16-ke-1 enkoder biner 4-ke-2 (one-hot encoding), enkoder prioritas dekoder/demultiplekser 3-ke-8 dekoder BDC/hex ke 7-segmen 1. Verilog Tutorial (online): http://www.asic-world.com/verilog/veritut.html 2. Stephen Brown and Zvonko Vranesic, Fundamentals of Logic with Verilog/VHDL, 2nd Edition, McGraw-Hill, 2005 Desain
Bahasan Desain Desain Desain dan Sekuensial digital: kombinasional dan sekuensial kombinasional Nilai keluaran rangkaian di suatu waktu hanya ditentukan oleh nilai dari masukannya di waktu tersebut sekuensial Tidak ada penyimpanan informasi atau ketergantungan terhadap nilai sebelumnya Misalnya: multiplekser, enkoder, dekoder, demux, ALU Desain 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 Register, counter
Bahasan Desain Desain Desain Desain Problem Desain Ditentukan fungsi 4-variabel: f = 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 Desain Desain
Penyederhanaan Fungsi Penyederhanaan dengan K-map Desain Desain f 1,min = (x 1 + x 3 ) (x 2 + x 3 ) (x 2 + x 4 ) f 2,min = x 1 x 2 + x 2 x 3 + x 1 x 3 x 4 1. Desain Menggunakan Primitive Gate Menggunakan masukan skematik Gate telah tersedia sebagai pustaka Desain Desain
Deskripsi Struktural Hasil Generate file HDL dari skematik Desain Desain Gerbang Register Transfer Level (RTL) Primitive Gate Sudah Tersintesis Desain Desain
2. Menggunakan Operator Bitwise di HDL Operator Deskripsi ~ Bitwise NOT & Bitwise AND Bitwise OR ^ Bitwise XOR ^~ atau ~^ Bitwise XNOR Desain Desain File desain: design_example_1.v Deskripsi struktural dan perilaku File testbench: design_example_1_tb.v 012345 2567895045 793 793 793 793 133 66789 592012345 Skematik RTL RTL Menggunakan LUT (look-up table) Desain Desain
3. Menggunakan Case (design_example_2.v) Deskripsi struktural dan perilaku Desain prosedural dalam blok always Menggunakan sensitivity list Desain Desain Skematik RTL RTL Menggunakan LUT Desain Desain
Bahasan Desain Desain Desain Desain Testbench / Test Fixture Masukan: x1, x2, x3, x4 Untuk module: design_example: UUT, output: f1 design_example_1: UUT1, output: f2 design_example_2: UUT2, output: f3 Desain Desain
Diagram Pewaktuan Hasil Ketiga Desain Desain Desain Preferensi Desain Desain Desain Mana yang dipilih?
Bahasan Desain Desain Desain (MUX) Sebuah rangkaian multiplekser (MUX) mempunyai N buah masukan SELECT s Maksimal 2 N jalur data masukan x n Satu jalur keluaran f Disebut juga selektor, karena bekerja untuk memilih jalur masukan yang akan dilewatkan ke keluaran sesuai dengan nilai SELECT MUX 2-masukan s f (s, x 1, x 2 ) 0 x 1 1 x 2 Desain
HDL: 2 Jalur Masukan Implementasi HDL untuk MUX-2 atau multiplekser 2-ke-1: 1. Secara struktural menggunakan continous assignment operator bitwise (AND &, OR, NOT ~) operator kondisional (?) 2. Secara prosedural menggunakan if-then dalam blok always Kode dan simulasi! desain testbench Desain HDL MUX-2 012345 03 793 6 793 133 133 133!58 133!58 "" 6!3#3!4 66789 6$ 66789 %6 6 ""!1#523!4 4&'6 ( 1! 6 )5879 592 7 6 * 5465 * #65 6 +) * +) * 592#65 MUX 2-masukan s f (s, x[0], x[1]) 0 x[0] 1 x[1] Desain 592012345
Skematik RTL MUX-2 Desain MUX-2 Test Fixture 012345 0367879 39 5 5 6 3939 5 8 9995 9 5!9!25 "59 #!!"$ 03678 339 # %#$%6#6$%#$%8#8$%#$%#$$ 94 5 94&5 39 ' 6 ' (22 90343 55 ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) ' 6 ' 8* ) + 52 52012345 Desain
MUX-2 Desain 4 Jalur Masukan MUX-4 memilih satu dari 4 data masukan yang akan dilewatkan ke keluaran Ditentukan oleh nilai 2 jalur SELECT (s 0, s 1 ) Dapat dikonstruksi menggunakan 3 buah MUX 2-masukan Desain
HDL dan Test Fixture MUX-4 HDL prosedural menggunakan blok always 012345 03 793 6 793 133!58 4&'6 (6 1! )5879 592 #65 6 +) +) +) +) 592#65 592012345 secara exhaustive (semua kemungkinan nilai masukan diuji) Tidak praktis untuk jumlah masukan banyak (mis: 6 masukan akan butuh 32 pola uji), perlu desain pola uji yang efisien 012345 0367879 39 5 5 6 3939 5 9995 95 9 25 59! " 03678 339!#!"$#6!6"$#!"" 94 5 % 6 % & % '( 6%8( ### & % '( 6%8( & % '( 6%8( ### & % '( 6%8( & % '( 6%8( ### & % '( 6%8( & % '( 6%8( ### & % '( 6%8( 52 52012345 Desain 74LS151: 8 jalur Desain
HDL DM74LS151M 012345 03,-. 793 - / 793 0 793 1 793 2 793 3 133!58 4 133!58 5 4&'6 (0 1! / 1! 1 1! 2 1! 3 )5879 7 0 )5879 4 * 5 * 592 5465 )5879 #65 63217 +) )5879 4 / 5 %/ 592 +) )5879 4 / 5 %/ 592 +) )5879 4 / 5 %/ 592 +) )5879 4 / 5 %/ 592 +) )5879 4 / 5 %/ 592 +) )5879 4 /. 5 %/. 592 +) )5879 4 /8 5 %/8 592 +) )5879 4 /- 5 %/- 592 592#65 592 592 592012345 Desain Tugas Mahasiswa (#5) Download datasheet untuk masing-masing IC TTL berikut: 74157 atau 74158: quad 2-line to 1-line data selector/multiplexer, noninverting / inverting 74153: dual 4-line to 1-line data selector/multiplexer 74151 atau 74152: 8-line to 1-line data selector/multiplexer 74251: 8-line to 1-line data selector/multiplexer with complementary three-state outputs Buat kode HDL untuk IC tersebut di atas Buat file testbench (test fixture) dan simulasikan Desain
Bahasan Desain Desain Desain One-hot Encoding: Salah Satu Masukan Harus 1 mengurangi jumlah bit yang diperlukan untuk merepresentasikan suatu informasi (data) Contoh penggunaan untuk transmisi informasi dalam sistem digital sehingga mengurangi jumlah saluran transmisi, atau ruang penyimpanan Desain
Prioritas Salah satu kelas enkoder: enkoder prioritas Sinyal masukan mempunyai level prioritas Keluaran enkoder menunjukkan masukan aktif yang mempunyai prioritas tertinggi Jika masukan dengan prioritas tinggi assert, masukan dengan prioritas lebih rendah diabaikan Asumsi: w3 mempunyai prioritas lebih tinggi daripada w0 Keluaran z (is_zero) menunjukkan bahwa tidak ada masukan bernilai 1 Keluaran y1, y0 akan Z (high-impedance) Persamaan fungsi yo, y1 dan z? Desain HDL Prioritas 012345 5,125778# 39 13939 5-13939 5 & $ 4-.#$ 5,56 #$ * 5 -'8*/ &' 52 * 5 -'8* &' 52 *6 5 -'8* &' 52 *66 5 -'8* &' 52 *666 5 -'8* &' 52 52,5 52 52012345 Desain Note: Casez: z dianggap don t care Casex: x dan z dianggap don t care
Testbench 012345 5012577879 39 5 3939 5-5 & 9995 9 5!9!25 "59 #!!"$ 5,125778 339 #%#$%-#-$%&#&$$ 94 5 94&5 39 ' (22 90343 55 ) ' * -'& &' ) ' * -' &' ) ' * -' &' ) ' * -' &' ) ' * -' &' ) ' * -' &' ) + 52 52012345 Desain HDL Desain
Tugas Mahasiswa (#5) Download datasheet untuk masing-masing IC TTL berikut: 74148: 8-line to 3-line priority encoder 74348: 8 to 3-line priority encoder with three-state outputs Buat kode HDL untuk IC tersebut di atas Buat file testbench (test fixture) dan simulasikan Desain Bahasan Desain Desain Desain
Demultiplekser Sebuah multiplekser memilih satu dari n masukan data menjadi satu keluaran Demultiplekser melakukan sebaliknya, yaitu menempatkan nilai satu masukan ke salah satu dari n jalur keluaran Dapat diwujudkan menggunakan dekoder n ke 2 n Desain Dekoder dekoder: mendekode informasi (data) terkode Mempunyai N masukan data dan 2 N keluaran (mis: dekoder 3 masukan mempunyai 8 jalur keluaran) Hanya satu keluaran yang di-assert (diaktifkan) dalam satu waktu (one-hot decoding) Assert: ke nilai 1 (logika positif/active-high) atau 0 (logika negatif/active-low) Tiap keluaran ditentukan oleh satu valuasi nilai masukan Masukan ENABLE (En) digunakan untuk mematikan (disable) keluaran Asumsi keluaran active-high: Jika En=0, tidak ada keluaran dekoder yang di-assert Jika En=1, satu keluaran di-assert sesuai valuasi masukan Desain
Dekoder atau Demultiplekser? Dekoder dan demultiplekser mempunyai struktur port yang sama 1 jalur masukan En n jalur masukan w 2 n jalur keluaran y Dekoder: n masukan w merupakan jalur data dan En sebagai jalur enable untuk mengaktifkan dekoder Demultiplekser: n masukan w sebagai selektor dan En sebagai jalur data yang akan dilewatkan ke keluaran Desain Aplikasi Dekoder: Pengalamatan ROM Dekoder seringkali digunakan untuk mendekodekan jalur alamat chip memori Misalnya di ROM (Read-only Memory) 2 m n Desain
Dekoder 2-ke-4 Desain HDL Dekoder/Demultiplekser 2-ke-4 012345 25,787# 39 1 39 13939 5 - $ 4-.#1 1 $ 5 #1''$ - ' * 545 5,5 #$ 8* - ' * 8* - ' * 8* - ' * 8* - ' * 52,5 52 52 52012345 Testbench 012345 25)7'7879 Desain 39 5 * 5 3939 5 + 9995 95 9 25 59! " 25)7'78 339!#*!*"$#!"$#+!+"" 94 5 94,5 39 * % % -22 90343 55 & * % % '( & * % % '( & * % % '( & * % % '( & * % % '( &. 52 52012345
Dekoder 2-ke-4 Desain Dekoder 3-ke-8 Dekoder 3-ke-8 dapat tersusun dari 2 buah dekoder 2-ke-4 (mis: asumsi active-high) Dekoder 4-ke-16 dapat tersusun dari 5 dekoder 2-ke-4. Bagaimana? Susunan tersebut disebut pohon dekoder Desain
74138: Dekoder 3-ke-8 (Active-low) Desain Kode HDL 74138 012345 25,1257243# 39 8 ( 39 439 48(39 485 13939 5 2 6 $ 4-.#( 1 4 1 48( 1 485$ 5 # #4 '' $ 77 ##48( 7 485$ '' $$ 6 ' 3* 6 0 5443 3* 545 5,5 #($ 6 0 05039 ( * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 * 5 6 ' 3* 52 52,5 52 52 52012345 Desain
Tugas Mahasiswa (#5) Download datasheet untuk masing-masing IC TTL berikut: 74138: 3 to 8-line decoder/demultiplexer 74139: dual 2 to 4-line decoder/demultiplexer 74237: 1-of-8 decoder/demultiplexer with address latch, active high outputs Buat kode HDL untuk IC tersebut di atas Buat file testbench (test fixture) dan simulasikan Desain Bahasan Desain Desain Desain
Dekoder BCD-ke-7 t Desain Dekoder Hexa-ke-7 t Desain
Kode HDL Dekoder BCD-ke-7 012345 25,79172505# 39 7 13939 5 ( 13939 5 5 13939 5 8 13939 5 9 13939 5 1 13939 5 : 13939 5 4$ 4-.#7$ 5 52,5 #7$ ;<55 012345 9569; * =(5891:4>?' 2* ;; * =(5891:4>?' 2* ;; * =(5891:4>?' 2* ;8; * =(5891:4>?' 2* ;; * =(5891:4>?' 2* ;; * =(5891:4>?' 2* ;@; * =(5891:4>?' 2* ;A; * =(5891:4>?' 2* ;2; * =(5891:4>?' 2* ;3; * =(5891:4>?' 2* ;B; Desain 25349 =(5891:4>?' 2* ;C 39 5D5 5; 52,5 52012345 Tugas Mahasiswa (#5) Download datasheet untuk masing-masing IC TTL berikut: 7446 atau 7447 atau 7448 atau 7449 atau 74246 atau 74247 atau 74248 atau 7449 Buat kode HDL untuk IC tersebut di atas Desain Buat file testbench (test fixture) dan simulasikan