el2102_04_13214054.pdf

8
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1 MODUL 4 RANGKAIAN LOGIKA SEKUENSIAL Mochamad Nandradi Toyib (13214054) Asisten: Adhitya Wisena Tanggal Percobaan: 19/11/2015 EL2102-Praktikum Sistem Digital Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Dalam modul praktikum ini, praktikan akan menjalankan sebuah rangkaian logika sekuensial. Praktikan akan membuat script VHDL ynag ditugaskan sebelum prkatikum untuk dipraktikkan pada saat praktikum, dan kemudian diimplementasikan pada FPGA, dan melihat haislnya sesuai ekspetasi atau tidak. Kemudian, mencoba script VHDL untuk diimplementasikan pada VGA monitor, dan juga menerapakan script pada modul sebelumnya pada VGA. Hasil yang didapat pada modul ini ialah hampir semuanya baik dan sesuai dengan teori Kata kunci: Sekuensil, VHDL, VGA. 1. PENDAHULUAN Dalam modul kali ini, praktikkan umumnya akan membuat script VHDL dan memrogramnya ke dalam script FPGA dan layar computer (VGA). Dalam percobaan C nanti, akan dibuat supaya layar komputer bisa menampilkan rangkaian logika sekuensial yang dibuat pada percobaan A. 2. STUDI PUSTAKA Pada modul kali ini, praktikkan akan membuat rangkaian sekuensial. Perbedaan rangkaian sekuensial dengan kombinasional ialah terletak pada ada tidaknya memory state.Keluaran rangkaian sekuensial bergantung pada state dan bergantung pada inputnya (Mealy) atau hanya bergantung pada statenya (Moore)[1] Salah satu model rangkaian sekuensial ialah Finite State Machine (FSM). Dinamakan FSM karena jumlah state yang mungkin terbatas dan rangkaian sekuensial bekerja mirip dengan mesin yang beroperasi dengan urutan state.[1] Salah satu contoh bentuk state diagram dari FSM ialah: Gambar 2-1. Contoh state diagram dari FSM [2] 3. METODOLOGI 3.1 PERCOBAAN A a. Buatlah folder sebagai direktori kerja baru untuk praktikum kali ini kemudian cipy script desain FSM yang telah dibuat sebagai tugas pendahuluan sebelumnya ke folder tersebut. b. Jalankan program Quartus , kemudian bukalah file script desain FSM tersebut. c. Implementasikan desain FSM tersebutdengan keluaran pada LED FPGA. 3.2 PERCOBAAN B a. Buatlah folder sebagai direktori kerja baru untuk percobaan ini, kemudian buatlah project baru dengan modul-modul yang disediakan untuk praktikum. b. Implementasikan desain di atas pada FPGA dengan pin planner yang sudah diunduh c. Lakukan beberapa kali perubahan posisi switch pada board FPGA untuk melihat hasil perubahannya pada layar komputer.

Upload: mochamad-nandradi-toyib

Post on 19-Feb-2016

269 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1

MODUL 4 RANGKAIAN LOGIKA SEKUENSIAL

Mochamad Nandradi Toyib (13214054) Asisten: Adhitya Wisena

Tanggal Percobaan: 19/11/2015 EL2102-Praktikum Sistem Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak

Dalam modul praktikum ini, praktikan akan menjalankan sebuah rangkaian logika sekuensial. Praktikan akan membuat script VHDL ynag ditugaskan sebelum prkatikum untuk dipraktikkan pada saat praktikum, dan kemudian diimplementasikan pada FPGA, dan melihat haislnya sesuai ekspetasi atau tidak. Kemudian, mencoba script VHDL untuk diimplementasikan pada VGA monitor, dan juga menerapakan script pada modul sebelumnya pada VGA. Hasil yang didapat pada modul ini ialah hampir semuanya baik dan sesuai dengan teori

Kata kunci: Sekuensil, VHDL, VGA.

1. PENDAHULUAN

Dalam modul kali ini, praktikkan umumnya akan membuat script VHDL dan memrogramnya ke dalam script FPGA dan layar computer (VGA). Dalam percobaan C nanti, akan dibuat supaya layar komputer bisa menampilkan rangkaian logika sekuensial yang dibuat pada percobaan A.

2. STUDI PUSTAKA

Pada modul kali ini, praktikkan akan membuat rangkaian sekuensial. Perbedaan rangkaian sekuensial dengan kombinasional ialah terletak pada ada tidaknya memory state.Keluaran rangkaian sekuensial bergantung pada state dan bergantung pada inputnya (Mealy) atau hanya bergantung pada statenya (Moore)[1]

Salah satu model rangkaian sekuensial ialah Finite State Machine (FSM). Dinamakan FSM karena jumlah state yang mungkin terbatas dan rangkaian sekuensial bekerja mirip dengan mesin yang beroperasi dengan urutan state.[1]

Salah satu contoh bentuk state diagram dari FSM ialah:

Gambar 2-1. Contoh state diagram dari FSM [2]

3. METODOLOGI

3.1 PERCOBAAN A

a. Buatlah folder sebagai direktori kerja baru untuk praktikum kali ini kemudian cipy script desain FSM yang telah dibuat sebagai tugas pendahuluan sebelumnya ke folder tersebut.

b. Jalankan program Quartus , kemudian bukalah file script desain FSM tersebut.

c. Implementasikan desain FSM tersebutdengan keluaran pada LED FPGA.

3.2 PERCOBAAN B

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

b. Implementasikan desain di atas pada FPGA dengan pin planner yang sudah diunduh

c. Lakukan beberapa kali perubahan posisi switch pada board FPGA untuk melihat hasil perubahannya pada layar komputer.

Page 2: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 2

3.3 PERCOBAAN C

Hubungkan keluaran FSM dengan masukan modul VGA. Lakukan compile dan unduh gabungan desain FSM dan modul VGA tersebut ke dalam board FPGA. Amati hasilnya!

4. HASIL DAN ANALISIS

4.1 PERCOBAAN A

Pada percobaan ini, dengan menggunakan script yang telah dibuat, maka didapatkan hasil implementasi pada FPGA.

Sebelum deprogram pada FPGA, terlebih dahulu di-assign pin-pinnya pada FPGA, yaitu

FPGA Nama variable

PIN_L22 d (kondisi darurat)

PIN_L21 s (kondisi siang)

PIN_R20 H_BT

PIN_R19 H_US

PIN_U19 K-BT

PIN_Y19 K-US

PIN_T18 M-BT

PIN_V19 M-US

Hasil yang didapat dari percobaan ini, ialah script tersebut membuat suatu logika sekuensial. Pada percobaan ini, input Clock yang dipakai ialah bernilai 50 Hz. Pin yang dipakai adalah Pin_L1.

Ketika posisi input s dan d dalam keadaan 0 (Low), maka s berniliai s’. Dan kondisi state akan masuk ke keadaan malam. Sehingga, lampu merah utara selatan (M_US) dan Hijau Barat Timur (H_BT) akan menyala selama 4 detik,dan kemudian masuk ke keadaan dua, yaitu lampu Merah Utara Selatan akan nyala selama 1 detik lagi bersamaan dengan lampu Kuning barat timur (K_BT). Kemudian, masuk ke keadaan tiga, dimana Merah Barat Timur (BT) nyala selama 4 detik bersamaan dengan Hijau Utara selatan (H_US). Kemudian masuk ke keadaan empat, dimana lampu M_BT akan menyala selama 1 detik, bersamaan dengan kuning utara selatan. Yang kemudian, setelah itu kembali ke keadaan awal.

Ketika input dalam keadaan (s=1) dan (d=0), maka keadaan-keadaan yang terjadi sama dengan

keadaan ketika s=0, hanya waktu berlangsungnya dilipatgandakan.

Dan ketika d=1, meskipun s bernilai 0 atau 1, maka akan masuk ke keadaan darurat, dimana lampu K_BT dan K_US akan menyala selama 1 detik, kemudian redup selama 1 detik, kemudian nyala lagi dan redup lagi. Keadaan ini terjadi berulang-berulang dengan kondisi nilai d=1.

Jika dibuat state table dan state diagramnya, maka bentuknya:

State

M_US

M_BT

K_US

K_BT

H_US

H_BT

S1 1 0 0 0 0 1

S2 1 0 0 1 0 0

S3 0 1 0 0 1 0

S4 0 1 1 0 0 0

SD 0 0 1 1 0 0

Tabel 4-2 State table percobaan A

State diagram dari tabel diatas ialah:

Gaambar 4-1, State diagram dari percobaan A.

State diagram yang dihasilkan sesuai dengan keluaran yang diinginkan pada saat tugas pendahuluan [1], dan sesuai teori [1]. Dan rangkaian sekuensial ini bekerja secara behavioural.

4.2 PERCOBAAN B

Pada percobaan kali ini, didapatkan hasil yang ditampilkan pada layar komputer yang serupa dengan lampu lalu lintas. Lampu merah, kuning dan hijau pada Utara-Selatan (US) dan Barat-Timur (BT) dikendalikan oleh switch yang ada

Page 3: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 3

pada FPGA. Hubungannya switch dan lampu ialah :

Pin Switch pada FPGA Lampu yang dikendalikan oleh FPGA

SW_[0] M_US

SW_[1] K_US

SW_[2] H_US

SW_[3] M_BT

SW_[4] K_BT

SW_[5] H_BT

Tabel 4-3, koneksi lampu pada VGA dengan switch pada FPGA.

Ketika switch bernilai ’1’ atau on, lampu yang terhubung akan memberikan nyala sesuai warnanya.

M_US M_BT

K_US K_BT

H_US H_BT

Gambar 4-4. Tampilan dari layar ketika diimplementasikan pada VGA. M=Merah, K+Kuning, H=Hijau.

4.3 PERCOBAAN C

Pada percobaan ini, Rangkaian FSM pada percobaan A akan diimplementasikan pada FPGA dan layar komputer.

Hasil yang ditampilkan pada layar komputer sama dengan hasil yang dihasilkan pada percobaan A dan B. Hanya, hal yang ditampilkan lebih menyerupai lalu lintas asli, karena ada warna merah ,kuning dan hijau (bukan seperti pada percobaan A, dimana LED-LED yang digunakan berwarna merah semua).Tampilan pada layar VGA sama dengan Gambar 4-4. Jeda waktu yang dihasilkan sama, seperti ketika hari siang lampu merah nyala selama 10 detik, lampu hijau 8 detik, dan kuning 2 detik. Pada saat percobaan ini, frekuensi pada masukan clock juga berpengaruh pada waktu delay yang dihasilkan. Dalam percobaan ini, frekuensi yang dipakai ialah 50 Hz, dan hal tersebut dapat membuat delay waktu yang tepat (tepat 10detik, 8 detik, 2 detik, dan sebagainya).

Dan untuk masukan input siang hari dan daruratnya, diimplementasikan pada SW_0 dan SW_1.

5. KESIMPULAN

Pada percobaan-percobaan yang telah dilakukan, Didapatkan hasil yang sesuai dengan teori aslinya. Pada percobaan A, didapatkan rangkaian logika sekuensial dari lampu lalu lintas yang ada pada tugas pendahuluan, yang bekerja secara behavioural. Pada percobaan B, didapatkan pinpin yang mengatur tampilan lampu lalu intas pada layar VGA, dan pada Percobaan C, telah diimplementasikan desain FSM pada percobaan A pada layar VGA sehingga lampu lalu lintas yang tampil seperti pada pecobaan B, berkerja sesuai State diagram dari percobaan A, dan dengan waktu yang tepat, karena frekuensi clocknya sebesar 50Hz.

DAFTAR PUSTAKA

[1] Hutabarat, Mervin T.Praktikum Sistem Digital, Sekolah Teknik Elektro dan Informatika,Bandung, 2015

[2] https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/CPT-FSM-Mealy-01.svg/350px-CPT-FSM-Mealy-01.svg.png , 23 November 2015, 07.43 WIB.

Page 4: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 4

LAMPIRAN

-Script VHDL tugas pendahuluan

[3] LIBRARY IEEE;

[4] USE IEEE.STD_LOGIC_1164.ALL;

[5]

[6] ENTITY modul4 IS

[7] PORT ( CLK ,d, s : IN STD_LOGIC;

[8] M_US : OUT STD_LOGIC;

[9] M_BT : OUT STD_LOGIC;

[10] K_US : OUT STD_LOGIC;

[11] K_BT : OUT STD_LOGIC;

[12] H_US : OUT STD_LOGIC;

[13] H_BT : OUT STD_LOGIC

[14] );

[15] END modul4;

[16]

[17] ARCHITECTURE behavioral OF modul4 IS

[18] TYPE state is (S1,S2,S3,S4);

[19] SIGNAL currentstate: state;

[20] SIGNAL C : integer;

[21] BEGIN

[22]

[23] PROCESS (d,CLK,s)

[24] variable C : integer := 1;

[25] BEGIN

[26] IF CLK'EVENT AND CLK='1' AND d = '1' THEN

[27] IF (C = 1) THEN

[28] M_US <= '0';

[29] K_US <= '1';

[30] H_US <= '0';

[31] M_BT <= '0';

[32] K_BT <= '1';

[33] H_BT <= '0';

[34] C := C + 1;

[35] ELSIF (C=2) THEN

[36] M_US <= '0';

[37] K_US <= '0';

[38] H_US <= '0';

[39] M_BT <= '0';

Page 5: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 5

[40] K_BT <= '0';

[41] H_BT <= '0';

[42] C := C + 1;

[43] ELSIF (C=3) THEN

[44] M_US <= '0';

[45] K_US <= '1';

[46] H_US <= '0';

[47] M_BT <= '0';

[48] K_BT <= '1';

[49] H_BT <= '0';

[50] C := C + 1;

[51] ELSIF (C=4) THEN

[52] M_US <= '0';

[53] K_US <= '0';

[54] H_US <= '0';

[55] M_BT <= '0';

[56] K_BT <= '0';

[57] H_BT <= '0';

[58] C := 1;

[59] ELSIF C>4 and d = '1' then

[60] C := 0;

[61] else

[62] currentstate <= S1;

[63]

[64] END IF;

[65] ELSIF CLK'EVENT AND CLK='1' AND s ='1' AND d = '0' THEN

[66] CASE currentstate IS

[67] WHEN S1 =>

[68] IF (C<8) THEN

[69] M_US <= '1';

[70] K_US <= '0';

[71] H_US <= '0';

[72] M_BT <= '0';

[73] K_BT <= '0';

[74] H_BT <= '1';

[75] C := C + 1;

[76] currentstate <= S1;

[77] ELSE

[78] currentstate <= S2;

Page 6: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 6

[79] C := 1;

[80] END IF;

[81] WHEN S2 =>

[82] IF (C<2) THEN

[83] M_US <= '1';

[84] K_US <= '0';

[85] H_US <= '0';

[86] M_BT <= '0';

[87] K_BT <= '1';

[88] H_BT <= '0';

[89] C := C + 1;

[90] currentstate <= S2;

[91] ELSE

[92] currentstate <= S3;

[93] C := 1;

[94] END IF;

[95] WHEN S3 =>

[96] IF (C<8) THEN

[97] M_US <= '0';

[98] K_US <= '0';

[99] H_US <= '1';

[100] M_BT <= '1';

[101] K_BT <= '0';

[102] H_BT <= '0';

[103] C := C + 1;

[104] currentstate <= S3;

[105] ELSE

[106] currentstate <= S4;

[107] C := 1;

[108] END IF;

[109] WHEN S4 =>

[110] IF (C<2) THEN

[111] M_US <= '0';

[112] K_US <= '1';

[113] H_US <= '0';

[114] M_BT <= '1';

[115] K_BT <= '0';

[116] H_BT <= '0';

[117] C := C + 1;

Page 7: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 7

[118] currentstate <= S4;

[119] ELSE

[120] currentstate <= S1;

[121] C := 1;

[122] END IF;

[123]

[124] END CASE;

[125] ELSIF CLK'EVENT AND CLK='1' AND s ='0' AND d = '0' THEN

[126] CASE currentstate IS

[127] WHEN S1 =>

[128] IF (C<4) THEN

[129] M_US <= '1';

[130] K_US <= '0';

[131] H_US <= '0';

[132] M_BT <= '0';

[133] K_BT <= '0';

[134] H_BT <= '1';

[135] C := C + 1;

[136] currentstate <= S1;

[137] ELSE

[138] currentstate <= S2;

[139] C := 1;

[140] END IF;

[141] WHEN S2 =>

[142] IF (C = 1) THEN

[143] M_US <= '1';

[144] K_US <= '0';

[145] H_US <= '0';

[146] M_BT <= '0';

[147] K_BT <= '1';

[148] H_BT <= '0';

[149] C := C + 1;

[150] currentstate <= S3;

[151] C := 1;

[152] END IF;

[153] WHEN S3 =>

[154] IF (C<4) THEN

[155] M_US <= '0';

[156] K_US <= '0';

Page 8: EL2102_04_13214054.pdf

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 8

[157] H_US <= '1';

[158] M_BT <= '1';

[159] K_BT <= '0';

[160] H_BT <= '0';

[161] C := C + 1;

[162] currentstate <= S3;

[163] ELSE

[164] currentstate <= S4;

[165] C := 1;

[166] END IF;

[167] WHEN S4 =>

[168] IF (C=1) THEN

[169] M_US <= '0';

[170] K_US <= '1';

[171] H_US <= '0';

[172] M_BT <= '1';

[173] K_BT <= '0';

[174] H_BT <= '0';

[175] C := C + 1;

[176] currentstate <= S1;

[177] C := 1;

[178] END IF;

[179]

[180] END CASE;

[181]

[182] END IF;

[183] END PROCESS;

END behavioral;