Lampu Lalu Lintas Sederhana Berbasis Field Programmable [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine Ferry Wahyu Wibowo1 Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta – Indonesia 1



[email protected]



Penggunaan state diagram untuk membuat suatu aplikasi dalam software ISE XILINX memudahkan pengguna untuk membentuk suatu siklus keadaan, tanpa harus mengetahui skematik dan hardware description language (HDL). Kemampuan yang dihasilkan dari aplikasi ini membuat pengguna dapat merespon bentuk keluaran suatu algoritma yang sedang dibuat. Namun, konversi yang dilakukan oleh kompiler mengelompokkan menjadi satu suatu variable dalam bentuk hardware description language (HDL). Contoh sederhana ditampilkan pada gambar 1, untuk membuat lampu lalu lintas sederhana.



Gambar 1 State Diagram FSM untuk lampu lalu lintas Prinsip kerja dari FSM ini adalah pada state awal semua keluaran merah, kuning dan hijau bernilai „0‟, ketika kondisi masukan timer “001” maka akan ke state awal dan akan menset merah dan ketika masukan timer kondisinya “010” maka akan menset kuning dan ketika timer



kondisinya “011” maka akan menset hijau dan seterusnya sampai tombol reset ditekan maka akan kembali ke kondisi state0. Hasil konversi state diagram dari gambar 1 ke VHSIC Hardware Description Language (VHDL) ditunjukkan pada listing program 1. LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY SHELL_VM IS PORT (CLK,RESET,timer0,timer1,timer2: IN std_logic; hijau,kuning,merah : OUT std_logic); END; ARCHITECTURE BEHAVIOR OF SHELL_VM IS TYPE type_sreg IS (STATE0,STATE1,STATE2,STATE3); SIGNAL sreg, next_sreg : type_sreg; SIGNAL next_BP_hijau,next_BP_kuning,next_merah : std_logic; SIGNAL BP_hijau,BP_kuning: std_logic; BEGIN PROCESS(CLK,next_sreg, next_BP_hijau, next_BP_kuning, next_merah) BEGIN IF CLK='1' AND CLK'event THEN sreg