# LOG MBKM RL SoC Sistem Navigasi Cerdas (Cahya Yugansyah/13218047)
# Bulan Ke-1 (Agustus - September)
## Minggu Ke-1 (30 Agustus - 3 September)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 30/08/2021 | Membaca dan mengeksplorasi paper yang berkaitan dengan Reinforcement Learning dan sistem navigasi dari website IEEE dengan menggunakan vpn untuk mengakses server dari ITB | Didapatkan sekitar 9 paper yang berhubungan dengan dua hal tersebut dengan diantaranya yaitu "An Efficient Hardware Implementation of Reinforcement Learning: The Q-Learning Algorithm, IEEE Access" dan "Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA, IEEE Access" yang merupakan paper yang diberikan di website HackMD yg isinya adanya suatu perangkat keras efisien dengan algoritma Q-Learning untuk implementasi Reinforcement Learning denga menggunakan field programmable gate arrays (FPGA) untuk mengoptimasikan waktu proses sistem | Kesulitan untuk mencari paper yang tepat sehingga masih mencari-cari paper sebelum akhirnya ditelaah satu persatu | Mempelajari software yang digunakan seperti MATLAB, modelsim, dan VIVADO|
| 31/08/2021 | Menguninstall MATLAB versi sebelumnya dan menggunakan MATLAB versi R2021a lalu melihat tutorial terkait software-softwarenya| Matlab dan modelsim merupakan program yang digunakan untuk mensimulasikan berbagai jenis komputasi yang digunakan untuk menganalisis data, mengembangkan algoritma, dan membuat model| Terkadang di laptop kurang kuat sehingga membuat laptop cukup pelan sehingga agak sulit untuk membuka aplikasi lain secara bersamaan seperti teams, WA, dll | Mempelajari dan menonton video tutorial dengan saksama untuk dibuat ringkasannya|
|01/09/2021|Menonton video "Tutorial Singkat tentang Reinforcement Learning, "Tutorial Arsitektur Chip RL", dan "Pengantar Reinforcement Learning"|Summary dari tutorial dapat secara lengkap dilihat di [Hack MD](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/S1SiQb0bY/)|Tidak ada kendala dan kegiatan berjalan dengan lancar|Mempelajari paper yang sudah dicari dengan lebih saksama sehingga ringkasannya dapat dibuat|
|02/09/2021|Menelaah paper-paper terutama "An Efficient Hardware Implementation of Reinforcement Learning: The Q-Learning Algorithm" dan paper "Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA"|Summary dari paper dapat dilihat di [Hack MD](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/ryz6K-CbY/)|Tidak ada kendala dan kegiatan berjalan dengan lancar|Menginstalasi Vivado dan menonton dan mencoba video "Tutorial VIVADO HLS"|
|03/09/2021|Menginstall Vivado dan menonton "LSITutorial VIVADO HLS" dan membaca "Tutorial LSI Design Contest Okinawa"|Summary dari tutorial tersebut dapat secara lengkap dilihat di [Hack MD](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/B1a8JWJft/)| Tidak ada kendala dan kegiatan berjalan dengan lancar ||
## Minggu Ke-2 (6 September - 10 September)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 06/09/2021 | Mengaktivasi Vivado dan mencoba file matlab dari website design okinawa contest ("Sample_program_English.zip") | Vivado sudah bisa digunakan dan file matlab terdiri dari 5 file yaitu file utama Q_Learning.m, Action.m untuk menentukan behavior dari agent (berupa fungsi), Search_Location.m untuk menentukan lokasi saat ini dari agent (berupa fungsi), update_Qvalue.m untuk memperbarui Q-Values (berupa fungsi), dan Routing.m untuk menampilkan rute berdasarkan Q-Table (berupa fungsi) | Tidak ada kendala dan kegiatan berjalan dengan lancar | Kembali mempelajari paper yang kedua ("Parallel implementation...") |
| 07/09/2021 | Melanjutkan paper summary dari minggu lalu terkait "Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA, IEEE Access" | Summary dari paper dapat dilihat di [Hack MD](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/ryz6K-CbY/) | Paper masih belum selesai dibaca sehingga perlu ditelaah kembali di hari berikutnya | Mendatangi Xirka |
| 08/09/2021 | Mengunjungi Xirka dan berdiskusi dengan Pak Nana dan teman sekelompok terkait topik kelompok | Dijelaskan tahapan yang akan dikerjakan pada MBKM ini, yaitu awalnya membuat use case/aplikasi dengan membuat terlebih dahulu model komputasinya, lalu melakukan partisi hardware dan software dengan Q-update pada hardware display dan setting ctrl tergantung pada aplikasinya, lalu perancangan arsitektur VLSI dengan mengubah persamaan menjadi blok logika dan diamati delay propagasi dengan throughput dengan latency yang dilanjutkan dengan TA untuk disatukan (Hardware Accelerator) dengan CPU dengan timer dengan USB dengan memory yang nantinya menjadi SoC | Tidak sempat mencoba FPGA karena belum adanya kabel penghubung ke laptop |
| 09/09/2021 | Melanjutkan paper summary dari hari kedua terkait "Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA, IEEE Access" | Summary dari paper dapat dilihat di [Hack MD](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/ryz6K-CbY/) | Paper masih belum selesai dibaca sehingga perlu ditelaah kembali di hari berikutnya | Mendatangi Xirka |
| 10/09/2021 | Work From Office (WFO) di Xirka untuk pembahasan lebih lanjut terkait software yang akan digunakan | Melakukan instalasi dari vitis dan mencoba mensetup simulasinya dan menguninstall vivado yang sudah diinstalasi sebelumnya dan menginstall ulang dari vitisnya | File dari softwarenya sebesar kurang lebih 80 GB sehingga untuk melakukan instalasi diperlukan waktu yang sangat lama dan diperlukan menghapus file-file lain di laptop | |
## Minggu Ke-3 (13 September - 17 September)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 13/09/2021 | Progres report dengan pak Nana | Membuat pemodelan terhadap SoC sederhana yang akan dibuat | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melakukan simulasi di Vivado/Vitis |
| 14/09/2021 | Melakukan simulasi di Vivado/Vitis | Terdapat bayangan apa yang perlu dikerjakan jika sudah ada board | Karena masih belum ada board jadi belum sempat dicoba upload ke board | Mencoba mengupload program ke board |
| 15/09/2021 | Setup board PYNQ | Sebelum diupload board diperlukan untuk disetup terlebih dahulu sehingga tidak bisa langsung digunakan | Banyak hal yang harus dilakukan untuk mensetup board sehingga setup belum selesai dilakukan | Mencoba menyelesaikan setup board |
| 16/09/2021 | Mempelajari kode program dan artinya pada implementasi | Program yang dikerjakan sudah dipelajari, namun hanya sekedar full adder | Tidak ada kendala dan kegiatan berjalan dengan lancar | Mencoba mengupload program yang dilakukan ke board ZYNQ atau PYNQ |
| 17/09/2021 | Mencoba mengupload program yang dilakukan ke board ZYNQ dan PYNQ | Switch digunakan 3 buah dengan A, B, dan carry lalu LED akan menampilkan penjumlahan dari kedua inputan terebut yang menyala menandakan bit 1 dan tidak menyala menandakan bit 0 | LED sempat tidak menyala sehingga perlu diulang pemrogramannya | |
## Minggu Ke-4 (20 September - 24 September)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 20/09/2021 | Progres Report dengan Pak Nana | Mengimplementasikan tutorial verilog di board ZYBO melanjutkan tutorial minggu lalu dan mendapatkan tugas: 1) Menjalanakan implementasi SoC yang terdiri dari PS+PL di FPGA, PL dapat mengimplementasikan unit komputasi sederhana, seperti Adder, multipler, dll (Implementasi PL dilakukan dalam bahasa verilog (boleh secara behavioural)), Data input ditulis ke RAM oleh PS, Data output ditulis oleh PS ke RAM, dan dibaca oleh PS untuk ditampilkan di terminal (via UART) lalu 2) Membuat aplikasi model Q-Learning dalam phyton, Convert versi matlab LSI Okinawa, Aplikasi Q-learning dapat memvisualisasikan state transition dalam bentuk path yang dilalui sebuah agent | Board sempat tidak menghasilkan yang tidak diinginkan | Mencoba membuat aplikasi model Q-Learning dalam python |
| 21/09/2021 | Mencoba memprogram model Q-Learning dalam python | Seluruh program dari matlab telah dipindah ke dalam bahasa python | Terdapat banyak perbedaan antara matlab dan python lalu nilai acak (random) tidak tergenerasi pada python | Melanjutkan pemrograman dengan python dan mencoba PL dan PS di Xirka |
| 22/09/2021 | Mencoba menyelesaikan program Q-Learning dengan python | Program berhasil dibuat pada [GitHub](https://github.com/yugansyah/QL_Shortest_5x5) | Masih belum rapi hasilnya namun sudah menggambarkan Q-Learning | Mencoba membuat Q-Learning pada Board |
| 23/09/2021 | Mencoba simulasi terhadap pemrograman PS dengan Vivado | PS masih belum selesai diimplementasikan | Banyak pada tutorial yang perlu untuk diubah sehingga harus didiskusikan dengan rekan lain | Mendiskusikan dengan rekan di Xirka |
| 24/09/2021 | WFO di Xirka dan menyelesaikan tutorial Vivado dan menambah animasi pada program python | Program berhasil diberi animasi dan dapat dilihat pada [GitHub](https://github.com/yugansyah/QL_Shortest_5x5) | PS masih belum selesai diimplementasikan | |
## Minggu ke-5 (27 September - 1 Oktober)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 27/09/2021 | Melakukan progres report dengan Pak Nana | Merencanakan pemodelan ulang terhadap program Reinforcement Learning sederhana untuk memahami algoritma | Diperlukan pembelajaran ulang terhadap bahasa python | Mempelajari python lebih lanjut|
| 28/09/2021 | Melakukan pembelajaran terhadap python dengan melihat library-library untuk diimplementasikan| Mempelajari video [Youtube](https://www.youtube.com/watch?v=FfWpgLFMI7w) terkait library pygame | Tidak ada kendala dan kegiatan berjalan dengan lancar | Mempelajari implementasi RL pada pygame |
| 29/09/2021 | Melakukan pembelajaran terhadap implementasi RL dengan library pygame, pytorch, matPlotLib, Ipython dan lain-lain | Mempelajari video [Youtube](https://www.youtube.com/watch?v=PJl4iabBEz0&list=PLqnslRFeH2UrDh7vUmJ60YrmWd64mTTKV) terkait RL pada game snake | Masih banyak library yang perlu dipelajari | Mencoba mengimplementasikan pada program maze solver|
| 30/09/2021 | Mencoba mengotak-atik program yang sebelumnya sudah dibuat | Program belum selesai diimplementasikan | Banyak error yang muncul karena kesalahan format (bahasa)| Melanjutkan perubahan pada program |
| 01/10/2021 | Melanjutkan perubahan dan pengembangan pada program python | Program belum selesai diimplementasikan | Error masih terjadi dan hasil masih belum sesuai yang diharapkan | |
# Bulan Ke-2 (September - Oktober)
## Minggu Ke-6 (4 Oktober - 8 Oktober)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 04/10/2021 | Mempelajari penggunaan dan implementasi PS pada Vivado | Tutorial belum selesai dikerjakan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan tutorial |
| 05/10/2021 | Melanjutkan implementasi PS | Masih belum bisa diselesaikan | Banyak error yang berjalan sehingga membutuhkan debugging yang lama | Melanjutkan ke Xirka |
| 06/10/2021 | Progres report dengan pak nana secara offline dan diberikan tugas untuk melakukan dokumentasi dengan membuat laporan terkait SoC sederhana | Mendapatkan tugas untuk melaporkan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melakukan dokumentasi terhadap laporan terkait SoC sederhana |
| 07/10/2021 | Menyelesaikan implementasi PS | Tutorial terkait PS sudah dikerjakan | Sintesis sangat lama sehingga kadang hanya menunggu sintesis saja membutuhkan waktu | Membuat dokumen |
| 08/10/2021 | Melanjutkan pembuatan dokumen | Dokumen belum selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-7 (11 Oktober - 15 Oktober)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 11/10/2021 | Melanjutkan pembuatan dokumen | Dokumen belum selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | Membuat dokumen |
| 12/10/2021 | Melanjutkan pembuatan dokumen | Dokumen belum selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | Membuat dokumen |
| 13/10/2021 | Melanjutkan pembuatan dokumen | [Dokumen](https://drive.google.com/file/d/1Z0PRcLpYorieZtk_GOuXZ5Q7_vWZVUGx/view?usp=sharing/) sudah selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan modeling dari Reinforcement Learning pada python |
| 14/10/2021 | Melakukan perbaikan pada program yang telah dibuat sehingga dapat dikonfigurasi panjang dan lebarnya | Program belum selesai dimodifikasi | Program memiliki banyak masalah sehingga perlu didebug | Melanjutkan modifikasi pada program |
| 15/10/2021 | Melanjutkan modifikasi pada program yang dibuat | Program perlu dimodifikasi sehingga dapat ditampilkan pada peta yang berubah-ubah | Perlu mempelajari library pada python | |
## Minggu Ke-8 (18 Oktober - 22 Oktober)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 18/10/2021 | Melakukan modifikasi pada program yang dibuat | Program sudah selesai dan dapat dilihat pada [Github](https://github.com/yugansyah/QL_ShortestPath) namun perlu didebug | Terdapat kesalahan minor yang akan diperbaiki | Memperbaiki pada kesalahan minor |
| 19/10/2021 | Melanjutkan finalisasi program | Program masih belum difinalisasi | Masih terdapat kesalahan minor | Memperbaiki pada kesalahan minor |
| 20/10/2021 | Melanjutkan finalisasi program | Program masih perlu diotak-atik | Masih terdapat kesalahan minor | Memperbaiki kesalahan minor program |
| 21/10/2021 | Melanjutkan finalisasi program | Program masih perlu dirapihkan| Masih terdapat kesalahan minor | Memperbaiki kesalahan minor program |
| 22/10/2021 | Melanjutkan model python | Program sudah difinalisasi | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-9 (25 Oktober - 29 Oktober)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 25/10/2021 | Mempelajari Deep Q-Learning | Berbagai [Video](https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi&ab_channel=3Blue1Brown) dari Youtube berhasil ditonton | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 26/10/2021 | Melanjutkan pembelajaran | Berusaha membaca berbagai paper dari internet terkait deep learning | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 27/10/2021 | Melanjutkan pembelajaran | Berusaha memahami program matlab dari okinawa | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 28/10/2021 | Melanjutkan pembelajaran | Program dari matlab dihubungkan dengan sumber-sumber dari internet | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 29/10/2021 | Melanjutkan pembelajaran | Masih berusaha memahami program matlab| Tidak ada kendala dan kegiatan berjalan dengan lancar | |
# Bulan Ke-3 (November - Desember)
## Minggu Ke-10 (1 November - 5 November)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 01/11/2021 | Melanjutkan pembelajaran dengan mencari sumber terkait deep learning | Berbagai [Video](https://www.youtube.com/watch?v=5tvmMX8r_OM&list=PLtBw6njQRU-rwp5__7C0oIVt26ZgjG9NI&ab_channel=AlexanderAmini) Pembelajaran didapat | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran terkait deep learning |
| 02/11/2021 | Melanjutkan pembelajaran terkait deep learning | Pembelajaran masih perlu dilakukan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 03/11/2021 | Melanjutkan pembelajaran terkait deep learning | Pembelajaran masih perlu untuk dilakukan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 04/11/2021 | Melanjutkan pembelajaran terkait deep learning | Pembelajaran lebih lanjut masih perlu untuk dilakukan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 05/11/2021 | Melanjutkan pembelajaran terkait deep learning | Untuk pembelajaran diperlukan implementasi | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-11 (8 November - 12 November)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 08/11/2021 | Melanjutkan pembelajaran deep q learning | Pembelajaran belum selesai| Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 09/11/2021 | Melanjutkan pembelajaran deep q learning | Diperlukan pembelajaran | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 10/11/2021 | Melanjutkan pembelajaran | Diperlukan pembelajaran | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 11/11/2021 | Melanjutkan pembelajaran lebih lanjut | Masih diperlukan pembelajaran | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 12/11/2021 | Melanjutkan pembelajaran lebih lanjut | Masih diperlukan pembelajaran lebih lanjut | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-12 (15 November - 19 November)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 15/11/2021 | Memahami program contoh terkait deep q learning | Contoh program dapat dilihat di [website](https://pythonprogramming.net/deep-q-learning-dqn-reinforcement-learning-python-tutorial/) | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pemahaman terhadap program tersebut |
| 16/11/2021 | Melanjutkan pemahaman terhadap program tersebut | Masih perlu memahami library yang digunakan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran library |
| 17/11/2021 | Melanjutkan pembelajaran library yang digunakan pada program sample | Perlu dilakukan pembelajaran lebih lanjut | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 18/11/2021 | Melanjutkan pembelajaran terhadap program | Masih perlu dilakukan pembelajaran | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan pembelajaran |
| 19/11/2021 | Melanjutkan pembelajaran | Pembelajaran dicukupkan | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-13 (22 November - 26 November)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 22/11/2021 | Memahami perancangan untuk desain hardware | Desain hardware dilakukan berdasarkan paper "An Efficient Hardware Implementation of Reinforcement Learning: The Q-Learning Algorithm" | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan RTL dengan tim hardware |
| 23/11/2021 | Melakukan perancangan untuk menggabungkan PL dengan PS | Desain membutuhkan blok untuk menukarkan sinyal yang dibaca antara PL dengan PS ke BRAM | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok pengatur sinyal PL dan PS |
| 24/11/2021 | Melakukan perancangan untuk blok pengatur sinyal PL dan PS | Desain menghasilkan blok yang menerima sinyal penanda kapan sinyal berasal dari PL disalurkan kapan sinyal dari PS disalurkan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok |
| 25/11/2021 | Melanjutkan perancangan blok | Sinyal penanda merupakan sinyal yang menunjukkan kondisi keseluruhan sistem, saat inisialisasi, saat learning, dan selesai learning | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok |
| 26/11/2021 | Melanjutkan perancangan blok | Saat inisialisai PS akan menginisialisasi variabel variabel yang dibutuhkan oleh sistem seperti q-table, obstacle, grid, dll. Saat learning data yang ditulis ke BRAM adalah dari PL, kemudian terakhir ketika selesai maka BRAM akan dibaca kembali oleh PS | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-14 (29 November - 3 Desember)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 29/11/2021 | Menyesuaikan desain sesuai dengan timing diagram | Diperlukan control unit agar seluruh desain berjalan sesuai dengan timing diagram | Tidak ada kendala dan kegiatan berjalan dengan lancar | Merancang kondisi yang diperlukan oleh control unit tersebut |
| 30/11/2021 | Melakukan perancangan kondisi yang ditentukan oleh control unit | Kondisi-kondisi disimpulkan dalam finite state machine diagram | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melakukan pembuatan control unit berdasarkan rancangan |
| 01/12/2021 | Melakukan perancangan blok control unit | Blok control unit nantinya akan mengatur berdasarkan sinyal clock pada saat learning sehingga untuk blok yang memiliki komputasi tinggi tidak menghasilkan delay yang menyebabkan data berantakan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok control unit |
| 02/12/2021 | Melakukan perancangan blok unit | Blok control unit nantinya akan mengatur berdasarkan 9 state, 6 state ketika learning, 3 state di luar learning | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok control unit |
| 03/12/2021 | Melanjutkan perancangan blok unit | Pada 6 state learning akan bergantian berdasarkan clock (setiap clock rising edge), lalu untuk 3 state learning terdiri dari state inisialisasi, dan state finalisasi yang akan diatur oleh sinyal trigger | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
# Bulan Ke-4 (Desember)
## Minggu Ke-15 (6 Desember - 10 Desember)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 06/12/2021 | Melakukan perancangan testbench untuk blok pengatur sinyal pl dan ps | testbench berguna untuk mengetes fungsionalitas blok | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan simulasi dengan testbench tersebut |
| 07/12/2021 | Melakukan simulasi dengan file testbench yang dibuat | simulasi untuk blok berjalan sesuai dengan yang diharapkan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan testbench untuk blok lainnya |
| 08/12/2021 | Melakukan perancangan untuk blok counter | Diperlukan suatu counter untuk mengetahui sedang berada di episode mana dan sedang berada di step yangmana | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok counter |
| 09/12/2021 | Melanjutkan perancangan blok counter | Counter juga yang menghasilkan trigger ketika learning sudah selesai ataupun ketika episode sedang berganti | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perancangan blok counter |
| 10/12/2021 | Melanjutkan perancangan blok counter | Terdapat dua buah blok counter, counter untuk mengetahui berada di step berapa sehingga jika mencapai nilai tertentu akan menambah episode dan blok counter untuk mengetahui berada di episode berapa sehingga ketika mencapai nilai tertentu learning akan selesai| Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-16 (13 Desember - 17 Desember)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 13/12/2021 | Melakukan testing terkait blok-blok secara ulang untuk memastikan berjalannya masing-masing blok hingga akhirnya digabungkan menjadi suatu sistem | Testing masih perlu dilanjutkan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan testing |
| 14/12/2021 | Melanjutkan testing untuk blok-blok kecil | Testing masing-masing blok dianggap sudah cukup | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan testing untuk kumpulan blok-blok |
| 15/12/2021 | Melakukan testing untuk blok-blok yang berkaitan sehingga sistem-sistem kecil berjalan dengan tepat | Diperlukan debugging | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melakukan debugging setelah tes dilakukan |
| 16/12/2021 | Melakukan debugging | Debugging belum selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan debugging|
| 17/12/2021 | Melanjutkan debugging | Debugging sudah selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
## Minggu Ke-17 (20 Desember - 24 Desember)
| Tanggal | Kegiatan | Hasil | Kendala | Rencana |
| ---------- | -------- | -------- | -------- | -------- |
| 20/12/2021 | Melakukan persiapan presentasi akhir | Menyiapkan dokumentasi untuk dipresentasikan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Menyiapkan program |
| 21/12/2021 | Menyiapkan program untuk presentasi | Memastikan program untuk dipresentasikan berjalan dengan lancar | Tidak ada kendala dan kegiatan berjalan dengan lancar | Membuat presentasi |
| 22/12/2021 | Membuat presentasi | Presentasi masih membutuhkan perbaikan | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melanjutkan perbaikan presentasi |
| 23/12/2021 | Melanjutkan perbaikan presentasi | Presentasi perlu didiskusikan dengan teman sekelompok lalu dilakukan latihan presentasi | Tidak ada kendala dan kegiatan berjalan dengan lancar | Melakukan latihan presentasi |
| 24/12/2021 | Latihan presentasi dan berdiskusi terkait presentasi | Presentasi telah selesai | Tidak ada kendala dan kegiatan berjalan dengan lancar | |
# Dokumen Pendukung
Dokumen berupa laporan atau rangkuman atau program pendukung progres yang telah dikerjakan pada MBKM
* [Paper Summary](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/ryz6K-CbY)
* [Tutorial Summary](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/S1SiQb0bY)
* [Tutorial Summary 2](https://hackmd.io/@Sy6AOG-yR725PMUQ3BU4yg/B1a8JWJft)
* [Laporan SoC Sederhana](https://drive.google.com/file/d/1Z0PRcLpYorieZtk_GOuXZ5Q7_vWZVUGx/view?usp=sharing/)
* [Program Reinforcement Learning 5x5 pada Python](https://github.com/yugansyah/QL_Shortest_5x5)
* [Program Reinforcement Learning pada Python](https://github.com/yugansyah/QL_ShortestPath)
# Referensi
| Sumber | Judul | Waktu Akses |
| -------- | -------- | -------- |
| [Paper, IEEE Access](https://drive.google.com/file/d/1Hr5uZk00GAPDHYU4hFD1HI-lgl4w8sEs/view?usp=sharing) | An Efficient Hardware Implementation of Reinforcement Learning: The Q-Learning Algorithm | Minggu ke-1 |
| [Artikel, Website](http://www.lsi-contest.com/2021/shiyou_3-1e.html) | 24th LSI Design Contests-in Okinawa Design Specification | Minggu ke-1 |
| [Video, Youtube](https://youtu.be/KHOKV4YsHSU) | Tutorial Reinforcement Learning | Minggu ke-1|
| [Video, Youtube](https://youtu.be/ClJgvgUS_xw) | Pengantar Reinforcement Learning | Minggu ke-1|
| [Video, Youtube](https://www.youtube.com/watch?v=Kj4J-MdmCZo&list=PLkYjWBQDCTmD-4Vj12jzzDpi0i7pKHGHZ&index=17&ab_channel=TrioAdiono) | EL4138 Perancangan Sistem VLSI| Minggu ke-2 |
| [Paper, IEEE Access](https://drive.google.com/file/d/1OQE2TmpqdQ5TkqFAjaje2w37sgR1_AwX/view?usp=sharing) | Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA | Minggu ke-2 |
| [Video, Youtube](https://youtu.be/FfWpgLFMI7w) | Pygame Tutorial for Beginners - Python Game Development Course | Minggu ke-5 |
| [Video, Youtube](https://www.youtube.com/watch?v=PJl4iabBEz0&list=PLqnslRFeH2UrDh7vUmJ60YrmWd64mTTKV) | Teach AI To Play Snake! Reinforcement Learning With PyTorch and Pygame | Minggu ke-5 |
| [Video, Drive](https://drive.google.com/drive/folders/1ZgQ7w-WVJF_Rx3SzOPpMEYJiYxsiosax?usp=sharing) | Tutorial VIVADO HLS | Minggu ke-8 |
| [Video, Youtube](https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi) | Neural networks | Minggu ke-9 |
| [Video, Youtube](https://www.youtube.com/playlist?list=PLtBw6njQRU-rwp5__7C0oIVt26ZgjG9NI) | MIT 6.S191: Introduction to Deep Learning | Minggu ke-10 |
| [Artikel, Website](https://pythonprogramming.net/deep-q-learning-dqn-reinforcement-learning-python-tutorial/) | Deep Q Learning and Deep Q Networks (DQN) Intro and Agent - Reinforcement Learning w/ Python Tutorial p.5 | Minggu ke-12 |