Lab 3 Embeded
Lab 3 Embeded
Genap 2007/2008
Lab. 3 Rangkaian Flip flop dan Counter pada Spartan 3 FPGA Board Materi Lab.3 : Pada percobaan ini akan dipelajari implementasi rangkaian counter. Target : Mahasiswa mampu mengimplementasikan rangkaian squential FPGA. Tujuan : 1. Mempelajari pemrograman rangkaian flip-flop pada FPGA. 2. Implementasi counter dalam VHDL. 3. Mensimulasikan code dengan perangkat lunak Modelsim 4. Mengimplementasikan code pada Spartan 3 FPGA board. Syarat : 1. Mahasiswa sudah paham cara menggunakan ISE dan Spartan 3 board. 2. Mahasiswa sudah memiliki kemampuan dasar pemrograman VHDL. Persiapan Lab. : 1. Review Materi mata kuliah Rangkaian Logika, Sistem Digital dan Interfacing. 2. Pelajari tentang rangkaian sekuensial. 3. Pelajari tentang dasar perograman VHDL (VHDL Cookbook). 4. Pelajari dan siapkan Spartan-3 Starter Kit Board User Guide (ug130.pdf) 5. Pelajari dan siapkan tutorial penggunaan Modelsim. Perangkat Lab. : Perangkat Free software ISE webpack (www.Xilinx.com) Free software Model sim PC dan FPGA board Lab. 3.1. D Flip-Flop Sebelum melakukan percobaan jelaskan tentang rangkaian sekuensial sebagai laporan pendahuluan
Lab. Informatika Digital (B.401)
D flip-flop dan
pada modul
Jumlah 1 1 1 set
Kumpulkan jawaban saudara saat akan memulai Lab. 3.1. Prosedure percobaan : 1. Bukalah project baru pada Modelsim dengan nama Flipflop 2. Buatlah file baru dengan nama D_FF.vhd dan tulis code berikut :
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dflip_ent is port( reset_in : D_in : clk : Q_out : ); end dflip_ent;
architecture Dflip_arch of dflip_ent is begin Dflipflop : process(reset_in, clk) begin if (reset_in = '0') then Q_out <= '0'; elsif (clk'event and clk = '1')then Q_out <= D_in; end if; end process Dflipflop; end Dflip_arch;
3. Compile file tersebut. Dan lanjutkan dengan membuat file baru dengan nama D_FF_TB.vhd dan tulis code berikut :
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dflip_tb is end dflip_tb; architecture dflip_tb_arch of dflip_tb is signal reset_in : std_logic; signal D_in : std_logic; signal clk : std_logic := '0'; signal Q_out : std_logic; component dflip_ent port( reset_in : in std_logic; D_in : in std_logic; clk : in std_logic; Q_out : out std_logic ); end component; begin
for 50 ns ;
4. compile file tersebut dan lakukan simulasi pada ModelSIm. (Pastikan sebelum melakukan simulasi, hasil compilasinya sukses). Lampirkan hasil simulasi anda pada laporan pendahuluan. 5. Selanjutnya simulasikan code D_FF.Vhd tersebut pada FPGA (referensi : prosedur lab.1.2.). Tentukan pin-pinnya pada tahap assign package pins. D_in dari switch board FPGA. Input reset_in dari push button. Output Q_out ke Led. (Baca ug130.pdf untuk mengetahui address pin masing-masing input dan output ). Tugas : 1. Pada Synthesize -> View RTL Schematic. Jelaskan pendapat anda. 2. Buka juga view synthesize report, jelaskan analisa anda. 3. Buatlah program yang sama untuk komponen S-R FF, J-K FF dan T FF dan simulasikan dengan Modelsim serta lampirkan pula gambar simulasinya.
Lab. Informatika Digital (B.401)
4. Lampirkan juga Truth table dan Kmap dari keempat flip-flop. Lab. 3.2. Counter Tujuan : 1. Mengimplementasikan counter pada Model SIm. 2. Mengimplementasikan counter pada FPGA. Persiapan : 1. Dari code Counter berikut buatlah simulasi pada ModelSim 2. Lampirkan pada laporan pendahuluan keluaran file testbench tersebut dari wave form modelsim sebelum anda melakukan lab.3.2. Prosedure : 1. Lakukan prosedur lab. 3.1. pada lab.3.2. dengan menuliskan code berikut :
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity n_bit_counter is generic(n : integer := 2); port( clk : in std_logic; reset : in std_logic; enable : in std_logic; count_out : out std_logic_vector(n-1 downto 0) ); end n_bit_counter; architecture behav of n_bit_counter is signal count_reg : std_logic_vector(n-1 downto 0); begin process(clk, enable, reset) begin if reset = '1' then count_reg <= (count_reg'range => '0'); else if (clk = '1' and clk'event) then if enable = '1' then count_reg <= count_reg + 1; end if; end if; end if; end process; count_out <= count_reg; end behav;
2. Compile file tersebut. Dan lanjutkan dengan membuat file baru dengan nama counter_TB.vhd dan tulis code berikut :
library ieee; use ieee.std_logic_1164.all;
3. Tentukan pin-pin dari input dan output code counter tersebut. Input clk dari dari system clock Spartan 3 (Baca ug130.pdf tentang clock). Input enable dari switch, input reset dari Push Button dan output Count_out ke LED (Baca ug130.pdf untuk mengetahui address pin masing-masing input dan output). 4. Jalankan code tersebut pada FPGA board. Tugas : 1. Pada Synthesize -> View RTL Schematic. Jelaskan pendapat anda. 2. Buka juga view synthesize report, jelaskan analisa anda. 3. Gunakan gambar pada wave simulator model sim untuk analisa laporan anda 4. Buatlah code counter 4 bit yang akan increment setelah 30 detik. (Buatlah Clock divider sebagai delay clock 30 detik, Ingat clock Spartan adalah 50 MHz).
Lab. Informatika Digital (B.401)
5. Buatlah file testbench dari counter tersebut (soal no. 4) 6. Gunakan gambar pada wave simulator model sim untuk lampiran laporan anda. 7. Simulasikan code anda pada FPGA untuk pertemuan berikutnya.