14
MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGA Hafizh Al Fikry (18014044) Asisten:Bimo Wicaksono(18012059) Tanggal Percobaan: 5/10/2015 EL2142-Praktikum Sistem Digital dan Mikroprosesor Laboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika Abstrak Percobaan kali ini mengenai Pengenalan Desain Menggunakan FPGA meliputi beragam percobaan yang bertujuan memperkenalkan perancangan sistem digital dengan menggunakan FPGA. Percobaan perancangan dilakukan dengan merancang FULL ADDER dan merancang 4-bit RIPPLE CARRY ADDER, baik secara skematik maupun menggunakan VHDL. Serta kemudian hasil rancangan disimulasikan baik pada Quartus, Modelsim menggunakan test bench,melakukan proses TAPPING SINYAL maupun diaplikasikan secara langsung kepada papan FPGA. Kata kunci : FPGA, skematik, VHDL, Quartus, testbach,Modelsim. 1. PENDAHULUAN Percobaan kali ini bertujuan untuk memperkenalkan perancangan digital. Perancangan dilakukan baik secara skematik maupun VHDL. FPGA yang digunakan adalah DE1, software perancangan yang digunakan adalah QUARTUS II 9 sp.2 Web Edition, serta Modelsim untuk melakukan testbench dan tapping sinyal. 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

[EL2142]_[02]_[18014044]

Embed Size (px)

DESCRIPTION

Elektronika

Citation preview

Page 1: [EL2142]_[02]_[18014044]

MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGAHafizh Al Fikry (18014044)

Asisten:Bimo Wicaksono(18012059)Tanggal Percobaan: 5/10/2015

EL2142-Praktikum Sistem Digital dan MikroprosesorLaboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika

Abstrak

Percobaan kali ini mengenai Pengenalan Desain Menggunakan FPGA meliputi beragam percobaan yang bertujuan memperkenalkan perancangan sistem digital dengan menggunakan FPGA. Percobaan perancangan dilakukan dengan merancang FULL ADDER dan merancang 4-bit RIPPLE CARRY ADDER, baik secara skematik maupun menggunakan VHDL. Serta kemudian hasil rancangan disimulasikan baik pada Quartus, Modelsim menggunakan test bench,melakukan proses TAPPING SINYAL maupun diaplikasikan secara langsung kepada papan FPGA.

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

1. PENDAHULUAN

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

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 DE1.

2.2 FULL ADDER

Page 2: [EL2142]_[02]_[18014044]

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 :

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 1

TABEL 2.2 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 DE1 atau DE1 beserta perlengkapannya yang meliputi :

Board FPGA tipe DE1, 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

Page 3: [EL2142]_[02]_[18014044]

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

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: [EL2142]_[02]_[18014044]

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: [EL2142]_[02]_[18014044]

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 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: [EL2142]_[02]_[18014044]

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: [EL2142]_[02]_[18014044]

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: [EL2142]_[02]_[18014044]

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 ini digunakan ALTERA QUARTUS II dan board DE1 dengan pendekatan skematik. Dengan menggunakan overwrite clock masukkan A sebesar 10 ns, B sebesar 20 ns, dan Cin

sebesar 40 ns, maka ditampilkan hasil simulasi seperti gambar 4-1 berikut:

Gambar 4-1 Simulasi Percobaan pada QUARTUS II

Tabel 4-1 Tabel Kebenaran Full Adder Percobaan Masukkan Keluaran

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: [EL2142]_[02]_[18014044]

A B CIn COut S 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1

Hasil yang ditunjukkan pada tabel 4-1 diatas sesuai dengan tabel kebenaran full adder referensi. Hal selanjutnya yang akan dilakukan adalah mengimplementasikan pendekatan skematik ini ke FPGA. Gambar 4-2 berikut ini adalah hasil implementasi pada board DE1:

Gambar 4-2 Simulasi Percobaan pada FPGAGambar diatas menunjukkan IC diberikan masukkan A dan Cin, sehingga logika S bernilai 0 dan logika COut bernilai 1. Hasil percobaan ini membuktikan logika full adder berjalan dengan baik di board DE1 yang digunakan.

4.2 MENDESAIN FULL ADDER DENGAN PENDEKATAN BAHASA VHDL Pada percobaan ini, kita akan menggunakan implementasi bahasa VHDL dalam board yang digunakan. Simulasi yang dilakukan menggunakan bahasa VHDL menghasilkan wave seperti gambar 4-3 berikut:

Gambar 4-3 Simulasi Percobaan

Tabel 4-2 Tabel Kebenaran Full Adder Percobaan Masukkan Keluaran A B CIn COut S 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1

Hasil simulasi diatas menunjukkan kesamaan antara keluaran menggunakan pendekatan skematik dan bahasa VHDL. Hal ini menunjukkan bahwa kita dapat menggunakan pendekatan skematik maupun bahasa VHDL dalam melakukan implementasi pada board FPGA.

Gambar 4-4 Simulasi Percobaan pada FPGA Gambar diatas menunjukkan IC FPGA diberikan masukkan A, B, dan Cin sehingga menghasilkan logika S dan Cout bernilai 1.

Dari dua percobaan diatas, kita dapat menganalisis kelebihan dan kerugian dari dua pendekatan tersebut. Pendekatan VHDL lebih sederhana untuk digunakan, karena apabila kita ingin mengimplementasikan rangkaian yang kompleks seperti membuat sebuah

Page 10: [EL2142]_[02]_[18014044]

rangkaian berukuran besar secara manual, maka faktor resiko galat menggunakan pendekatan skematik akan meningkat.

Disisi lain, bahasa VHDL memerlukan pembelajaran bahasa terlebih dahulu, sehingga untuk rangkaian-rangkaian sederhana, pendekatan skematik lebih mudah digunakan dan lebih user-friendly.

4.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER DENGAN VHDL 4-Bit ripple carry adder menerima masukkan A dan B 4 bit, serta Cin 1 bit dan mengembalikan hasil berupa Sum 4 bit dan Cout 1 bit. A0, A1, A2, dan A3 dibuat menjadi satu grup (misalkan A), sedangkan B0, B1, B2, dan B3 dibuat menjadi satu grup pula (misalkan B). Perhatikan hasil waveform berikut ini (gambar 4-5):

Gambar 4-5 Simulasi Percobaan pada QUARTUS IIPerhatikan bahwa waveform diatas akan membentuk tabel kebenaran sebagai berikut:

Tabel 4-3 Tabel Kebenaran 4-Bit Ripple Carry AdderMasukkan Keluaran A B CIn COut S 1111 0000 0 0 1111 0000 1111 0 0 1111 1111 1111 0 1 1110 0000 0000 1 0 0001 1111 0000 1 1 0000 0000 1111 1 1 0000 1111 1111 1 1 1111 0000 0000 0 0 0000

Hasil keluaran dari 4-Bit ripple carry adder diatas sesuai dengan definisi referensi.

Sebagai contoh, saat A = 1111, B = 1111, dan Cin = 0, maka nilai penjumlahan A + B + CIn dalam basis 2 adalah 11110. Perhatikan pada tabel diatas bahwa untuk nilai A,B, CIn yang diberikan, menghasilkan Cout = 1 dan S = 1110 (A + B + CIn =Cout * 10000 + Sum).

4.4 MENDESAIN 4-BIT ADDER DENGAN SKEMATIK Setelah sebelumnya kita menggunakan pendekatan menggunakan bahasa VHDL, pada percobaan ini kita akan menggunakan pendekatan skematik. Berikut ini adalah hasil waveform menggunakan pendekatan skematik (gambar 4-6):

Gambar 4-6 Simulasi Percobaan pada QUARTUS II Hasil waveform diatas dapat ditranslasikan kedalam tabel kebenaran sebagai berikut: Tabel 4-4 Tabel Kebenaran 4-Bit Adder Dengan SkematikMasukkan Keluaran A B CIn COut S 0000 0000 0 0 0000 1111 0000 0 0 1111 0000 1111 0 0 1111 1111 1111 0 1 1110 0000 0000 1 0 0001 1111 0000 1 1 0000 0000 1111 1 1 0000 1111 1111 1 1 1111

Perhatikan bahwa tabel kebenaran 4-4 identik dengan hasil tabel kebenaran 4-3 (menggunakan bahasa VHDL). Hal ini menunjukkan bahwa kita dapat menggunakan baik pendekatan skematik

Page 11: [EL2142]_[02]_[18014044]

maupun bahasa VHDL dalam merancang rangkaian digital seperti 4-Bit carry adder.

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 :

Hasil Simulasi

Gambar 4-7 Simulasi Percobaan pada ModelSim

No force

Gambar 4-8 wave dengan No force

Force

Gambar 4-9 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 Salah satu kelebihan ModelSim dibandingkan ALTERA QUARTUS II adalah simulasi rangkaian mengunakan testbench. Perhatikan gambar 4-10 berikut ini:

Page 12: [EL2142]_[02]_[18014044]

Gambar 4-10Stimulus Generator pada ModelSim

Perintah (command) clock yang semula menggunakan cara Right Click -> Clock dapat digantikan dengan testbench (Design Under Test / DUT). Gambar 4-10 menunjukkan hasil keluaran waveform menggunakan stimulus generator. Amati potongan kode berikut ini:

clock_A : PROCESS BEGIN WAIT FOR 50 ps; A <= not A; end PROCESS clock_A;

Perintah tersebut menunjukkan bahwa setiap 50ps, nilai logika A akan di-invert.. Selain cara tersebut, kita dapat memofikasi wave. Perhatikan contoh berikut ini (gambar 4-11):

Gambar 4-11 Stimulus : PROCESS pada ModelSim

Dari dua contoh berbeda diatas, maka kita dapat mengkombinasikan kemungkinan-kemungkinan logika yang kita inginkan.

4.7 MELAKUKAN PROSES TAPPING SINYAL DARI SEBUAH DESAIN Proses tapping sinyal adalah sebuah proses pengambilan nilai sinyal yang bukan merupakan bagian dari keluaran sistem rangkaian digital yang diuji. Pada percobaan ini, kita misalkan sinyal tersebut adalah Temp, yang bernilai logika A XOR B. Berikut ini adalah hasil waveform dari simulasi yang dijalankan (gambar 4-12):

Gambar 4-12 Proses Tapping pada ModelSim Dari waveform tersebut, kita dapat menganalisis kebenaran dari A XOR B. Perhatikan bahwa saat logika A bernilai 0 dan logika B bernilai 0, maka logika Temp bernilai 0. Dilain waktu, saat logika A bernilai 1 dan logika B bernilai 0, maka logika Temp bernilai 1. Hal ini menunjukkan bahwa hasil waveform keluaran sesuai dengan definisi operasi XOR pada referensi.

5. KESIMPULAN Terdapat dua pilihan piranti lunak yang dapat digunakan, yaitu ALTERA QUARTUS II dan ModelSim keduanya memiliki kelebihan dan kekurangan masing-masing. Dari segi penggunaan, ALTERA QUARTUS II lebih spesifik untuk pemrosesan dengan FPGA secara langsung sedangkan ModelSim digunakan untuk simulasi lokal tanpa perangkat IC,

Page 13: [EL2142]_[02]_[18014044]

. Keuntungan dari ModelSim adalah kita dapat menggunakan testbench, yaitu sebuah file yang digunakan untuk menguji desain (Device Under Test / DUT) yang telah kita buat. Selain itu, ModelSim dapat menggunakan dan membuat script, sehingga prosedur simulasi yang berulang-ulang dapat disingkat dan diproses lebih cepat. Kita dapat memberikan stimulus melalui bahasa VHDL sehingga kita tidak perlu memasukkan input secara manual satu-persatu.

Sedangkan keuntungan dari ALTERA QUARTUS II adalah integrasinya dengan FPGA yang lebih user-friendly dan mudah digunakan. Selain itu, kita dapat menggunakan pendekatan secara skematik ketika ModelSim harus menggunakan bahasa VHDL (file skematik harus di convert terlebih dahulu).

Dari pertimbangan diatas, dapat disimpulkan bahwa ModelSim lebih baik digunakan dalam proses pembelajaran karena lebih compact dan dapat memproses stimulus tanpa membutuhkan interferensi manual dari pengguna.

Secara umum, perangkaian secara digital dapat dilakukan dengan dua pendekatan, baik secara skematik, maupun menggunakan bahasa seperti bahasa VHDL.

Rangkaian Full adder dapat diimplementasikan dengan berbagai cara. Fungsi utama dari rangkaian ini adalah untuk menjumlahkan bilangan biner menggunakan fungsi gerbang logika. Ada

beberapa jenis rangkaian adder seperti Full adder, maupun Ripple carry adder.

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