Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB
Abstrak
Abstrak Pada pratikum IV Modul Rangkaian Logika
Kobinasional ini telah dilakukan beberapa percobaan. Pertama
yaitu dilakukan simulasi lampu lalu lintas yang selanjutnya
diimpelmentasi pada 7 segmen FPGA. Output yang
didapatkan dari percobaan 1 ini adalah lampu led 7 segmen
yang mengeluarkan output active low secara bergantian seperti
simulasi lampu lalu lintas. Kedua yaitu dilakukan implementasi
modul pada VGA driver. Output dari percobaan 2 yaitu
monitor mengeluarkan tampilan 6 kotak yang masing-masing
berwarna merah/kuning/hijau dengan setiap kotak
mengeluarkan output 1 atau 0 (active high) diatur melalui
SW[0] sampai SW[5] pada board FPGA. Terakhir yaitu
dilakukan penggabungan desain FSM dengan VGA Driver.
Output pada percobaan 3 ini yaitu setiap monitor computer yang
mengeluarkan warna merah/hijau/kuning menyala secara
bergantian dengan urutannya sesuai dengan simulasi lampu lalu
lintas seperti pada percobaan 1.
PENDAHULUAN
2.
1.
2.
Mengenal
dan
memahami
menggunakan hierarki dalam
rangkaian
3.
cara
desain
STUDI PUSTAKA
2.1
Input : a
Output : b
a/b=1'
a/b=0'
S2
JUDUL SUB-BAB
!a/b=1'
S1
S3
!a/b=0'
a/b=1'
1.
2.
3.
!a/b=0'
3.
METODOLOGI
Monitor LCD
b.
c.
Kabel USB-Blaster
Mengakhiri Percobaan
Gambar 11 SWI[4] = 1
Percobaan 2
Pada percobaan 2 ini file .vhd dan .qsf didapatkan
dari modul yang disediakan untuk praktikum
(display_DE1.rar).
Kemudian
dilakukan
kompilasi terhadap modul tersebut lalu dan
diimplementasikan pada VGA Driver dengan input
dari Switch (0-5) FPGA serta dihubungkan VGA
keluaran FPGA dengan layar LCD/monitor
computer. Berikut representasi tampilan VGA
Driver dengan berbagai kombinasi input Switch
FPGA.
Gambar 7 SWI[0] = 1
Gambar 8 SWI[1] = 1
Gambar 12 SWI[5] = 1
Gambar 9 SWI[3] = 1
Gambar 10 SWI[3] = 1
5. KESIMPULAN
a.
b.
c.
DAFTAR PUSTAKA
LAMPIRAN
1. Percobaan 1
1.1 Clockdiv
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity CLOCKDIV is port(
CLK
: IN std_logic;
DIVOUT
: buffer BIT);
end CLOCKDIV;
architecture behavioural of CLOCKDIV is
begin
PROCESS(CLK)
variable count: integer:=0;
constant div: integer:=50000000;
begin
if CLK'event and CLK='1' then
if(count<div) then
count:=count+1;
if(DIVOUT='0') then
DIVOUT<='0';
elsif(DIVOUT='1') then
DIVOUT<='1';
end if;
else
if(DIVOUT='0') then
DIVOUT<='1';
elsif(DIVOUT='1') then
DIVOUT<='0';
end if;
count:=0;
end if;
end if;
--FSM_clk <= DIVOUT;
end process;
end behavioural;
1.2 FSM
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FSM is
port (
counter_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT
end FSM;
: out std_logic);
end if;
when s1 =>
if (count < 1) then
currentState <= s1;
count <= count + 1;
else
currentState <= s2;
count <= 0;
end if;
when s2 =>
if (count < 4) then
currentState <= s2;
count <= count + 1;
else
currentState <= s3;
count <= 0;
end if;
when s3 =>
if (count < 1) then
currentState <= s3;
count <= count + 1;
else
currentState <= s0;
count <= 0;
end if;
when others =>
currentState <= s0;
end case;
end if;
end process;
Output : process(currentState)
begin
case currentState is
when s0 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s1 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s2 => M_US <= '1';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s3 => M_US <= '1';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
when s4 => M_US <= '0';
K_US <=
H_US <=
M_BT <=
K_BT <=
H_BT <=
'0';
'1';
'1';
'0';
'0';
'1';
'0';
'1';
'0';
'0';
'0';
'0';
'0';
'0';
'1';
'0';
'0';
'0';
'1';
'0';
'1';
'0';
'0';
'1';
'0';
when s5 =>
'0';
'0';
'0';
'0';
'0';
end case;
end process;
end behavioral;
1.3
Entity
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity Praktikum4 is
port (
internal_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT : out std_logic);
--signal count
: integer;
--signal FSM_clk : std_logic;
end Praktikum4;
architecture structural of Praktikum4 is
component CLOCKDIV is
port( CLK
: in std_logic;
DIVOUT
: buffer BIT);
end component;
component FSM is
port (
counter_clk
: in std_logic;
darurat
: in std_logic;
siang : in std_logic;
M_US, K_US, H_US, M_BT, K_BT, H_BT
end component;
: out std_logic);
--component Counter is
-port ();
--end component;
begin
A
B
: CLOCKDIV port map (CLK => internal_clk); --, DIVOUT => FSM_clk);
: FSM port map ( counter_clk => internal_clk,
darurat => darurat,
siang => siang,
M_US => M_US, K_US =>
K_US, H_US => H_US,
M_BT => M_BT, K_BT =>
K_BT, H_BT => H_BT);
end structural;
1
0
11
3. Color room
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY color_rom_vhd IS
PORT(
i_M_US
: IN STD_LOGIC;
i_K_US
: IN STD_LOGIC;
i_H_US
: IN STD_LOGIC;
i_M_BT
: IN STD_LOGIC;
i_K_BT
: IN STD_LOGIC;
i_H_BT
: IN STD_LOGIC;
i_pixel_column : IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
i_pixel_row
: IN STD_LOGIC_VECTOR( 9 DOWNTO 0 );
o_red
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 );
o_green
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 );
o_blue
: OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 ));
END color_rom_vhd;
ARCHITECTURE behavioral OF color_rom_vhd
CONSTANT R_TF_0
CONSTANT R_TF_1
IS
: INTEGER := 0;
: INTEGER := 159;
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB
12
CONSTANT
CONSTANT
CONSTANT
CONSTANT
CONSTANT
CONSTANT
SIGNAL
SIGNAL
SIGNAL
SIGNAL
R_TF_2
R_TF_3
C_TF1_R
C_TF2_R
C_TF1_L
C_TF2_L
:
:
:
:
:
:
M_TF1, M_TF2
K_TF1, K_TF2
H_TF1, H_TF2
grid
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
:=
:=
:=
:=
:=
:=
319;
479;
79;
399;
239;
559;
:
:
:
:
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
BEGIN
13
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
o_green <=
END PROCESS;
END behavioral;
14