LAPORAN
PERCOBAAN : 5
KELAS : D4 LJ Elektronika
NRP : 2122640013
• Memberikan pengenalan terhadap perancangan FPGA dengan software ISE Design Suite
• Mengenal software VHDL
• Implementasi rancangan pada FPGA devais
• Mampu mendemonstrasikan penggunaan software untuk merancang rangkaian sederhana
pada FPGA
FPGA merupakan kepanjangan dari Field Programmable Gate Array yaitu programmable
device besar yang tersusun atas modul-modul logika independen yang dapat di konfigurasi oleh
pemakai yang di hubungkan melalui kanal-kanal routing yang dapat di program.
Field Programmable Gate Array (FPGA) mempunyai kelebihan sebagai berikut :
• Dikonfigurasi oleh End User
• Tidak memerlukan proses Fabrikasi
• Tersedia solusi yang mendukung chip customized VLSI
• Mampu menimplementasikan logic circuit, instant manufacturring, very-low cost
prototype
• Pemrograman yang singkat untuk fungsi dan kemampuan yang setara dengan ASIC
FPGA ini sendiri juga merupakan IC tipe HDL yang mana pemakai dapat mendesain
hardware sesuai yang diinginkan di dalam IC FPGA. Sedangkan perkembangan FPGA pada
saat ini berlangsung dengan cepat dan dewasa ini terdapat bermacam-macam keluarga FPGA
dengan kebutuhan perancangan dan perangkat perancangan ( design tools ) yang berbeda.
Xilinx merupakan salah satu perusahaan yang memproduksi FPGA disamping perusahaan lain
yang juga memproduksi FPGA seperti ACTEL dan PLESSEY Semiconductor. Xilinx sendiri
memproduksi beberapa jenis FPGA yaitu VIRTEX, SPARTAN, XC3000, XC4000 dan
XC5000.
Arsitektur FPGA
Secara umum arsitektur bagian dalam dari IC FPGA terdiri atas tiga elemen utama yaitu
Input/Output Blok ( IOB ), Configurable Logic Block (CLB) dan Interkoneksi. Configurable
Logic Blocks :
• Look up table based complex structure
• Implement the sequential circuit
Programmable Interconnect :
• Berisi wire segments dan programmable switches
• Menghubungkan anata Configurable Logic Blocks yang berbeda
Input/output block :
• Sebagai interface antara external package pin dari device dan internal user logic
Placement
After mapping the circuit into logic blocks placement algorithms are used to place
each block in the FPGA’s array
Typically these minimize the total length of interconnect required for placement
Routing software
Mengatur FPGA’s wire segments dan menentukan programmable switches untuk
menghubungkan antar FPGA blocks
Memastikan 100% connections telah terbentuk
Meminimalkan propagation delay pada time-critical connections
Programming unit
Mengkonfigurasi chip setelah placement & routing step tuntas
Keseluruhan proses memakan waktu antara beberapa menit sampai beberapa jam
Family: Spartan-3E
Package: CP132
Speed: -4
5. Klik Next dan anda akan mendapat konfirmasi konfigurasi yang telah dilakukan.
Selanjutnya klik Finish
6. Selanjutnya buat file VHDL dengan cara klik kanan pada nama project,
selanjutnya pilih New Source
7. Pilih jenis source VHDL Module dan berilah nama, misalnya Decoder
8. Selanjutnya langsung klik Next kemudian Finish, karena kita akan membuat port
secara manual dengan text.
9. Maka anda akan mendapatkan file baru (*.vhd), tetapi tanpa deskripsi port yang
akan digunakan. Sebagaimana gambar dibawah:
10. Untuk percobaan pertama ini kita akan membuat Decoder 3 to 8. Dimana input
akan didapatkan dari Switch dan output akan ditampilkan pada led. Percobaan
akan dilakukan pada board Basys2 dengan IC FPGA Spartan 3E.
11. Edit VHDL code menjadi seperti berikut:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Decoder is
Port ( Switch : in STD_LOGIC_VECTOR (2 downto 0); -- 3-bit input
Led : out STD_LOGIC_VECTOR (7 downto 0) -- 4-bit output
); -- enable input
end Decoder;
end Behavioral;
16. Lakukan Generate Programming File untuk mendapatkan bit file yang akan di
upload ke FPGA. Apabila tidak ada error, maka anda akan mendapatkan bit file.
17. Sampai dengan tahap ini, anda sudah berhasil membuat file bit yang siap untuk
diupload ke FPGA.
18. Persiapkan board BASYS 2 FPGA. Hubungkan kabel USB ke board dan Switch-
On kan. Maka led merah dekat USB dan switch akan menyala.
19. Aktifkan software Adept Digilent, maka board akan otomatis dikenali oleh
software.
20. Klik Browse yang sejajar dengan FPGA XC3S dan upload file decoder.bit yang
sudah dibuat sebelumnya. Lokasi ada di folder project, misal COBA1_FPGA.
Klik Yes untuk memprogram FPGA.
21. Amati pada Board FPGA, rubahlah posisi Switch dan perhatikan apakah output
pada LED sesuai dengan yang dirancang.
➢ Percobaan 2
Buatlah decoder untuk 7-Segment, dengan output 0F. Dimana input didapat
dari Switch.
➢ Tugas Praktikum
Merubah output yang awalnya bentuk angka ‘7’ menjadi bentuk huruf ‘h’
1.5. Data Hasil Percobaan
Hasil Percobaan (Pengenalan 1) :
4. Mensetting jenis FPGA dan konfigurasi lainnya sesuai gambar dibawah, dimana
Family: Spartan-3E
Package: CP132
Speed: -4
6. Selanjutnya membuat file VHDL dengan cara klik kanan pada nama project,
selanjutnya pilih New Source
7. Memilih jenis source VHDL Module dan berilah nama, misalnya Decoder
8. Selanjutnya langsung meng-klik Next kemudian Finish, karena saya akan
membuat port secara manual dengan text.
9. Maka saya akan mendapatkan file baru (*.vhd), tetapi tanpa deskripsi port yang
akan digunakan. Sebagaimana gambar dibawah:
10. Untuk percobaan pertama ini saya akan membuat Decoder 3 to 8. Dimana input
akan didapatkan dari Switch dan output akan ditampilkan pada led. Percobaan
akan dilakukan pada board Basys2 dengan IC FPGA Spartan 3E (jika ada).
entity Decoder is
Port ( Switch : in STD_LOGIC_VECTOR (2 downto 0); -- 3-bit input
Led : out STD_LOGIC_VECTOR (7 downto 0) -- 4-bit output
); -- enable input
end Decoder;
end Behavioral;
12. Melakukan pengecekan penulisan,dengan cara RUN Check Syntax sebagaimana
gambar berikut.
14. Saya akan mendapatkan file baru yang bernama Switch_Led.ucf. Mengedit file ini
menjadi seperti berikut kemudian save:
17. Sampai dengan tahap ini, anda sudah berhasil membuat file bit yang siap untuk
diupload ke FPGA.
18. Persiapkan board BASYS 2 FPGA. Hubungkan kabel USB ke board dan Switch-
On kan. Maka led merah dekat USB dan switch akan menyala.
19. Aktifkan software Adept Digilent, maka board akan otomatis dikenali oleh
software.
20. Klik Browse yang sejajar dengan FPGA XC3S dan upload file decoder.bit yang
sudah dibuat sebelumnya. Lokasi ada di folder project, misal COBA1_FPGA.
Klik Yes untuk memprogram FPGA.
21. Amati pada Board FPGA, rubahlah posisi Switch dan perhatikan apakah output
pada LED sesuai dengan yang dirancang.
Hasilnya nanti akan muncul pada LED yang sudah dilingkari sesuai dengan bit
input yang dimasukkan pada switch dan program.
Hasil Percobaan 2:
Tugas untuk dikerjakan di LAB, buatlah decoder untuk 7-Segment, dengan output
0F. Dimana input didapat dari Switch.
Informasi, untuk pin output 7 segment berinama seg , untuk mendapatkan akses
ke 7segment, tambahkan code dibawah pada file *.ucf.
# Connected to Basys2 onBoard 7seg display
NET "seg<0>" LOC = "L14"; # Bank = 1, Signal name = CA
NET "seg<1>" LOC = "H12"; # Bank = 1, Signal name = CB
NET "seg<2>" LOC = "N14"; # Bank = 1, Signal name = CC
NET "seg<3>" LOC = "N11"; # Bank = 2, Signal name = CD
NET "seg<4>" LOC = "P12"; # Bank = 2, Signal name = CE
NET "seg<5>" LOC = "L13"; # Bank = 1, Signal name = CF
NET "seg<6>" LOC = "M12"; # Bank = 1, Signal name = CG
NET "dp" LOC = "N13"; # Bank = 1, Signal name = DP
1. Langkah-langkah awal dalam pembuatan file sama dengan langkah-langkah
seperti pada “Percobaan 1” yaitu langkah 1 sampai langkah 10 kemudian
menuliskan syntax seperti pada langkah di bawah.
2. Berikut syntax dari program percobaan 2 dengan output 7 segment :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity decoder_seg is
Port ( Switch : in STD_LOGIC_VECTOR (3 downto 0); -- 3-bit input
seg : out STD_LOGIC_VECTOR (7 downto 0) -- 4-bit output
); -- enable input
end decoder_seg;
end Behavioral;
7. Melakukan Generate Programming File untuk mendapatkan bit file yang akan
di upload ke FPGA. Apabila tidak ada error, maka file bit akan didapatkan.
8. Selanjutnya jika semua proses sukses maka tampilan akan menjadi seperti di
bawah ini :
Family: Spartan-3E
Package: CP132
Speed: -4
Kemudian membuat New Source File untuk deskripsi port hardware yang nantinya akan
ditulis dengan syntax sebagai berikut:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Decoder is
Port ( Switch : in STD_LOGIC_VECTOR (2 downto 0); -- 3-bit input
Led : out STD_LOGIC_VECTOR (7 downto 0) -- 4-bit output
); -- enable input
end Decoder;
# Pin assignment for LEDs NET "Led<7>" LOC = "G1" ; # Bank = 3, Signal name =
LD7
Setelah memasukkan koding inisiasi selanjutnya menjalankan Synthesize dan jika sudah
sukses selanjutnya meng-Generating Programming File agar mendapatkan file bit yang siap
untuk diupload pada hardware FPGA.
Jika dibuat dalam bentuk tabel maka hasil akhir dari percobaan ini yaitu :
INPUT OUTPUT
SW1 SW2 SW3 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
Selanjutnya hal ke-2 yang saya kerjakan yaitu membuat decoder 7 segment, dimana
langkah-langkah awal sama seperti percobaan 1, yang berbeda hanya kodingan deskripsi input
output seperti di bawah ini:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity decoder_seg is
Port ( Switch : in STD_LOGIC_VECTOR (3 downto 0); -- 3-bit input
seg : out STD_LOGIC_VECTOR (7 downto 0) -- 4-bit output
); -- enable input
end Decoder;
INPUT OUTPUT
SW1 SW2 SW3 SW4 dp G F E D C B A Bentuk
0 0 0 0 1 1 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 0 0 1 1
0 0 1 0 1 0 1 0 0 1 0 0 2
0 0 1 1 1 0 1 1 0 0 0 0 3
0 1 0 0 1 0 0 1 1 0 0 1 4
0 1 0 1 1 0 0 1 0 0 1 0 5
0 1 1 0 1 0 0 0 0 0 1 0 6
0 1 1 1 1 0 0 0 0 0 1 0 7
1 0 0 0 1 0 0 0 0 0 0 0 8
1 0 0 1 1 0 0 1 0 0 0 0 9
1 0 1 0 1 0 0 0 1 0 0 0 A
1 0 1 1 1 0 0 0 0 0 1 1 B
1 1 0 0 1 1 0 0 0 1 1 0 C
1 1 0 1 1 0 1 0 0 0 0 1 D
1 1 1 0 1 0 0 0 0 1 1 0 E
1 1 1 1 1 0 0 0 1 1 1 0 F
KESIMPULAN
Setelah melakukan Percobaan 1 dan Tugas 1, didapat sebuah analisa dan dari analisa itu
didapat sebuah kesimpulan yaitu :
a. Field-Programmable Gate Array (FPGA) merupakan sebuah IC digital yang sering
digunakan untuk mengimplementasikan rangkaian digital.
b. Membuat program untuk FPGA menggunakan software Xilinx ISE Design Suite.
c. Sebelum diupload ke dalam FPGA, program harus telah sukses disimulasi didalam
software ISE Design Suite, sehingga tidak perlu memprogram ulang jika terdapat
kesalahan dalam program.
d. Program menggunakan bahasa VHDL.
e. Percobaan 1 membuat decoder 3 to 8 dimana menggunakan 3 input switch dan 8 output
LED yang dapat hidup secara bergantian jika input ditekan sesuai tabel.
f. Percobaan 2 dan tugas tambahan membuat decoder 7 segment dimana menggunakan 4
input switch dan 8 output LED yang membentuk 7 segment, dimana saat input switch
diatur dari 000 sampai 111 maka output akan secara berurutan membentuk angka 0 sampai
dengan huruf A sesuai bilangan heksadesimal. Pada tugas hanya mengubah program
output saat diberi input 0111 sehingga output membenuk huruf ‘h’.
g. Field Programmable Gate Array (FPGA) mempunyai kelebihan sebagai berikut :
• Dikonfigurasi oleh End User.
• Tidak memerlukan proses Fabrikasi.
• Tersedia solusi yang mendukung chip customized VLSI.
• Mampu menimplementasikan logic circuit, instant manufacturring, very-low cost
prototype.
• Pemrograman yang singkat untuk fungsi dan kemampuan yang setara dengan ASIC.
h. FPGA ini merupakan IC tipe HDL yang mana pemakai dapat mendesain hardware sesuai
yang diinginkan di dalam IC FPGA.