Perancangan Rangkaian
Kombinasional dan Sequensial
(Pertemuan ke- 3 dan 4)
1
Perancangan digital pada divais FPGA (2)
1. Tujuan
• Mampu merancang dan mendemonstrasikan rangkaian kombinasional dan sequential
pada FPGA serta melaporkan hasil percobaannya
• Membuat rangkaian sequential counter dengan VHDL
• Membuat rangkaian kombinasional dengan VHDL
• Implementasi rancangan pada FPGA devais
3. Langkah percobaan
2
2. Klik pada tombol “New Project” untuk membuat project baru.
3. Beri nama project dan letakkan project pada folder yang ditentukan serta Top-level
source type adalah HDL
4. Setting jenis FPGA dan konfigurasi lainnya sesuai gambar dibawah, dimana
Family: Spartan-3E
Package: CP132
Speed: -4
3
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 My_Counter
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.
4
10. Untuk percobaan ini kita akan membuat Counter 4-bit. Dimana input akan didapatkan
dari Switch dan Clock dari externa, Output akan ditampilkan pada Seven-Segment.
Percobaan akan dilakukan pada board Basys2 dengan IC FPGA Spartan 3E.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Decoder is
Port ( mclk : in STD_LOGIC;
Switch : in STD_LOGIC_VECTOR (7 downto 0); -- 3-bit input
Seven_Segment : out STD_LOGIC_VECTOR (0 to 6);
Led : out STD_LOGIC_VECTOR (7 downto 0) -- 8-bit output
); -- enable input
end Decoder;
begin
5
Led <= Switch;
reset <= Switch(6);
end process;
--Counter
process(mclk,CE,Reset)
begin
if Reset='1' then
sign_Count_Out <= "0000";
elsif(rising_edge(mclk)) then
if CE='1' then
if sign_Count_Out="1111" then
sign_Count_Out<="0000";
else
sign_Count_Out <= sign_Count_Out + 1;
end if;
end if;
end if;
end process;
6
end case;
end process;
13. Buat file deskripsi untuk penggunaan pin pada FPGA. Pada langkah ini Lokasi Switch
akan disetting untuk tepat terhubung dengan FPGA. Klik kanan pada nama project,
NEW Source kemudian pilih Implementation Constraints File
14. Buat file baru yang bernama my_Counter.ucf. Edit file ini menjadi seperti berikut
kemudian save:
7
NET "Led<7>" LOC = "G1" ; # Bank = 3, Signal name = LD7
8
15. Selanjutnya RUN Synthesize
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.
9
17. Sampai dengan tahap ini, anda sudah berhasil membuat file bit yang siap untuk di-
upload 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.
10
21. Amati pada Board FPGA, apakah output pada Seven-segmen sesuai dengan yang
dirancang.
A. Rubahlah nilai batas pada “ if cntDiv = X"F00000" then”, dengan nilai yang jauh lebih
kecil dan jauh lebih besar, jelaskan apa yang terjadi?
11
23. Dengan cara yang sama, buatlah rangkaian multiplexer, adder, multiplier, dan
komparator dengan VHDL.
24. Implementasikan pada modul FPGA
12