Anda di halaman 1dari 16

Team Name : ASTech

Members : Ni Putu Amanda Gamayani (13214075)

Mochamad Nandradi Toyib (13214054)

Samuel Adrian (13213100)

University : Institut Teknologi Bandung

Grade : 4th Year

Address : Jalan Ganeca no. 10, Dago, Bandung

Telephone : +6285737349951

Mail address : amandagmy@gmail.com

Size of all team members T-shirt :L

The task level of a design : Level1 (For beginners)


1. Architecture Description

Pada perancangan kali ini, kami merancang sebuah ANN yang dapat mengenali gender manusia
melalui suaranya. Sistem yang kami rancang menerima masukan berupa suara dalam format WAV
yang dipartisi dalam dataset yang diconversi melalui aplikasi Matlab dan TensorFlow. Setiap
inputan memiliki 17 karakteristik yang menjadi bagian dari dataset sehingga input pada sistem
ANN kami sebanyak 17 input. Sistem kami hanya menggunakan satu hidden layer dengan jumlah
preseptron sebanyak 20 buah yang dapat dianalogikan sebagai perangkat yang menentukan
gender yang akan diseleksi. Output pada sistem kami sebanyak 2 buah yang mengidentifikasikan
1 dan 0. Gender ‘pria’ diberi nilai supervisor [1,0] sedangkan ‘wanita’ diberi nilai supervisor [0,1].
Sehingga jumlah layer pada sistem kami sebanyak 3 layer.

Gambar 1. Bentuk rancangan sistem ANN dengan 3 layer (input, 1 hidden layer, dan output)
Gambar 2. Model Neural Network yang kami rancang dengan menerima input dan output
disesuaikan dengan supervisor yang dirancang pada saat mode ‘learning’

Gambar 3. Model Neural Network yang kami rancang sesuai dengan LSI Contest 2018
Gambar 4. Perancangan Back Propagation yang memerhatikan nilai cost function

Gambar 5. Sistem ANN yang kami rancang dengan 17 input, 20 perseptron pada sebuah hidden
layer, dan 2 output
Kami merancang dua buah modul secara terpisah yakni modul Back Propagation dengan Forward untuk
mode ‘learning’ dan modul Forward untuk modul ‘testing’. Pada kedua modul tersebut, berikut kami
tampilkan RTL dari sistem yang kami rancang.

Gambar 6. RTL dari modul Learning sistem yang kami rancang


Gambar 6. RTL dari modul Testing sistem yang kami rancang

2. Explanation of Function

Pada Modul Back Propagation (Mode Learning)

Modul: input_layer

Deskripsi: mengeluarkan hasil perkalian dari setiap input dengan weight –weight yang terhubung
dari input tersebut ke setiap perceptron di hidden layer

Modul: hidden_layer

Deskripsi: Menjumlahkan hasil perkalian input dengan cabang-cabangnya yang terhubugn ke


perseptron tersebut, dan mengeluarkan nilai sigmoid functionnya melalui fungsi
sigmoid_function.v

Modul: Output layer

Deskripsi: Menjumlahkan hasil perkalian nilai a hidden layer dengan cabang-cabangnya yang
terhubung ke perseptron di output layer, dan mengeluarkan nilai sigmoid functionnya melalui
fungsi sigmoid_function.v

Modul: square error

Deskripsi: mengeluarkan nilai square error dengan input nilai a3 (nilai output forward) dan nilai
supervisor
Modul: dadz

Deskripsi: mengeluarkan nilai dadz dari perceptron di output dan hiddenlayer

Modul: delta_output

Deskripsi: mengeluarkan nilai delta dari perceptron di output layer

Modul: delta_hiddenlayer

Deskripsi: mengeluarkan nilai delta dari perceptron di hidden layer

Modul: dw

Deskripsi: mengeluarkan nilai dw, yaitu nilai yang akan menjadi nilai perubahan pada weight. Pada
modul ini, nilai perubahan telah dikalikan dengan learning rate yang diinginkan pada rancangan,
yaitu 0.1

Modul: learn increment

Deskripsi: Mengeluarkan hasil perkalian delta setiap perceptron, dengan learning rate guna
menjadi nilai perubahan bias.

Pada modul toplevelnya, digunakan counter dan clock untuk menghitung menjadi tanda sinyal untuk
melakukan penambahan nilai perubahan weight pada weight yang lama, sehingga dihasilkan nilai weight
yang baru, yang akan digunakan pada proses forward berikutnya.

Pada Modul Forward (Mode Testing)

Modul PISO_w2

Deskripsi: Mengubah nilai weight 2 dan mengeluarkannya secara serial. Terdapat 17 modul
PISO_w2 , sesuai dengan jumlah input yang diterima.

Modul Sequence_multiply

Deskripsi: Modul ini berfungsi untuk mengalikan 2 input dan mengeluarkan hasil perkalian 1 clock
setelahnya.

Modul SIPO_w2

Deskripsi: Modul ini berfungsi membuat hasil perkalian dari modul Sequence Multiply menjadi
parallel dan menyimpannya pada sebuah memori

Modul PISO_hl1

Deskripsi: Modul ini berfungsi untuk mengeluarkan nilai-nilai hasil perkalian pada modul
sebelumnya yang telah diparalelkan menjadi seri. Modul ini mengeluarkan secara serial nilai yang
akan menjadi nilai z pada perceptron di hidden layer
Modul increment_adder_hiddenlayer

Deskripsi: Modul ini berfunsgi unutk menjumlahkan nilai yang masuk pada perseptron di hidden
layer secara serial menjadi nilai z yang akan masuk ke sigmoid function

Modul sigmoid_function

Deskripsi: Fungsi aktivasi yang mengubah z menjadi a. Dilakukan dengan metode pendekatan
sesuai dengan pada

Modul PIPO_a2

Deskripsi: menyimpan hasil nilai aktivasi sigmoid function ke register a2.

Modul PISO_a2_z3

Deskripsi: Mengeluarkan nilai a3 yang tersimpan pada register secara seri setiap siklus clock

Modul PISO_w3

Deskripsi: Mengeluarkan nilai weight 3 secara serial sesuai siklus clock.

Modul sequence_multiply_z3

Deskripsi: mengeluarkan hasil perkalian dari 2 input , yaitu nilai a3 dan nilai weight 3.

Modul incre_output_layer

Deskripsi: menjumlahkan nilai perkalian yang keluar dari modul sebelumnya:

Modul bias_adder_a3

Deskripsi: Menjumlahkan nilai z3 yang terjumlah dari modul sequence multiplier dengan nilai bias
3

Modul PIPO a3

Deskripsi: Mengeluarkan nilai a pada output layer secara parallel.


Gambar 7. Proses Neural Network yang kami rancang sesuai dengan LSI Contest 2018
3. An appeal point and originality

Biasanya topik mengenai voice recognition menggunakan struktur RNN. Pada kali ini tim kami mencoba
membedakan gender suara manusia menggunakan ANN dengan struktur 3 buah layer dengan 1 hidden
layer. Pada perancangan ini tim kami mencoba sistem ANN untuk menyeleksi dataset voice yang sudah
digenerate dari Matlab dan TensorFlow untuk menentukan suara pria dan wanita. Pada dataset yang kami
dapatkan, terdapat 20 karakteristik pada setiap inputnya. Namun tim kami hanya menggunakan 17
karakteristik saja. Dalam perancangan weightnya, tim kami juga tidak membuatnya secara sembarang.
Perancangan weight yang kami rancang, memerhatikan cara menurunkan nilai cost function agar sekecil
mungkin. Teknik yang kami pilih adalah Gaussian Random Variable dengan memerhatikan standar deviasi
sesuai dengan jumlah input pada sistem. Pada perancangan ini juga tim kami mencoba mengabungkan
pre-processing melalui Matlab maupun Tensorflow dengan processing-nya dari Quartus untuk kembali
memutuskan apakah suara pria ataupun wanita yang terekam. Pada implementasi ini kami mencoba
memanfaatkan FPGA DE2-70 Cyclone II untuk implementasi processing sistem kami.

4. Critical path speed and Circuit domain

Pada bagian ini kami belum melihat TimeQuest Timing Analyzer pada Quartus 13.0 yang kami gunakan
karena kami tidak memiliki lisensi untuk menggunakan fitur tersebut. Kami sebenarnya bisa melihat
critical path pada Quartus 17.0 namun tidak ada device yang compatible dengan Quartus 17.0 yang kami
pakai yakni Cyclone II.

5. HDL Code

Kode Verilog yang kami rancang pada modul kami, kami letakkan pada Lampiran yang menyertai laporan
ini dalam folder.
6. The display of a simulation waveform which the design is operating

Gambar 8. Hasil Simulasi Modul Forward (terlihat pada output mengeluarkan nilai selebar 32 bit)
Gambar 9. Hasil Simulasi Modul Back Propagation ketika sistem sedang belajar dengan renewal 2500 kali

Gambar 10. Hasil Simulasi Modul Back Propagation dengan cos function = 0.013953

Gambar 10. Hasil Implementasi di FPGA DE2-70 Cyclone II dengan hasil sudah keluar namun belum
sesuai dengan harapan karena belum mengatur clock dengan benar
Gambar 11. Hasil Implementasi di FPGA DE2 berhasil

Gambar 12. Beberapa warning yang perlu diperhatikan saat implementasi yang menyebabkan hasil
belum sesuai dengan harapan

Gambar 13. Flow Summary dari Hasil Implementasi


Gambar 14. Hasil Analisis dan Sintesis

Gambar 15. Hasil Simulasi sesuai dengan Hasil Implementasi namun belum sesuai harapan, hasil pada
Quartus berbeda dengan hasil pada ModelSim

Gambar 16. Hasil Simulasi sesuai dengan Hasil Implementasi namun belum sesuai harapan, hasil pada
Quartus berbeda dengan hasil pada ModelSim (Diperbesar pada Hazard)

7. Others

Secara umum tim kami sudah berhasil mengimplementasikan desain pada FPGA namun bermasalah pada
clock yang digunakan dan pin I/O yang harus di netlist dengan baik dan tidak melebihi batas kemampuan
device. Tim kami sudah melakukan generate dataset menjadi biner dengan mudah melalui Matlab hingga
mudah disalin ke Verilog. Tim kami juga sudah berhasil mengimplementasikan penggunaan ROM 1 Port
namun tidak digunakan pada desain ini karena masih ingin menggunakan data yang sudah dibuat pada
testbench. Dalam hal pre-processing, tim kami belum memilih perangkat apa yang akan mengkonversi
WAV menjadi dataset yang kami gunakan pada processing kami. Pada tugas ini kami lampirkan modul
Matlab dan Verilog yang kami gunakan beserta datasetnya. Pada Implementasi FPGA, kami akan mencoba
menggunakan PLL untuk mengatur clock-nya dan melakukan debugging dari warning yang kami terima
melalui Quartus.

Anda mungkin juga menyukai