EEPIS
LAPORAN RESMI
Disusun Oleh:
1110171009
3 D4 ELEKTRONIKA A
DEPARTEMEN
1 ELEKTRO
2
Created by AI
EEPIS
3. Langkah percobaan
3
Created by AI
EEPIS
4
Created by AI
EEPIS
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
5
Created by AI
EEPIS
6
Created by AI
EEPIS
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 Counter
8. Selanjutnya langsung klik Next kemudian Finish, karena kita akan membuat port
7
Created by AI
EEPIS
secara manual dengan text.
9. Maka anda akan mendapatkan file baru (*.vhd), tetapi tanpa deskripsi port yang akan
digunakan.
8
Created by AI
EEPIS
9
Created by AI
EEPIS
10
Created by AI
EEPIS
14. Selanjutnya buat file Test Bench VHDL dengan cara klik kanan pada nama project,
selanjutnya pilih New Source, dan pilih jenis source VHDL Test Bench
15. Edit bagian Stimulus Process pada kode VHDL sebagai berikut:
-- Stimulus process
stim_proc: process
begin
reset <= '1';
-- hold reset state for 100 ns.
wait for 100 ns;
11
Created by AI
EEPIS
reset <= '0';
12
Created by AI
EEPIS
count_en <= '1';
wait;
end process;
-----------------------------------------------------------------------
-- edite by Arif
-----------------------------------------------------------------------
library ieee;
-----------------------------------------------------------------------
architecture TB of counter_TB is
component counter
13
Created by AI
EEPIS
generic(n: natural :=4);
port( clock: in std_logic;
reset: in std_logic;
count_en: in std_logic;
end component;
14
Created by AI
EEPIS
signal T_count: std_logic;
begin
process
begin
end process;
process
begin
-- test case 1
wait for 10 ns;
err_cnt := err_cnt+1;
end if;
-- test case 2
wait for 10 ns;
15
Created by AI
EEPIS
assert (T_Q=2) report "Failed case 2" severity error;
if (T_Q/=2) then
err_cnt := err_cnt+1;
end if;
-- test case 3
wait for 10 ns;
err_cnt := err_cnt+1;
end if;
-- test case 4
16
Created by AI
EEPIS
wait for 10 ns;
err_cnt := err_cnt+1;
end if;
-- test case 5
wait for 200 ns;
T_clear <= '1';
err_cnt := err_cnt+1;
end if;
assert false
report "Testbench of Counter completed successfully!"
severity note;
else
assert true
end if;
wait;
end process;
end TB;
----------------------------------------------------------------
configuration CFG_TB of counter_TB is
for TB
end for;
end CFG_TB;
----------------------------------------------------------------
17
Created by AI
EEPIS
19. Tugas: Lakukan cara yang sama untuk percobaan counter dan decoder seven segemen
pada percobaan sebelumnya.
18
Created by AI
EEPIS
Praktikum VLSI & Perancangan Logika
H-102
PERCOBAAN 6
#VHDL Program
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
--use IEEE.NUMERIC_STD.ALL;
--library UNISIM;
--use UNISIM.VComponents.all;
19
Created by AI
EEPIS
entity coba is
generic(n:natural:=4);
port(clock:in std_logic;
reset:in std_logic;
count_en:in std_logic;
);
end coba;
begin
begin
end if;
end if;
end process;
end behv;
20
Created by AI
EEPIS
#VHDL Simulasi
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
USE ieee.std_logic_arith.ALL;
--USE ieee.numeric_std.ALL;
ENTITY simulasi1 IS
END simulasi1;
COMPONENT coba
PORT(
clock : IN std_logic;
reset : IN std_logic;
count_en : IN std_logic;
);
END COMPONENT;
BEGIN
process
begin
end process;
process
begin
-- case 1
if(T_Q/=1) then
err_cnt :=err_cnt+1;
end if;
-- case 2
if(T_Q/=2) then
err_cnt :=err_cnt+1;
end if;
-- case 3
if(T_Q/=3) then
err_cnt :=err_cnt+1;
end if;
-- case 4
if(T_Q/=4) then
err_cnt :=err_cnt+1;
end if;
case 5
if(T_Q/=0) then
err_cnt :=err_cnt+1;
end if;
--kumpulan test
if(err_cnt=0)then
assert false
severity error;
else
assert true
severity error;
end if;
end process;
END;
Hasil Running
24
Created by AI
EEPIS
#VHDL Program
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Decoder is
); -- enable input
end Decoder;
25
Created by AI
EEPIS
begin
ckDivider: process(mclk)
begin
CE <= '1';
else
CE <= '0';
end if;
end if;
end process;
begin
case Switch is
end case;
end process;
end Behavioral;
#VHDL Simulasi
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
--USE ieee.numeric_std.ALL;
27
Created by AI
EEPIS
ENTITY testbench IS
END testbench;
COMPONENT Decoder
PORT(
mclk : IN std_logic;
);
END COMPONENT;
--Inputs
--Outputs
BEGIN
);
mclk_process :process
begin
end process;
-- Stimulus process
stim_proc: process
begin
wait;
end process;
END;
Hasil Running
30
Created by AI
EEPIS
31
Created by AI
EEPIS
ANALISA
Saat perancangan testbench dan simulasi (prosedur), didapatkan hasilnya dengan clock cycle
(t_clock) sebesar 10ns dan dibatasi setiap skala 50ns. Kemudian untuk memulai counting nya jika
t_count < “1”, lalu reset (t_clear) akan ON ketika value nya diberi input < “1”, dan akan OFF ketika
value nya < “0”. Waktu perpindahan jika melakukan reset yaitu 20ns.
Saat perancangan testbench dan simulasi (tugas), didapatkan hasilnya dengan master clock (mclk)
sebesar 10ns dan dibatasi setiap skala 100ns. Parameter input di dalam percobaan ini yaitu master
clock (mclk) dan switch (2 downto 0). Dan parameter output nya dari nyala seven segment (0 to 6)
dan led (7 downto 0).
KESIMPULAN
Setelah melakukan percobaan 6 tentang “Perancangan Testbench dan Simulasi” ini, dapat ditarik
kesimpulan bahwa:
Proses simulasi berfungsi untuk mengetahui sekaligus mengecek apakah rancangan rangkaian
yang telah dibuat mampu berjalan dengan baik atau tidak. Selain itu, lewat proses simulasi dapat
diketahui bagaimana output dari rancangan rangkaian tadi. Selanjutnya, proses simulasi membutuhkan
suatu bentuk stimulus/pemicu. Stimulus ini akan bertindak sebagai input awal bagi rancangan
rangkaian yang hendak diuji. Kemudian, setelah diberikan stimulus maka rancangan rangkaian tersebut
dapat diketahui bagaimana hasil outputnya. Keseluruhan proses simulasi ini dilakukan dengan bantuan
perangkat lunak (software) yang ada.
Bentuk testbench,
Test bench sederhana akan Instantiate Unit di bawah Test (UUT) dan drive input. Testbench biasanya
ditulis dengan kode bahasa VHDL maupun Verilog. Bentuk testbench ini terbilang lebih sukar
dibandingkan dengan bentuk timing diagram. Hal ini disebabkan karena untuk melakukan testbench,
diperlukan kemampuan untuk menulis dan mengerti kode-kode VHDL maupun Verilog.
32