sequential logic sequence

8
1 MODUL 4 RANGKAIAN LOGIKA SEKUENSIAL Yogi Salomo Mangontang Pratama (13511059) Asisten: Giffary Kautsar / 13209028 Tanggal Percobaan: 12/11/2012 EL2195-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika Abstrak Setelah pada percobaan sebelumnya kita telah membuat rangkaian logika kombinasional, pada percobaan ini kita akan membuat rangkaian logika sekuensial. Yang membedakan kedua rangkaian ini adalah keberadaan memori statenya. Pada rangkaian sekuensial, keluaran yang dihasilkan bergantung pada statenya. Baik beserta dengan masukannya maupun hanya state saja. Salah satu contoh model yang menerapkan rangkaian sekuensial adalah FSM(Finite State Machine). FSM itu sendiri terdiri dari berbagai level abstraksi dan salah satu yang akan kita terapkan dalam percobaan kali ini adalah behavioral.Langkah awal yang harus kita pahami dalam pembuatan rangkaian sekuensial adalah pembuatan state diagram untuk rangkaian tersebut. Kata kunci : sekuensial, state, FSM, State Diagram. 1. PENDAHULUAN Dalam perancangan rangkaian digital, ada beberapa pendekatan yang dapat dilakukan. Pada percobaan kali ini akan dilakukan perancangan rangkaian logika secara sekuensial. Yang membedakan rangkaian logika ini dengan rangkaian logika yang sebelumnya adalah keberadaan memori state. Pada rangkaian sekuensial, kita harus menentukan berbagai keadaan yang akan terjadi serta membuatnya ke dalam suatu Flow Chart yang biasa disebut dengan State Diagram. Pada percobaan ini selain mencoba membuat rangkaiannya, akan dilakukan juga simulasi penerapan rangkaian sekuensial tersebut, baik ke dalam sebuah FPGA maupun pada VGA driver. Adapun tujuan dari praktikum ini antara lain : 1. Mendesain sekuensial rangkaian untuk implementasi pada FPGA. 2. Mengenal dan memahami cara menggunakan hierarki dalam desain rangkaian. 3. Mengenal dan memahami cara menggunakan FPGA sebagai prototype system untuk memverifikasi fungsi rangkaian. 2. STUDI PUSTAKA 2.1 RANGKAIAN LOGIKA SEKUENSIAL Rangkaian logika sekuensial adalah rangkaian yang bergantung pada state serta masukan yang diberikan oleh pengguna. State itu sendiri adalah suatu keadaan yang mungkin akan dialami oleh suatu rangkaian, beserta transisi yang mungkin terjadi antara satu state dengan state berikutnya.

Upload: yogi-salomo-mangontang-pratama

Post on 06-Aug-2015

106 views

Category:

Documents


11 download

DESCRIPTION

The other kind of Logic Sequent which is more depending in time and using sequential bridges as well

TRANSCRIPT

Page 1: Sequential Logic Sequence

1

MODUL 4 RANGKAIAN LOGIKA SEKUENSIALYogi Salomo Mangontang Pratama (13511059)

Asisten: Giffary Kautsar / 13209028Tanggal Percobaan: 12/11/2012EL2195-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika

Abstrak

Setelah pada percobaan sebelumnya kita telah membuat rangkaian logika kombinasional, pada percobaan ini kita akan membuat rangkaian logika sekuensial. Yang membedakan kedua rangkaian ini adalah keberadaan memori statenya. Pada rangkaian sekuensial, keluaran yang dihasilkan bergantung pada statenya. Baik beserta dengan masukannya maupun hanya state saja.

Salah satu contoh model yang menerapkan rangkaian sekuensial adalah FSM(Finite State Machine). FSM itu sendiri terdiri dari berbagai level abstraksi dan salah satu yang akan kita terapkan dalam percobaan kali ini adalah behavioral.Langkah awal yang harus kita pahami dalam pembuatan rangkaian sekuensial adalah pembuatan state diagram untuk rangkaian tersebut.

Kata kunci : sekuensial, state, FSM, State Diagram.

1. PENDAHULUAN

Dalam perancangan rangkaian digital, ada beberapa pendekatan yang dapat dilakukan. Pada percobaan kali ini akan dilakukan perancangan rangkaian logika secara sekuensial. Yang membedakan rangkaian logika ini dengan rangkaian logika yang sebelumnya adalah keberadaan memori state. Pada rangkaian sekuensial, kita harus menentukan berbagai keadaan yang akan terjadi serta membuatnya ke dalam suatu Flow Chart yang biasa disebut dengan State Diagram.

Pada percobaan ini selain mencoba membuat rangkaiannya, akan dilakukan juga simulasi penerapan rangkaian sekuensial tersebut, baik ke dalam sebuah FPGA maupun pada VGA driver.

Adapun tujuan dari praktikum ini antara lain :

1. Mendesain sekuensial rangkaian untuk implementasi pada FPGA.

2. Mengenal dan memahami cara menggunakan hierarki dalam desain rangkaian.

3. Mengenal dan memahami cara menggunakan FPGA sebagai prototype system untuk memverifikasi fungsi rangkaian.

2. STUDI PUSTAKA

2.1 RANGKAIAN LOGIKA SEKUENSIAL

Rangkaian logika sekuensial adalah rangkaian yang bergantung pada state serta masukan yang diberikan oleh pengguna. State itu sendiri adalah suatu keadaan yang mungkin akan dialami oleh suatu rangkaian, beserta transisi yang mungkin terjadi antara satu state dengan state berikutnya.

Untuk mempermudah perancangan state dalam rangkaian sekuensial ini, sebelum memulai perancangan sebaiknya dilakukan pembuatan suatu flow chart transisi state yang biasa disebut dengan istilah state diagram.

2.2 STATE DIAGRAM

Yang pertama kali dilakukan dalam pembuatan state diagram adalah berapa state (kondisi) yang diperlukan dalam rangkaian tersebut. State logika adalah satu set nilai logika yang unik yang memperlihatkan status logika mesin pada suatu waktu tertentu.

Page 2: Sequential Logic Sequence

2

Cara paling baik untuk memulai menentukan state pada rangkaian adalah dengan membuat starting state, yaitu suatu state yang harus dimasuki mesin ketika baru dinyalakan ataupun ketika mesin di-reset.

Berikut adalah contoh dari state diagram :

GAMBAR 2.2.1 STATE DIAGRAM SEDERHANA. Sumber : Brown, Varesnic. Fundamental of Digital Logic with VHDL ed. 3

2.3 FINITE STATE MACHINE

Finite State Machine atau yang biasa disebut FSM adalah salah satu model yang sering diterapkan untuk membantu membuat rangkaian sekuensial. Disebut demikian karena jumlah state yang mungkin terjadi terbatas dan rangkaian sekuensial bekerja mirip dengan mesin yang beroperasi dengan urutan state.

Ada berbagai jenis dan level abstraksi dalam perancangan rangkaian sekuensial. Dan salah satunya adalah FSM Mealy yang dapat dilihat pada gambar berikut :

GAMBAR 2.3.1 FSM MEALY. Sumber : Brown, Varesnic. Fundamental of Digital Logic with VHDL ed. 3

3. METODOLOGI

Alat-alat yang digunakan dalam percobaan ini antara lain :

1. Komputer yang telah ter-install program Quartus II

2. FPGA development board, tipe DE1 beserta perlengkapannya yang meliputi :

Board FPGA tipe UP2, DE1, DE2, atau DE2-70

Catu Daya+ Kabel dan konektor tambahan

Kabel downloader ‘ByteBlaster II’ dan USB-Blaster.

3.1 PERCOBAAN 4A : IMPLEMENTASI DESAIN FSM PADA FPGA

3.2 PERCOBAAN 4B : IMPLEMENTASI MODUL VGA DRIVER

Buatlah folder sebagai direktori kerja baru untuk praktikum kali ini kemudian copy script desain

FSM yang telah dibuat sebagai tugas pendahuluan sebelumnya ke dalam folder tersebut

Jalankan program ALTERA QUARTUS, kemudian bukalah file yang merupakan skrip desain FSM yang telah dibuat sebagai tugas pendahuluan

sebelumnya

Implementasikan desain FSM tersebut dengan keluaran pada LED FPGA ( lihat kembali implementasi desain pada FPGA dalam

praktikum-praktikum sebelumnya)

Page 3: Sequential Logic Sequence

3

3.3 PERCOBAAN 4C: MENGGABUNGKAN DESAIN FSM DENGAN VGA DRIVER

3.4 SCRIPT VHDL UNTUK PERCOBAAN

3.4.1 SCRIPT LAMPU LALU LINTAS

library IEEE;

use IEEE.STD_LOGIC_1164.all;

use IEEE.STD_LOGIC_unsigned.all;

entity traffic is

port (clk1: in STD_LOGIC;

clk: buffer bit;

clr: in STD_LOGIC;

siangmalam: in STD_LOGIC;

darurat : in STD_LOGIC;

lampu: out STD_LOGIC_VECTOR(5 downto 0));

end traffic;

architecture traffic of traffic is

component clockdiv is

port(

CLK: IN std_logic;

DIVOUT: buffer bit);

end component;

type state_type is (s0, s1, s2, s3, s4);

signal state: state_type;

signal count: STD_LOGIC_VECTOR(3 downto 0);

constant SEC8: STD_LOGIC_VECTOR(3 downto 0) := "0111";

constant SEC4: STD_LOGIC_VECTOR(3 downto 0) := "0011";

constant SEC2: STD_LOGIC_VECTOR(3 downto 0) := "0001";

constant SEC1: STD_LOGIC_VECTOR(3 downto 0) := "0000";

begin

DUT : clockdiv

PORT MAP (

CLK => clk1,

DIVOUT => clk);

process(clk, clr, darurat, siangmalam)

begin

Lakukan beberapa kali perubahan posisi switch pada board FPGA untuk melihat efek dan perubahannya pada layar LCD! Pelajari input dan keluaran dari desain di atas

untuk selanjutnya digabungkan dengan modul FSM yang telah dibuat

Implementasikan desain di atas pada FPGA dengan pin planner yang sudah di download dan disesuaikan

dengan board yang ada

Buatlah folder sebagai direktori kerja baru untuk percobaan ini, kemudian buatlah project baru dengan modul-modul yang disediakan untuk praktikum empat

sesuai dengan board yang ada

Hubungkan keluaran FSM dengan masukan modul VGA. Lakukan compile dan download gabungan desain FSM dan modul VGA tersebut ke dalam

board FPGA. Amati hasil yang didapatkan!

Page 4: Sequential Logic Sequence

4

if clr = '0' and darurat = '1' then

state <= s4;

count <= SEC4;

elsif clk'event and clk = '1' then

if clr = '0' and siangmalam = '0' and darurat = '0' then

case state is

when s0 =>

if count < SEC8 then

state <= s0;

count <= count + 1;

else

state <= s1;

count <= X"0";

end if;

when s1 =>

if count < SEC2 then

state <= s1;

count <= count + 1;

else

state <= s2;

count <= X"0";

end if;

when s2 =>

if count < SEC8 then

state <= s2;

count <= count + 1;

else

state <= s3;

count <= X"0";

end if;

when s3 =>

if count < SEC2 then

state <= s3;

count <= count + 1

else

state <= s0;

count <= X"0";

end if;

when others =>

state <= s0;

end case;

elsif clr = '0' and siangmalam = '1' and darurat = '0' then

case state is

when s0 =>

if count < SEC4 then

state <= s0;

count <= count + 1;

else

state <= s1;

count <= X"0";

end if;

when s1 =>

if count < SEC1 then

state <= s1;

count <= count + 1;

else

state <= s2;

count <= X"0";

end if;

when s2 =>

if count < SEC4 then

Page 5: Sequential Logic Sequence

5

state <= s2;

count <= count + 1;

else

state <= s3;

count <= X"0";

end if;

when s3 =>

if count < SEC1 then

state <= s3

count <= count + 1;

else

state <= s0;

count <= X"0";

end if;

when others =>

state <= s0;

end case;

end if;

end if;

end process;

C2: process(state)

begin

case state is

when s0 => lampu <= "100001";

when s1 => lampu <= "100010";

when s2 => lampu <= "001100";

when s3 => lampu <= "010100";

when s4 => lampu <= "010010";

when others => lampu <= "100001";

end case;

end process;

end traffic;

3.4.2 SCRIPT UNTUK DIVCLOCK

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:=25000000;

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';

Page 6: Sequential Logic Sequence

6

elsif(DIVOUT='1') then

DIVOUT<='0';

end if;

count:=0;

end if;

end if;

end process;

end behavioural;

4. HASIL DAN ANALISIS

Pada praktikum kali ini kami tidak berhasil melakukan percobaan dengan tuntas. Dikarenakan ada kesalahan pada skrip VHDL yang kami buat sehingga tidak berhasil dibuat. Skrip yang kami buat berhasil dikompilasi akan tetapi hasil yang dikeluarkan tidak sesuai dengan yang diharapkan pada percobaan ini.

Hal ini mungkin disebabkan karena deklarasi state yang kurang tepat, karena hasil yang keluar adalah setelah s1, output tidak ada atau bergambar ’XXXXXXXXXX’ pada waveform.

Setelah praktikum usai saya mencoba membuat kembali dengan skrip yang telah disertakan pada metodologi, dan saya akhirnya mendapatkan hasil yang sesuai dengan hasil yang diharapkan pada praktikum ini.

Dapat dilihat bahwa pada s0, lampu merah utara selatan menyala dan lampu hijau di barat timur menyala. Pada s1, lampu merah utara selatan masih menyala, dan lampu kuning barat timur yang menyala. Pada s2, lampu hijau pada utara selatan menyala dan lampu merah pada timur barat menyala. Pada s3, lampu kuning utara selatan menyala dan lampu merah pada barat timur menyala. s4

adalah keadaan darurat dimana lampu kuning dari semua arah berkedip.

Percobaan implementasi pada FPGA tidak sempat saya lakukan, oleh karena pada saat di laboratorium saya belum berhasil membuat rancangan sehingga saya tidak dapat melakukan simulasi. Akan tetapi apabila sesuai dengan yang diharpkan pada percobaan ini, seharusnya seteleah diaplikasikan pada FPGA maka lampu LED pada FPGA akan menyala sesuai dengan waktu yang telah ditentukan pada soal lampu lalu lintas. Akan tetapi hitungan waktu pada waveform berbeda dengan waktu pada FPGA sehingga perlu diatur kembali nilai dari waktu input maupun outputnya. Apabila frekuensinya 50Hz, digunakan +- 50 juta ns, sementara bila frekuensi 27Hz, digunakan +- 13.5 juta ns.

Demikian pula dengan percobaan ketiga, menggabungkan desain rangkaian dengan VGA Driver. Kami belum berhasil mengimplementasikannya dikarenakan kesalahan pada rangkaian. Akan tetapi apabila rangkaiannya sudah benar, bila kita menyambungkan FPGA dengan layar computer, maka akan keluar simulasi dari lampu lalu lintas yang kurang lebih tampilannya sebagai berikut.

GAMBAR 4.1 Perkiraan tampilan pada layar setelah FPGA disambungkan dengan VGA Driver. Sumber : dokumentasi pribadi penulis.

Tampilan yang demikian dihasilkan dari modul VGA yang telah diberikan sebelumnya oleh asisten praktikum, dan apabila rangkaian yang kita buat sudah benar, maka akan tampil di layar seperti yang tertera pada gambar dan transisi warnanya akan berubah sesuaid dengan input yang diberikan dari FPGA. Akan tetapi sekali lagi, saya belum berhasil melakukan percobaan ini.

Page 7: Sequential Logic Sequence

7

5. KESIMPULAN

Dalam pembuatan rangkaian sekuensial, penentuan state logika yang akan dipakai memegang peranan yang sangat penting dalam keberhasilan rancangan rangkaian. State yang dibuat harus sesuai dengan keadaan yang diinginkan pada rangkaian dan dibuat seminimal mungkin.

Dan apabila telah dirancang dengan benar, rangkaian logika sekuensial tersebut dapat diaplikasikan baik pada FPGA board maupun ditampilkan dalam sebuah layar dengan bantuan VGA Driver.

6. DAFTAR PUSTAKA

Brown, Steven dan Varesnic, Zvonko. 2005. Fundamental Of Digital Logic with VHDL Design.

Hutabarat, Mervin, dkk, Modul Praktikum Sistem Digital, Institut Teknologi Bandung, Bandung, 2010