Desain Blok Rangkaian Kombinasional

advertisement
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
Download