2006_sdq_aep
TRANSCRIPT
![Page 1: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/1.jpg)
1
PROTOTIPE KUNCI DIGITAL BERBASIS FPGA MENGGUNAKAN VHDL DAN VERILOG
Siddiq Wahyu Hidayat1 dan Agfianto Eko Putra2
ABSTRAK
Dewasa ini sistem keamanan rumah menjadi hal yang penting untuk diperhatikan. Saat ini kunci konvensional yang masih dipakai secara luas dinilai kurang praktis dan aman. Berdasarkan hal ini telah dirancang sebuah kunci digital. Dengan kunci digital ini, masing-masing pengguna tidak perlu membawa kunci satusatu, cukup mengingat nomor PIN saja. Kunci digital ini juga lebih mudah diganti PIN-nya sewaktu-waktu.
Kunci digital dirancang berbasis FPGA. Rancangan dibuat dalam modulmodul dengan deskripsi VHDL dan Verilog, kemudian digabungkan secara skematik dengan perangkat lunak MAX+PlusII. Rancangan telah berjalan dengan baik pada piranti Altera FLEX-10K.
Kunci digital yang berhasil dibuat cukup aman karena dapat diset hingga satu juta kombinasi angka masukan. Rancangan yang dibuat hanya menggunakan sumber daya blok logika pada FPGA, sedangkan blok embeded-nya tidak digunakan. Rancangan dengan VHDL membutuhkan 243 sel logika sedangkan rancangan dengan Verilog membutuhkan 270 sel logika.
Kata Kunci Kunci Digital, FPGA, VHDL, Verilog
ABSTRACT
Nowadays, home security system has became one of major attention.Meanwhile, the using of convention key, which still widely used is considered as impractical an insecure. Based on this background, digital key has been design. With the digital key, it is expected that each users doesn't need to bring each single key anymore. Each user only need to bring a personal identification number, which also easily changed and customized.
The whole system was implemented using VHDL and Verilog. The system was broken down to a number of modules, each to carry out certain task. In the end, the modules was integrated using a schematic of MAX+plusII software. It was implemented in FPGA device, Altera FLEX-10K family device.
The digital key is secure because it can be set up to one million combinations. The design only need Logic Array Block, it doesn't needs any Embedded Array Block. VHDL design needs 243 Logic Elements and Verilog design needs 270 Logic Elements. Keywords Digital Key, FPGA, VHDL, Verilog
1 Prodi Elektronika Instrumentasi, FMIPA, Universitas Gadjah Mada, Yogyakarta (email : [email protected])
2 Staff Program Studi Elektronika dan Instrumentasi, FMIPA Universitas Gadjah Mada, Yogyakarta (website: http://agfi.staff.ugm.ac.id dan email : [email protected])
![Page 2: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/2.jpg)
2
PROTOTIPE KUNCI DIGITAL BERBASIS FPGA MENGGUNAKAN VHDL DAN VERILOG
Siddiq Wahyu Hidayat3 dan Agfianto Eko Putra4
1. PENDAHULUAN Sampai saat ini secara umum pintu atau brankas dilindungi oleh oleh kunci konvensional.
Agar pintu ini bisa dibuka oleh lebih dari satu orang, maka masing-masing orang harus membawa
kunci. Hal ini menjadi tidak praktis lagi, karena keamanan kunci menjadi kurang terjamin lagi.
Semakin besar kemungkinan kunci dapat digandakan karena banyaknya orang yang memegang
kunci. Terlebih lagi, apabila kunci ini ingin diubah secara berkala untuk mengantisipasi pada
orang-orang yang sudah tidak berhak, akan membutuhkan biaya yang cukup besar, selain juga
waktu yang juga cukup lama. Dengan demikian kunci konvensional menjadi tidak praktis lagi.
2. FIELD PROGRAMMABLE GATE ARRAY (FPGA) Sebuah Field Programable Gate Array (FPGA) merupakan PLD yang dapat mendukung
implementasi rangkaian logika yang lebih besar. FPGA ini dapat mengimplementasikan sampai
beberapa ribu gerbang ekuivalen. FPGA memiliki perbedaan yang mendasar dibandingkan SPLD
dan CPLD karena tidak adanya AND-plane dan OR-plane. Sebagai gantinya FPGA menyediakan
blok logika untuk mengimplementasikan fungsi yang dibutuhkan. Struktur umum FPGA
ditunjukkan di gambar 1.
FPGA ini memiliki 3 bagian sumber daya: blok logika, blok I/O, dan blok koneksi. Blok
logika dirangkai dalam larikan dua dimensi. Blok-blok koneksi maupun hubungan antar blok dapat
diprogram, sehingga FPGA dapat diprogram dengan banyak jalan.
3 Prodi Elektronika Instrumentasi, FMIPA, Universitas Gadjah Mada, Yogyakarta (email : [email protected])
4 Staff Program Studi Elektronika dan Instrumentasi, FMIPA Universitas Gadjah Mada, Yogyakarta (website: http://agfi.staff.ugm.ac.id dan email : [email protected])
![Page 3: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/3.jpg)
3
Gambar 1. Struktur Umum FPGA
Masing-masing bok logika dalam FPGA memiliki ciri mempunyai beberapa masukan dan
keluaran dalam jumlah kecil, mengenai berapa jumlahnya ini berbeda-beda tergantung dari
pembuat produk FPGA. Secara umum yang digunakan sebagai blok logika adalah lookup table
(LUT), yang terdiri dari sel-sel penyimpanan untuk mengimplementasikan fungsi logika
sederhana. Masing-masing sel menyimpan sebuah nilai logika 0 atau 1.
2.1. FPGA ALTERA FLEX-10K Altera FLEX-10K merupakan bagian keluarga programable logic device (PLD) yang
mendukung System-on-a-Programmable-Chip (SOPC). Produk ini dapat mengimplementasikan
10.000 – 250.000 gerbang.
Masing-masing piranti FLEX-10K berisi embedded array dan logic array. Embedded array
berfungsi untuk mengimplementasikan berbagai macam fungsi memori dan fungsi logika
kompleks, seperti pemrosesan sinyal digital (DSP), mikrokontroler, manipulasi wide-data-path,
dan transformasi data. Sedangkan logic array melakukan fungsi yang sama dengan fungsi
gerbang pada umumnya: ini digunakan untuk mengimplementasikan logika umum, seperti
pencacah, penjumlah, mesin kondisi (state machine) dan multiplekser. Embedded array dapat
digunakan secara sendiri atau dikombinasikan dengan logic array. Diagram blok piranti FLEX
10K dapat dilihat pada Gambar 2.
![Page 4: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/4.jpg)
4
Gambar 2. Diagram Blok FLEX 10K
3. HARDWARE DESRIPTION LANGUAGE (HDL) Hardware Description Language atau HDL adalah suatu bahasa yang digunakan untuk
mendeskripsikan sebuah sistem digital, sebagai contoh, suatu komputer atau komponen dari
suatu komputer. Ada dua HDL utama yang sering digunakan oleh perancang perangkat keras di
dunia industri dan pendidikan, yakni VHDL dan Verilog HDL (Perry, 2002).
3.1. VHSIC HARDWARE DESRIPTION LANGUAGE (VHDL) VHDL adalah Hardware Description Language untuk memodelkan rangkaian digital dari
hubungan gerbang sederhana sampai pada sistem yang kompleks. VHDL merupakan akronim
dari VHSIC Hardware Description Language, dan VHSIC sendiri merupakan akronim dari Very
High Speed Integrated Circuit. VHDL distandarisasi IEEE tahun 1987 (IEEE Std 1076) kemudian
di diperbarui tahun 1993 (IEEE Std 1076).
Rancangan VHDL terdiri atas unit rancangan primer dan unit rancangan sekunder.
Rancangan primer terdiri dari entitas dan paket. Unit rancangan sekunder terdiri atas atas
arsitektur dan badan paket. Unit rancangan sekunder selalu berhubungan dengan unit rancangan
primer. Unit rancangan umumnya memiliki satu atau lebih pustaka yang merupakan koleksi dari
unit rancangan primer dan sekunder. Untuk mengoleksi tipe data dan subprogram yang
digunakan secara umum dalam rancangan digunakan paket.
![Page 5: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/5.jpg)
5
Dalam rancangan VHDL, dasar pembangun bloknya adalah entitas. Entitas-entitas ini
digabungkan oleh sebuah entitas tingkat tertinggi. Entitas mendeskripsikan antarmuka dari model
VHDL. Masing-masing entitas memiliki satu atau lebih arsitektur. Arsitektur mendeskripsikan
fungsi dari entitas dan pernyataan yang memodelkan watak dari entitas. Arsitektur dapat
dideskripsikan secara pewatakan atau secara struktural. Unit dasar eksekusi dalam arsitektur
dilakukan oleh suatu proses (Smith, 1996).
3.2. VERILOG HARDWARE DESRIPTION LANGUAGE (VERILOG HDL) Verilog diperkenalkan tahun 1985 oleh Gateway Design System Corporation yang
sekarang menjadi bagian dari Cadence Design Systems, Inc.'s Systems Division. Verilog menjadi
milik Cadence sampai saat pembentukan Open Verilog International (OVI) Mei 1990. Cadence
termotivasi untuk menjadikan Verilog menjadi Publik Domain dengan harapan pangsa pasar
Verilog – yang terkait produk perangkat lunak dapat meningkat pesat akibat penerimaan yang
lebih luas terhadap bahasa ini. Verilog distandarisasi IEEE tahun 1995 (IEEE Std 1364) dan
diperbarui tahun 2001.
Verilog HDL mengijinkan perancang perangkat keras untuk mendeskripsikan
rancangannya dalam abstraksi tingkat tinggi seperti tingkat arsitektur atau watak sebaik tingkat
implementasi yang lebih rendah (seperti tingkat gerbang dan saklar). Meskipun tingkat watak
dalam Verilog adalah deskripsi tingkat tinggi, Verilog harus ditulis dalam notasi tertentu.
Perangkat computer aided design, seperti halnya program, akan mengkompilasi program dalam
notasi Verilog ke tingkatan rangkaian yang terdiri dari gerbang logika dan flip-flop. Perangkat lain
dapat mengkompilasi program dalam notasi Verilog menjadi deskripsi integrated circuit (IC) pada
very large scale integration (VLSI). Verilog juga mengijinkan perancang untuk mengkhususkan
rancangan murni tingkat gerbang menggunakan konstrusi gerbang dan tingkat transistor
menggunakan konstruksi saklar (Smith, 1996).
3.3. VHDL VS. VERILOG HDL Sebagai sebuah bahasa, Verilog asli kuat di abstraksi tingkat struktural (saklar dan
gerbang) terutama kemampuan dalam memodelkan waktu tunda. Verilog sangat kuat dalam
abstraksi tingkat fungsional (persamaan Boolean dan RTL) dan juga mendukung konsruksi watak
(algoritmik). Sedangkan VHDL sangat kuat di abtraksi tingkat fungsional (persamaan boolean)
dan watak (algoritmik), dan ini juga mendukung sebagian konstruksi tingkat sistem. Meskipun
demikian VHDL sedikit lemah ketika berada di abstraksi tingkat struktural (saklar dan gerbang),
khususnya mengenai kemampuan memodelkan waktu tunda. Jelas terlihat bahwa VHDL memiliki
keakuratan waktu yang kurang. Oleh karena itu VITAL (VHDL Initiative toward ASIC Libraries)
diluncurkan oleh Design Automation Conference tahun 1992 untuk menutup kelemahan pada
![Page 6: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/6.jpg)
6
VHDL ini (Smith, 1996). Perbandingan kemampuan Verilog versus VHDL ditunjukkan pada
Gambar 3, sedangkan tabel perbandingannya ditunjukkan pada Tabel 3.
Gambar 3. Verilog HDL vs. VHDL
Tabel 1. Perbandingan Verilog HDL dan VHDL
No. Verilog HDL VHDL
1 Mirip Bahasa C Mirip bahasa ADA
2 Relatif mudah dipelajari Relatif sulit dipelajari
3 Tipe data tetap, sederhana dan mudah digunakan, sudah ditentukan oleh Verilog Tipe data abstrak, dapat ditentukan sendiri
4 Pewaktuan tingkat gerbang bagus Pewaktuan tingkat gerbang kurang bagus
5 Penggunaan kembali rancangan terbatas Penggunaan kembali rancangan tak-terbatas (bagus)
6 Pengelolaan rancangan besar terbatas Sangat mendukung pengelolaan rancangan besar
7 Tanpa duplikasi strutktur Mendukung duplikasi struktur
8 Tidak ada konsep pustaka Pustaka tersimpan dalam kesatuan terkompilasi, arsitektur, paket dan konfigurasi
9 Tidak mendukung pemanggilan task secara paralel Mendukung pemanggilan task secara paralel
10 Rancangan didekomposisi atas modul-modul
Rancangan didekomposisi atas entitas-entitas yang dapat memiliki beberapa arsitektur
![Page 7: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/7.jpg)
7
4. SISTEM KUNCI DIGITAL 4.1. BAGIAN PENGGUNA
Bagian luar sistem, sebagaimana ditunjukkan pada Gambar 4, yang ditujukan untuk
dipakai pengguna umum adalah keypad untuk memasukkan pin. Keypad ini berupa angka 1–9
serta karakter * dan # seperti pada keypad telepon standard. Tombol angka digunakan untuk
memasukkan pin satu demi satu. Karena tombol * dan # tidak memiliki nilai angka, maka dua
tombol ini dialih fungsikan. Tombol # sebagai tombol 'OK' yang berfungsi mengaktifkan rangkaian
tombol angka yang telah ditekan, sedangkan tombol * berfungsi sebagai tombol 'BATAL' yaitu
untuk menghapus semua angka dari nilai tombol-tombol angka yang telah ditekan.
Sebagai tampilan tambahan dipakai pula 6 digit 7-segment untuk menampilkan tombol-
tombol yang telah ditekan sehingga tidak terjadi kesalahan penekanan tombol. Namun apabila
diinginkan agar tombol yang ditekan tidak bisa dilihat orang lain yang tidak berhak, tampilan ini
dapat dikodekan menjadi tanda '-' semua. Ilsutrasi sistem tampilan pengguna ditunjukkan pada
gambar 2.
Apabila kunci digital digunakan untuk pintu, dan kunci digital hanya diperlukan untuk satu
sisi luar saja (saat akan masuk), maka di dalam pintu juga diperlukan adanya tombol tambahan,
yaitu tombol buka dan tutup pintu. Kalau tidak, buka dan tutup pintu dari dalam harus diseting
otomatis dengan sensor tertentu.
Gambar 4. Tampilan Pengguna
4.2. BAGIAN ADMINISTRATOR Selain adanya tombol-tombol yang digunakan untuk pengguna umum, juga perlu ada
tombol-tombol khusus untuk Administrator kunci digital. Karena bersifat rahasia, tombol ini tidak
boleh diakses oleh pengguna umum, peletakannya harus disendirikan dan diberi pengamanan
tambahan seperti gembok dan lain sebagainya. Digunakan tiga buah saklar geser untuk
digunakan administrator sebagaimana ditunjukkan pada Gambar 5.
![Page 8: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/8.jpg)
8
Gambar 5. Tombol-tombol tambahan
4.3. BLOK DIAGRAM SISTEM KUNCI DIGITAL Gambaran umum perancangan sistem digambarkan dalam blok diagram sebagaimana
ditunjukkan pada gambar 6 (rangkaian lengkap ditunjukkan pada LAMPIRAN). Dari blok
perancangan ini dapat diketahui bahwa masukan sistem adalah dari keypad matriks (pengguna
umum) dan saklar geser (khusus administrator) sedangkan keluarannya adalah sistem
mekanisme pintu, brankas atau barang lain yang dikontrol oleh kunci digital.
Gambar 6. Blok Diagram Sistem Kunci Digital
Pada penggunaan mode normal masukan dari keypad akan disimpan register sementara
dan hasilnya ditampilkan ke 7-segmmet dengan melewati dekoder 7-segment terlebih dahulu.
Nilai register masukan juga akan dibandingkan dengan memori yang berisi nomor pin. Apabila
nilainya sama, akan mengaktifkan sistem mekanisme pintu jika ditekan tombol “OK”.
Pada penggunaan mode administrator untuk pengubahan pin, nilai register masukan tidak
dibandingkan dengan memori, akan tetapi akan dimasukkan ke memori setelah ditekan tombol
“OK” sehingga nilai memori berubah menjadi nilai baru seperti yang baru dimasukkan.
![Page 9: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/9.jpg)
9
5. HASIL PERCOBAAN Dari hasil perancangan pada FPGA Altera FLEX-10K diperoleh hasil rangkaian
memerlukan 9 pin masukan dan 22 pin keluaran. Tidak ada EAB yang digunakan, karena
perancangan rangkaian sepenuhnya menggunakan flip-flop sel logika untuk menyimpan semua
memorinya dengan total membutuhkan 102 flip-flop. Penggunaan sumber daya FPGA
ditunjukkan pada tabel 2.
Hasil pengujian menunjukkan bahwa alat dapat bekerja dengan baik. Rangkaian kunci
digital dapat diset hingga 999.999 kombinasi pin. Administrator memiliki kewenangan untuk
melihat pin, mengganti pin, dan mengkodekan pin.
Alat ini memiliki kekurangan, yakni saat sumber tegangan mati, maka seluruh konfigurasi
rangkaian maupun pin sandi yang tersimpan akan hilang (Maxfield, 2002). Untuk mengatasi hal
ini diusulkan agar sumber daya yang digunakan berupa UPS atau baterai yang dapat diisi ulang,
sehingga sumber daya dapat terus dijaga. EEPROM dapat juga digunakan untuk menyimpan
konfigurasi pada FPGA.
Tabel 2 Penggunaan Logic Element dan Flip-Flop
VHDL Verilog No Modul LE/Flip-flop LE/Flip-flop
1 divclk 27/21 27/21
2 count 03/03 03/03
3 scankey 63/17 53/17
4 shiftn 27/27 28/27
5 memory 24/24 24/24
6 compare 24/00 24/00
7 mux_view 24/00 24/00
8 mux_bcd 31/00 28/00
9 demux 06/00 06/00
10 seg7 18/00 18/00
11 door_open 04/04 04/04
12 door_close 04/04 04/04
13 door 02/02 03/02
JUMLAH 257/102 246/102
RATA-RATA 19,8/7,8 18,9/7,8
![Page 10: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/10.jpg)
10
VHDL Verilog
Rangkaian Lengkap 243/102 270/102
6. KESIMPULAN Dengan FPGA dapat dibuat rangkaian logika yang kompleks hanya dalam satu emping
saja. Kunci digital ini memiliki kombinasi masukan pada keypad matriks sebanyak satu juta
kombinasi dan pinnya dapat diganti-ganti hingga 999.999 kombinasi sehingga cukup aman.
Rancangan kunci digital pada FLEX-10K yang telah dibuat dengan deskripsi VHDL
membutuhkan 243 sel logika dan dengan deskripsi Verilog membutuhkan 270 sel logika.
Rancangan kunci digital dengan deskripsi VHDL dan Verilog yang telah dibuat tidak
membutuhkan EAB pada FLEX-10K.
Alat yang dibuat masih memiliki kekurangan, yakni konfigurasi rangkaian dan isi memori
PIN akan hilang saat tegangan mati, sehingga alat dapat dikembangkan dengan menambahkan
PROM untuk menyimpan konfigurasi dan isi memori PIN.
7. DAFTAR PUSTAKA Maxfield, C., 2002, “The Design Warrior’s Guide to FPGAs”, USA : Mentor Graphics Corporation
and Xilinx, Inc
Perry, D. L, 2002, “VHDL: Programming by Example (Fourth Edition)”, New York : McGraw-Hill.
Smith, D. J, 1996, “VHDL & Verilog Compared & Contrasted - Plus Modeled Example Written in
VHDL, Verilog and C”, Las Vegas : ACM, Inc.
Siddiq Wahyu Hidayat, memperoleh gelar S.Si dari Prodi Elektronika dan Instrumentasi, Fisika, FMIPA Universitas Gadjah Mada, Indonesia pada tahun 2006. Agfianto Eko Putra, memperoleh gelar Drs. dari Program Studi ELINS, FMIPA, Universitas Gadjah Mada – Yogyakarta pada tahun 1992 (dalam bidang pemrosesan sinyal dan citra digital) dan M.Si dari Program Studi Ilmu Fisika, Sekolah Pascasarjana, Universitas Gadjah Mada – Yogyakarta pada tahun 1998 (dalam bidang implementasi DSP menggunakan VHDL dan FPGA). Saat ini sebagai Staf Pengajar Program Studi ELINS, FMIPA, Universitas Gadjah Mada – Yogyakarta serta sebagai penulis buku mikrokontroler dan elektronika lainnya.
![Page 11: 2006_sdq_aep](https://reader037.vdocuments.site/reader037/viewer/2022100323/5571f36c49795947648dffbe/html5/thumbnails/11.jpg)
11
LAMPIRAN