You are on page 1of 9

MODUL 3 RANGKAIAN LOGIKA KOMBINASIONAL

Hafizh Al Fikry (18014044)


Asisten:Khairul Hakim(18012039)
Tanggal Percobaan: 13/10/2015
EL2142-Praktikum Sistem Digital dan Mikroprosesor

Laboratorium Dasar Teknik Elektro Sekolah Teknik Elektro dan Informatika


Abstrak
Kita telah menganalisis beberapa
permasalahan gerbang logika yang
memberikan fungsi keluaran berbedabeda. Pada realita, gerbang logika tidak
memiliki sifat se-ideal simulasi yang telah
kita lakukan. Pada percobaan ini, kita
akan menganilisis salah satu sifat
rangkaian, yaitu waktu tunda. Kita akan
menggunakan rangkaian sederhana serta
BCD-to-7-segment untuk menganalisis
waktu tunda dalam rangkaian logika
kombinasional. Waktu tunda paling lama
dalam suatu rangkaian disebut worst case
delay.

Kata kunci: rangkaian logika


kombinasional, worst case delay,
BCD-to-7-Segment.
1. PENDAHULUAN
Implementasi fungsi gerbang logika pada
rangkaian
dapat
dilakukan
dengan
berbagai cara, salah satunya adalah
rangkaian
logika
kombinasional.
Rangkaian logika kombinasional hanya
melihat masukan yang diterima tanpa
dipengaruhi keluaran fungsi gerbang
logika
sebelumnya,
sehingga
dapat
dikatakan bahwa rangkaian ini merupakan
salah satu rangkaian yang memiliki cara
kerja paling sederhana.

kombinasional,
serta
akan
diidentifikasikan jeda waktu paling lama
(worst case delay path) pada rangkaian
ini. Dua metoda berbeda akan digunakan,
yaitu dengan level abstraksi struktural
serta level abstraksi behavioral.

2. STUDI PUSTAKA
Rangkaian gerbang logika dapat dibagi
menjadi
beberapa
bagian,
seperti
rangkaian logika kombinasional maupun
rangkaian
logika
sekuensial.
Adder,
encoder, decoder, dan substractor adalah
contoh dari aplikasi rangkaian logika
kombinasional. Pada praktiknya, terdapat
sifat-sifat gerbang logika yang tidak ideal
seperti waktu tunda (delay time) dari
gerbang logika. Selain itu, terdapat
beberapa level abstraksi yang dapat
digunakan
seperti
level
abstraksi
struktural maupun behavioral.

2.1 RANGKAIAN KOMBINASIONAL


Rangkaian kombinasional didefinisikan
sebagai tipe rangkaian logika yang
diimplementasikan
menggunakan
persamaan boolean, dengan keluaran
adalah fungsi murni masukan. Rangkaian
kombinasional tidak memiliki memori
penyimpanan
logika,
sehingga
hasil
keluaran gerbang logika sebelumnya tidak
akan berpengaruh pada fungsi logika
rangkaian ini.

Pada percobaan sebelumnya, kita hanya


memperhatikan fungsi masukan serta
keluaran
gerbang
logika,
tanpa
mempertimbangkan realita yang tidak
bersifat ideal. Salah satu bentuk ketidakidealan tersebut adalah jeda waktu (delay)
rangkaian logika.

Pada
percobaan
ini,
kita
akan
menggunakan salah satu aplikasi dari
rangkaian kombinasional, yaitu BCD-to-7Segment, yang akan dijelaskan pada
bagian berikut.

Percobaan ini akan mengimplementasikan


BCD-to-7-Segment, salah satu rangkaian

BCD-to-7-Segment
adalah
rangkaian
kombinasional yang menerima 4 buah

2.2 BCD-TO-7-SEGMENT

masukan (4 bit) dan menghasilkan


keluaran berupa gambar visual yang
merepresentasikan angka biner tersebut
dalam basis desimal. Untuk lebih jelasnya,
perhatikan Gambar 2-1 berikut:

interkoneksi
antara komponen yang
digunakan.
Level abstraksi struktural adalah tingkat
abstraksi
dengan
implementasi
menggunakan fungsi gerbang logika, baik
secara skematik maupun bahasa VHDL.
Level
abstraksi
physical
adalah
implementasi
langsung,
seperti
menggunakan FPGA maupun rangkaian
digital lainnya.

3. METODOLOGI

Gambar 2-1 BCD-to-7-Segment

Setiap segment yang menyala (a-g) akan


merepresentasikan sebuah gambar visual.
Sebagai contoh, angka 0 (0000) memiliki
keluaran
1111110,
maka
hanya
segment g yang berbeda (sisanya
membentuk angka 0).

2.3 WORST CASE DELAY


Worst case delay didefinisikan sebagai
waktu tunda terlama yang terdapat pada
suatu rangkaian gerbang logika.

Gambar 2-2 Waktu Tunda Rangkaian

Perhatikan gambar (Gambar 2-2) diatas.


Waktu tunda dari masukan ke keluaran
fungsi gerbang logika tersebut adalah
jarak antara dua buah garis merah yang
ditampilkan pada waveform tersebut.

2.4 LEVEL ABSTRAKSI


Dalam
perancangan
fungsi
gerbang
logika, ada tiga level abstraksi yang dapat
digunakan,
yaitu
level
abstraksi
behavioral, struktural, serta physical.
Level abstraksi behavioral adalah tingkat
abstraksi
yang
mengimplementasikan
sesuai dengan perilaku sistem, bukan

Percobaan ini dapat dibagi menjadi 3


bagian,
yaitu
pembuatan
rangkaian
kombinasional sederhana, implementasi
BCD-to-7-Segment dengan persamaan
Boolean,
serta
implementasi
menggunakan level abstraksi behavioral.
Pada percobaan pertama, kita akan
membuat
sebuah
rangkaian
kombinasional
sederhana
dengan
1
masukan, 2 keluaran, serta CLOCKDIV,
gerbang NAND dan gerbang NOT.
Berikut
ini
adalah
file
konfigurasi
CLOCKDIV yang digunakan (Gambar 3-1):

Gambar 3-1 Script untuk CLOCKDIV

Kode yang digunakan diatas berfungsi


untuk memperlambat fungsi keluaran. Hal
ini
bertujuan
untuk
mempermudah
analisis waktu tunda pada simulasi timing
yang akan dilakukan nantinya.
Secara skematik, kita akan membuat
rangkaian seperti gambar 3-2 berikut ini:

Gambar 3-2
Skematik

Pada
percobaan
diatas,
kita
akan
menganalisis
perbedaan
simulasi
Functional serta simulasi Timing yang
akan dieksekusi.
Percobaan
selanjutnya
adalah
mengimplementasi
BCD-to-7-Segment
dengan pendekatan struktural, yaitu
menggunakan persamaan boolean (SOP)
yang disederhanakan seperti kode pada
gambar 3-3 berikut ini:

Sketsa

Rangkaian

dengan

Gambar 3-3 Kode File Bcd_7seg.vhd

Persamaan boolean yang akan


gunakan adalah sebagai berikut:

kita

A<=D3 or D1 or (D2 and D0) or ((not


D2) and (not D0));
B<=(not D2) or ((not D1) and (not D0))
or (D1 and D0);
C<=(not D1) or D0 or D2;
D<=((not D2) and (not D0)) or ((not D2)
and D1) or ((not D0) and D1) or ((not D1) and
D2 and D0) or D0 or D3;
E<=((not D2) and (not D0)) or ((not D0)
and D1);
F<=((not D1) and (not D0)) or ((not D1)
and D2) or ((not D0) and D2) or D3;
G<=((not D2) and D1) or ((not D0) and
D1) or ((not D1) and D2) or D3;

Gambar 3-4 Sketsa Rangkaian BCD-to-7Segment dengan Skematik

Setelah
menggunakan
pendekatan
struktural
(menggunakan
persamaan
Boolean),
berikut
ini
kita
akan
menggunakan implementasi dengan level
abstraksi behavioral. Berikut ini adalah
kode / script yang digunakan dalam
percobaan ketiga (Gambar 3-5):

Persamaan logika tersebut didapatkan dari


K-Map tabel kebenaran fungsi BCD-to-7Segment referensi yang digunakan. Dalam
menghubungkan
fungsi
persamaan
boolean diatas kedalam FPGA DE-1, kita
menggunakan skema berikut ini (Gambar
3-4):

Gambar 3-5 Script Pendekatan Abstraksi


Behavioral

Kita akan mengimplementasikan kode


tersebut dengan simulasi testbench, yang
akan menggunakan kode berikut ini
(Gambar 3-6):

yang akan dianalisis adalah perbedaan


metode struktural dengan behavioral yang
digunakan diatas.

4. HASIL DAN ANALISIS


Percobaan ini dibagi menjadi 3 segmen
utama, yaitu menggunakan rangkaian
kombinasional sederhana, rangkaian BCD,
serta
merancang
rangkaian
BCD
menggunakan level abstraksi behavioral.
Berikut ini adalah hasil serta analisis dari
percobaan ini.

4.1 MEMBUAT RANGKAIAN


SEDERHANA

Gambar
3-6
Script
Abstraksi Behavioral

Testbench

untuk

Pada
percobaan
ini,
kita
akan
menganalisis waktu jeda yang diberikan
oleh rangkaian logika yang digunakan.
Berikut ini adalah hasil simulasi gerbang
logika secara Functional (Gambar 4-1):

Seperti yang telah dilakukan pada


percobaan
sebelumnya,
kita
dapat
mensimulasikan
kode
diatas
menggunakan script sim.do berikut ini
(Gambar 3-7):

Gambar 4-1 Hasil Functional Waveform

Gambar 3-7 Script sim.do

Langkah akhir yang dilakukan adalah


mengimplementasikan kode tersebut pada
rangkaian FPGA DE-1 yang tersedia.
Setelah itu, kita akan membandingkan
hasil yang didapatkan dari percobaan
kedua dengan percobaan ini. Komparasi

Pada waveform tersebut, ada 3 buah pin


yang digunakan yaitu CLK[0], GPIO[15] /
keluaran NAND gate, serta GPIO[16] /
keluaran NOT gate.
Fungsi logika yang digunakan pada
GPIO[15] adalah CLK[0] NAND (NOT
CLK[0]) sedangkan fungsi logika yang
digunakan pada GPIO[16] adalah (NOT
CLK[0]).
Berikut ini adalah tabel kebenaran dari
masukkan yang diberikan:
Tabel 4-1 Tabel Kebenaran Rangkaian
Sederhana

CLK[0]
0
1

GPIO[15]
1
1

GPIO[16]
1
0

Dari simulasi fungsional ini kita melihat


adanya suatu delay. Delay ini akan kita
gunakan untuk menganalisis rangkaian
menggunakan simulasi Timing berikut ini
(Gambar 4-2).

Dengan menggunakan implementasi


persamaan boolean dengan bahasa VHDL,
kita akan mendapatkan hasil berikut
(Gambar 4-3):

Gambar 4-2 Hasil Simulasi Timing Waveform

Gambar 4-3 Hasil Simulasi Functional BCDto-7-Segment

Dari waveform tersebut, kita dapat


mengamati
perbedaan
utama
dari
simulasi fungsional dengan timing adalah
jeda waktu yang terdapat di waveform
keluaran. Pada simulasi functional, waktu
saat terjadinya perubahan logika 1
menjadi 0 pada GPIO[16] adalah 490 ns,
sedangkan grafik diatas menunjukkan
497,3 ns.

Dengan
menggunakan
simulasi
Functional, kita dapat menguji kebenaran
dari persamaan logika (SOP/POS) yang
kita
implementasikan
seperti
tabel
kebenaran berikut:

Dari data tersebut, kita bisa mendapatkan


waktu tunda:
GPIO[16] = 497,3 ns 490 ns = 7.3 ns
Dengan demikian, waktu tunda dari
rangkaian kombinasional (NOT gate) yang
digunakan adalah 7.3 ns. Berdasarkan
referensi, waktu tunda yang dimiliki
inverter / NOT gate adalah antara 3 15
ns, sehingga hasil percobaan ini masih
masuk dalam rentang waktu tersebut.
Simulasi menggunakan Timing jelas lebih
memodelkan situasi ideal yang ada di
dunia nyata, karena memperhitungkan
efek waktu tunda dari rangkaian yang
digunakan.
Hasil percobaan ini sesuai dengan
landasan
yang
telah
diuraikan
sebelumnya, bahwa setiap rangkaian
logika, dalam kasus ini rangkaian logika
kombinasional, memiliki waktu tunda
(delay time) yang tidak nol.

4.2 MEMBUAT RANGKAIAN BCD

Tabel 4-2 Tabel


BCD-to-7-Segment

D
3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

D
2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

D
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

D
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

Kebenaran

Rangkaian

1
0
1
1
0
1
1
1
1
1

1
1
1
1
1
0
0
1
1
1

1
1
0
1
1
1
1
1
1
1

1
0
1
1
0
1
1
0
1
1

1
0
1
0
0
0
1
0
1
0

1
0
0
0
1
1
1
0
1
1

0
0
1
1
1
1
1
0
1
1

Hasil simulasi functional yang kita


implementasikan menunjukkan hasil yang
tidak sesuai dengan referensi BCD-to-7Segment yang ada.
Hal ini terjadi karena kami menggunakan
basis active low, yang artinya lampu
menyala ketika diberikan logika 0.
Simulasi
Timing
pada
rangkaian
kombinasional
BCD-to-7-Segment

memberikan hasil keluaran / waveform


berikut ini.

Hasil
simulasi
dalam
ModelSim
menghasilkan
waveform
berikut
ini
(Gambar 4-6):

Gambar 4-4 Hasil Simulasi Timing BCD-to-7Segment

Secara visual (Gambar 4-4), kita dapat


melihat perbedaan mendasar dari simulasi
Functional dengan Timing, yaitu dari
waktu jeda yang dihasilkan oleh keluaran.
Hasil implementasi fungsi logika kedalam
FPGA ditunjukkan pada gambar berikut ini
(Gambar 4-5):

Gambar 4-6 Simulasi BCD-to-7-Segment


ModelSim

Hasil
sinyal
keluaran
dapat
direpresentasikan dengan tabel kebenaran
berikut ini (Tabel 4-4):
Tabel 4-3
ModelSim

Gambar
4-5
Implementasi
Segment pada FPGA

BCD-to-7-

Pada contoh implementasi tersebut,


switch menunjukkan 0000. Rangkaian
kombinasional
ini
diimplementasikan
dengan basis active low, yang artinya
lampu menyala ketika diberikan logika 0.

4.3 MERANCANG BCD 7SEG DENGAN


LEVEL ABSTRAKSI BEHAVIORAL
Pada
bagian
4.2,
kita
telah
mengimplementasikan rangkaian BCD-to7-Segment
menggunakan
persamaan
logika Boolean (SOP/POS). Selain cara
tersebut,
kita
dapat
mengimplementasikan fungsi gerbang
logika
menggunakan level
abstraksi
behavioral, yang hasil implementasinya
akan dibahas mendetail pada bagian ini.

Tabel

Kebenaran

dengan

D3 D2 D1 D0 A
B
C
D
E
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
Dari tabel kebenaran diatas (Tabel 4-4),
kita
dapat
menyimpulkan
bahwa
implementasi menggunakan persamaan
logika
boolean
maupun
abstraksi
behavioral memberikan hasil keluaran
yang sama.
Berikut ini adalah tabel analisis perbedaan
dari tingkat abstraksi behavioral maupun
struktural
(percobaan
4-2)
yang
digunakan:
Level Struktural

Level Behavioral

F
1
0
0
0
1
1
1
0
1
1

G
0
0
1
1
1
1
1
0
1
1

Pengertia
n

Kelebiha
n

Kekurang
an

mendetail
, baik
dengan
pendekat
an
skematik
maupun
bahasa
VHDL

Mengguna Menggunakan
kan
implementasi perilaku
gerbang
langsung suatu
dan
rangkaian, seperti 1
komponen pada BCD-to-7logika
Segment
yang
direpresentasikan
memenuh dengan 0110000
i
persamaa
n logika
boolean
Dapat
Dapat
diimpleme diimplementasikan
ntasikan
tanpa merumuskan
tanpa
persamaan logika
melihat
/masukkan sistem
keluaran
secara
langsung
Harus
Semua keluaran harus
menformu dijabarkan.
lasikan
Contohnya: Sebuah
fungsi
persamaan 4 variabel
persamaa
n logika
yang
digunakan
secara
menghasilkan 16 keluaran, maka
kita harus mendefinisikan semua
(16 keluaran)

5. KESIMPULAN
Dalam menjalankan simulasi, ada 2
kategorial utama yang dapat digunakan,
seperti simulasi fungsional (bagian awal
setiap percobaan), serta simulasi timing

(bagian akhir setiap percobaan). Simulasi


Functional hanya menampilkan keluaran
fungsi gerbang logika, sedangkan simulasi
Timing memperhitungkan waktu tunda
(delay) dari suatu rangkaian. Sebagai
contoh (percobaan 4-1), memiliki waktu
tunda selama 7,3 ns yang dapat
dianalisis dari simulasi Timing.
Setiap rangkaian gerbang logika memiliki
waktu
tunda
(delay
time)
pada
implementasinya di dunia nyata. Secara
keseluruhan, waktu tunda paling lama
yang terdapat dalam suatu rangkaian
dapat
disimulasikan
dengan
mengidentifikasi worst case delay path.
Dalam mengimplementasikan gerbang
logika, ada beberapa tingkatan yang
dapat digunakan, seperti level abstraksi
behavioral maupun struktural. Level
abstraksi struktural (percobaan 4-2) serta
level abstraksi behavioral (percobaan 4-3)
memiliki
kelebihan
dan
kekurangan
masing-masing. Implementasi abstraksi
behavioral memerlukan keluaran (output)
langsung dari fungsi logika, sedangkan
struktural membutuhkan masukan (input)
dari fungsi logika seperti persamaan
boolean logika tersebut.

6. DAFTAR PUSTAKA
[1]

Brown, Stephen et Zvonko Vranesic,


Fundamentals of Digital Circuit with
VHDL Design 3. McGraw-Hill, USA,
2009

[2]

Mervin T. Hutabarat, Arif Sasongko.


Praktikum
Sistem
Digital
dan
Mikroprosesor. Laboratorium Dasar
Teknik Elektro, Institut Teknologi
Bandung, 2015

You might also like