Anda di halaman 1dari 6

Lab. 3 Percobaan Interfacing/Embeded System Smt.

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

Lab. 3 Percobaan Interfacing/Embeded System Smt. Genap 2007/2008

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;

in std_logic; in std_logic; in std_logic; out std_logic

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

Lab. Informatika Digital (B.401)

Lab. 3 Percobaan Interfacing/Embeded System Smt. Genap 2007/2008


UUT : dflip_ent port map( reset_in => reset_in, D_in => D_in, clk => clk, Q_out => Q_out ); dflipflop: process begin reset_in <= '0'; wait for 50 ns ; assert (Q_out = '0') report " Failed on Reset = 0" severity error; reset_in <= '1'; wait for 50 ns; assert (Q_out = D_in) report " Failed on Reset = 1" severity Warning; D_in <= '0'; wait for 100 ns; assert (Q_out = '1') report " Failed on D_in = 0" severity error; D_in <= '1'; wait for 200 ns; assert (Q_out = '0') report " Failed on D_in = 1" severity error; end process dflipflop; clock_in : process begin clk <= not clk; wait end process clock_in; end dflip_tb_arch;

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)

Lab. 3 Percobaan Interfacing/Embeded System Smt. Genap 2007/2008

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;

Lab. Informatika Digital (B.401)

Lab. 3 Percobaan Interfacing/Embeded System Smt. Genap 2007/2008


entity count_test is end count_test; architecture behav of count_test is signal clk : std_logic := '0'; signal reset : std_logic; signal enable : std_logic; signal count_out : std_logic_vector(1 downto 0); begin UUT : entity work.n_bit_counter generic map(2) port map (clk, reset, enable, count_out); stimuli : process begin reset <= '1'; wait for 25 ns; assert (count_out = "00") report "Error reset" severity error; reset <= '0'; enable <= '0'; wait for 50 ns; assert (count_out = "10") report "Error Enable" severity error; reset <= '0'; enable <= '1'; wait for 500 ns; assert (count_out = count_out) report "Error Enable" severity error; end process; process begin clk <= not clk; wait for 25 ns; end process; end behav;

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)

Lab. 3 Percobaan Interfacing/Embeded System Smt. Genap 2007/2008

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.

Lab. Informatika Digital (B.401)

Anda mungkin juga menyukai