10
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1 MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGA Iskandar Setiadi (13511073) Asisten: Alfian Abdi / 13208044 Tanggal Percobaan: 01/10/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Pada era modern ini, pemodelan rangkaian digital tidak hanya dapat dilakukan secara manual, tetapi dapat didesain menggunakan IC dengan bantuan komputer. Salah satu teknik perancangan yang sering digunakan adalah FPGA dengan pendekatan skematik maupun bahasa VHDL. Pada kesempatan ini, kita akan mengimplementasikan rangkaian full-adder dengan target FPGA. Kata kunci: FPGA, full-adder, skematik, dan bahasa VHDL 1. PENDAHULUAN Perancangan fungsi logika dapat dilakukan dengan setidaknya dua cara, yaitu secara manual maupun digital. Perancangan digital dapat dilakukan di berbagai macam target, salah satunya adalah FPGA. FPGA, atau dikenal juga sebagai field-programmable gate array, merupakan sebuah devais yang dapat mengimplementasikan fungsi logika berulang kali. Pada percobaan ini, perancangan rangkaian dibantu dengan dua piranti lunak tambahan, yaitu ALTERA QUARTUS II dan ModelSim. Ada sedikitnya dua cara dalam melakukan perancangan digital, yaitu menggunakan bahasa VHDL maupun pendekatan secara skematik. Dengan mendesain rangkaian full-adder, 4-bit ripple carry adder, maupun 4-bit adder menggunakan berbagi metoda, diharapkan dasar-dasar perancangan rangkaian digital dapat dikuasai dengan baik. 2. STUDI PUSTAKA Cara tradisional dalam mengimplementasikan fungsi logika adalah dengan menggunakan rangkaian CMOS / TTL. Seiring perkembangan zaman, penggunaan chip yang dapat diprogram secara digital pun bermunculan dan disebut juga Programmable Logic Devices (PLDs), [3]. Salah satu teknik perancangan rangkaian digital untuk mengimplementasikan fungsi logika adalah dengan menggunakan FPGA. 2.1 FIELD PROGRAMMABLE GATE ARRAY (FPGA) FPGA adalah sebuah integrated circuit yang dapat dikonfigurasi dan diprogram berkali-kali. FPGA terdiri atas logika yang dapat diprogram, yang disebut dengan blok logika (logic blocks),[5]. Gambar 2-1 Core dari FPGA Stratix IV ALTERA Setiap pin masukkan dari FPGA memiliki fungsionalitasnya sendiri dan secara umum, setiap gerbang logika yang dimiliki oleh FPGA mampu menyimpan baik logika HIGH dan logika LOW dalam komponen logika yang disebut dengan Look-Up Table (LUT),[1]. 2.2 ALTERA UP2 EDUCATION KIT Pada percobaan ini, salah satu board yang digunakan dalam laboratorium adalah ALTERA UP2 Education Kit. IC ini termasuk dalam kelas (Family) FLEX10K,[7]. Gambar 2-2 IC ALTERA UP2 Pin-pin yang nantinya akan digunakan pada percobaan ini terangkum dalam tabel berikut:

Pengenalan Desain Menggunakan FPGA

Embed Size (px)

DESCRIPTION

Laporan Praktikum 2

Citation preview

Page 1: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1

MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGA

Iskandar Setiadi (13511073) Asisten: Alfian Abdi / 13208044 Tanggal Percobaan: 01/10/2012 EL2195-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak

Pada era modern ini, pemodelan rangkaian digital tidak hanya dapat dilakukan secara manual, tetapi dapat didesain menggunakan IC dengan bantuan komputer. Salah satu teknik perancangan yang sering digunakan adalah FPGA dengan pendekatan skematik maupun bahasa VHDL. Pada kesempatan ini, kita akan mengimplementasikan rangkaian full-adder dengan target FPGA.

Kata kunci: FPGA, full-adder, skematik, dan bahasa VHDL

1. PENDAHULUAN

Perancangan fungsi logika dapat dilakukan dengan setidaknya dua cara, yaitu secara manual maupun digital. Perancangan digital dapat dilakukan di berbagai macam target, salah satunya adalah FPGA.

FPGA, atau dikenal juga sebagai field-programmable gate array, merupakan sebuah devais yang dapat mengimplementasikan fungsi logika berulang kali. Pada percobaan ini, perancangan rangkaian dibantu dengan dua piranti lunak tambahan, yaitu ALTERA QUARTUS II dan ModelSim.

Ada sedikitnya dua cara dalam melakukan perancangan digital, yaitu menggunakan bahasa VHDL maupun pendekatan secara skematik. Dengan mendesain rangkaian full-adder, 4-bit ripple carry adder, maupun 4-bit adder menggunakan berbagi metoda, diharapkan dasar-dasar perancangan rangkaian digital dapat dikuasai dengan baik.

2. STUDI PUSTAKA

Cara tradisional dalam mengimplementasikan fungsi logika adalah dengan menggunakan rangkaian CMOS / TTL. Seiring perkembangan zaman, penggunaan chip yang dapat diprogram secara digital pun bermunculan dan disebut juga Programmable Logic Devices (PLDs), [3]. Salah satu teknik perancangan rangkaian digital untuk mengimplementasikan fungsi logika adalah dengan menggunakan FPGA.

2.1 FIELD PROGRAMMABLE GATE ARRAY (FPGA)

FPGA adalah sebuah integrated circuit yang dapat dikonfigurasi dan diprogram berkali-kali. FPGA terdiri atas logika yang dapat diprogram, yang disebut dengan blok logika (logic blocks),[5].

Gambar 2-1 Core dari FPGA Stratix IV ALTERA

Setiap pin masukkan dari FPGA memiliki fungsionalitasnya sendiri dan secara umum, setiap gerbang logika yang dimiliki oleh FPGA mampu menyimpan baik logika HIGH dan logika LOW dalam komponen logika yang disebut dengan Look-Up Table (LUT),[1].

2.2 ALTERA UP2 EDUCATION KIT

Pada percobaan ini, salah satu board yang digunakan dalam laboratorium adalah ALTERA UP2 Education Kit. IC ini termasuk dalam kelas (Family) FLEX10K,[7].

Gambar 2-2 IC ALTERA UP2

Pin-pin yang nantinya akan digunakan pada percobaan ini terangkum dalam tabel berikut:

Page 2: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 2

Tabel 2-1 Referensi Kaki UP2

Nama PIN Kaki yang digunakan UP2

A PIN_41

B PIN_40

C PIN_39

A_OUT PIN_6

B_OUT PIN_13

C_OUT PIN_9

CARRY PIN_24

SUM PIN_17

2.3 FULL ADDER

Seperti penjumlahan dalam basis desimal, kita dapat mengoperasikan penjumlahan dalam basis biner menggunakan gerbang logika, yaitu dengan mengimplementasikan full adder dalam rangkaian kita. Full adder bekerja dengan prinsip Sum dan Cout. Perhatikan rangkaian berikut ini,[9]:

Gambar 2-3 Rangkaian Full Adder

Full adder menerima 3 buah masukkan, biasanya disebut dengan A,B, dan Cin. Nilai total dari full adder (sum) didefinisikan sebagai 2 kali nilai Cout ditambah dengan nilai S ( sum = 2 x Cout + S).

Berikut ini adalah tabel kebenaran dari Full adder:

Tabel 2-2 Tabel Kebenaran Full Adder

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

Selain adder yang disebutkan diatas, terdapat beberapa jenis adder lainnya seperti half-adder, ripple-carry adder, carry-lookahead adder, dan lookahead carry unit.

2.4 BAHASA VHDL

VHDL (Very-high-speed integrated circuits Hardware Description Language) adalah bahasa pemrograman perangkat keras yang digunakan untuk memodifikasi sistem logika dalam FPGA ataupun IC. VHDL merupakan pengembangkan dari bahasa prosedural seperti ADA maupun PASCAL, yang kemudian dikembangkan untuk tujuan spesifik,[6].

Salah satu keuntungan menggunakan bahasa VHDL adalah implementasinya yang sederhana dan lebih compact dibandingkan pendekatan skematik. VHDL sendiri dapat dibuat dan disimulasikan pada ALTERA QUARTUS II maupun ModelSim.

3. METODOLOGI

Percobaan ini akan dibagi menjadi delapan bagian. Secara garis besar, perancangan rangkaian digital menggunakan FPGA dapat menggunakan flowchart berikut:

Page 3: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 3

Gambar 3-2 Flowchart Proses Perancangan Digital

Pada percobaan 2A, kita akan mendesain rangkaian full-adder dengan pendekatan skematik. Pendesainan ini akan dibantu dengan piranti lunak ALTERA QUARTUS II. Berikut adalah rancangan desain dari percobaan ini:

Gambar 3-2 Gambar Skematik Percobaan 2A

Rangkaian tersebut akan menerima 3 masukkan (A, B, Cin) dan memberikan 2 keluaran secara umumnya, yaitu SUM dan CARRY. Setelah proses simulasi menggunakan Netlist berjalan lancar, rangkaian tersebut diimplementasikan pada IC Board FPGA tipe UP-2.

Percobaan 2B akan mendesain full-adder (seperti percobaan 2A) menggunakan bahasa VHDL. File yang dikodekan dalam “modul2vhdl.vhd” adalah sebagai berikut:

Gambar 3-3 Bahasa VHDL untuk Percobaan 2B

Kode tersebut kemudian dikompilasi dan seperti percobaan 2A, pendekatan tersebut diimplementasikan pada Board FPGA tipe UP-2.

Pada percobaan 2C, 4-bit ripple carry adder akan diimplementasikan menggunakan bahasa VHDL. Berikut ini adalah kode VHDL untuk percobaan 2C:

Gambar 3-4 Bahasa VHDL untuk Percobaan 2C

Setelah kita menggunakan pendekatan dengan VHDL, pada percobaan 2D, kita akan menggunakan pendekatan skematik. Kita dapat mensimulasikannya seperti pada proses percobaan 2A. Berikut ini adalah rancangan desain dari percobaan ini:

Page 4: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 4

Gambar 3-5 Gambar Skematik Percobaan 2D

Selain menggunakan ALTERA QUARTUS II, pemodelan rangkaian digital dapat disimulasikan menggunakan ModelSim. Pada percobaan 2E, kita akan mensimulasikan rangkaian full-adder dengan pendekatan bahasa VHDL. Berikut ini adalah kode VHDL yang akan digunakan:

Gambar 3-6 Bahasa VHDL untuk Percobaan 2E

Stimulus dapat diberikan dengan Right Click -> Clock dengan memberikan nilai masukkan periode untuk sinyal A, B, dan C sebesar 50ps, 100ps, dan 200 ps secara terurut. Setelah itu, kita cukup mensimulasikannya dengan menu Tools -> Run atau dengan mengetikkan run[spasi](time). Ada tiga gambar sinyal yang akan disimulasikan, yaitu mode normal, no force, dan dengan force.

Pada percobaan 2E, kita memberikan stimulus secara manual. Percobaan 2F ini akan menggunakan konsep testbench, dengan memberikan stimulan melalui kode VHDL. File VHDL yang kita buat akan berfungsi sebagai DUT, yaitu Design Under Test.

Berikut ini adalah kode VHDL yang akan kita gunakan untuk memberikan stimulus pada percobaan ini:

ENTITY tb_modul2vhdl IS

END tb_modul2vhdl;

ARCHITECTURE testbench OF tb_modul2vhdl IS

COMPONENT modul2vhdl IS

PORT (A,B,Cin : IN BIT;

S,Cout : OUT BIT);

END COMPONENT;

SIGNAL A : BIT := '0';

SIGNAL B : BIT := '0';

SIGNAL Cin : BIT := '0';

SIGNAL S : BIT;

SIGNAL Cout : BIT;

BEGIN

--Instance module

dut : modul2vhdl

PORT MAP(

A => A,

B => B,

Cin => Cin,

S => S,

Cout => Cout);

--Stimulus generator

clock_A : PROCESS

BEGIN

WAIT FOR 50 ps; A <= not A;

end PROCESS clock_A;

clock_B : PROCESS

BEGIN

WAIT FOR 100 ps; B <= not B;

end PROCESS clock_B;

clock_C : PROCESS

BEGIN

WAIT FOR 200 ps; C <= not C;

end PROCESS clock_C;

END testbench;

Setelah menggunakan stimulus diatas, kita akan mengganti stimulus dengan kode VHDL berikut ini:

Gambar 3-7 Stimulus untuk Percobaan 2F

Setelah mensimulasikan fungsi logika dengan ModelSim, pada percobaan 2G, kita akan menggunakan ModelSim untuk melakukan proses tapping sinyal dari sebuah desain. Kita akan melakukan modifikasi pada file DUT dengan script berikut:

Page 5: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 5

Gambar 3-8 Script Tapping Percobaan 2G

Setelah mengetikkan script diatas, kita cukup mensimulasikan ulang seperti pada percobaan 2F.

Jika proses-proses diatas dilakukan secara manual, kita dapat membuat script untuk menghindari proses yang sama berulang kali. Pada percobaan 2H, kita akan membuat file bernama sim.do dengan spesifikasi script sebagai berikut:

Gambar 3-9 Script file sim.do Percobaan 2H

Hal selanjutnya yang perlu kita lakukan adalah mensimulasikannya dengan mengetikkan “do sim.do”. Seperti percobaan 2F, kita akan menguji script diatas dengan melakukan pengaturan pada preferensi clock. Lalu kita akan mendapatkan kode berikut ini:

Gambar 3-10 Stimulus Percobaan 2H

Selanjutnya kita akan mensimulasikan testbench yang telah dibuat sebelumnya menggunakan script file.do. Berikut ini adalah kode yang digunakan dalam pembuatan file file.do:

Gambar 3-11 Script file file.do Percobaan 2H

4. HASIL DAN ANALISIS

4.1 MENDESAIN FULL ADDER DENGAN SKEMATIK

Pada percobaan ini digunakan ALTERA QUARTUS II dan board UP2 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 2A pada QUARTUS II

Tabel 4-1 Tabel Kebenaran Full Adder Percobaan 2A

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

Page 6: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 6

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 pada tabel 2-2. Hal selanjutnya yang akan dilakukan adalah mengimplementasikan pendekatan skematik ini ke FPGA. Gambar 4-2 berikut ini adalah hasil implementasi pada board UP2:

Gambar 4-2 Simulasi Percobaan 2A pada FPGA

Gambar 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 UP2 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 2B

Tabel 4-2 Tabel Kebenaran Full Adder Percobaan 2B

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.

Page 7: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 7

Gambar 4-4 Simulasi Percobaan 2B 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 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 2C pada QUARTUS II

Perhatikan bahwa waveform diatas akan membentuk tabel kebenaran sebagai berikut:

Tabel 4-3 Tabel Kebenaran 4-Bit Ripple Carry Adder

Masukkan 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 2D pada QUARTUS II

Hasil waveform diatas dapat ditranslasikan kedalam tabel kebenaran sebagai berikut:

Tabel 4-4 Tabel Kebenaran 4-Bit Adder Dengan Skematik

Masukkan Keluaran

A B CIn COut S

0000 0000 0 0 0000

Page 8: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 8

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 maupun bahasa VHDL dalam merancang rangkaian digital seperti 4-Bit carry adder.

4.5 SIMULASI SEDERHANA MENGGUNAKAN MODELISM

Setelah sebelumnya kita mensimulasikan rangkaian digital menggunakan ALTERA QUARTUS II, berikut ini adalah hasil simulasi menggunakan piranti lunak ModelSim:

Gambar 4-7 Simulasi Percobaan 2E pada ModelSim

Hasil waveform diatas didapatkan dengan mengatur clock dari masukkan (A,B,Cin) menjadi masing-masing 50ps, 100ps, dan 200ps. Stimulus yang diberikan memberikan hasil waveform yang berlogika sama dengan menggunakan ALTERA QUARTUS II.

Hal selanjutnya yang diuji pada bagian ini adalah menggunakan perintah (command) No Force. Perintah tersebut berfungsi untuk membatalkan (undo) dari perintah force yang diberikan sebelumnya. Pada kondisi default, perintah ini akan memberikan hasil keluaran 0.

Gambar 4-8 Force Value B Menjadi 1 pada ModelSim

Perhatikan gambar 4-8 diatas. Gambar tersebut merupakan representasi hasil ketika value B diberikan force agar selalu bernilai 1. Perintah force berfungsi untuk memaksakan agar masukkan input selalu bernilai logika tertentu (1 / 0).

4.6 MEMBUAT TESTBENCH

Salah satu kelebihan ModelSim dibandingkan ALTERA QUARTUS II adalah simulasi rangkaian mengunakan testbench. Perhatikan gambar 4-9 berikut ini:

Gambar 4-9 Stimulus Generator pada ModelSim

Perintah (command) clock yang semula menggunakan cara Right Click -> Clock dapat digantikan dengan testbench (Design Under Test / DUT). Gambar 4-9 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;

Page 9: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 9

Perintah tersebut menunjukkan bahwa setiap 50ps, nilai logika A akan di-invert. Ketika logika A bernilai 0, maka setelah 50ps, logika A akan bernilai 1 dan berlaku sebaliknya. Selain cara tersebut, kita dapat memaksakan suatu value logika tertentu pada masukkan. Perhatikan contoh berikut ini (gambar 4-10):

Gambar 4-10 Stimulus : PROCESS pada ModelSim

WAIT FOR 50 ps; A <= ‘1’;

Potongan kode diatas menunjukkan, setelah 50ps, maka logika A akan selalu bernilai 1. Hal yang sama berlaku untuk logika B yang di inisialisasi 100ps serta logika C yang di inisialisasi 200ps. 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-11):

Gambar 4-11 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.

4.8 MEMBUAT SCRIPT UNTUK MELAKUKAN SIMULASI

Keunggulan lain dari piranti lunak ModelSim adalah penggunaan script untuk menjalankan proses yang sama berulang kali. Script file ini memiliki ekstensi ”.do”, yang berisikan sekumpulan instruksi untuk melakukan sesuatu.

Dengan mengetikkan stimulus generator pada script yang digunakan (Gambar 3-10), maka simulasi dapat di eksekusi tanpa perlu menunggu masukkan manual. Perhatikan hasil perintah ”do sim.do” berikut ini (gambar 4-12):

Gambar 4-12 Simulasi script file sim.do

Perintah yang kita jalankan ini sama seperti menjalankan manual file modul2vhdl seperti pada percobaan 2E (Gambar 4-7).

Gambar 4-13 Simulasi script file file.do

Selain itu, script juga dapat mensimulasikan testbench / DUT yang digunakan dalam percobaan. Hasil waveform gambar 4-13 menunjukan eksekusi “run 500” pada file tb_modul2vhdl yang telah kita buat sebelumnya.

5. KESIMPULAN

Terdapat dua pilihan piranti lunak yang dapat digunakan, yaitu ALTERA QUARTUS II (Percobaan 2A – 2D) dan ModelSim (Percobaan 2E-

Page 10: Pengenalan Desain Menggunakan FPGA

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 10

2H). ALTERA QUARTUS II dan ModelSim 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,[8].

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 (Percobaan 2A & 2D), maupun menggunakan bahasa seperti bahasa VHDL (Percobaan 2B, 2C, 2E, 2F, 2G & 2H).

Rangkaian Full adder dapat diimplementasikan dengan berbagai cara (seperti cara diatas). Fungsi utama dari rangkaian ini adalah untuk menjumlahkan bilangan biner menggunakan fungsi gerbang logika. Ada beberapa jenis rangkaian adder seperti Full adder (Percobaan 2B), maupun Ripple carry adder (Percobaan 2C).

DAFTAR PUSTAKA

[1] Brian Holdsworth and Clive Woods, Digital Logic Design Fourth Edition, N.wnes, 2002

[2] Fairchild Semiconductor, DM74LS04 Hex Inverting Gates, Fairchild Semiconductor Corporation, 1998

[3] Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design Third Edition, hal 98, McGraw-Hill, San Francisco, 2009

[4] Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design Third Edition, hal 109-114, McGraw-Hill, San Francisco, 2009

[5] http://en.wikipedia.org/wiki/Field-programmable_gate_array, 3 Oktober 2012, pukul 2:16:24

[6] http://en.wikipedia.org/wiki/VHDL, 3 Oktober 2012, pukul 2:40:15

[7] http://www.altera.com/education/univ/materials/boards/unv-up2-board.html?GSA_pos=1&WT.oss_r=1&WT.oss=UP2, 3 Oktober 2012, pukul 2:37:10

[8] http://www.alteraforum.com/forum/showthread.php?t=1066, 3 Oktober 2012, pukul 3:10:12

[9] http://4.bp.blogspot.com/-NIy45k3TuEE/TkouUTvUOZI/AAAAAAAAAG8/SQiB48Yi_UQ/s1600/550px-Full-adder.png, 3 Oktober 2012, pukul 2:51:30