Anda di halaman 1dari 17

MAKALAH

PERANCANGAN SIMPLE TRAFFIC LIGHT BERBASIS


FINITE STATE MACHINE DENGAN BAHASA VERILOG
Disusun untuk Memenuhi Penilaian UAS Mata Kuliah Perancangan Berbasis FPGA

Dosen Pengampu :
Rachmat Muwardi, B.Sc., ST., M.Sc.

Disusun oleh :
Ferryawan Harris Kristanto (41420120082)
Barkah Dikta Nurcahyo (41419110135)
Adam Imron S. (41418110124)

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNIK UNIVERSITAS MERCUBUANA
JAKARTA
2021
KATA PENGANTAR

Puji Syukur dihaturkan kepada Tuhan Yang Maha Esa karena atas berkat dan
rahmatnya penulis dapat menyelesaikan pembuatan makalah yang berjudul Perancangan
Simple Traffic Light Berbasis Finite State Machine dengan Bahasa Verilog sebagai
persyaratan untuk memenuhi penilaian UAS mata kuliah Perancangan Berbasis FPGA. Serta
diucapkan terimakasih banyak kepada :
1. Bapak Eko Ihsanto, Ir., M.Eng. selaku Ketua Program Studi Teknik Elektro Universitas
Mercubuana.
2. Bapak Rachmat Muwardi, B.Sc., ST., M.Sc. selaku Dosen Pengampu dari mata kuliah
Perancangan Berbasis FPGA.
3. Team Civitas Akademik Universitas Mercubuana, yang telah memfasilitasi mahasiswa
sehingga dapat melakukan pembelajaran E-learning maupun Online Temporer di masa
pandemi COVID.
Dalam penulisan makalah ini penulis menyadari bahwa masih terdapat banyak
kekurangan baik dalam hal penyajian materi maupun dalam teknik penulisan makalah ini.
Adanya kekurangan dalam makalah ini akan menjadi evaluasi untuk peningkatan kualitas pada
kesempatan mendatang.
Semoga dengan ditulisnya makalah ini dapat membantu pembaca untuk memperoleh
referensi mengenai materi-materi terkait. Tidak lupa kritik dan saran yang membangun dari
pembaca diharapkan untuk membuat penulisan makalah ini menjadi lebih baik pada
kesempatan berikutnya.

Jakarta, 25 December 2021

Penyusun
BAB I
PENDAHULUAN

1.1 Latar Belakang


Traffic Light Controller merupakan modul yang dibangun dari seperangkat aturan dan
instruksi yang diandalkan oleh pengemudi kendaraan untuk menghindari tabrakan dan bahaya
lainnya. Sistem kontrol lalu lintas mencakup rambu, lampu, dan perangkat lain yang
mengomunikasikan arah, peringatan, atau persyaratan tertentu. Traffic light controller (TLC)
telah diimplementasikan menggunakan mikrokontroler FPGA dan desain ASIC. Field
Programmable Gate Array (FPGA) memiliki banyak keunggulan dibandingkan
mikrokontroler, beberapa keunggulan tersebut adalah; kecepatan, jumlah port input/output dan
kinerja yang semuanya sangat penting dalam desain TLC, pada saat yang sama desain ASIC
lebih mahal daripada FPGA.
Sebagian besar TLC yang diimplementasikan dengan menggunakan FPGA adalah
contoh FSM sederhana. Makalah ini berkaitan dengan implementasi desain FPGA dari sistem
pengontrol lampu lalu lintas canggih yang dibangun sebagai project pemenuhan nilai UAS
Perancangan Berbasis FPGA pada lingkup subjek desain VLSI menggunakan Bahasa Verilog.
Lampu lalu lintas yang diimplementasikan adalah salah satu lampu lalu lintas yang nyata untuk
empat jalan dan jalan raya dengan sensor dan kamera. Desain berhasil disimulasikan dan pada
software FPGA yaitu Xilinx Vivado 2021.2.

1.2 Rumusan Masalah


Sesuai dengan latar belakang yang telah dijelaskan pada poin sebelumnya, maka
dirumuskanlah rumusan-rumusan masalah sebagai berikut :
1. Bagaimanakah merancang rangkaian simple traffic light berbasis finite state machine
dengan Bahasa Verilog?
2. Bagaimanakah bentuk hasil simulasi desain rangkaian simple traffic light berbasis finite
state machine pada software FPGA ?
1.3 Batasan Masalah
Berdasarkan rumusan-rumusan masalah yang telah dirumuskan, diberikan batasan-
batasan masalah agar topik pembahasan dapat terfokus pada ruang lingkup yang tidak melebar
sebagai berikut :
1. Pembahasan berfokus pada perancangan bangun desain rangkaian digital berbasisl
bahasa pemrogaman Verilog.
2. Pembahasan berfokus pada rangkaian simple traffic light berbasis finite state machine.

1.4 Tujuan
Adapun tujuan dari penulisan makalah berjudul “PERANCANGAN SIMPLE
TRAFFIC LIGHT BERBASIS FINITE STATE MACHINE DENGAN BAHASA VERILOG”
ini adalah sebagai berikut :
1. Untuk memperkaya ilmu dalam bidang FPGA terutama dalam perancangan bangun
rangkaian digital dengan bahasa Verilog.
2. Mahasiswa dapat merangkai rangkaian digital simple traffic light menggunakan finite
state machine.
3. Untuk memenuhi syarat penilaian UAS Mata Kuliah berbasis FPGA.
BAB II
TINJAUAN PUSTAKA

Pada Bab II ini akan dibahas terkait landasan teori daripada simulasi
perancangan simple traffic light berbasis Finite State Machine (FSM). Adapun
landasan-landasan teori yang akan dicantumkan pada bab ini adalah tentang
arsitektur FPGA, dasar verilog, dan finite state machine.

2.1 Arsitektur FPGA


2.1.1 Blok Logika
Arsitektur FPGA yang paling umum terdiri dari larik blok logika , bantalan I/O , dan
saluran perutean. Umumnya, semua saluran perutean memiliki lebar (jumlah kabel) yang sama.
Beberapa bantalan I/O mungkin cocok dengan tinggi satu baris atau lebar satu kolom dalam
larik. Sirkuit aplikasi harus dipetakan ke dalam FPGA dengan sumber daya yang memadai.
Sementara jumlah CLB/LAB dan I/O yang diperlukan mudah ditentukan dari desain, jumlah
trek perutean yang diperlukan dapat sangat bervariasi bahkan di antara desain dengan jumlah
logika yang sama.
Misalnya, sakelar palang membutuhkan lebih banyak perutean daripada larik sistolik
dengan jumlah gerbang yang sama. Karena trek perutean yang tidak digunakan meningkatkan
biaya bagian tanpa memberikan manfaat apa pun, pabrikan FPGA mencoba menyediakan trek
yang cukup sehingga sebagian besar desain yang sesuai dengan tabel pencarian dan I/O dapat
diarahkan. Ini ditentukan oleh perkiraan seperti yang berasal dari aturan Sewa atau dengan
eksperimen dengan desain yang ada. Pada 2018, arsitektur jaringan-on-chip untuk perutean dan
interkoneksi sedang dikembangkan.
Secara umum, blok logika terdiri dari beberapa sel logis (disebut ALM, LE, irisan, dll.).
Sel tipikal terdiri dari 4-input LUT, penambah penuh dan flip-flop tipe-D, seperti yang
ditunjukkan di atas. LUT dalam gambar ini dibagi menjadi dua LUT 3-input. Dalam mode
normal mereka digabungkan menjadi LUT 4-input melalui multiplexer kiri (mux). Dalam
mode aritmatika, outputnya diumpankan ke penambah. Pemilihan mode diprogram ke dalam
MUX tengah. Outputnya bisa sinkron atau asinkron, tergantung pada pemrograman mux ke
kanan, pada contoh gambar. Dalam praktiknya, seluruh atau sebagian dari penambah disimpan
sebagai fungsi ke dalam LUT untuk menghemat ruang.
2.1.2 Hard Blocks
Keluarga FPGA modern memperluas kemampuan di atas untuk memasukkan
fungsionalitas tingkat yang lebih tinggi yang dipasang di silikon. Memiliki fungsi-fungsi umum
yang tertanam di sirkuit mengurangi area yang dibutuhkan dan memberikan fungsi-fungsi
tersebut peningkatan kecepatan dibandingkan dengan membangunnya dari primitif logis.
Contohnya termasuk pengganda, blok DSP generik, prosesor tertanam, logika I/O kecepatan
tinggi dan memori tertanam.
FPGA yang lebih tinggi kelasnya dapat berisi kecepatan tinggi transceiver multi-gigabit
dan IP core keras seperti core prosesor, Ethernet unit kontrol akses media, PCI / PCI Express
controller, dan pengendali memori eksternal. Core ini ada di samping fabric yang dapat
diprogram, tetapi mereka dibangun dari transistor, bukan LUT sehingga mereka memiliki
kinerja tingkat ASIC dan konsumsi dayatanpa menghabiskan banyak sumber daya fabric,
menyisakan lebih banyak fabric untuk logika khusus aplikasi. Transceiver multi-gigabit juga
berisi sirkuit input dan output analog berkinerja tinggi bersama dengan serializer dan
deserializer berkecepatan tinggi, komponen yang tidak dapat dibuat dari LUT. Fungsionalitas
lapisan fisik (PHY) tingkat lebih tinggi seperti pengkodean garis mungkin atau mungkin tidak
diimplementasikan bersama serializer dan deserialisasi dalam logika keras, tergantung pada
FPGA.

2.1.3 Clock
Sebagian besar sirkuit yang dibangun di dalam FPGA adalah sirkuit sinkron yang
membutuhkan sinyal clock. FPGA berisi jaringan perutean global dan regional khusus untuk
clock dan reset sehingga dapat dikirimkan dengan kemiringan minimal. Juga, FPGA umumnya
mengandung komponen loop fase-terkunci analog dan / atau loop terkunci-delay untuk
mensintesis frekuensi clock baru serta melemahkan jitter. Desain kompleks dapat
menggunakan beberapa jam dengan frekuensi dan hubungan fase yang berbeda, masing-
masing membentuk domain jam yang terpisah. Sinyal clock ini dapat dihasilkan secara lokal
oleh osilator atau dapat dipulihkan dari aliran data serial berkecepatan tinggi. Perawatan harus
diambil ketika membangunsirkuit penyeberangan domain jam untuk menghindari
metastabilitas. FPGA umumnya berisi RAM blok yang mampu bekerja sebagai RAM port
ganda dengan jam yang berbeda, membantu dalam pembangunan FIFO bangunan dan buffer
port ganda yang menghubungkan domain jam yang berbeda.
2.1.4 Arsitektur 3D FPGA
Untuk mengecilkan ukuran dan konsumsi daya FPGA, vendor seperti Tabula dan
Xilinx telah memperkenalkan arsitektur 3D atau bertumpuk. Setelah pengenalan FPGA seri 7
28 nm, Xilinx mengatakan bahwa beberapa bagian dengan kepadatan tertinggi di lini produk
FPGA tersebut akan dibangun menggunakan beberapa cetakan dalam satu paket, menggunakan
teknologi yang dikembangkan untuk konstruksi 3D dan rakitan ditumpuk-mati.
Pendekatan Xilinx menumpuk beberapa (tiga atau empat) FPGA aktif yang mati
berdampingan pada interposer silikon - satu bagian silikon yang membawa interkoneksi pasif.
Konstruksi multi-die juga memungkinkan berbagai bagian FPGA dibuat dengan teknologi
proses yang berbeda, karena persyaratan proses berbeda antara kain FPGA itu sendiri dan
transceiver serial 28 Gbit/s berkecepatan sangat tinggi. Sebuah FPGA dibangun dengan cara
ini disebut FPGA heterogen. Pendekatan heterogen Altera melibatkan penggunaan die FPGA
monolitik tunggal dan menghubungkan die/teknologi lain ke FPGA menggunakan teknologi
embedded multi-die interconnect bridge (EMIB) Intel.

2.2 Dasar Verilog


Verilog adalah HDL pertama yang akan kami gunakan untuk menggambarkan sistem
digital. Oleh karena itu, kami akan memperkenalkan dasar-dasar Verilog dengan kata kunci
dasar di bagian ini.

Gambar 2.1 Verilog Module


Pertama, modul harus memiliki nama unik yang tidak boleh sama dengan kata kunci Verilog
yang telah ditentukan sebelumnya. Dalam deskripsi di atas, kami menetapkan nama sebagai
module_name. Kedua, modul harus memiliki port input dan output yang ditetapkan untuknya.
Kami mewakili port ini sebagai port_list dalam deskripsi di atas. Daftar port tidak memiliki
urutan tertentu. Oleh karena itu, port input dan output dapat direpresentasikan dalam urutan
apa pun dalam daftar. Untuk kenyamanan, kami sarankan untuk menampilkan port output
terlebih dahulu. Pada tahap ini dilakukanpendefinisian modul. Berikutnya adalah struktur
internal modul. Di sini, pertama-tama kita mendefinisikan elemen port di dalam modul. Setiap
elemen dapat berupa input, output, atau inout. Sesuai dengan namanya, kata kunci input
menyatakan bahwa port terkait akan mendapatkan data dari dunia luar. Kata kunci output
menyatakan bahwa port terkait akan memasukkan data ke dunia luar. Kata kunci inout
menyatakan bahwa port terkait dapat digunakan untuk tujuan input dan output.
Kemudian, kami menggambarkan sistem digital. Hal ini ditunjukkan oleh pernyataan
1, pernyataan 2, dan pernyataan 3 di atas. Penting untuk diingat bahwa urutan pernyataan tidak
penting dalam deskripsi karena mereka akan diwakili oleh elemen perangkat keras di FPGA.
Setelah itu, kita tutup modul dengan kata kunci endmodule. Perhatikan bahwa kita dapat
menggunakan simbol // untuk menambahkan komentar ke deskripsi Verilog.

Gambar 2.2 Module Assignment

2.3 Representasi Modul


Verilog adalah HDL pertama yang akan kami gunakan untuk menggambarkan sistem
digital. Oleh karena itu, kami akan memperkenalkan dasar-dasar Verilog dengan kata kunci
dasar di bagian ini.
Gambar 2.3 Representasi Modul
Dalam deskripsi di atas, kami menetapkan nama sebagai module_name. Kedua, modul
harus memiliki port input dan output yang ditetapkan untuknya. Kami mewakili port ini sebagai
port_list dalam deskripsi di atas. Daftar port tidak memiliki urutan tertentu. Oleh karena itu,
port input dan output dapat direpresentasikan dalam urutan apa pun dalam daftar. Untuk
kenyamanan, kami sarankan untuk menampilkan port output terlebih dahulu. Pada tahap ini
dilakukan pendefinisian modul. Berikutnya adalah struktur internal modul. Di sini, pertama-
tama kita mendefinisikan elemen port di dalam modul. Setiap elemen dapat berupa input,
output, atau inout. Sesuai dengan namanya, kata kunci input menyatakan bahwa port terkait
akan mendapatkan data dari dunia luar. Kata kunci output menyatakan bahwa port terkait akan
memasukkan data ke dunia luar. Kata kunci inout menyatakan bahwa port terkait dapat
digunakan untuk tujuan input dan output. Kemudian, kami menggambarkan sistem digital. Hal
ini ditunjukkan oleh pernyataan 1, pernyataan 2, dan pernyataan 3 di atas. Penting untuk diingat
bahwa urutan pernyataan tidak penting dalam deskripsi karena mereka akan diwakili oleh
elemen perangkat keras di FPGA. Setelah itu, kita tutup modul dengan kata kunci endmodule.
Perhatikan bahwa kita dapat menggunakan simbol // untuk menambahkan komentar ke
deskripsi Verilog.

2.4 Pemodelan Struktural


Metode pertama dalam menggambarkan sistem digital menggunakan pemodelan
struktural. Dalam metode ini, setiap elemen yang akan digunakan dalam pernyataan deskripsi
harus didefinisikan di bawah Verilog sebagai struktur. Karena gerbang logika banyak
digunakan dalam deskripsi Verilog, gerbang tersebut telah didefinisikan sebelumnya. Oleh
karena itu, metode deskripsi ini disebut juga pemodelan tingkat gerbang. Setiap gerbang
diwakili oleh struktur berikut dalam metode ini. Pertama, jenis gerbang ditentukan oleh kata
kunci Verilog yang sesuai. Kemudian, nama untuk gerbang diberikan. Perhatikan bahwa
penetapan nama tidak wajib. Akhirnya, port output dan input untuk gerbang didefinisikan
dalam tanda kurung. Oleh karena itu, model struktural gerbang logika akan menjadi nama
gate_keyword (port_list). Daftar port harus sedemikian rupa sehingga output dari struktur
didefinisikan terlebih dahulu.

Gambar 2.4 Pemodelan Struktural Verilog

2.5 Pemodelan Alir Data


Metode kedua dalam menggambarkan sistem digital di Verilog menggunakan
pemodelan aliran data. Dalam metode ini, hubungan antara port input dan output dibentuk
sebagai suatu fungsi. Oleh karena itu, metode deskripsi ini disebut juga dengan pemodelan
fungsional. Kata kunci utama dalam pemodelan dataflow adalah assign. Sintaksnya di sini
adalah assign output = function of inputs. Output dalam representasi ini harus selalu berupa
skalar atau vektor. Di sini, fungsi dapat dibentuk oleh representasi gerbang logika. Seperti
dalam pemodelan struktural, kita hanya akan mempertimbangkan gerbang logika AND, OR,
NOT, dan XOR di sini. Operator yang sesuai untuk digunakan dalam pemodelan aliran data
adalah {& , |, , } berturut-turut.

Gambar 2.5 Pemodelan Alir Data


Gambar 2.6 Pemodelan Alir Data #2

2.6 Pemodelan Perilaku


Metode ketiga dalam menggambarkan sistem digital di Verilog menggunakan
pemodelan perilaku. Dalam metode ini, sistem digital yang ada direpresentasikan oleh
perilakunya. Dengan kata lain, kata kunci Verilog yang sesuai dengan pernyataan bersyarat
dan rekursif dapat digunakan dalam model. Dalam pemodelan perilaku, pernyataan (atau
pernyataan) yang akan dieksekusi harus dipicu oleh sinyal (atau sinyal) untuk beroperasi. Kata
kunci selalu digunakan untuk menunjukkan operasi pemicu ini. Setelah sinyal mengubah
statusnya, pernyataan dieksekusi. Jika ada lebih dari satu pernyataan yang akan dieksekusi,
maka pernyataan tersebut harus dienkapsulasi dengan kata kunci awal dan akhir.
BAB III
PEMBAHASAN

Rancang bangun rangkaian digital lampu lalu lintas sederhana dilakukan pada Software
Xilinx Vivado 2021.2 dengan preset setting sebagai berikut :
Family Device : Spartan-7 Development Board
Language : Verilog
EDA Tools : N/A
Top Module : Traffic Control
Dengan pengaturan dan konfigurasi yang telah dipilih, maka pada sub bab 3 berikut akan
dibahas terkait penggunaan bahasa Verilog, script design, dan hasil simulasi rangkaian.

3.1 Verilog Script


Rangkaian Simple Traffic Light ini dibangun dengan basis bahasa Verilog, berikut
adalah ilustrasi dari script rangkaian tersebut.

Gambar 3.1 Traffic Control Module


Sesuai dengan script pada Gambar 3.1 diatas, dilakukan define top modul yaitu Traffic
Control Module yang terdiri dari input reset dan clock serta output dari modul tersebut yaitu
rtl_lights sebagai representasi dari lampu merah aktual. Dikarenakan lampu lalu lintas ini akan
dibangun dengan basis Finite State Machine maka daripada itu diperlukan pengkategorian state
atau kondisi yang dinotasikan sebagai parameter.

3.2 Pemodelan Perilaku


Pemodelan perilaku pada project lampu lalu lintas sederhana ini diperlukan untuk
menentukan bagaimanakah relevansi antara input dengan output yang telah didefine pada top
modul.

Gambar 3.2 Pemodelan Perilaku


Pemodelan perilaku pada Verilog dituliskan dengan konotasi “always” . Sesuai dengan
ilustrasi diatas maka dapat diartikan bahwa project ini diberikan perlakuan yaitu output akan
berubah ketika nilai dari clk dan rst_a menuju high atau posedge. Ketika nilai berubah menjadi
high maka akan dilakukan pengkondisian state.

3.3 Pemodelan Output


Pemodelan output adalah bagaimana merepresentasikan output yang merupakan bentuk
aktual dari lampu lalu lintas itu sendiri. Lampu lalu lintas terdiri dari 3 kategori yaitu merah
yang disimbolkan dengan bilangan biner 100 (4), kuning yang disimbolkan dengan bilangan
biner 010 (2), dan warna hijau yang disimbolkan dengan 001 (1).
Gambar 3.3 RTL Lights

3.4 Testbench
Fungsi daripada testbench section ini adalah untuk melakukan check pada desain yang
dibuat. Apakah lampu lalu lintas akan menyala sesuai dengan model yang telah ditujukan
sebelumnya, yaitu lampu merah akan menyala selama 5 detik lalu berganti dengan lampu
kuning selama 2 detik dan berakhir pada lampu hijau yang akan menyala selama 8 detik.

Gambar 3.4 Testbench Code


3.5 Simulasi pada ModelSim
Setelah dilakukan compiling pada script top module beserta dengan testbench nya, bila
tidak terdapat indikasi error maka dapat dilakukan simulasi pada modelsim. Hasil simulasi
daripada lampu lalu lintas yang telah didesain adalah sebagai berikut.

Gambar 3.5 Hasil Simulasi


Dari hasil simulasi tersebut dapat dilihat bahwa state 0 merupakan state dimana kondisi
lampu hijau akan menyala selama 8 hitungan, lalu berpindah ke state 1 dimana lampu kuning
akan menyala selama 2 detik dan berakhir pada state 2 dimana lampu merah akan menyala
selama 5 hitungan. State 3 merupakan state tambahan yaitu lampu kuning menyala kembali
untuk menuju state 0.
BAB IV
KESIMPULAN

4.1 Kesimpulan
Berdasarkan percobaan dan simulasi yang telah dilakukan, maka dapat ditarik
kesimpulan sebagai berikut :
1. Implementasi Desain Rangkaian Simple Traffic Light Berbasis Finite State Machine
(FSM) telah berhasil dibuat, dianalisis, dan disimulasikan pada Software Xilinx Vivado
tanpa adanya error menggunakan bahasa pemrogaman Verilog.
2. Script Verilog yang dirancang telah sesuai dengan ide desain rangkaian digital yang
diharapkan, mengacu pada hasil bentuk ilustrasi blok skematik pada fitur Netlist
Viewer.
3. Rangkaian Simple Traffic Light Berbasis Finite State Machine (FSM) telah berhasil
dibuat dan bekerja dengan baik sesuai dengan aktual behavior dari traffic light.

4.2 Saran
Dengan penelitian yang dilakukan oleh penulis dan berdasarkan hasil analisa, berikut
diberikan saran-saran untuk pengembangan pada project FPGA dengan basis Verilog :
1. Akan lebih baik bila, project FPGA berbasis Verilog dapat dipraktikan secara nyata
menggunakan FPGA asli.
2. Akan lebih baik bila pengembangan project FPGA kedepannya dapat menggunakan
bahasa pemrogaman lain seperti VHDL.
DAFTAR PUSTAKA

Gago Alfonso, Antonio. Reduced implementation of D-type DET Flip-Flops. IEEE Journal of
Solid-State Circuits 28(3):400 – 402 DOI:10.1109/4.210012. April 1993
M. Pedram, Q. Wu,and X. Wu, “A New Design for Double Edge Triggered Flip-flops”, in
Jan.2002.
Paanshul Dobriyal, Sharma Karna. A High Performance D-Flip Flop Design with Low Power
Clocking System using MTCMOS Technique. International Journal of Circuits and
Electronics ISSN: 2367-8879, Volume 1, 2016.
Premananda, Chaitra. Compact QCA based JK Flip-Flop for Digital System. International
Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-
3075, Volume-8 Issue-12, October 2019
Sudarsan Shri. A Ternary Flip-Flop Circuit. International Journal of Electronics, 38:1, 41-
47, DOI: 10.1080/00207217508920376. Publikasi 23 Feb 2007.
Z. Peiyi, M. Jason, K. Weidong, W. Nan, and W. Zhongfeng “Design of Sequential Elements
for Low Power Clocking System” IEEE Transaction of Very large Scale Integration
“July 2010.

Anda mungkin juga menyukai