Anda di halaman 1dari 18

MODUL II PENGENALAN DESAIN MENGGUNAKAN FPGA

Rosana Dewi Amelinda (13213060)


Asisten: Richard Dharmadi (13211073)
Tanggal Percobaan: 10/10/2014
EL2102-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB
Abstrak
Abstrak Pada praktikum Modul II Pengenalan Desain
menggunakan FPGA ini, dilakukan bebrapa percobaan yaitu
mendesain full adder dengan pendekatan skematik dan Bahasa
VHDL, mendesain 4-bit Ripple Carry Adder dengan
VHDL, mendesain 4-bit adder dengan skematik, melakukan
simulasi sederhana denfan menggunakan Modelsim, membuat
Testbench dan melakukan proses tapping sinyal dari sebuah
desain. Hasil yang didapatkan dari percobaan kemudian
dicocokan dengan hasil perhitungan /truth tabel.
Kata kunci: FPGA, VHDL, ALTERA, Modelsim.
1.

PENDAHULUAN

FPGA
(Field-Programmable
Gate
Array)
merupakan sebuah IC yang sering digunakan untuk
mengimplementasikan rangkaian digital. FPGA
berbentuk
komponen
elektronika
dan
semikonduktor yang terdiri dari komponen
gerbang terprogram (programmable logic) dan
sambungan terprogram. Komponen gerbang
tersebut meliputi jenis gerbang logika biasa (AND,
OR, NOT) maupun jenis fungsi matematis dan
kombinatorik yang lebih kompleks, seperti decoder,
adder, substactor, multiplier, dll [1]. Hardware yang
digunakan
pada
FPGA
berupa
Bahasa
pemrograman VHDL dan Verilog. VHDL (Very
High Speed Integrated Hardware Description
Language) termasuk Bahasa pemodelan yang
digunakan untuk merancang atau memodelkan
rangkaian digital. Pemakaian FPGA mempunyai
banyak keuntungan dibandingkan pemakaian IC
TTL dan CMOS. Selain jumlah gerbangnya yang
jauh lebih banyak, kemudahan, kecepatan dan
flexibilitas proses rancang bangun merupakan
kelebihan FPGA. Selain itu, konsumsi dayanya jauh
lebih sedikit. [2]
Dari praktikum
mahasiswa dapat :

modul

II

ini,

2.

STUDI PUSTAKA

FPGA
Secara umum alur perancangan rangkaia digital
dengan menggunakan FPGA dari ALTERA dapat
daigambarkan seperti flowchart pada Gambar 1.
FULL ADDER
Keunggulan FULL-ADDER bila dibandingakan
dengan HALF-ADDER adalah kemampuan-nya
menampung dan menjumlahkan bit CARRY-in
(Cin) yang berasal dari CARRY-out (Cout) dari
tahapan sebelumnya. Oleh karenanya fungsi FULLADDER itu sendiri adalah menjumlahkan ketiga bit
input yaitu bit A, bit B dan Cin untuk manghasilkan
dua bit output yaitu S dan Cout.
Dengan menginterpresentasikan fungsi dan melihat
format operasi rangkaian FULL ADDER, table
kebenaran
dapat
disusun
untuk
setiap
kemungkinan kombinasi ketiga bit input.
Diasumsikan input berasal dari sumber logika
positif dan output berupa ACTIVE HIGH.
Langkah selanjutnya adalah membuat K-Map orde
2 dari table kebenaran tersebut. K-Map ini akan
membantu merumuskan fungsi logika dari S dan
Cout.

diharapkan

a.

Mempelajari teknik perancangan rangkaian


digital dengan target FPGA.

b.

Melakukan perancangan rangkaian digital


denfan target FPGA baik menggunkan
pendekatan skematik maupun bahasa
VHDL
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 1 Flowchart umum proses perancangan

Gambar 2 Rangkaian Full Adder

Terdapat bebrapa jenis rangkaian FULL ADDER,


yaitu PARALLEL ADDER, LOOL AHEAD CARRY
ADDER, dan CARRY SAVE ADDER dimana
masing-masing
mamiliki
kelebihan
dan
kekurangannya.

2.1

JUDUL SUB-BAB

Judul sub-bab praktikum modul II ini yaitu :

Table 1 Tabel kebenaran dan K-Map dari Full Adder

3.

1.

Mendesain FULL ADDER dengan skematik

2.

Mendesain
FULL
ADDER
pendekatan bahasa VHDL

3.

Mendesain 4-bit RIPPLE CARRY ADDER


dengan VHDL

4.

Mendesain 4-bit ADDER dengan skematik.

5.

Simulasi
modelsim

6.

Membuat Testbench

7.

Melakukan proses tapping sinyal dari


sebuah desain

sederhana

dengan

menggunakan

METODOLOGI

Peralatan yang digunakan


Implementasikan rangkaian FULL-ADDER dibuat
berdasarkan persamaan ekspresi logika diatas.
Rangkaian ini dapat tersusun dari dua buah HALFADDER (HA1 dan HA2), seperti terlihat pada
gambar 2.
Untuk penjumlahan dengan jumlah bit yang lebih
banyak, dapat dilakukan dengan menambahkan
rangkaian HALF-ADDER, sesuai dengan jumlah bit
input. Di pasaran, rangkaian FULL ADDER sudah
ada yang berbentuk IC, seperti 74xx83 )4 bit FULLADDER).

a.

Computer (PC) yang


program Quartus II

telah

terinstal

b.

FPGA development board, tipe ALTERA


DE1
beserta
perlengkapannya
yang
meliputi :
o

Board FPGA tipe DE1

Catu daya + kabel dan konektor


tambahan

Kabel downloader USB-Blaster

Percobaan
1.

Mendesain FULL ADDER dengna skematik

a.

Membuat projek baru menggunakan Quartus II


9.0 sp2 Web Edition

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Dibuat folder baru di dalam folder


PraktikumSisDig
(D:\PraktikumSisDig\Kelompok11\Modul2\...)

Klik File -> New, pada jendela yang tampil


pilih Block Diagram/Schematic File sebagai
pilihan desain dan klik OK. Disimpan file
tersebut sebagai tutorial1.bdf.

Kemudian pada folder tersebut dibuat dua folder


baru yang bernama Tutorial1 dan Tutorial2
Dipilih File -> Page Setup dan Letter sebagai
ukuran kertas, klik OK
Dijalankan Quartus II 9.0 sp2 Web Edition
Dibuka jendela Symbol Tools dengan
mengklik tombol dengan ikon gerbang AND
pada bagian kiri jendela schematic editor.

Klik File -> New Project Wizard. Setelah ini akan


tampil jendela Introduction, Klik Next.

Pada kolom paling atas, ditekan tombol ...


yang ada disebelah kanan kemudian dicari folder
Tutorial1 yang sudah dibuat sebelumnya.
Diakhiri dengan menekan tombol Open.

Dicari komponen XOR pada folder


...\primitives\logic dan klik dua kali nama
komponen tersebut. Diujung panah mouse
akan muncul gambar komponen XOR dengan
2 masukan. Dicari posisi yang tepat pada
skematik dan di klik 1 kali pada posisi itu
untuk menempatkan gerbang XOR. Untuk
menyudahi ditekan tombol Esc atau klik
kanan dan dipilih cancel.

Kemudian pada kolom berikutnya diketikan


Tutorial1. Dipastikan pada kolom ketiga terisi
nama yang sama.

Klik Next untuk sampai ke jendela Add Files ,


lewati jendela ini dengan klik next kembali.

Diulangi langkah diatas untuk menempatkan


dua buah gerbang AND dengan 2 masukan
dan sebuah gerbang OR dengan 2 masukan
serta lima buah gerbang NOT.

Pada daftar Family untuk mendapatkan board


DE1 untuk Family pilih Cyclonell, kemudian
dalam bagian device pilih EP2C20F484C7.
Setelah itu klik Finish karena untuk langkah
berikutnya hanya menggunakan setting default.

Dibuka kembali jendela Symbol tools, kali ini


dibuka folder ..\primitives\Pin.

Dipilih jenis Input Pin dan ditempatkan 3


buah pada skematik. Siulangi langkah ini
untuk menempatkan 5 buah Output pin pada
skematik.
b.

Memilih dan Menempatkan komponen

c.

Menambahkan hubungan untuk membentuk


net

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

e.

Menetapkan I/O pin pada kaki FPGA

Dipilih Orthogonal Node Tool pada bagina


toolbar bagian kiri, untuk menggambarkan kabel.

Disimpan skematik, kemudian dipilih


Processing -> Start -> Start Analysis &
Synthesis atau Ctrl+K

Diarahkan ujung pointer mouse ke salah satu sisi


yang akan dihubungkan lalu klik kiri dan tahan
kemudian ditarik garis hingga ujung lain yang
diinginkan.

Dipilih Assignment -> Pin Planner

Akan terbuka sebuah jendela baru dimana


sebelah atas akan ada gambar FPGA
dengan posisi kaki-kakinya dan dibawa
ada daftar yang sudah berisi port inputoutput skematik.

d. Pelabelan Net dan pin I/O


Di klik dua kali pada port input/output yang akan
diubah namanya kemudian ubah nama dari pin
sesuai dengan yang pada gambar 3 ( A, B, C
untuk input dan SUM, CARRY , A_OUT ,
B_OUT , C_OUT untuk output.

Di klik diretion untuk mengurutkan pin


Untuk port masukan dibiarkan default value sebagai
VCC.

Pada kolom Location double-klik kiri


kolom yang sebaris dengan port yang
ditinjau. Akan muncul suatu daftar kaki
FPGA yang bisa dipakai.

Untuk percoban ini, digunakan switch


untuk masukan dan LED pada 7-segmen
untuk keluaran. LED pada DE1 bersifat
active low. Ketika terbuka/tidak ditekan
switch akan berlogika 1 karena ada
rangkaian pull-up dan jika
tertutup/ditekan akan berlogika 0,
sedangkan LED akan menyala ketika
mendapatkan imut LOW VOLTAGE dan
matiketika mendapatkan input HIGH
VOLTAGE.

Untuk pemasangnan kaki komponen pada


Pin Planner merujuk pada tabel 2
Table 2 Referensi kaki komponen

Nama Pin I/O

Kaki yang digunakan DE1

PIN_L22

PIN_L21

PIN_M22

A_OUT

PIN_J2

B_OUT

PIN_E2

C_OUT

PIN_H1

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

CARRY

PIN_D1

SUM

PIN_E1

f.

g.

Membuat waveform masukan

Dibuka kembali file Tutorial1.vwf dengan


menggunakan File -> Open ataupun Simulator
Tool -> Open

Pembuatan Netlist untuk simulasi


Dipilih Processing -> SImulator Tool
Di klik kiri pada port masukan A pada kolom
paling kiri file
Dipilih Simulation Mode menjadi Functional

Di klik pada tombol Generate Functional Simulation Netlist


(dipastikan tidak ada error

Di klik cek box disebelah kiri "Overwrite Simulation input


file with simulation result" agar setiap melakukan simulasi
hasilnya langsung ditampilkan pada file simulasi

Lalu dibuat file yagn digunakan sebagai sumber masukan


vektor simulasi dengan cara mengklik tombol open pada
bagian bawah jendela Simulator Tool. Lalu akan didapatkan
jendela baru dengan nama default waveform1.vwf

Di klik kanan pada bagian kolom Name jendela tersebut dan


dipilih Insert -> Insert Node or Bus -> Node Finder. Lalu
dipilih pada bagian Filter -> Pins : all kemudian di klik kiri
pada tombol List untuk mengeluarkan semua port input
output yang dipakai. klik kiri pada tombol dengan tanda >>
untuk mensimulasikan seluruh port

Dipilih salah satu kotak tombol yang bernama


Overwrite Clock (berada di dalam toolbar dari
jendela waveform).

Pada jendela Clock, dipilih Time Period -> Period


dan isi perioda sebesar 10 ns

Diulangi langkah diatas untuk port masukan B


dan C tetapi dengan nilai periode sebesar 20 ns
untuk B dan 20 ns untuk C

Semua langkah diatas akan menghasilkan seluruh


kombinasi sinyal masukan yang mungkin.

Setelah itu pada jendela Simulator Tool dipilih


tombol Start untuk memulai simulasi

Di klik (Detach Windows), lalu disimpan file simulasi ini


dengan nama Tutorial1.vwf.

Kemudian pada kolom Simulation Input di Simulator Tool,


dipilih file Tutorial1.vwf sebagai input simulasi.

Lalu diamati hasil simulasi pada jendela


tutorial.vwf dan dicek apakah hasilnya sesuai
dengna yang diharapkan

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

h. Mengimplementasikan desain

a.

Membuat Projek Baru Kembali


Dibuat projek baru untuk percobaan ini seperti
yang telah dilakukan pada percobaan
sebelumnya dengan memperhatikan langkahlangkah dibawah ini

Dilakukan kompilasi terhadap program dengan


mamilih Processing -> Start Compilation

Disiapkan board FPGA, dipasang kabel catu daya


dan kabel programmer pada tempatnya masingmasing dan dinyalakan board FPGA tersebut.

Di klik File -> New Project Wizard

Dibuka directory dan dicari folder Tutorial2


untuk menyimpan file-file pada percobaan ini
Untuk konfigurasi, di klik Tools -> Programmer. Di
klik pada tombol Hardware setup. Di klik pada
Add Hardware, untuk DE1 di klik 1 kali pada USBBlaster.

Diberi nama project dan top level entity :


modul2vhdl.

Kemudian pada bagian Mode dipilih JTAG.

Di klik Next untuk sampai ke jendela yang dapat


digunakan untuk menambahkan file pendukung,
dilewatkan jendela ini dengan klik Next kembali

Lalu muncul file Tutorial1.sof pada jendela utama


programmer.

Untuk Family dipilih Cyclone II, kemudian dalam


bagian device dipilih EP2C20F484C7. Setelah itu
di klik Finish.
b.

2.

Memasukan desain VHDL

Disorot nama file, dan dilakukan checklist pada


kolom Program/Configure, kemudian di klik
tombol Start untuk program FPGA.

Di klik File -> New, pada jendela yang tampil dipilih


VHDL File sebagai pilihan desain dan klik OK. Di klik
Detach Windows, lalu disimpan file tersebut sebagai
modul2vhdl.vhd

Lalu dimainkan switch 1-3 dengan


merepresentasikan masukan A, B, dan C.

Didapatkan jendela kosong tempat untuk menulis


kode VHDL.

Mendesain FULL ADDER dengan pendekatan


bahasa VHDL

Ditulis kode VHDL untuk desain Full Ader

Selanjutnya dilakukan langkah-langkah percobaan 1,


dimulai dari langkah ke E hingga langkah H.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

3.

Mendesain 4-bit RIPPLE


dengan VHDL

CARRY ADDER

Dibuka program Modelsim ALTERA STARTER


EDITION 6.4.a

Dibuat folder dan project baru dengan nama project


dan top-level entity adder4bit.
Dipilih folder sebagai direktori kerja dengan cara,
pilih File -> Change Directory pada baris menu
yang terdapat dibagian atas jendela program,
lalu dimasukan path direktori folder kerja.

Ditambahkan file vhdl pada project tersebut dan


dituliskan kode vhdl untuk Ripple Carry Adder
Dilakukan simulasi secara fungsional seperlunya dan
dilihat apakah adder4bit bekerja seperti yang
diharapkan.

Dibuat direktori baru dengan cara memilih File ->


New -> Library.
4.

Mendesain 4-Bit Adder dengan skematik


b.
Dibuat project baru dengan nama project dan
top-level etity adder4bit2

Menjalankan
simulasi
menggunakan
Modelsim
STARTER EDITION 6.4a

dengan
ALTERA

Di copy file pendukung yang bernama


FullAdder.bsf dan FullAdder.bdf dari website
labdasar ke dalam folder proyek

Ditambahkan file skematik kosong ke dalam


project.

Dibuat gambar skematik untuk rangkaian 4-bit


adder

Dilakukan simulasi secara fungsional dan


dibandingkana hasilnya dengan ketika
menggunakan vhdl
5.

Simulasi
modelsim

sederhana

menggunakan

a.

Mamulai Simulasi dengan menggunakan


Modelsim ALTERA STARTER EDITION
6.4a

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

6.
Di compile desain yang ingin disimulasikan dengna
cara memilih Compile -> Compile pada baris menu.
Dipilih file modul2vhdl.vhd lalu di klik Compile. Saat
kompilasi telah selesai, pilih Done.

Dipilih menu Simulate -> Start Simulation. Kemudian


dipilih modul yang ada dalam library (work) lalu pilih
OK.

Membuat Testbench

Dibuat folder baru pada direktori yang telah dibuat


sebelumnya. Ditambahkan file testbench dan file
DUT (Device Under Test) dengan cara mengetikkan
kode vhdl Testbench kemudian menyimpannya
pada direktori tersebut untuk file testbench dan
meng-copy dari percobaan sebelumnya untuk file
DUT. Tb_modul2VHDL adalah entity yang
mendeskripsikan testbench. Didalamnya ada dua
buah block : instance modul dan stimulus
generator. Instance modul adalah bagian yang akan
diuji, sedangkan stimulus generator merupakan
bagian yang memberikan stimulus/input.

Ditambahkan wave hasil simulasi di window simulator


dengan melakukan Right Klik -> Add -> To Wave -> All
item in region.

Kemudian dibuat stimulus (sequence signal) pada


simulasi dengan cara memilih Right Klik -> Clock.
Dimasukan nilai periode clock simulasi sebesar 50 ps
untuk sinyal A, lalu di klik OK. Ditambahkan sinyal lain
dengan cara yang sama namun dengan periode yang
berbeda, 100 ps untuk sinyal B dan 200 ps untuk
sinyal c.

Dilakukan proses compile file tersebut dengan cara


seperti langkah pertama pada percobaan 1 (a) dan 1
(b). Kemudian dilakukan simulasi seperti langkah kedua
dan ketiga pada percobaan 1 (b) apabila proses compile
telah selesai

Dijalankan simulasi dengan memilih menu Simulate ->


Run. Diambil gambar sinyal hasil simulasi tersebut.

Dijalankan simulasi dengan mamilih Simulate -> Run.

Setelah didapatkan hasil simulasi dari langkah


sebelumnya, Right Click -> No Force dan dijalankan
kembali simulasi dengan memilih menu Simulate ->
Run.

Kemudian dilakukan Right Click -> Force dan


dijalankankemali simulasi dengna mamilih menu
Simulate -> Run.

Kemudian dilakukan modifikasi pada stimulus generator


dengan cara mengubah script yang telah disimpan
sebelumnya.

Disimpan perubahan yang terjadi pada file tersebut.


Dilakukan kembali compile dan simulasi pada file yang
telah dimodifikasi seperit pada langkah kedua. Setelah
proses simulasi berjalan, dihentikan proses tersebut
dengan memilih menu Simulate -> End Simulation.
Diambil gambar sinyal hasil simulasi.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

7.

Melakukan proses tapping sinyal dari


sebuah desain
Dilakukan modifikasi script pada file DUT.

Disimpan perubahan yang terjadi pada file tersebut.


Dilakukan kembali compile dan simulasi pada file yang
telah dimodifikasi seperti pada langkah kedua pada
percobaan 3.

Ditambakan wave pada jendela simulasi yang


kemudian dimunculkan oleh program setelah langkah
sebelumnya selesai dilakukan dengan cara Right Click > Add -> To Wave -> Selected Items

Dijalankan simulasi denga memilih menu Simulate ->


RUn. Diambil gamabr sinyal haisl simulasi tersebut.

HASIL DAN ANALISIS

Table 3 Truth table rangkaian full adder

C-out

Sum

Dari percobaan didapatkan bentuk sinyal seperti


pada gambar 3. Hasil tersebut sesuai denga truth
table untuk rangakian full adder diatas (table 3).
Seperti contohnya saat A = 1, B = 1 , dan C = 0.
Truth table menghasilkan nilai Carry out = 1, dan
nilai Sum = 0. Hasil ini sama dengan sinyal yang
ditampilkan pada simulator Quartus.
Gambar 4 Contoh 1

Percobaan 1
Gambar 3 Hasil gelombang sinyal full adder dengan
pendekatan skematik

Gambar 5 Hasil implementasi di FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Hasil implementasi pada FPGA yaitu seven segmen


yang pertama untuk menampilkan Carry out dan
Sum. Sedangkan seven segmen yang kedua untuk
menampilkan keluaran A/A out, B/B out, dan C/C
out. Karena menggunakan Active Low, maka seven
segmen akan menyala saat Logic O dan mati saat
Logic 1.

Gambar 7 Contoh 2

Gambar 8 Hasil implementasi FPGA

Berdasarkan posisi kaki-kaki diatas, didapatkan


hasil implementasi LED pada altera mengeluarkan
hasil yang benar. Hasil tersebut susuai dengan true
table full adder pada table 3. Contohnya saja saat A,
B, dan C bernilai 1 semua seven segmen digit 2
switch [0], switch [6] dan switch [3] mati semua dan
seven segmen digit 1 switch [0] dan switch [6] juga
mati . (LED mati menandakan logic 1 dan hasil
tersebut sesuai dengan truth table).

Pada percobaan 2 ini, hanya menggunakan seven


segmen digit 2. Sehingga hasil tampilan pada digit 1
seven segmen tidak diperhitungkan. Pada FPGA
diamati hasil sebagai berikut :
1.

Percobaan 2
Gambar 6 Hasil gelombang sinyal desain full adder dengan
pendekatan VHDL

Saat A,B dan C bernilai logic 0, lampu LED


seven segmen menyala semua ( ).

2.

Saat salah satu diantara A,B, atau C bernilai


1, seven segmen menyala semua ( ).

3.

Saat 2 diantara A,B, atau C bernilai 1, seven


segmen switch 3 mati ( ).

4.

Saat A,B, dan C bernilai 1, secen segmen


menyala semua ( ).

Gambar tampilan sinyal rangkaian full adder


dengan menggunakan Bahasa VHDL diatas adalah
benar. Yaitu sesuai dengan truth table rangkaian
full adder. Contohnya saat A = 0, B = 1, dan C = 1
carry-out menunjukan logika 1 dan sum
menunjukan logika 0. Hasil tersebut sesuai dengan
truth table rangkaian full adder. Hal ini
membuktikan kesamaan wave gelombang yang
didapatkan untuk rangkaian full adder baik
menggunakan pendekatan skematik maupun
pendekatan Bahasa VHDL. Sehingga kita dapat
menggunakan pendekatan skematik maupun
Bahasa VHLD dalam implementasi dengan FPGA

Dari hasil diatas menjukan hasil yang tidak sesuai


dengan yang diharapkan. Hal ini kemungkinan
disebabkan kesalahan pemilihan komponen kaki
seven segmen atau human error (seperti kesalahan
pembacaan keluaran FPGA).
Percobaan 3
4-Bit Ripple Carry adder yaitu menerima masukan
A 4 bit dan B 4 bit serta Cin 1 bit lalu
mengembalikan hasil berupa Cout 1 bit dan sum 4
bit. Percobaan ini dilakukan dengan pendekatan
Bahasa VHDL. Hasil wave gelombang sebagai
berikut :

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

1
0

Gambar 9 Hasil gelombang sinyal 4-bit Ripple


Carry Adder dengan VHDL

Gambar diatas menunjukan hasil 4 bit carry adder.


Apabila dihitung secara manual, contoh :
Cin : 0
A:

0001

B:

0001

Sum :

0010

Cout :0
Hasil penjumlahan secara manual diatas sesuai
dengan keluaran wave gelombang seperti
ditunjukan gambar berikut :
Gambar 10 Pembuktian percobaan 3

Gambar 11 Hasil gelombang sinyal 4-bit Adder dengan


skematik

Dapat dilihat bahwa wave gelombang yang


dihasilkan dengan pendekatan skematik sama
persis (identic) dengan gelombang yang dihasilkan
dengan pendekatan Bahasa VHDL. Hal ini
menujukan bahwa kita dapat menggunakan
pendekatan Bahasa VHDL maupun skematik dalam
meranacang rangkaian digital 4 bit Ripple Carry
Adder dikarenakan kedua pendekatan tersebut
menampilkan hasil yang sama benarnya.
Percobaan 5
Percobaan selanjutnya yaitu dilakukan simulasi
sederhana dengan menggunakan Modelsim.
Berikut hasil wave gelombang yang diperoleh :
Gambar 12 Hasil simulasi sederhana meggunakan Modelsim

Percobaan 4
Setelah sebelumnyan dilakukan membuat 4 bit
adder menggunakan pendekatan Bahasa VHDL,
selanjutnya akan dibuat rangkaian adder 4 bit
dengan menggunakan skematik. Berikut tampilan
wave sinyal yang dihasilkan :

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

11

Table 4 Truth Tabel percobaan 5

Gambar 14 Hasil sinyal Testbench

C-in

C-out

Hasil wave sinyal menunjukan hasil yang sama


dengan percobaan 1 yang menggunakan Quartus.
Hasil waveform pada percobaan ini didapatkan
dengan mengatur clock A, B, dan C dengan 50ps,
100ps dan 200ps. Saat A : 1, B : 1, dan Cin : 1, hasil
Sum nya yaitu berniali 1 dan Carry out bernilai 1.
Hasil tersebut sesuai dengan true table. Hal ini
menunjukan bahwa untuk merangcang suatu
rangkaian digital, kita juga dapat menggunakan
software Modelsim dengan hasil yang sama
benarnya dengan apabila menggunakan Quartus.
Gambar 13 Pembuktian percobaan 5

Perintah pengaturan clock yang sebelumnya


dilakukan pada percobaan 5, kali ini digatikan
dengan perintah testbench. Perintah testbench
dibuat dengan code Bahasa VHDL (terlampir).
Perintah tersebut menujukan untuk logika A, nilai
A akan di-invert untuk setiap 50 ps. Misalnya
awalnya logika A bernilai 0 maka setelah 50 ps,
logika A tersebut akan di-invert sehingga
menghasilkan logika 1. Hal tersebut juga dilakukan
untuk logika B dan C. Sehingga melalui proses
tersebut akan didapatkan semua kombinasi logika
yang diinginkan. Namun kelemahannya, bentuk
testbench ini terbilang sukar dibandingkan dengan
bentuk timing diagram. Hal ini disebabkan karena
untuk
melakukan
testbench,
diperlukan
kemampuan untuk menulis dan mengerti kodekode VHDL maupun Verilog. Sehingga bentuk
testbench pada umumnya sering digunakan oleh
pengguna FPGA tingkat mahir. [3]
Percobaan 7
Pada percobaan ini dilakukan proses tapping sinyal
menggunakan Modelsim. Tapping sinyal adalah
proses pengambilan nilai sinyal yang bukan bagian
dari keluaran system rangkaian digital yang diuji.
Tapping sinyal pada percobaan ini adalah Temp
yang bernilai logika A XOR B. Berikut hasilnya :

Percobaan 6
Salah satu keunggulan perancangan rangkaian
dengan menggunakan Modelsim adalah kita dapat
melalakukan Testbench. Testbench adalah proses
pengujuan suatu rancangan rangakain apakah
sudah sesuai atau belum. Testbench dilakukan
dengan menggunakan file HDL (Bahasa VHDL atau
Verilog). Berikut tampilan waveform hasil
testbench :

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

12

Gambar 15 Hasil Tapping sinyal

4.

Dalam melakukan perancangan rangkaian


digital kita dapat mengunakan pendekatan
skematik maupun pendekatan bahasa
VHDL, dikarenakan keduanya memberikan
hasil yang benar/sesuai.

5.

Rangkaian Adder (Full Adder dan Ripple


Carry Adder) dapat diimplementasikan
dengan berbagai cara. Fungsi rangkaian ini
yaitu untuk menjumlahkan bilangan biner
dengan menggunakan fungsi gerbang
logika.

DAFTAR PUSTAKA
Mervin T Hutabarat, Arif Sasongko, Praktikum
Sistem Digital, Laboratorium Dasar Teknik
Elektro ITB, Bandung, 2014.

Table 5 Truth table XOR

Temp (A XOR B)

[1]. http://id.wikipedia.org/wiki/FPGA,
Oktober 2014, 19:40

13

[2]. http://takesimpleway.wordpress.com/catego
ry/uncategorized/, 13 Oktober 2014, 19:30
[3]. http://ndoware.com/simulasi-fpga.html, 14
Oktober 2014, 7:19

Gambar sinyal yang dihasilkan pada Tap sesuai


dengan logika XOR. Contoh saat A : 1 dan B : 0,
tapping sinyal yang dihasilkan yaitu 1. Serta saat A :
1 dan B : 1 =, tapping sinyal yang dihasilkan yaitu 0.
Kedua contoh tersebut cocok dengan truth table
untuk logika XOR.

5.

KESIMPULAN

Kesimpulan yang
modul II ini, yaitu

didapatkan

dari

percobaan

1.

Dalam melakukan perancangan rangkaian


digital dapat menggunakn ALTERA
Quartus II (percobaan 1 4) maupun
Modelsim (percobaan 5 7) dan telah
dibuktikan hasil yang diberikan oleh
keduanya adalah benar.

2.

Keuntungan
menggunakan
Modelsim
adalah kita dapat melakukan proses
testbench dan tapping sinyal. Namun untuk
testbench sendiri lebih sering digunakan
oleh pengguna FPGA yang sudah mahir.

3.

Sedangkan keuntungan menggunakan


ALTERA
Quartus
adalah
cara
penggunaannya yang lebih user-friendly
apabila
dibandingkan
dengan
menggunakan Modelsim.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

13

LAMPIRAN 1
Skematik rangkaian Full Adder

Skematik singkat rangkaian Ripple Carry Adder


VCC

f ull_adder

f ull_adder

Cout

Cout

Cin
FA0

C(0)

Cin
FA1

Skematik Rangkaian 4-Bit Adder

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

14

LAMPIRAN 2
1.

Kode VHDL untuk desain Full Adder

LIBRARY ieee ;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY modul2vhdl IS
PORT( A,B,Cin : IN STD_LOGIC;
S,Cout : OUT STD_LOGIC);
END modul2vhdl;
ARCHITECTURE behavioral OF modul2vhdl IS
BEGIN
S <= A XOR B XOR Cin;
Cout <= (Cin AND (A XOR B)) OR (A AND B);
END behavioral;

2.

Kode VHDL untuk 4-bit Ripple Carry Adder

LIBRARY ieee ;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY fulladder IS
PORT( A,B,Cin : IN STD_LOGIC;
S,Cout : OUT STD_LOGIC);
END fulladder;
ARCHITECTURE behavioral OF fulladder IS
BEGIN
S <= A XOR B XOR Cin;
Cout <= (Cin AND (A XOR B)) OR (A AND B);
END behavioral;
LIBRARY ieee ;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY adder4bit IS
PORT(
A, B
: IN STD_LOGIC_VECTOR(3
DOWNTO 0);
Cin
: IN STD_LOGIC;
S
: OUT
STD_LOGIC_VECTOR(3 DOWNTO 0);
Cout
: OUT STD_LOGIC
);
END adder4bit;
ARCHITECTURE behavioral OF adder4bit IS
SIGNAL C : STD_LOGIC_VECTOR(3 DOWNTO 0);
COMPONENT fulladder IS
PORT( A,B,Cin : IN STD_LOGIC;
S,Cout : OUT STD_LOGIC);
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB
END COMPONENT;

15

BEGIN
FA0: fulladder PORT MAP
S=>S(0), Cout=>C(0));
FA1: fulladder PORT MAP
S=>S(1), Cout=>C(1));
FA2: fulladder PORT MAP
S=>S(2), Cout=>C(2));
FA3: fulladder PORT MAP
S=>S(3), Cout=>Cout);

(A=>A(0), B=>B(0), Cin=>Cin ,


(A=>A(1), B=>B(1), Cin=>C(0),
(A=>A(2), B=>B(2), Cin=>C(1),
(A=>A(3), B=>B(3), Cin=>C(2),

END behavioral;
3.

Kode VHDL untuk Testbench

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY tb_modul2vhdl IS
END tb_modul2vhdl;
ARCHITECTURE behavioral OF tb_modul2vhdl IS
COMPONENT modul2vhdl IS
PORT( A,B,Cin : IN STD_LOGIC;
S,Cout : OUT STD_LOGIC);
END COMPONENT;
SIGNAL
SIGNAL
SIGNAL
SIGNAL
SIGNAL

A
B
Cin
S
Cout

:
:
:
:
:

STD_LOGIC := '0';
STD_LOGIC := '0';
STD_LOGIC := '0';
STD_LOGIC;
STD_LOGIC;

BEGIN
dut : modul2vhdl
PORT MAP (
A
=> A
,
B
=> B
,
Cin => Cin ,
S
=> S
,
Cout => Cout );
clock_A : PROCESS
BEGIN
WAIT FOR 50 ps; A
end PROCESS clock_A;

<= NOT A;

clock_B : PROCESS
BEGIN
WAIT FOR 100 ps; B
end PROCESS clock_B;
clock_Cin : PROCESS
BEGIN
WAIT FOR 200 ps; Cin
end PROCESS clock_Cin;
END behavioral;

<= NOT B;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB


<= NOT Cin;

16

4.

Kode modifikasi yang mendefinisikan clock untuk percobaan 6 (Testbench)

clock_A : PROCESS
BEGIN
WAIT FOR 50 ps; A
end PROCESS clock_A;
clock_B : PROCESS
BEGIN
WAIT FOR 100 ps; B
end PROCESS clock_B;

<= NOT A;

<= NOT B;

clock_Cin : PROCESS
BEGIN
WAIT FOR 200 ps; Cin
Cin;
end PROCESS clock_Cin;

5.

stimulus : PROCESS
BEGIN
WAIT FOR 50 ps; A
WAIT FOR 100 ps; B
WAIT FOR 200 ps; Cin
WAIT;
END PROCESS stimulus;

<= '1';
<= '1';
<= '1';

<= NOT

Kode modifikasi file DUT untuk percobaan 7 (Tapping Sinyal)

LIBRARY ieee ;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY modul2vhdl IS
PORT( A,B,Cin : IN STD_LOGIC;
S,Cout : OUT STD_LOGIC);
END modul2vhdl;
ARCHITECTURE behavioral OF modul2vhdl IS
SIGNAL TEMP : STD_LOGIC;
BEGIN
TEMP <= A XOR B;
S <= TEMP XOR Cin;
Cout <= (Cin AND TEMP) OR (A AND B);
END behavioral;

Posisi kaki yang terhubung 7 segment dengan switch untuk DE1


Switch
Switch[0]
Switch[1]
Switch[2]
Switch[3]
Switch[4]
Switch[5]
Switch[6]
Switch[7]
Switch[8]
Switch[9]

Cyclone II Pin
PIN_L22
PIN_L21
PIN_M22
PIN_V12
PIN_W12
PIN_U12
PIN_U11
PIN_M2
PIN_M1
PIN_L2

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

17

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

18