P2 Rangkaian Sekuensial
RAMA WISNU WIRANANDA 5022201017
Praktikum
Perancangan Komponen Terprogram
Data Percobaan Percobaan 1
- Tabel Kebenaran Karakteristik D Latch dengan Input dari Switch
A B 1
1 1 1
0 0 1
0 1 0
1 1 0
0 0 0
Percobaan 2
- Tabel Kebenaran Karakteristik Shift Register dengan Input dari Button dan Clock 1 Detik
Waktu LED 1 LED 2 LED 3 LED 4 LED 5
T = 1 detik 1 1 1 1 0
T = 2 detik 1 1 1 0 0
T = 3 detik 1 1 0 0 0
T = 4 detik 1 0 0 0 1
T = 5 detik 0 0 0 1 1
T = 6 detik 0 0 1 1 1
T = 7 detik 0 1 1 1 1
T = 8 detik 1 1 1 1 1
Percobaan 3
- Tabel Kebenaran SR Latch dengan Input dari Button dan Ouput LED
R S 1 2
1 1 0 0
1 0 0 1
0 0 0 1
0 1 1 0
0 0 1 0
Percobaan 4
- Tabel Kebenaran Karakteristik JK FF dengan Input dari Switch dan Clock 1 Detik
J K CLK Q’ Q
0 0 0 1 0
0 0 1 1 0
1 0 0 1 0
1 0 1 0 1
0 0 0 0 1
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 1 0 1 0
1 1 1 0 1
1 1 0 0 1
1 1 1 1 0
1 1 0 1 0
1 1 1 0 1
1 1 0 0 1
1 1 1 1 0
1 1 0 1 0
Pembahasan
Pada modul P2 praktikum Perancangan Komponen Terpogram ini kita akan membuat rangkaian sekuensial dengan menggunakan bahasa VHDL dan FPGA berjenis DE-10 Lite.
Rangkaian sekuesial merupakan rangkaian yang kondisi keluaranya dipengaruhi oleh masukan dan keadaan keluaran sebelumnya. Ciri dari rangkaian sekuensial adalah adanya jalur umpan balik. Pada praktikum ini terdapat 4 jenis percobaan yaitu membuat rangkaian D Latch, Shift Register, SR Latch dan yang terakhir rangkaian JK FF.
Pada percobaan 1, kita akan membuat program yang menggambarkan karakteristik D Latch dengan semua input dari switch. Terdapat 2 switch (Switch A dan Switch B) sebagai input serta 1 LED sebagai output. Dari hasil percobaan dapat dilihat bahwa ketika kondisi dari input swtich A dan B berilai 1 maka ouput LED akan menyala atau bernilai 1. dimana pada saat input jalur Data bernilai 1 maka kondisi tersebut adalah Set Q menjadi bernilai 1 pula dan pada saat jalur Data diberikan input dengan kondisi 0 maka kondisi yang terjadi adalah Reset Q menjadi kondisi 0. Kemudian Pada saat input Clock berlogika rendah maka data output pada jalur Q akan ditahan sebanyak 1 pulsa walaupun logika pada jalur input Data berubah. Hal ini dapat dilihat pada percobaan ketika input B diganti menjadi kondisi 0 maka output Q akan tetap bernilai 1 karena output tersebut tidak akan berubah apabila input B bernilai 0 (tetap menyimpan state terakhir dari input A) meskipun input A diubah ubah dari kondisi 1 ke 0.
Pada percobaan 2, kita akan membuat program yang menggambarkan karakteristik Shift Register dengan input dari button dan clk 1 detik. Setiap detik dari detik ke-1 sampai detik ke-8 akan kita amati perubahannya.Input pada detik 1-4 akan ditekan atau bernilai 1 lalu pda detik ke 4-8 button akan dilepas atau input bernilai 0. Pada saat detik ke-0 output akan bernilai 11111 atau semua LED menyala lalu pada detik ke-1 ouput berubah menjadi kondisi 11110 atau LED 5 akan mati dan sisanya tetap menyala. Ketika detik ke-2 ouput akan bernilai 11100 atau LED 4 dan LED 5 akan mati lalu detik ke-3 ouput akan bernilai 11000 atau LED 3, LED 4 dan LED 5 akan mati. Pada detik ke-4, button dilepas sehingga input bernilai 0 dan bit yang semula 0 akan bergeser berurutan menjadi 1 dimulai dari paling kanan sehingga output menjai 10001 atau LED 1 dan 5 menyala. Begitu pula bit akan bergeser pada detik berikutnya yaitu pada detik ke-5 dengan output 00011 dan detik ke-6 yaitu 00111 serta detik ke- yaitu 01111. Pada detik ketrakhir atau detik ke-8 ouput akan kembali ke kondisi semula dengan semua LED menyala.
Pada percobaan 3, kita akan membuat program yang menggambarkan karakteristik SR Latch dengan semua input dari button (Button A dan B) dan semua output dari led (LED 1 dan 2). S-R adalah singkatan dari “Set” dan “Reset”. Sesuai dengan namanya, S-R Latch ini terdiri dari dua masukan (INPUT) yaitu S dan R. S-R Latch ini juga terdapat dua Keluaran (OUTPUT) yaitu Q dan Q’. Rangkaian S-R Ltach terbuat dari 2 gerbang logika NOR. Bila button A diberi logika 1 dan button B diberi logika 0, maka output LED 1 akan berada pada logika 0 dan LED 2 pada logika 1. Bila button B diberi logika 1 dan button A diberi logika 0 maka keadaan output akan berubah menjadi LED 1 berada pada logika 1 dan LED 2 pada logika 0. Sifat paling penting dari SR Latch adalah bahwa sistem ini dapat menempati salah satu dari dua keadaan stabil yaitu stabil I diperoleh saat LED 1 =1 dan LED 2 = 0, stabil ke II diperoleh saat LED 1=0 dan LED 2=1
Pada percobaan 4 atau percobaan terakhir, kita akan membuat program yang menggambarkan karakteristik JK FF dengan input dari 2 switch (Swtich J, Switch K), setting clock 1 detik dan output berupa 2 LED (LED1, LED2). Rangkaian ini mempunyai tetapan waktu yang sangat pendek, hal ini mengubah pulsa lonceng segiempat menjadi impuls sempit.
Pada saat J dan K keduanya 0, Q tetap pada nilai terakhirnya. Pada saat J rendah dan K tinggi, gerbang atas tertutup, maka tidak terdapat kemungkinan untuk mengeset flip-flop. Pada saat Q adalah tinggi, gerbang bawah melewatkan pemicu reset segera setelah pinggiran pulsa lonceng positif berikutnya tiba. Hal ini mendorong Q menjadi rendah . Oleh karenanya J = 0 dan K=1 berarti bahwa pinggiran pulsa lonceng positif berikutnya akan mereset flip-flopnya. Pada saat J tinggi dan K rendah, gerbang bawah tertutup dan pada saat J dan K keduanya tinggi, kita dapat mengeset atau mereset flip-flopnya
Kesimpulan
Pada praktikum modul 2 yang membahas mengenai “Rangkaian Sekuensial” ini bertujuan untuk memahami cara kerja rangkaian sekuensial pada Field Programmable Gate Array (FPGA) didapatkan kesimpulan yaitu :
- Pada percobaan 1, D Latch adalah bila input D (Data) dan pulsa clock berlogik 1, maka output Q akan berlogik 1 dan bilamana input D berlogik 0, maka D flip-flop akan berada pada keadaan reset atau output Q berlogika 0.
- Pada percobaan 2, Shift Register adalah lampu akan mati setiap button di tahan dan akan menyala kembali saat button di lepas dengan delay pada clock 1 detik. Bit akan bergeser mulai dari yang paling kanan ketika input bernilai 0.
- Pada percobaan 3, Ketika R dan S bernilai 0 maka akan terjadi kondisi menyimpan.
Dan pada saat R dan S bernilai 1 maka akan terjadi kondisi terlarang. Pada saat J rendah dan K tinggi, gerbang atas tertutup.
- Pada percobaaan 4, saat J tinggi dan K rendah, gerbang bawah tertutup dan pada saat J dan K keduanya tinggi, kita dapat melihat dengan menggunakan clock 1 detik led akan menyala bergantian dengan delay 1 detik.
Gambar 1.1 (Pengujian D-Latch) Gambar 1.2 (Pengujian D-Latch) Gambar 1.3 (Pengujian D-Latch)
Lampiran Percobaan 1
- Karakteristik D-Latch
(Kode Program)
Library IEEE;
USE IEEE.Std_logic_1164.all;
entity percobaan1 is port(
Q : out std_logic;
clk :in std_logic;
D :in std_logic );
end percobaan1;
architecture dlatch of percobaan1 is begin
process(clk) begin
if(rising_edge(clk)) then Q <= D;
end if;
end process;
end dlatch;
(Output)
Percobaan 2
- Karakteristik Shift Register
(Kode Program)
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY work;
ENTITY percobaan2 IS PORT
(
CLK : IN STD_LOGIC;
A : IN STD_LOGIC;
O1 : OUT STD_LOGIC;
O2 : OUT STD_LOGIC;
O3 : OUT STD_LOGIC;
O4 : OUT STD_LOGIC;
O5 : OUT STD_LOGIC );
END percobaan2;
ARCHITECTURE bdf_type OF percobaan23 IS
SIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC;
SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC;
SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;
SIGNAL SYNTHESIZED_WIRE_3 : STD_LOGIC;
BEGIN
O1 <= SYNTHESIZED_WIRE_0;
O2 <= SYNTHESIZED_WIRE_1;
O3 <= SYNTHESIZED_WIRE_2;
O4 <= SYNTHESIZED_WIRE_3;
PROCESS(CLK,A)
VARIABLE counter : NATURAL range 0 to 50000000 :=0;
BEGIN
IF RISING_EDGE(CLK) THEN IF(counter < 50000000) THEN counter := counter + 1;
ELSE counter := 0;
SYNTHESIZED_WIRE_0 <= A;
END IF;
END IF;
END PROCESS;
PROCESS(CLK,SYNTHESIZED_WIRE_0)
VARIABLE counter : NATURAL range 0 to 50000000 :=0;
BEGIN
IF RISING_EDGE(CLK) THEN IF(counter < 50000000) THEN counter := counter + 1;
ELSE counter := 0;
SYNTHESIZED_WIRE_1 <= SYNTHESIZED_WIRE_0;
END IF;
END IF;
END PROCESS;
PROCESS(CLK,SYNTHESIZED_WIRE_1)
VARIABLE counter : NATURAL range 0 to 50000000 :=0;
BEGIN
IF RISING_EDGE(CLK) THEN IF(counter < 50000000) THEN counter := counter + 1;
ELSE counter := 0;
SYNTHESIZED_WIRE_2 <= SYNTHESIZED_WIRE_1;
END IF;
END IF;
END PROCESS;
PROCESS(CLK,SYNTHESIZED_WIRE_2)
VARIABLE counter : NATURAL range 0 to 50000000 :=0;
BEGIN
IF RISING_EDGE(CLK) THEN IF(counter < 50000000) THEN counter := counter + 1;
ELSE counter := 0;
SYNTHESIZED_WIRE_3 <= SYNTHESIZED_WIRE_2;
END IF;
END IF;
END PROCESS;
PROCESS(CLK,SYNTHESIZED_WIRE_3)
VARIABLE counter : NATURAL range 0 to 50000000 :=0;
BEGIN
IF RISING_EDGE(CLK) THEN IF(counter < 50000000) THEN counter := counter + 1;
ELSE counter := 0;
O5 <= SYNTHESIZED_WIRE_3;
END IF;
END IF;
END PROCESS;
END bdf_type;
(Output)
Gambar 2.1 (Shift Register pada T=1) Gambar 2.2 (Shift Register pada T=2) Gambar 2.3 (Shift Register pada T=3)
L
Percobaan 3
- Karakteristik SR-Latch
(Kode Program)
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity percobaan3 is Port ( S : in STD_LOGIC;
R : in STD_LOGIC;
Q : inout STD_LOGIC;
Qn : inout STD_LOGIC );
end percobaan3;
architecture srlatch of percobaan3 is begin
Q <= R nor Qn;
Qn <= S nor Q;
end srlatch;
(Output)
Gambar 2.4 (Shift Register pada T=6) Gambar 2.5 (Shift Register pada T=7) Gambar 2.6 (Shift Register pada T=8)
Gambar 3.1 Pengujian SR-Latch Gambar 3.2 Pengujian SR-Latch Gambar 3.3 Pengujian SR-Latch
Percobaan 4
- Karakteristik JK-FF
(Kode Program)
library ieee;
use ieee. std_logic_1164.all;
use ieee. std_logic_arith.all;
use ieee. std_logic_unsigned.all;
entity percobaan4 is
PORT( J,K,CLOCK: in std_logic;
Q, QB: out std_logic);
end percobaan4;
Architecture jkff of percobaan4 is
begin
PROCESS(CLOCK) variable TMP: std_logic;
Variable counter: Natural range 0 to 50000000 := 0;
begin
if rising_edge(CLOCK) Then if (counter < 50000000) then counter := counter + 1;
else
counter := 0;
if(J='0' and K='0') then TMP:=TMP;
elsif(J='1' and K='1') then TMP:= not TMP;
elsif(J='0' and K='1') then TMP:='0';
else TMP:='1';
end if;
end if;
end if;
Q <= TMP;
QB <= not TMP;
end PROCESS;
end jkff;
Gambar 4.1 Pengujian JK-FF Gambar 4.2 Pengujian JK-FF Gambar 4.3 Pengujian JK-FF
Gambar 4.4 Pengujian JK-FF Gambar 4.5 Pengujian JK-FF