Anda di halaman 1dari 8

MODUL 2 Pengenalan Desain Menggunakan FPGA

Tanggal Percobaan: 09/10/2014


EL2102-Praktikum Sistem Digital
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak
2. STUDI PUSTAKA
Dalam modul kali ini total tujuh percobaan telah dilakukan.
Semua percobaan berkaitan dengan perancangan rangkaian 2.1 FPGA
logika dengan software beserta implementasinya pada FPGA.
FPGA merupakan perangkat logika yang dapat
Percobaan-percobaan tersebut adalah mendesain full adder
diprogram melalui software dan biasa
dengan skematik, mendesain full adder dengan pendekatan
dimanfaatkan untuk mengimplementasikan
bahasa VHDL, mendesain 4-bit ripple carry adder dengan
rancangan logika baik yang kecil maupun yang
VHDL, mendesain 4-bit adder dengan skematik, simulasi
cukup besar. Di dalam FPGA terdapat logic blocks
sederhana menggunakan modelsim, membuat testbench, dan
untuk mengimplementasikan fungsi logika. FPGA
melakukan proses tapping sinyal dari sebuah desain. Dari
mempunyai tiga komponen utama, yaitu logic
hasil percobaan ini dapat disimpulkan bahwa gerbang logika
blocks, input/output blocks, dan kawat beserta
memiliki beberapa parameter yang penting yang harus
switches penghubung. Logic block yang paling
diperhatikan. Selain itu, pada modul kali ini juga
umum digunakan dalam FPGA adalah lookup
ditunjukkan pengaplikasian gerbang logika untuk
table (LUT). [2]
rangkaian kombinasional sederhana. Dari hasil percobaan
ini dapat disimpulkan bahwa cara skematik dan VHDL
2.2 ADDER
menghasilkan keluaran yang sama, hanya saja cara VHDL
lebih terstruktur sehingga dalam perancangan rangkaian yang Penjumlahan merupakan operasi dasar dalam
kompleks, cara VHDL lebih efisien. Dalam modul ini juga aritmatika. Dalam rangkaian logika, adder
dilakukan proses simulasi yang dapat memverifikasi merupakan komponen yang sangat penting yang
rangkaian logika yang telah dibuat. Selain itu, dengan sering menjadi salah satu bagian dari rangkaian
testbench, kita dapat melakuka proses verifikasi dengan logika yang lebih kompleks. Dalam percobaan ini,
mengubah nilai input dengan clock. Pada percobaan terakhir, jenis adder yang digunakan adalah full adder. Full
dapat disimpulkan bahwa dengan proses tapping sinyal, kita adder diilustrasikan dalam Gambar 2-1.[1]
dapat mengetahui nilai sinyal antara secara detail sehingga
dapat memudahkan proses troubleshooting.
Kata kunci: VHDL, ripple carry, skematik, FPGA,
full adder.

1. PENDAHULUAN
Mengenal software dan perangkat yang
berhubungan dengan sistem digital merupakan
hal penting jika kita ingin merancang rangkaian
digital. Dalam modul kali ini, praktikan
diperkenalkan dengan software Altera Quartus
dan Modelsim. Kedua software tersebut sangat
berguna bagi insinyur elektro karena dapat
membantu dalam merancang rangkaian logika
Gambar 4-1
karena memiliki fitur yang lengkap. Pada modul
kali ini juga dijelaskan bagaimana cara
mengimplementasikan rancangan logika yang
3. METODOLOGI
telah dibuat dalam software ke FPGA. Dalam modul ini, alat dan komponen yang
Pada laporan ini akan dipaparkan teori dan rumus digunakan adalah komputer yang telah terinstal
yang mendasari percobaan, metodologi praktkum, software Altera Quartus dan Modelsim, FPGA
development board tipe ALTERA DE1, dan kabel
hasil percobaan beserta analisisnya, serta
kesimpulan berdasarkan analisis yang telah dibuat. downloader USB-Blaster. Langkah percobaan-
percobaan akan dijelaskan pada subbab di bawah.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 1


3.1 MENDESAIN FULL ADDER DENGAN 1. Simpan skematik yang telah dibuat
SKEMATIK kemudian pilih Processing -> Start -> Start
Analysis & Synthesis.
Berikut ini adalah langkah-langkah dalam
percobaan pertama: 2. Pilih Assignment -> Pin Planner.
a. Membuat Projek Baru Menggunakan Quartus 3. Klik Direction untuk mengurutkan pin.
II 9.0 sp2 Web Edition
4. Pada kolom Location klik kiri dua kali
1. Membuat folder baru di dalam folder kolom yang sebrais dengan port yang
PraktikumSisDig dengan nama sesuai ditinjau untuk memilih kaki pada FPGA
dengan nomor kelompok. berhubungan dengan port tersebut.
2. Pada folder tersebut dibuat folder baru f. Pembuatan Netlist untuk Simulasi
yang bernama Tutorial1 dan Tutorial2.
1. Pilih Processing -> Simulator Tool ->
3. Menjalankan program Quartus II 9.0 sp2 Simulation Mode -> Functional.
Web Edition.
2. Klik Generate Functional Simulation
4. Di dalam program, klik File -> New Netlist.
Project Wizard kemudian klik Next
3. Klik check box Overwrite Simulation
setelah muncul jendela Introduction.
input file with simulation result.
5. Setelah muncul jendela baru, klik tombol
4. Klik Open pada bagian bawah jendela
... pada kolom paling atas kemudian
Simulator Tool.
cari folder Tutorial1 yang telah dibuat
sebelumnya. Setelah itu klik Open. 5. Setelah muncul jendela baru, klik kanan
pada bagian kolom Name jendela
6. Pada kolom berikutnya ketikkan
tersebut dan pilih Insert -> Insert Node or
Tutorial1.
Bus -> Node Finder -> Filter -> Pins: all ->
7. Klik Next, setelah muncul jendela baru List -> klik tombol >>.
klik Next kembali.
6. Klik Detach Windows lalu simpan file
8. Setelah muncul jendela baru, pilih Cylone simulasi dengan nama Tutorial1.vwf.
II pada daftar Family kemudian pilih
7. Pada kolom Simulation Input di
EP2C20F484C7 pada bagian device. Klik
Simulator Tool pilih Tutorial1.vwf
Finish.
sebagai input simulasi.
b. Memilih dan Menempatkan Komponen
g. Membuat Waveform Masukan
1. Klik File -> New -> Block
1. Buka Tutorial.vwf dengan File -> Open
Diagram/Schematic File -> OK.
atau SimulatorTool -> Open
2. Klik File -> Page Setup -> Letter -> OK.
2. Klik kiri pada port masukan A pada
3. Rangkai rangkaian Full Adder dengan kolom paling kiri file tersebut.
menempatkan komponen yang
3. Pilih Overwrite Clock kemudian atur
dibutuhkan dalam Symbol Tools.
perioda yang sesuai pada bagian Time
c. Menambahkan Hubungan untuk Membentuk period.
Net
4. Lakukan juga pada port masukan B dan C.
1. Pilih Orthogonal Node Tool kemudian
5. Setelah itu pada jendela Simulator Tool
hubungkan komponen dengan cara
pilih tombol Start.
melakukan klik kiri pada salah satu
komponen yang ingin dihubungkan h. Mengimplementasikan Desain
kemudian drag hingga komponen yang
1. Pilih Processing -> Start Compilation.
lain.
2. Siapkan board FPGA dan pasang kabel
d. Pelabelan Net dan Pin I/O
FPGA.
1. Klik dua kali pada port input/output
3. Klik Tools -> Programmer -> Hardware
yang akan diubah namanya kemudian
Setup -> Add Hardware -> klik 2 kali
ubah nama dari pin sesuai dengan nama
pada USB-Blaster.
yang diinginkan.
4. Pada bagian Mode pilih JTAG.
e. Menetapkan I/O Pin pada Kaki FPGA
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 2
5. Cari file Tutorial1.sof kemudian klik 3. Buat file skematik kosong. Tambah blok
Open. FullAdder yang telah dikopi ke file
skematik.
6. Sorot nama file, lakukan checklist pada
kolom Program/Configure, kemudin 4. Buat rangkaian 4-bit ripple carry adder
klik tombol Start. FPGA telah dengan blok tersebut.
terprogram.
3.5 SIMULASI SEDERHANA MENGGUNAKAN
3.2 MENDESAIN FULL ADDER DENGAN MODELSIM
PENDEKATAN BAHASA VHDL
a. Memulai Simulasi dengan Menggunakan
a. Membuat Projek Baru Kembali Modelsim ALTERA STARTER EDITION 6.4a
1. Klik File -> New Project Wizard 1. Buka program Modelsim ALTERA
STARTER EDITION 6.4a. Pilih Close
2. Buka directory dan cari folder Tutorial2.
pada tampilan jendela awal.
3. Beri nama project dan top level entity :
2. Pilih File -> Change Directory -> Tentukan
modul2vhdl.
folder kerja.
4. Klik Next. Setelah muncul jendela baru
3. Pilih File -> New -> Library -> Tentukan
klik Next kembali.
nama library yang diinginkan.
5. Pada bagian Family pilih Cyclone II dan
b. Menjalankan Simulasi dengan Menggunakan
pada bagian Available Device pilih
Modelsim ALTERA STARTER EDITION 6.4a
EP2C20F484C7.
1. Pilih Compile -> Compile -> Tentukan file
6. Klik finish.
-> Compile -> Done.
b. Memasukkan Desain VHDL
2. Pilih Simulate -> Start Simulation ->
1. Klik File -> VHDL File -> OK -> Detach Tentukan file -> OK.
Windows -> simpan dengan nama
3. Buka window simulator -> klik kanan
modul2vhdl.vhd.
pada file yang ingin disimulasi -> Add ->
2. Ketikkan kode sumber VHDL yang sesuai. To Wave -> All item in region.
3. Setelah selesai simpan file. 4. Pada tiap sinyal, berikan periode clock
yang sesuai dengan cara memilih Clock ->
4. Ulangi langkah percobaan pertama mulai
Clock -> tentukan nilai periode pada
dari bagian e hingga terakhir.
bagian Period.
3.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER 5. Simulate -> Run -> Ambil data.
DENGAN VHDL
6. Klik kanan pada tiap sinyal -> No Force ->
1. Buat folder baru dengan nama project dan Simulate -> Run -> Ambil data.
top-level entity adder4bit.
7. Klik kanan pada tiap sinyal -> Force ->
2. Tambahkan file vhdl pada project tersebut Simulate -> Run -> Ambil data.
dan tuliskan kode sumber vhdl untuk 4-
bit ripple carry adder. 3.6 MEMBUAT TESTBENCH
3. Lakukan simulasi. 1. Buat folder baru -> Tambahkan file
testbench dan file DUT.
2. Compile file seperti dalam langkah b pada
3.4 MENDESAIN 4-BIT ADDER DENGAN percobaan kelima.
SKEMATIK
3. Simulate -> Run -> Ambil data.
1. Buat project baru dengan nama project
4. Modifikasi stimulus generator sesuai
dan top-level entity adder4bit2.
dengan yang diinginkan -> simpan
2. Kopi file pendukung yang bernama perubahan -> Simulate -> Run -> Ambil
FullAdder.bsf dan FullAdder.bdf data.
pada folder project.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 3


3.7 MELAKUKAN PROSES TAPPING SINYAL Ketika S bernilai satu LED bagian SUM akan
DARI SEBUAH DESAIN mati.
1. Lakukan modifikasi pada file DUT Ketika Cout bernilai nol LED bagian Cout akan
sesuai dengan yang diinginkan. menyala.
2. Simpan perubahan -> Compile file -> Ketika Cout bernilai satu LED bagian Cout akan
Simulasi. mati.
3. Klik kanan pada jendela simulasi -> Add - Ketika input A atau B atau C bernilai satu maka
> To Wave -> Selected Items. LED yang dinamakan sesuai dengan inputnya
pada seven-segment sebelah kanan akan mati,
4. Simulate -> Run -> Ambil data.
sedangkan LED akan hidup jika nilai input
[1] bernilai nol.

4. HASIL DAN ANALISIS

4.1 MENDESAIN FULL ADDER DENGAN


SKEMATIK
Tabel 4-1 Tabel Kebenaran Full Adder
A B Cin S Cout

0 0 0 0 0

0 0 1 1 0 Gambar 4-2

0 1 0 1 0 Gambar 4-2 menunjukkan keluaran ketika nilai A,


B, dan C bernilai satu.
0 1 1 0 1
Ketika nilai A, B dan C bernilai nol akan
menunjukkan keluaran seperti Gambar 4-1.
1 0 0 1 0
Hasil-hasil lainnya juga menunjukkan hasil sesuai
1 0 1 0 1 ekspektasi.
Pada FPGA yang digunakan, LED bersifat active
1 1 0 0 1
low. Ketika switch tidak ditekan akan berlogika 1
karena ada rangkaian pull up, sedangkan ketika
1 1 1 1 1 switch ditekan akan berlogika 0. LED akan
menyala ketika mendapatkan input low voltage
Tabel di atas menunjukkan tabel kebenaran dari dan mati ketika mendapatkan high voltage. Hasil
full adder. Ketika diimplementasikan ke FPGA, yang didapat sesuai dengan yang diharapkan.
berikut ini adalah penjelasan keluaran pada Keluaran pada seven-segment sama persis dengan
FPGA: tabel kebenaran yang ditunjukkan di atas.

Gambar 4-1
Gambar 4-3
Gambar 4-1 menunjukkan hubungan antara
Dari Gambar 4-3 dapat disimpulkan bahwa
seven-segment dengan input dan output.
rangkaian full adder yang telah dibuat secara
Ketika S bernilai nol LED bagian SUM akan skematik berfungsi sesuai dengan yang
menyala. diharapkan karena hasil sama dengan Tabel 4-1.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 4


4.2 MENDESAIN FULL ADDER DENGAN
0 0 0 0 0 0 0 0 1 0 0 0 1 0
PENDEKATAN BAHASA VHDL
1 0 0 0 0 0 0 1 1 1 0 1 0 0

0 1 0 0 0 0 1 0 1 1 1 0 1 0

1 1 0 0 0 0 1 1 1 0 0 0 0 1

0 0 1 0 0 1 0 0 1 1 1 0 1 0

1 0 1 0 0 1 0 1 1 0 0 0 0 1

Gambar 4-4 0 1 1 0 0 1 1 0 1 0 1 1 1 0

Saat disimulasi dan diimplementasi pada FPGA, 1 1 1 0 0 1 1 1 1 1 1 0 0 1


hasil keluaran sama persis dengan percobaan
pertama pada bagian 4.1 seperti ditunjukkan
Dalam percobaan ini, ada delapan data yang
Gambar 4-4. Hal ini menunjukkan perancangan
diambil. Berdasarkan hasil tersebut, rangkaian
rangkaian logika baik dengan cara skematik
yang telah dibuat sesuai dengan yang diharapkan.
maupun VHDL akan menghasilkan hasil yang
sama. Namun, kedua cara tersebut memiliki
kelebihan dan kekurangan. Jika rangkaian logika
yang dibuat adalah rangkaian yang kecil atau
dengan kata lain tidak kompleks, maka cara
skematik menjadi efisien karena rangkaian yang
tidak kompleks cenderung tidak memerlukan
banyak logic gate sehingga proses pembuatan
skematik hanya membutuhkan waktu yang
singkat. Kalau rangkaian yang tidak kompleks
dibuat dengan VHDL cenderung kurang efisien
karena dalam pembuatan VHDL memerlukan
pembuatan deklarasi yang cenderung memakan
waktu. Selain itu cara skematik cenderung lebih
Gambar 4-4
manusiawi karena memerlukan intuisi visual
manusia. Jika rangkaian yang dirancang tidak Data hasil simulasi ditunjukkan pada Gambar 4-4
kompleks, maka perancangan dengan cara merupakan hasil simulasi dan menunjukkan hasil
skematik akan lebih baik karena intuisi visual yang sama dengan Tabel 4-3.
manusia masih dapat bekerja dengan baik pada Dari hasil ini dapat disimpulkan bahwa rangkaian
rangkaian yang tidak kompleks. Namun, ketika yang telah dibuat dengan VHDL telah berfungsi
rangkaian logika yang akan dirancang merupakan dengan baik seperti yang ditunjukkan oleh hasil
rangkaian yang kompleks, cara VHDL menjadi simulasi.
lebih efisien karena cara VHDL lebih terstruktur
dibandingkan skematik. Ketika cara skematik 4.4 MENDESAIN 4-BIT ADDER DENGAN
digunakan untuk merancang rangkaian logika SKEMATIK
yang kompleks intuisi visual manusia tidak akan
bekerja dengan baik sehingga dapat menyebabkan
terjadinya kesalahan perancangan.

4.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER


DENGAN VHDL

Tabel 4-3 Tabel input 4-bit Adder

A A A A B B B B C S S S S C
0 1 2 3 0 1 2 3 i 1 2 3 0 o
n ut

Gambar 4-5
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 5
nilai yang sama seperti saat sebelum No Force
diberikan. Ini menunjukkan bahwa No Force
Hasil yang ditunjukkan sama persis dengan hasil
menghentikan clock dan hanya meneruskan sinyal
percobaan sebelumnya seperti yang ditunjukkan
terakhir input. Meskipun demikian, hasil keluaran
pada Gambar 4-5. Ini menunjukkan bahwa cara
tetap sesuai dengan yang diharapkan.
skematik menghasilkan keluaran yang sama
dengan VHDL seperti yang diharapkan.
Dari hasil ini, dapat disimpulkan bahwa cara
skematik dan VHDL menghasilkan keluaran yang
sama seperti yang ditunjukkan oleh hasil simulasi.

4.5 SIMULASI SEDERHANA MENGGUNAKAN


MODELSIM

Gambar 4-7

Gambar 4-7 menunjukkan sinyal input yang diberi


Force yang bernilai nol. Force berarti
memaksakan nilai pada input sehingga nilai
sesuai dengan nilai yang kita berikan. Meskipun
demikian, hasil keluaran tetap sesuai dengan yang
diharapkan yaitu s dan cout bernilai nol karena a,
b, dan cin bernilai nol.
Gambar 4-5
4.6 MEMBUAT TESTBENCH
Dari hasil Gambar 4-5 semua keluaran sesuai
dengan yang diharapkan. Ini menunjukkan
simulasi ini telah memverifikasi bahwa rancangan
logika yang telah dibuat telah sesuai dengan yang
diharapkan.

Gambar 4-8
Hasil yang ditunjukkan Gambar 4-8 sesuai dengan
Gambar 4-6 yang diharapkan. Pada percobaan ini sebenarnya
Gambar 4-6 menunjukkan apa yang terjadi ketika sama dengan percobaan sebelumnya, hanya saja
setiap sinyal input diberi No Force. Sinyal kita dapat langsung memulai simulasi tanpa
setelah fitur No Force diaktifkan menunjukkan

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 6


memberikan clock karena clock telah diberikan Gambar 4-9 menunjukkan hasil dari proses
oleh testbench. tapping sinyal. Dalam kasus ini, sinyal yang di tap
adalah TEMP = A XOR B. Dari hasil tapping sinyal,
hasilnya sesuai dengan yang diharapkan artinya
sinyal ini tidak menyebabkan error pada output
yang sebenarnya. Proses tapping ini sebenarnya
berguna untuk mengambil nilai sinyal antara.
Dengan cara ini, jika terjadi kesalahan pada
keluaran output dapat mengecek setiap sinyal
antara dimana terjadi kesalahan. Dengan
menggunakan tapping sinyal ini, dapat diketahui
lebih detail bagian yang salah sehingga dapat
memudahkan user ketika ingin melakukan
troubleshooting.

5. KESIMPULAN
Pemahaman software pendukung perancangan
rangkaian logika merupakan hal yang penting
Gambar 4-9 karena dapat memudahkan kita dalam merancang
rangkaian yang kompleks. Dalam modul kali ini
Gambar 4-9 menunjukkan hasil stimulus kedua. telah dilakukan tujuh percobaan mengenai
Stimulus ini bekerja dengan cara mengganti nilai software yang berkaitan dengan rangkaian logika.
input pada selang tertentu tanpa Pada percobaan pertama dan kedua dapat
mengembalikannya. Nilai a diganti dari nol disimpulkan bahwa perancangan rangkaian full
menjadi satu pada selang 50ps. Nilai b diganti dari adder dengan menggunakan cara skematik dan
nol menjadi satu pada selang 100ps sedangkan VHDL menghasilkan keluaran yang sesuai
nilai cin diganti pada selang 200ps. Stimulus ini dengan harapan. Pada percobaan ketiga dan
kurang baik karena tidak semua kemungkinan keempat juga telah dibuktikan bahwa
input terjadi sehingga stimulus ini tidak dapat perancangan rangkaian 4-bit ripple carry adder
membuktikan secara penuh bahwa rangkaian ini dengan cara skematik dan VHDL juga
bekerja dengan baik. menghasilkan keluaran yang benar. Dari keempat
percobaan tersebut dapat disimpulkan cara
4.7 MELAKUKAN PROSES TAPPING apapun yang digunakan jika langkah yang
SINYAL DARI SEBUAH DESAIN dikerjakan telah sesuai maka hasil keluaran akan
menghasilkan hasil yang sama dan sesuai dengan
referensi. Namun, cara skematik akan menjadi
tidak efisien jika digunakan untuk merancang
rangkaian yang kompleks karena cara tersebut
sangat bergantung pada intuisi visual manusia.
Cara VHDL menjadi sangat efisien ketika
merancang rangkaian yang kompleks karena cara
tersebut lebih terstruktur dibandingkan dengan
cara skematik. Pada percobaan kelima telah
dilakukan simulasi rangkaian full adder, yang
dibuat dengan VHDL, dengan Modelsim. Hasil
simulasi juga menunjukkan hasil yang sesuai
dengan ekspektasi. Namun, ada sedikit fitur yang
dicoba dalam Modelsim, yaitu simulasi dengan
No Force dan Force. Ketika No Force
diaktifkan, maka sinyal setelah fitur tersebut
diaktifkan akan menunjukkan nilai yang sama
seperti saat sinyal sebelum fitur tersebut
diaktifkan. Ketika Force diaktifkan, maka sinyal
yang tersebut akan sama dengan nilai force yang
user berikan. Kemudian, pada percobaan keenam
Gambar 4-9
dilakukan percobaan simulasi dengan testbench.
Testbench digunakan untuk menguji rangkaian

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 7


logika dengan cara memberi sinyal stimulus
masukan dan menguji kebenaran keluaran desain.
Hasil yang diperoleh menunjukkan bahwa desain
telah sesuai dengan yang diharapkan. Namun,
stimulus pertama dan kedua menghasilkan nilai
yang berbeda karena kedua stimulus tersebut
berbeda. Pada stimulus pertama, setiap sinyal
input full adder diberi clock masing-masing
sebesar 50ps untuk sinyal A, 100ps untuk sinyal B,
dan 200ps untuk sinyal C. Hasilnya setiap
kemungkinan input terjadi dan ouput yang
dihasilkan pun sesuai dengan yang diharapkan.
Stimulus kedua merupakan stimulus yang hanya
mengubah nilai input pada saat tertentu. Stimulus
kedua merupakan stimulus yang kurang baik
karena semua kemungkinan input tidak terjadi
sehingga kebenaran rangkaian tidak sepenuhnya
dapat dibuktikan dengan stimulus ini. Pada
percobaan terakhir dibuktikan bahwa dengan cara
tapping sinyal, kita dapat mengetahui lebih detail
nilai sinyal antara sehingga dapat memudahkan
user dalam melakukan proses troubleshooting.

DAFTAR PUSTAKA
[1] Mervin T. Hutabarat, Praktikum Sistem Digital,
Laboratorium Dasar Teknik Elektro, ITB,
2014.
[2] Stephen Brown dan Zvonko Vranesic,
Fundamentals of DIGITAL LOGIC with
VHDL Design, McGraw-Hill, New York,
2009.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB 8

Anda mungkin juga menyukai