Introduction to FPGA

14
1 MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGA Yogi Salomo Mangontang Pratama (13511059) Asisten: Tanggal Percobaan: 3/10/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika Abstrak Percobaan kedua mengenai Pengenalan Desain Menggunakan FPGA meliputi beragam percobaan yang bertujuan memperkenalkan perancangan sistem digital yang bertujuan untuk FPGA. Percobaan perancangan dilakukan dengan merancang 4-bit ADDER, baik secara skematik maupun menggunakan VHDL. Serta kemudian hasil rancangan disimulasikan baik pada Quartus, Modelsim menggunakan test bench, maupun diaplikasikan secara langsung kepada papan FPGA. Kata kunci : FPGA, skematik, VHDL, Quartus, testbach. 1. PENDAHULUAN Percobaan kali ini bertujuan untuk memperkenalkan perancangan digital. Perancangan dilakukan baik secara skematik maupun VHDL. FPGA yang digunakan adalah DE2, software perancangan yang digunakan adalah QUARTUS II 9 sp.2 Web Edition, serta Modelsim untuk melakukan testbench. Adapun tujuan dari praktikum ini antara lain : 1. Mempelajari teknik perancangan rangkaian digital dengan target FPGA. 2. Dapat melakukan perancangan rangkaian digital dengan target FPGA baik menggunakan pendekatan skematik maupun bahasa VHDL. 2. STUDI PUSTAKA 2.1 FPGA FPGA development board adalah sebuah alat yang berfungsi untuk mensimulasikan hasil rancangan digital dalam bentuk LED ataupun seven segment, yang perancangannya dilakukan dengan software QUARTUS, dengan tahapan umum sebagai berikut : 1. Buat desain dengan text editor ataupun graphic editor 2. Simpan desain yang telah dibuat 3. Menentukan desain mana yang dijadikan Project 4. Menentukan device yang akan dihubungkan 5. Kompilasi dan membuat simbol- simbol standar 6. Periksa apakah perlu disimulasi. Apabila tidak, langsung lanjut ke langkah delapan 7. Buat waveform dan simulasikan 8. Menentukan koneksi Pin dan Kompilasi 9. Download ke device

description

Introduction to use FPGA in digital designing

Transcript of Introduction to FPGA

Page 1: Introduction to FPGA

1

MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGAYogi Salomo Mangontang Pratama (13511059)

Asisten: Tanggal Percobaan: 3/10/2012

EL2195-Praktikum Sistem DigitalLaboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika

Abstrak

Percobaan kedua mengenai Pengenalan Desain Menggunakan FPGA meliputi beragam percobaan yang bertujuan memperkenalkan perancangan sistem digital yang bertujuan untuk FPGA. Percobaan perancangan dilakukan dengan merancang 4-bit ADDER, baik secara skematik maupun menggunakan VHDL. Serta kemudian hasil rancangan disimulasikan baik pada Quartus, Modelsim menggunakan test bench, maupun diaplikasikan secara langsung kepada papan FPGA.

Kata kunci : FPGA, skematik, VHDL, Quartus, testbach.

1. PENDAHULUAN

Percobaan kali ini bertujuan untuk memperkenalkan perancangan digital. Perancangan dilakukan baik secara skematik maupun VHDL. FPGA yang digunakan adalah DE2, software perancangan yang digunakan adalah QUARTUS II 9 sp.2 Web Edition, serta Modelsim untuk melakukan testbench.

Adapun tujuan dari praktikum ini antara lain :

1. Mempelajari teknik perancangan rangkaian digital dengan target FPGA.

2. Dapat melakukan perancangan rangkaian digital dengan target FPGA baik menggunakan pendekatan skematik maupun bahasa VHDL.

2. STUDI PUSTAKA

2.1 FPGA

FPGA development board adalah sebuah alat yang berfungsi untuk mensimulasikan hasil rancangan digital dalam bentuk LED

ataupun seven segment, yang perancangannya dilakukan dengan software QUARTUS, dengan tahapan umum sebagai berikut :

1. Buat desain dengan text editor ataupun graphic editor

2. Simpan desain yang telah dibuat

3. Menentukan desain mana yang dijadikan Project

4. Menentukan device yang akan dihubungkan

5. Kompilasi dan membuat simbol-simbol standar

6. Periksa apakah perlu disimulasi. Apabila tidak, langsung lanjut ke langkah delapan

7. Buat waveform dan simulasikan

8. Menentukan koneksi Pin dan Kompilasi

9. Download ke device

Berbagai jenis FPGA board antara lain DE1, DE2, DE2 70, ALTERA UP2.

2.2 FULL ADDER

Full Adder adalah komponen yang berfungsi untuk menambahkan bit pada rangkaian digital. Keunggulan Full Adder dari Half Adder adalah kemampuannya menampung dan menjumlahkan bit CARRY-in (Cin) yang berasal dari CARRY-out (Cout) tahapan sebelumnya. Secara matematis, rumus dari Full Adder antara lain :

S=Cin⊕ (A⊕B )

C out=Cin (A⊕B )+(A .B)

Dengan tabel kebenaran berupa :

Page 2: Introduction to FPGA

2

A B Cin S Cout

0 0 1 0 00 0 0 1 00 1 1 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1TABEL 2.2.1 Tabel Kebenaran Full Adder

Terdapat beberapa jenis rangkaian Full Adder, antara lain Parallel Adder, Look Ahead Carry Adder, dan Carry Save Adder.

3. METODOLOGI

Alat-alat yang digunakan dalam percobaan ini antara lain :

1. Komputer yang telah ter-install program Quartus II

2. FPGA development board, tipe ALTERA UP2 atau DE1 beserta perlengkapannya yang meliputi :

Board FPGA tipe UP2, DE1, DE2, atau DE2-70

Catu Daya+ Kabel dan konektor tambahan

Kabel downloader ‘ByteBlaster II’ dan USB-Blaster.

3.1 PERCOBAAN 2A : MENDESAIN FULL ADDER DENGAN SKEMATIK

3.1.1 Membuat Projek Baru Menggunakan Quartus II 9.0 sp2

Web Edition

3.1.2 Memilih dan Menempatkan Komponen

Buat suatu folder baru dalam folder PraktikumSisdig ( jika belum ada

buatlah terlebih dahulu. Dan dalam folder tersebut buat dua folder

yang bernama Tutorial 1 dan Tutorial 2

Jalankan Quartus II 9.0 sp2 Web Edition, klik File -> New Project

Wizard, kemudian klik Next pada jendela Introduction

Klik Finish karena untuk langkah berikutnya menggunakan setting yang default

Lewati jendela bagian Add Files dengan mengklik Next, kemudian pada bagian "Family" dan

"Available Device" masukkan nama yang sesuai dengan yang tertera pada manual board dari

masing-masing kelompok

Pada bagian directory, tekan tombol "..." yang ada di sebelah kanan dan carilah folder yang telah

dibuat sebelumnya kemudian tekan tombol Open, dan pada bagian nama project dan top level entity

tuliskan nama yang sama dengan folder

Page 3: Introduction to FPGA

3

3.1.3 Menambahkan Hubungan untuk Membentuk Net

3.1.4 Pelabelan Net dan pin I/O

3.1.5 Menetapkan I/O pin pada kaki FPGA

klik File -> New kemudian pilih Block Diagram/ Schematic file sebagai pilihan desain kemudian

klik OK. Simpan file tersebut sebagai Tutorial2.bdf

Pilih File -> Page Setup kemudian pilih letter

sebagai ukuran kertas

Buka jendela Symbol Tools dengan mengklik ikon bergambar gerbang

AND pada bagian kiri jendela

cari komponen XOR pada folder primitives dan klik dua kali pada nama komponen tersebut. cari posisi yang tepat kemudian klik 1 kali pada posisi tersebut untuk

menempatkan gerbang XOR. Tekan Esc bila telah selesai

Ulangi langkah di atas untuk menempatkan gerbang AND 2 masukan,

gerbang OR 2 masukan, serta gerbang NOT sesuai yang dibutuhkan

Buka kembali jendela Symbol Tools kemudian buka folder Pin, pilih jenis

Input maupun Output dan tempatkan sesuai dengan rankaian yang diinginkan

Pilih Orthogonal Node Tool pada bagian toolbar yang memiliki simbol

siku untuk menggambarkan kabel

Arahkan pointer mouse ke salah satu sisi yang akan dihubungkan lalu klik kiri dan tahan sampai ke ujung

lain yang diinginkan, kemudian lepas tombol mouse anda

Bentuk sebuah rangkaian sesuai dengan referensi gambar yang

terdapat dalam modul praktikum

Klik dua kali pada tiap port input dan output kemudian rubah nama dari pin sesuai yang ada

pada gambar. A B C untuk input dan SUM CARRY A_OUT B_OUT C_OUT untuk output. nilai port

masukan biarkan default bernilai VCC

Page 4: Introduction to FPGA

4

3.1.6 Pembuatan Netlist untuk simulasi

3.1.7 Membuat Waveform masukan

Simpan skematik kemudian pilih Processing -> Start -> Start Analysis & Synthesis atau klik CTRL+K.

Pastikan tidak ada error!

Pilih Assignment -> Pin planner, akan terbuka sebuah jendela baru dimana sebelah atas akan ada gambar FPGA dengan posisi kaki-kakinya dan di bawah ada

daftar berisi port input-output skematik kita

Klik Direction untuk mengurutkan pin. kemudian pada kolom Location double-klik kiri kolom yang sebaris dengan port yang akan ditinjau dan akan

muncul daftar kaki FPGA yang bisa dipakai

Pada percobaan ini kita menggunakan switch sebagai input dan LED pada 7Segment untuk keluaran. Pada DE2 apabila switch berada di bawah berarti bernilai

0 dan di atas bernilai 1

Sementara LED 7-Segment bernilai 1 saat menyala dan 0 saat mati. Hubungkan port dengan kaki FPGA yang sesuai kaki komponen yang telah dilampirkan

pada referensi

Klik Processing -> Simulator Tool, kemudian ubah Simulation Mode menjadi Functional, klik Generate Functional Simulation Netlist. Pastikan tidak ada error!

Klik pada check box di sebelah kiri "Overwrite Simulation input file with simulation result" agar setiap kita melakukan simulasi hasilnya langsung

ditampilkan pada file simulasi kita

Klik tombol Open pada bagian bawah jendela Simulator Tool. anda akan mendapatkan jendela baru yang

memiliki nama default waveform1.vwf

Klik kanan pada bagian kolom Name jendela tersebut dan pilih Insert -> Insert Node or Bus -> Node Finder.

Pilih bagian Filter -> Pins: all kemudian klik kiri pada tombol List

Klik kanan pada tombol >> untuk mensimulasikan seluruh port. Klik

detach window kemudian simpan file simulasi ini dengan nama Tutorial1.vwf

Klik Simulator Tool, kemudian pada kolom simulation input pilih file

Tutorial1.vwf sebagai input simulasi

Page 5: Introduction to FPGA

5

3.1.8 Mengimplementasikan Desain

3.2 MENDESAIN FULL ADDER DENGAN PENDEKATAN BAHASA VHDL

3.2.1 Membuat Projek Baru Kembali

3.2.2 Memasukkan Desain VHDL

Klik File -> Open kemudian pilih Tutorial1.vwf untuk membuka kembali file yang telah

dibuat, kemudian klik kiri pada port masukan A pada kolom paling kiri file tersebut

Perhatikan pada bagian Project Navigator, bagian yang tadinya abu-abu menjadi biru (aktif). Klik

tombol Overwrite Clock untuk memberikan pulsa segiempat dengan periode tertentu

Pada jendela Clock, pilih Time Period -> Period kemudian isi

periode sebesar 10ns

Ulangi langkah-langkah di atas untuk port masukan B, dengan nilai Periode sebesar 20ns, dan untuk C

dengan periode sebesar 40ns

Pada jendela Simulator Tool pilih tombol Start untuk memulai simulasi. amati

hasil simulasi pada jendela Tutorial1.vwf dan analisa hasil yang didapatkan

Klik Processing -> Start Compilation untuk melakukan kompilasi terhadap file

Siapkan board FPGA Anda, pasang kabel catu daya dan kabel programmer pada

tempatnya masing-masing dan nyalakan board tersebut

Klik Tools -> Programmer untuk konfigurasi. Klik tombol Hardware Setup, pada bagian Hardware, klik USB-Blaster

untuk DE2, pada bagian Mode, pilih JTAG

Klik Add File dan carilah file Tutorial1.sof kemudian klik Open

apabila file teresebut tidak terlihat pada jendela utama

Sorot nama file, lakukan checklist pada kolom "Prgram/Configure", kemudian klik tombol Start untuk memprogram

FPGA

Coba kombinasikan masukan dari switch 1-3 yang merepresentasikan

masukan A, B, dan C. Analisa hasil yang didapat kemudian catat pada BCL

Buat project baru seperti yang telah dijelaskan pada langkah-langkah sebelumnya, beri nama dan top level entity : "modul2vhdl" kemudian simpan

pada directory Tutorial2

Klik Next, leewatkan jendela yang dapat digunakan untuk menambahkan file pendukung, lalu

kemudian pada bagian "Family" dan "Available Device pilih yang sesuai dengan FPGA Anda

Page 6: Introduction to FPGA

6

3.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER DENGAN VHDL

3.4 MENDESAIN 4-BIT ADDER DENGAN SKEMATIK

3.5 SIMULASI SEDERHANA MENGGUNAKAN MODELSIM

3.5.1 Memulai Simulasi dengan Menggunakan Modelsim ALTERA STARTER EDITION 6.4a

Klik File -> New , kemudian pilih VHDL File sebagai pilihan desain dan klik OK. Klik Detach Windows, lalu simpan file tersebut sebagai modul2vhdl.vhd

Anda akan mendapatkan jendela kosong tempat untuk menuliskan kode VHDL Anda, ketikkan

script yang telah diberikan pada modul praktikum kemudian simpan dengan menekan CTRL + S

Ulangi langkah-langkah pada Percobaan 2A mulai dari menetapkan I/O pin pada kaki FPGA. Catat

segala kejadian dan perbedaan dengan percobaan sebelumnya kemudian lakukan analisa

Buatlah folder dan project baru dengan nama project dan top-level

entity adder4bit.

Tambahkan file VHDL pada project tersebut dan tuliskan kembali kode

yang tertera pada Modul Praktikum, kemudian simpan file

Lakukan Simulasi secara fungsional seperlunya dan lihat apakah adder4bit bekerja seperti yang diharapkan. Catat

hasil percobaan dan lakukan analisis

Buat Project baru dengan nama project dan top-level entity adder4bit2

Kopi file pendukung yang bernama FullAdder.bsf dan FullAdder.bdf dari website labdasar ke dalam folder proyek

Anda

Tambahkan file skematik kosong ke dalam project Anda. Ketika membuka Symbol Tool, Anda akan mendapati

direktori baru yang bernama project, di dalamnya terdapat blok yang bernama FullAdder dan merupakan representasi

skematik dari file pendukung yang kita gunakan

Gunakan blok tersebut dan symbol lainnya untuk membuat rangkaian seperti pada gambar yang tertera pada modul

praktikum

Lakukan simulasi secara fungsional dan lihat apakah hasilnya sama dengan ketika menggunakan VHDL. Catat

hasil percobaan dan analisis segala yang terjadi pada percobaan

Page 7: Introduction to FPGA

7

3.5.2 Menjalankan Simulasi dengan Menggunakan Modelsim ALTERA STARTER EDITION 6.4a

3.6 MEMBUAT TESTBENCH

Bukalah program Modelsim ALTERA STARTER EDITION 6.4a. Setelah muncul tampilan awal,

pilih Close untuk menutupnya

Klik File -> Change Directory pada baris menu untuk mengubah direktori folder kerja

Klik File -> New -> Library untuk membuat library baru. Atur dan isilah jendela yang muncul.

Library name adalah nama library yang diberikan pada directory ini, sedangkan Library Physical Name adalah nama directory yang digunakan

Klik Compile -> Compile untuk meng-compile desain yang ingin disimulasikan. Tentukan file yang ingin disimulasikan lalu klik

compile, jika telah selesai, klik Done

Klik Simulate -> Start Simulation. Pada jendela yang muncul, piilih file yang akan disimulasikan, kemudian pilih OK.

Right Click -> Add -> To Wave -> All item in region untuk menambahkan wave yang akan kita lihat hasil simulasi di

window simulator

Right Click -> Clock untuk membuat stimulus. Masukkan nilai periode clock simulasi sebesar 50ps untuk sinyal A dan biarkan

parameter lain disetting dalam keadaan default, setelah itu pilih OK. tambahkan 2 sinyal lain dengan cara yang sama

namun dengan periode 100ps untuk B dan 200ps untuk C.

Klik Tools -> Run untuk menjalankan simulasi, ambil gambar sinyal hasil simulasi yang

muncul kemudian sertakan dalam laporan. Lakukan analisis terhadap hasil yang didapat

Right Click -> No Force dan jalankan kembali simulasi, ambil gambar sinyal hasil yang

didapat dan lakukan analisis

Right Click -> Force dan jalankan kembali simulasi, ambil gambar sinyal hasil yang

didapat dan lakukan analisis

Buatlah folder baru pada direktori yang ada sebelumnya, tambahkan file testbench dan file DUT (Device Under Test) dengan mengetikkan kode yang terdapat pada modul praktikum dan menyimpannya pada direktori

tersebut.

Lakukan proses compile file tersebut dengan cara seperti langkah 1 pada percobaan 2A-a dan 2A-b, kemudian

lakukan simulasi seperti langkah2-3 pada percobaan 2A-b

Klik Tools -> Run untuk menjalankan simulasi. Ambil gambar sinyal hasil simulasi tersebut dan sertakan dalam

laporan. Lakukan analisis terhadap hasil tersebut

Lakukan modifikasi pada stimulus generator dengan cara mengubah script yang telah disimpan sebelumnya pada bagian yang mendefinisikan periode clock, seperti yang

tertera pada modul praktikum

Simpan perubahan yang terjadi pada file tersebut, kemudian compile kembali dan simulasi pada file yang

telah dimodifikasi seperti pada langkah 2. Setelah proses simulasi berjalan, hentikan simulasi dengan mengklik

Simulate -> End Simulation. Catat dan analisis hasil simulasi serta perbedaannya dengan yang sebelumnya

Page 8: Introduction to FPGA

8

3.7 MELAKUKAN PROSES TAPPING SINYAL DARI SEBUAH DESAIN

3.8 MEMBUAT SCRIPT UNTUK MELAKUKAN SIMULASI

4. HASIL DAN ANALISIS

4.1 MENDESAIN FULL ADDER DENGAN SKEMATIK

Pada percobaan 4.1 kami melakukan percobaan mengenai perancangan suatu Full Adder dengan pendekatan skematik. Full Adder yang kami rancang memiliki 3 masukan ( A, B, dan C) serta 5 keluaran ( SUM, CARRY, A_OUT, B_OUT, C_OUT).

Dimana masing-masing input dan output dihubungkan kaki-kaki FPGA sebagai berikut :

Lakukan modifikasi pada file DUT dengan cara mengubahnya menjadi seperti scripts yang tertera

pada modul praktikum

Simpan perubahan yang terjadi pada file tersebut. Lakukan kembali compile dan simulasi pada file yang

telah dimodifikasi seperti pada langkah 2 pada percobaan c

Tambahkan wave pada jendela simulasi yang kemudian dimunculkan oleh program setelah langkah sebelumnya selesai dilakukan. caranya dengan Right

Click -> Add -> To Wace -> Selected Items

Klik Tools -> Run untuk menjalankan simulasi, kemudia ambil gambar sinyal hasil simulasi,

kemudian sertakan dalam laporan, serta lakukan analisis

Pada direktori percobaan sebelumnya, lakukan modifikasi pada file bernama sim.do dengan

mengetikkan script yang terdapat pada modul praktikum

Pada jendela transcript yang terdapat pada jendela program Modelsim ALTERA STARTER EDITR 6.4a,

ketik "do sim.do". Setelah itu, klik kanan file modul2vhdl pada jendela library dan pilih Simulate

Tambahkan wave pada jendela simulasi dengan melakukan Right Click -> Add -> To Wave -> All tiem

in region. Kemduian buat sinyal stimulus secara manual seperti pada langkah 4 pada percobaan 2A-b

Pada jendela transcript akan muncul script, tambahkan script yang terdapat pada modul

praktikm sebagai modifikasi pada baris paling bawah file sim.do, lalu simpan perubahan file tersebut

Kembali lakukan "do sim.do" kemudian jalankan ksimulasi dengan memilih menu Tools-> Run. Ambil gambarnya kemudian analisis dan sertakan dalam

laporan

Ubah file.do menjadi seperti yang tertera pada modul praktikum

Lakukan simulasi degan menggunakan testbench pada percobaan 2B. Catat

hasilnya, sertakan dalam laporan, dan lakukan analisis dari haisl yang diperoleh

Page 9: Introduction to FPGA

9

A SW[3] AE14B SW[4] AF14C SW[5] AD13SUM Seven

Segment0[0]

AF10

CARRY Seven Segment0[1]

V13

A_OUT Seven Segment 0[3]

AD11

B_OUT Seven Segment 1[6]

AB24

C_OUT Seven Segment1[0]

V20

TABEL 4.1.1 Tabel Hubungan input output rangkaian dengan kaki-kaki FPGA

Pada percobaan ini kami menghubungkan output dengan LED Seven-Segment dan input dengan switch. Dimana pada switch input, posisi switch di bawah artinya nilai yang diberikan LOW atau 0, dan bila di atas, nilainya HIGH atau 1. Sementara outputnya bernilai 0 pada saat lampu LED Seven Segment mati dan bernilai 1 saat LEDnya menyala. Untuk menguji apakah rangkaian yang kami buat benar, kami memasukkan 4 kombinasi dan menerima keluaran sebagai berikut :

A B C Output0 0 1

0 1 0

1 0 0

1 1 1

TABEL 4.1.2 Tabel keluaran dari FPGA

Adapun keterangan dari gambar di atas adalah :

Gambar 4.1.1 Keterangan

Dan setelah melakukan pengecekan terhadap tabel kebenaran Full Adder (Tabel 2.2.1) didapatkan data yang sesuai. Hal ini berarti kami telah berhasil menghasilkan suatu Full Adder yang benar.

4.2 MENDESAIN FULL ADDER DENGAN PENDEKATAN BAHASA VHDL

Pada Percobaan kedua ini kami kembali melakukan perancangan Full Adder, tapi mencoba melakukannya dengan pendekatan VHDL. Yaitu dengan mengetikkan kode yang ada pada modul praktikum.

Setelah melakukan proses perancangan, kami melakukan simulasi dengan waveform yang menghasilkan bentuk demikian :

Gambar 4.2.1 Waveform VHDL dari Full Adder

Arti dari grafik ini adalah, kami mensimulasikan input dari Full Adder ini dengan suatu gelombang yang periodenya ditentukan terlebih dahulu. Adapun arti dari grafik gelombang, saat di bawah, artinya nilainya LOW atau 0, sementara saat di atas nilainya HIGH atau 1. Setelah disimulasikan oleh software, dihasilkan

Page 10: Introduction to FPGA

10

pula waveform dari outputnya dengan arti yang sama.

Setelah melakukan perhitungan dan perbandingan dengan TABEL 2.2.1, kami mengamati bahwa waveform dari Full Adder kami benar dan nilainya sesuai.

Setelah itu kamipun mencoba mengaplikasikannya kepada FPGA untuk melihat hasil keluarannya. Kami menyambungkannya dengan spesifikasi sebagai berikut :

A SW[3] AE14B SW[4] AF14C SW[5] AD13COUT Seven

Segment0[0]

AF10

S Seven Segment0[1]

V13

TABEL 4.2.1 Hubungan Input Dengan Kaki FPGA

Dan hasil yang kami dapatkan pada FPGA antara lain:

A B C Output0 0 1

0 1 1

1 0 1

1 1 1

TABEL 4.2.2 Output dari FPGA

Dan setelah mendapatkan hasil ini, kami memeriksa kembali dengan menghitung dan membandingkan hasil yang kami dapat dengan TABEL 2.2.1 dan kami mendapatkan hasil yang sesuai. Hal ini

berarti perancangan Full Adder kami dengan VHDL berjalan dengan baik dan benar.

4.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER DENGAN VHDL

Pada percobaan kali ini kami mencoba merancang sebuat 4-BIT Adder yang berfungsi untuk menambahkan 2 buah angka dengan jumlah 4 bit. Dan pada percobaan kali ini dilakukan dengan menggunakan VHDL, kami mengetikkan kode yang diberikan pada modul praktikum ke jendela VHDL design, dan kemudian menyimpan dan melakukan simulasinya.

Berdasarkan hasil simulasi yang kami peroleh, kami ingin memeriksa kebenaran dari waveform tersebut, dan melakukannya dengan mengambil satu contoh.

Bila kita perhatikan bagian yang paling kiri dari waveform, itu merupakan penjumlahan dari 12 dan 8 yang apabila dalam biner dapat dituliskan sebagai :

GAMBAR 4.3.1 Waveform 4BIT Adder VHDL

1100 + 1000 = 10100

Dimana 0 paling kanan merupakan S0, 0 kedua merupakan S1, 1 yang tengah merupakan S2, dengan 0 di kirinya adalah S3, dan 1 yang paling kiri adalah COUT. Dan

Page 11: Introduction to FPGA

11

dengan mengingat bentuk 0 dan 1 pada waveform, dapat kita amati bahwa nilai dari seluruh output yang diperoleh sesuai dengan perhitungan. Hasil perhitungan ini mewakili keseluruhan waveform yang dapat kita lihat nilainya adalah benar.

Hal ini berarti rancangan yang kami buat berhasil dengan baik dan benar.

4.4 MENDESAIN 4-BIT ADDER DENGAN SKEMATIK

Pada percobaan kali ini kami kembali merancang sebuah 4-BIT Adder akan tetapi kali ini dengan pendekatan skematik, setelah sebelumnya menambahkan file pendukung baru ke dalam direktori skematik Quartus. File pendukung ini gunanya adalah untuk mempermudah dalam perancangan, sehingga tidak perlu lagi mendefinisikan adder itu sendiri.

Setelah rancangan selesai dan disimpan, kami melakukan simulasi dengan waveform, dan hasil yang kami peroleh antara lain :

GAMBAR4.42 Waveform 4BIT Adder Skematik

Untuk menguji kebenaran dari Waveform ini, kami melakukan perhitungan terhadap

gelombang paling kiri, yang merepresentasikan

10 + 5 = 15

1010 + 0101 = 01111

Dimana 0 merupakan COUT dan angka 1 mulai dari kiri adalah S3, S2, dan S1. Bila kita melihat waveform, dengan mengingat cara pembacaan waveform ( gelombang di atas berarti HIGH atau 1 dan di bawah berarti LOW atau 0) dapat kita amati bahwa waveform tersebut bernilai benar. Hal ini mengindikasikan bahwa 4BIT Adder yang kami buat berhasil dengan baik dan benar.

4.5 SIMULASI SEDERHANA MENGGUNAKAN MODELSIM

Pada Percobaan ini kami mencoba melakukan kompilasi file VHDL menggunakan Modelsim yang merupakan compiler fungsional. Setelah mengetikkan script yang ada pada modul praktikum, kami menjalankan simulasi pada Modelsim ini dan mendapatkan hasil sebagai berikut :

No force

GAMBAR 4.5.1 Wave dengan No Force

Force

Page 12: Introduction to FPGA

12

GAMBAR 4.5.2 Wave dengan Force

Apabila dibandingkan dengan hasil simulasi pada percobaan yang sebelumnya, simulasi kali ini memberikan hasil yang sama, hal ini berarti Modelsim dapat melakukan fungsi yang sama dengan Quartus.

Akan tetapi bila kita amati, tidak terdapat perbedaan antara hasil simulasi yang Force dengan yang Non-Force. Sementara berdasarkan teori, seharusnya dengan diberikannya Force, akan terjadi dampak yang dapat merubah bentuk wave yang ada pada rangkaian. Hal ini berarti ada yang tidak benar dalam pengerjaannya, dan menurut analisis kemungkinan hal ini terjadi disebabkan oleh belum dideklarasikannya tipe force yang diberikan(freeze, drive, deposit, dll.) sehingga tidak terjadi dampak apapun meskipun kami memberikan Force.

4.6 MEMBUAT TESTBENCH

Pada percobaan ini, kami mencoba cara lain untuk memberikan input kepada rangkaian digital dengan cara yang berbeda dari memasukkan input satu-satu, yaitu dengan membuat file Design Under Test (DUT). Setelah kami membuat scriptnya dan menjalankan, maka kami mendapatkan hasil sebagai berikut :

GAMBAR4.6.1Wave dengan script pertama

Kemudian kami merubah skrip data stimulusnya dan kemudian menghasilkan gelombang seperti pada gambar :

GAMBAR4.6.2Wave dengan script kedua

Dapat kita amati bahwa pada proses yang pertama, nilai A, B, dan C berubah menjadi inversnya dalam tiap periode yang diberikan kepada masing-masing input, sementara pada proses kedua setelah waktu yang diberikan, nilai inputnya menjadi HIGH atau 1 sampai akhir simulasi, hal ini berarti Modelsim menjalankan dengan baik script yang diberikan dan testbench terbentuk dengan berhasil, sesuai dengan keinginan.

4.7 MELAKUKAN PROSES TAPPING SINYAL DARI SEBUAH DESAIN

Pada percobaan ini kami ingin melihat bagaimana sinyal sesungguhnya dari rangkaian digital kami, tanpa harus memberikan kombinasi masukan terlebih dahulu. Setelah melakukan proses tapping, kami mendapatkan hasil seperti yang tertera pada gambar :

GAMBAR 4.7.1 Wave dengan proses Tapping

Dapat kita amati bahwa grafik di atas merupakan simulasi dasar dari rumus rangkaian digital yang kita miliki, dimana inputnya meningkat secara kontinyu mulai dari 000, 001, dst. Hal ini merupakan bukti bahwa proses tapping berjalan dengan baik.

Page 13: Introduction to FPGA

13

4.8 MEMBUAT SCRIPT UNTUK MELAKUKAN SIMULASI

Pada percobaan ini membuat skrip untuk menjalankan simulasi dengan sendirinya. Adapun skrip yang akan diketik adalah :

# Resume macro file

onbreak {resume}

# Menghapus library yang telah dibuat jika ada

if [file exists work] {

vdel -all

}

# Membuat library

vlib work

# Compile

vcom modul2vhdl.vhd

#stimulus generator

force -freeze sim:/modul2vhdl/a 1 0, 0 {25 ps} -r 50

force -freeze sim:/modul2vhdl/b 1 0, 0 {50 ps} -r 100

force -freeze sim:/modul2vhdl/cin 1 0, 0 {100 ps} -r 200

Dan hasilnya adalah :

Dapat diamati bahwa hasil wave yang dikembalikan sesuai dengan yang diberikan sehingga script simulasi ini berjalan dengan baik.

5. KESIMPULAN

Perancangan suatu rangkaian digital dapat dilakukan dengan baik dengan VHDL maupun secara skematik. Keduanya akan mengembalikan hasil yang sama, akan tetapi tiap-tiap metode memiliki kelebihan dan kekurangan masing-masing. Dengan skematik kita dapat membuat rangkaian sesuai dengan gambaran dan dapat melihat langsung bagaimana bentuk rangkaiannya, sementara dengan VHDL kita tidak perlu memikirkan bentuk rangkaiannya, sehingga akan lebih bermanfaat dalam perancangan rangkaian yang kompleks.

Modelsim dan Quartus dapat menjalankan simulasi dengan baik. Akan tetapi terdapat perbedaan antara keduanya. Yang membedakan Modelsim dari Quartus adalah pada Modelsim kita dapat melakukan manipulasi terhadap rangkaian yang kita buat, yaitu dengan menggunakan force, sehingga kita dapat melakukan debugging dengan lebih baik. Selain itu pada Modelsim juga terdapat Simulator Tool yang tidak kita temukan pada Quartus.

6. DAFTAR PUSTAKA

Brown, Steven dan Varesnic, Zvonko. 2005. Fundamental Of Digital Logic with VHDL Design.

Hutabarat, Mervin, dkk, Modul Praktikum Sistem Digital, Institut Teknologi Bandung, Bandung, 2010