## IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN MENGGUNAKAN VHDL
Saptadi Nugroho

## IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN MENGGUNAKAN VHDL

## Saptadi Nugroho
Fakultas Teknik Elektronika dan Komputer Universitas Kristen Satya Wacana Jalan Diponegoro 52 – 60, Salatiga 50711 e–mail : saptadi_nugroho@yahoo.com

## INTISARI
Dadu merupakan suatu alat yang sering digunakan di dalam permainan. Makalah ini membahas tentang  perancangan  dadu  elektronik  dengan  menggunakan  VHDL.  Di  dalam  system  dadu elektronik,  dadu  akan  bergulir  dari  angka  1  sampai  dengan  angka  6  yang  ditunjukkan  oleh kedipan LED (Light–emitting diode). Sistem dadu elektronik yang dirancang memiliki beberapa bagian  yaitu pembangkit pulsa,  counter,  dekoder,  Numerically  Controlled Oscilator (NCO)  dan pembangkit  suara.  Hasil  perancangan  dapat  berhasil  diimplementasikan  ke  dalam  perangkat keras dengan menggunakan Complex Programmable Logic Device (CPLD ).
Kata Kunci: Dadu Elektronik, FSM, NCO, VHDL

## 1. PENDAHULUAN
Very  High  Speed  Integrated  Circuit  Hardware  Description  Language (VHDL)  merupakan bahasa  yang  digunakan  untuk  mendeskripsikan  dan  mengoptimasi  sistem  perangkat  keras. VHDL  dibuat  untuk  mengatasi  masalah  yang  sering  terjadi  dalam  pengembangan  perangkat keras  digital.  Pengembangan  VHDL  ini  disponsori  oleh  Departemen  Pertahanan  United  States dan kemudian menjadi standar IEEE 1076. VHDL sudah banyak digunakan dalam memodelkan dan membangun sistem perangkat keras digital.
Di  dalam  makalah  ini  akan  dibahas  tentang  perancangan  dadu  elektronik  yang diimplementasikan  dengan  menggunakan  VHDL.  Dadu  merupakan  suatu  alat  yang  sering
Techné Jurnal Ilmiah Elektroteknika Vol. 10 No. 2 Oktober 2011 Hal 75 - 82
digunakan dalam permainan. Di dalam sistem dadu elektronik, dadu akan bergulir dari 1 sampai dengan  6  yang  ditunjukkan  oleh  kedipan  LED  ( Light-emitting  diode ).  Bunyi  berdetik  akan dihasilkan pada saat dadu bergulir dari satu angka ke angka yang lainnya. Sistem dadu elektronik yang  dirancang  terdiri  dari  bagian  pembangkit  pulsa,  bagian  generator  dadu  dan  bagian pembangkit  suara.  Pembangkit  pulsa digunakan  sebagai  pemicu  sistem  dadu  elektronik. Generator  dadu  dipakai  untuk  memilih  dan  menampilkan  jumlah  titik  yang  merepresentasikan angka.  Pembangkit  suara  digunakan  untuk  menghasilkan  suara  pada  saat  proses  pengacakan angka dan penampilan angka dadu.

## 2. PEMBANGKIT PULSA DADU ELEKTRONIK
Sebuah  kristal osilator dengan frekuensi 32  KHz dipakai  sebagai trigger untuk sistem dadu elektronik  secara  keseluruhan.  Pembangkit  pulsa  ini  menggunakan  sebuah crystal 32  KHz.  Di dalam  pembangkit  pulsa  ini  terdapat  sinyal tone dan  pulsa.  Sinyal tone dan  pulsa  memiliki frekuensi  lebih  rendah  dari  frekuensi  kristal  osilator.  Sinyal tone digunakan  untuk membangkitkan frekuensi untuk melodi dan bunyi berdetik sedangkan pulsa digunakan sebagai trigger register dan flip flop. Gambar 1 berikut ini menunjukkan struktur pembangkit pulsa untuk dadu elektronik.
Gambar 1. Struktur pembangkit pulsa untuk sistem dadu elektronik
1:16 1:2 1:2 1:16 1:4 1:64 Pulsa 2000Hz Pulsa 1000Hz Pulsa 500Hz Pulsa 32Hz Pulsa 8Hz time out 1:5 1:3 1:8 Tone 6400Hz Tone 5333Hz Tone 4000Hz 1:2 reset 32KHz 32KHz 32KHz 32KHz

## IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN MENGGUNAKAN VHDL
Pembagi  pulsa  diperlukan  untuk  menghasilkan  sub  frekuensi  dari  sistem clock utama.  Sub frekuensi  ini  akan  digunakan  sebagai  frekuensi  untuk  sinyal tone dan  frekuensi  untuk  pulsa. Gambar  2  berikut  ini  menunjukkan pembagi  pulsa  n  x  m .  Kemudian  Gambar  3  menunjukkan contoh Finite  State  Machines (FSM)  untuk  2  bit  pembagi  pulsa.  Sedangkan  Gambar  4 menunjukkan hasil simulasi untuk 2 bit pembagi pulsa dengan menggunakan VHDL.
Gambar 2. Pembagi pulsa n x m dadu elektronik
Gambar 3. Contoh FSM untuk 2 bit pembagi pulsa dadu elektronik
state_0 mode=st_0; q=0;
carry=0
State_1 mode=st_1; q=1; carry=1 enable=1 next_mode = state_1 enable=0 next_mode = state_0 enable=0 next_mode = state_1 enable=1 next_mode = state_0 reset=0 next_mode = state_0 1:n 1:m reset clock enable enable q carry q carry
Techné Jurnal Ilmiah Elektroteknika Vol. 10 No. 2 Oktober 2011 Hal 75 - 82

## Gambar 4. Hasil simulasi 2 bit pembagi pulsa
Sebuah  4 bit pembagi pulsa dirancang  dengan menggunakan dua buah 2 bit pembagi  pulsa dengan susunan seperti pada Gambar 2 yaitu pembagi pulsa 2 x 2. Sebuah 8 bit pembagi pulsa dirancang dengan susunan pembagi pulsa 4 x 2 yang terdiri dari sebuah 2 bit pembagi pulsa dan 4 bit pembagi pulsa.

## 3. GENERATOR DADU ELEKTRONIK
Generator dadu terdiri dari counter , dekoder, dan Numerically Controlled Oscilator (NCO). Dekoder harus menghasilkan keluaran untuk menampilkan jumlah titik yang merepresentasikan angka dadu ke LED. Gambar 5 berikut ini adalah struktur LED A, B, C, D, E, F dan G. Tabel 1 adalah tabel kebenaran untuk dekoder dadu.
Gambar 5. Struktur LED dadu elektronik
D E F A B C G

## IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN MENGGUNAKAN VHDL
Saptadi Nugroho
Tabel 1. Tabel kebenaran dekoder dadu elektronik
Counter memiliki  mode up/down yang  diatur  dari  masukan counter . Counter akan menghasilkan  keluaran  yang  memiliki  resolusi 6  bit.  Keluaran dari counter tersebut  digunakan untuk  mengontrol  NCO.  NCO  digunakan  untuk  mengontrol  akselerasi  dan  perlambatan  dari kecepatan  penggelindingan  dadu  elektronik.  NCO  terdiri  dari  penjumlah  dan  register  8  bit. Masukan  NCO  adalah  keluaran  dari counter yang  memiliki  resolusi  6  bit.  Keluaran  6  bit  dari counter dan  keluaran  dari  register  8  bit  digunakan  sebagai  masukan  penjumlah.  Keluaran  dari penjumlah  digunakan  sebagai  masukan  untuk  register  8  bit  sedangkan carry yang  merupakan keluaran dari penjumlah dipakai sebagai keluaran dari NCO. Jika hasil penjumlahan bilangan 6 bit dengan bilangan 8 bit kurang dari bilangan 8 bit maka carry = 1. Berikut ini adalah penggalan program VHDL untuk penjumlah dalam NCO.
hasil_penjumlahan <= “00” & unsigned (bilangan_6_bit) + unsigned (bilangan_8_bit);
IF (hasil_penjumlahan < unsigned (bilangan_8_bit)) THEN
carry <= ‘1’; ELSE carry <=’0’; END IF;
Gambar  6  berikut  ini  adalah  hasil  simulasi  generator  dadu  elektronik  yang  dibuat  dengan menggunakan  VHDL.  Pada  saat  push_button  =  0,  bunyi  tick  akan  dimulai.  Pada  saat  q  =  0, melodi dimulai.

## A  B  C  D  E  F  G
1 0  0  0  0  0  0  1 2 0  0  1  1  0  0  0 3 0  0  1  1  0  0  1 4 1  0  1  1  0  1  0 5 1  0  1  1  0  1  1 6 1  1  1  1  1  1  0

## Gambar 6. Hasil Simulasi Generator Dadu

## 4. PEMBANGKIT SUARA DADU ELEKTRONIK
Di  dalam  perancangan  pembangkit  suara,  tiga  sinyal tone dengan  frekuensi  f1=6400Hz, f2=5333Hz  dan  f3=4000Hz  yang  digunakan  untuk  menghasilkan  melodi.  Tabel  2  merupakan tabel  kebenaran  untuk  pembangkit  suara.  Gambar  7  menunjukkan  contoh  FSM  suara  melodi untuk  angka  dadu  2  –  5.  Kemudian  Gambar  8  menunjukkan  hasil  simulasi  untuk  pembangkit suara dengan menggunakan VHDL.
Tahap akhir perancangan dadu elektronik adalah menguji sistem dalam perangkat keras melalui emulasi  perangkat  keras.  Perangkat  keras  XC2C128  CoolRunner-II  CPLD  dipakai  untuk menguji  perancangan  dadu  elektronik.  Hasil  perancangan  sistem  dadu  elektronik  dengan menggunakan VHDL berhasil diimplementasikan dengan menggunakan XC2C128 CoolRunner- II CPLD.

## IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN MENGGUNAKAN VHDL

## Tabel 2. Tabel kebenaran untuk pembangkit suara
Suara Berdetik Suara Melodi Dadu Angka Satu Dadu Angka Dua Dadu Angka Tiga Dadu Angka Empat Dadu Angka Lima Dadu Angka Enam 1 2 3 4 5 6 7 1 0 X X X X X X f1 f1 f1 - - - - 0 1 1 0 0 0 0 0 f3 f2 f1 - - - - 0 1 0 1 0 0 0 0 f1 f2 - - - - - 0 1 0 0 1 0 0 0 f1 f2 - - - - - 0 1 0 0 0 1 0 0 f1 f2 - - - - - 0 1 0 0 0 0 1 0 f1 f2 - - - - - 0 1 0 0 0 0 0 1
f1 f2 f3 f1 f2 f3 f1
Gambar 7. Contoh FSM untuk suara melodi untuk angka dadu 2 – 5
next_mode=end_all start0 = 0 st1 Speaker = tone_4000 st2 Speaker = tone_5333 end_all Speaker = 0 pulse8=1 start0=1 next_mode=end_all pulse8=1 start0=1 next_mode=st2 start_melody=1
push_button=0
Techné Jurnal Ilmiah Elektroteknika Vol. 10 No. 2 Oktober 2011 Hal 75 - 82

## Gambar 8. Hasil Simulasi Pembangkit Suara

## 5. UCAPAN TERIMAKASIH
Penulis mengucapkan terimakasih kepada Prof. Dr. Dirk Jansen (Offeburg University of Applied Science,  Jerman)  dan  Nidal  Fawaz  yang  telah  membimbing  penulis  dalam  merancang  sistem dadu  elektronik  serta  memberikan  perangkat  keras  XC2C128  CoolRunner-II  CPLD  untuk menguji perangkat lunak hasil perancangan dengan menggunakan VHDL.

## DAFTAR PUSTAKA
[1] Jansen, D., Fawaz N., Design of Digital System in VHDL, ASIC Design Center University of Applied Science Offenburg, Version 3.0, 2008.
[2] Jansen, D., et all., The Electronic Design Automation Handbook, Kluwer Academic Publisher, Boston, 2003.
[3] Glauert W. H., Very High Speed Integrated Circuit Hardware Description Language, http://www.vhdl-online.de/ .
[4] Chu P. P., FPGA Prototyping by VHDL Examples Xilinx Spartan TM -3 Version, A John
Wiley & Sons Inc. Publication, 2008.
[5] Xilinx XC2C128 CoolRunner-II CPLD Product Specification, http://www.xilinx.com/support/documentation/data_sheets/ds093.pdf, 2007.