Project Perancangan Rangkaian Sekuensial

Sebelum memulai ceritanya, saya ingin mengucapkan Alhamdulillahilladzii lahuu mulkussamawaati wal ardh, selalu yang harus menjadi pertama, saya berterima kasih kepada Allah yang telah mengizinkan saya untuk bisa kuliah di ITB, yang telah mencondongkan hati saya untuk mengambil kuliah Perancangan Rangkaian Sekuensial atau Sequential Circuit Design (SCD), walaupun sebenarnya waktu Pengisian Form Rencana Studi (FRS) semester lalu saya sama sekali tidak memiliki gambaran seperti apa kuliah ini dan apa yang bisa saya dapat dari kuliah ini. Saya bersyukur karena Allah telah membuat saya sadar bahwa belajar adalah prioritas kedua setelah beribadah dan menyembah hanya kepada-Nya dan meninggalkan semua jabatan saya di kemahasiswaan ITB setelah dua tahun lebih bertamasya ria di kemahasiswaan dan bisnis, bahkan sampai-sampai ada satu semester IP saya yang nol koma. Saya bersyukur karena Allah telah memudahkan langkah saya untuk mendapatkan ilmu yang banyak dari kuliah SCD ini. Biasanya di kalangan mahasiswa/i Teknik Elektro ITB kuliah ini disebut dengan PRS, tetapi ada penyingkatan yang lebih umum yang digunakan ITB untuk kata PRS, yaitu Pergantian Rencana Studi, jadi biarkanlah saya menyingkatnya dengan SCD saja. Dosen saya untuk kuliah ini adalah Pak Yudi Gondokaryono, tahun sebelumnya adalah Kaprodi Teknik Elektro untuk S1, sekarang beliau menjabat Kaprodi untuk Pascasarjana, salah satu dosen yang sangat disenangi mahasiswa/i Teknik Elektro, kata temen saya sih karena beliau toleran dan mengerti keadaan mahasiswa.

Tujuan saya menulis cerita perjuangan saya menyelesaikan kuliah ini adalah untuk berbagi pengalaman, hikmah, dan pelajaran buat kamu semua yang rela meluangkan beberapa menit untuk membacanya. Sekaligus juga untuk mengabadikan perjuangan saya bersama teman-teman agar tidak hilang karena lupa dan ditelan waktu.

Baiklah, kita mulai dengan apa itu kuliah SCD? Kuliah ini lebih dalam membahas rangkaian sekuensial yang sebelumnya telah dipelajari di kuliah Sistem Digital. Mungkin bisa disebut juga dengan SisDig 2 atau SisDig Lanjutan. Rangkaian Sekuensial adalah rangkaian yang outputnya dipengaruhi oleh input yang diberikan saat ini dan dalam “state/keadaan” apa rangkaian saat ini, sehingga memungkinkan kita untuk membuat seperti suatu memori dalam rangkaian. Contoh sederhananya adalah jika kita punya satu tombol kemudian 3 LED yang terhubung sebagai output rangkaian, dan kita ingin ketika kita mencet tombol untuk pertama kali LED biru yang aktif, kemudian ketika kita mencet yang kedua LED biru dan kuning yang aktif, dan ketika kita mencet yang ketiga LED hijau yang aktif. Hal ini bisa dirancang dengan menggunakan prinsip pada rangkaian sekuensial.

Di awal kuliah masih terasa biasa karena masih membahas minimisasi minterm menggunakan K-Map dan Quine McClusky dan belum tampak manfaatnya. Baru setelah masuk ke State Machine Design mulai terasa. “Wah gampang nih!” Waktu itu saya senang sekali karena saya rasa konsep ini akan mudah diaplikasikan dan sangat bermanfaat. Dan ketika masuk ke bagian Asynchronous-nya wedew rada pusing tapi keren. Kuliah oh kuliah berlanjut terus hingga di beberapa pertemuan terakhir tiba ketika Pak Yudi mengumumkan project yang harus diselesaikan di akhir semester. Ada 2 project, yang pertama adalah merealisasikan sebuah konsep sistem keamanan (yang menjadi soal terakhir dan tersulit di UTS) ke dalam hardware, yang kedua membuat asynchronous 8bit-adder menggunakan skema winery shop problem dengan VHDL.

Saya bukanlah mahasiswa pintar dan jenius, yah pas-pasan lah. Makanya kalau tidak disokong dengan semangat perjuangan yang tinggi bisa binasalah saya di kampus yang dipenuhi jenius-jenius nusantara ini. Jadi waktu Pak Yudi ngumumin projectnya saya langsung pesimis, waduh ini gimana caranya? Saya belum pernah mendesain apalagi sampe implementasi hardware. Apalagi yang kedua, VHDL! BIG DISASTER! Jawab soal UTS yang teoritis aja belum tentu bener, apalagi mesti dibuat ke dalam hardware yang bener-bener hukum fisika berlaku di sana dan kita ga bisa lagi make asumsi dan mengabaikan hal-hal. Akhirnya saya menaruh harapan besar pada teman-teman yang kelihatannya meyakinkan saat kuliah, semoga ada yang bisa ngajarin. Ini bukan mental mahasiswa yang baik. Tapi dengan jujur saya katakan bahwa itulah mental saya saat itu, sampah. Saat itu saya berharap bisa berpartner dengan orang-orang yang meyakinkan itu, tapi apa boleh buat ternyata mereka sudah punya calon partnernya masing-masing. Akhirnya saya bertanya di kelas saat itu siapa yang belum ada pasangannya, dan menjadi awal saya bersama Indra Sanusi menjadi satu kelompok untuk menyelesaikan project ini. Ya secara natural orang pinter nyari orang pinter juga kali ya buat jadi partnernya atau temen deketnya. Lah saya ini udah ga pinter ga punya temen yang cukup deket lagi di elektro, nasib.

Dua hari setelah project diumumkan, Pak Yudi minta tiap kelompok (yang terdiri dari 2 orang) mengumpulkan proposal. DUA HARI! Saya udah langsung mau skip aja, dan saya pikir temen-temen juga gitu. Ga bakal ada yang ngumpulin pikir saya, atau kalaupun ada paling cuma beberapa doang. Akhirnya dengan enggan saya melihat ulang jawaban UTS yang sempat saya potret dengan menggunakan C6-00 saya sebelum dikumpulkan. Saya belum sempat menyelesaikan jawabannya. Saya sendiri tidak terlalu yakin saya mengerjakannya dengan benar. Makanya saya tidak yakin juga akan mencantumkan jawaban UTS saya untuk proposal, selain memang mood lagi jelek untuk nyelesainnya. Singkat cerita beberapa jam lagi kuliah SCD dimulai dan berarti itu waktu untuk mengerjakan proposalnya habis. Saya menyerah. Indra di belahan tanah lain meng-sms saya menanyakan bagaimana proposalnya. Saya dengan enggan menjawab, gimana kalo kita ngumpulinnya gak hari ini, intinya gitu. Tapi Indra berisi keras kita harus bawa sesuatu ke kelas, walaupun itu coretan tangan, biar keliatan ada usahanya. Dan kata-kata itu benar-benar memaksa saya untuk menyalin ulang jawaban UTS saya dengan tangan ke dalam lembaran HVS menyebabkan saya tidak masuk kelas Arsikom. Dan datanglah saya ke kelas, nanya kanan kiri pada belum, ngelihat ke depan ternyata Felix dan Marcel udah. Tuh kan, seperti yang saya duga! Rada nyesel juga ninggalin kelas Arsikom sementara proposal ga jadi dikumpulkan di hari itu. Di akhir minggu saya dan Indra mengerjakan penyelesaian soal UTS itu, mengetikkan ke dalam proposal. Alhamdulillaah akhirnya jadilah proposal kita dengan menggunakan SR-Latch yang sangat ribet sintesis rangkaiannya. Dengan sedikit bangga telah menyelesaikan konsepnya, pada hari Senin saya mengumpulkan proposalnya dan menanya sedikit tentang hardware ke Pak Yudi. Dan saran dari Pak Yudi jangan pake SR-Latch, nanti clocknya susah, pake D-Latch aja. Jederr, artinya mesti sintesis rangkaian dari awal. Sabar sih sabar, tapi ga langsung dikerjain lagi soalnya waktu itu masih banyak yang harus diprioritasin. Ditundalah pengerjaan dari hari itu sampe seminggu sebelum pengumpulan dimana UAS mulai mereda. Oh iya, untuk project ini saya membagi tugas, Indra bagian VHDL dan saya yang hardware. Makanya saya lah yang mondar mandir ke Jaya Plaza untuk beli komponen-komponennya.

Sebenarnya waktu sejak diumumkannya project dan waktu pengumpulan (21 Desember) itu sekitar satu bulan atau lebih mungkin, saya lupa pastinya. Itu sangat cukup untuk menyelesaikan project susah parah sekalipun. Tapi masalahnya waktu itu kuliah masih aktif, dan PRAKTIKUM JUGA AKTIF, masuk masa ujian UAS, you can imagine now how the situation was driving me crazy.

Baik, di lain sisi praktikum Arsikom benar-benar membuat saya frustasi karena ketika pindah ke modul 4 dan masuk ke VHDL saya benar-benar tidak bisa mengerjakan sama sekali. Make VHDL aja sekali doang pas SisDig, mana lagi di praktikumnya disuruh ngebuat prosesor pake VHDL, mantep ajib! Waktu itu saya sadar betul bahwa tujuan saya datang ke ITB untuk belajar. Saya tidak terlalu peduli dengan nilai. Yang penting adalah saya dapat ilmu apa enggak? VHDL itu ibarat bahasa hardware description yang wajib dikuasai anak elektro, masa ga bisa, terus ga mau untuk bisa pula, parah banget. Dengan modal semangat belajar biar bisa ngerjain Arsikom dan Project SCD, maka dimulailah perjuangan!

Saya minta tolong ajarin ga ada yang respon. Akhirnya saya langsung nanya ke yang buat modul praktikumnya, yaitu kak Andri EL’06. Waktu itu kak Andri ngasih beberapa judul buku dan dengan perjuangan keras mempelajari VHDL akhirnya saya bisa juga dan mengupdate status seperti di bawah ini di facebook hehe.

Alhamdulillaah akhirnya selesai juga ngerjain praktikum arsitektur sistem komputer, simulasi single cycle processor MIPS di Altera Quartus. 

Awalnya saya desperate karena saya gak bisa ngerjain sama sekali waktu praktikum arsikom berubah dari bahasa C ke VHDL. Waktu itu saya minta bantuan temen-temen seangkatan buat ngajarin saya, tapi gak ada yang ngerespon, makin berat rasanya, seperti nasib praktikum saya bakalan end up di sini.

Tapi berkat referensi buku dari kak Andri Haryono (makasih banget kak!) dan semangat untuk mempelajari VHDL, alhamdulillaah saya bisa menyelesaikan praktikum ini tanpa sedikitupun nyontek kode teman, apalagi copas! :D

Kalo cuma mau nilai mah gak susah, tinggal copas beres. Tapi kemampuan individunya gak nambah. Kalo gitu abis wisuda cuma bisa nunjukin nilai doang dong ke orang lain?

Baru bisa simulasi berhasil aja rasanya udah seneng begini, apalagi kalo sampe implementasi hardware dan ngerasain bener-bener ngebuat processor ya. Hmm. Insya Allah ada saatnya nanti.

Allah tidak akan mengubah nasib suatu kaum, hingga mereka yang mengubahnya sendiri. Dengan ridha Allah tentunya.

Salam perjuangan!

Saya ga tau gimana hancurnya nilai praktikum karena saya tidak pernah mengumpulkan BCL dan Laporan tepat waktu setelah masuk modul 4 (kecuali yang terakhir) dan saya tidak terlalu peduli soal itu. Yang penting adalah proses pembelajaran saya dan apakah saya akan memilih untuk mendapatkan nilai dengan menyontek? Saya jawab tidak! Score almost means nothing for me. Saya sangat butuh ilmu dan saya tidak terlalu butuh nilai. Setidaknya sekarang saya sudah bisa lah sedikit-sedikit menggunakan VHDL. Saya patut bersyukur kepada Allah, karena dari VHDL inilah perjuangan dimulai.

Oke kembali lagi ke project SCD. Setelah vakum selama kurang lebih 3minggu, saya mulai melanjutkan lagi mengerjakan projectnya dengan mengubah state assignment menggunakan D-Latch sekarang. Oh ya saya ingat, untuk rangkaian kombinasionalnya kita disarankan menggunakan GAL dan mesti buat program khusus dengan menggunakan WinCUPL ditambah programmer untuk download program ke GALnya. Saya nanya ke Pak Yudi, Programmernya bisa dipinjam dimana, Pak Yudi bilang minjem ke Pak Anto di LSS. Pergilah saya beberapa hari kemudian meminjam Programmer ke Pak Anto di LSS. Ternyata Programmernya ada di Pak Waskita dan saya disuruh kembali besok. Esok hari saya kembali menanyakan apakah sudah ada Programmernya, ternyata Pak Waskita lupa membawa, dan saya harus kembali lagi keesokan harinya. Akhirnya bisa dibawa pulang juga tuh Programmer setelah mengisi surat peminjaman alat dari LSS.

Saya belum pernah sama sekali memrogram IC, jadi jangan tanya bagaimana bingungnya saya setelah dipinjamkan. Yang penting buat saya pinjem dulu, masalah bisa ga bisa tinggal belajar. Kalo mentok ya nanya. Dan betapa kagetnya saya User Manual Programmernya semua beraksarakan Han-Yu (China). Bu spasi Set! Yowes sabar, coba wae dulu. Masukin CD nginstall ga kompatibel sama Windows 7 karena itu Programmer lama dan dibuat untuk XP atau Vista. Yaelah masa mesti nginstall XP/Vista ke laptop lagi? Saya cari berbagai cara sambil mengirimkan pesan ke Pak Waskita menanyakan tentang cara penggunaannya. Pak Waskita membalas, dulu di XP makenya dan harus download software dari Web. Web? Saya cek di kotaknya, tercantum webnya www.top2048.com (silakan buka!) Saya ngubek2 link di web itu kok ga ada tanda tanda link download driver. Itu web apa iklan sih? Akhirnya saya googling mencari di forum-forum tentang drivernya untuk windows 7 dan ternyata oh ternyata webnya bukan seperti yang tercantum pada kotaknya. This is what Chinese do? Ingat, programmer ini cuma untuk memrogram GAL dan memakan waktu yang cukup lama hanya untuk bisa menginstal drivernya di laptop saya. Project ini masih panjang.

Setelah mendapatkan driver dan saya Install muncul masalah lain di driver koneksi USBnya. What? Sabar sedikit akhirnya bisa juga diotak-atik sedemikian rupa dan saatnya memrogram. Pelajari lagi bahasa WinCUPL. Trial Error, banyakan errornya daripada benernya. Baik programmer maupun Compiler WinCUPL sama-sama gak niat dibuat kayaknya. Kok susah makenya dan sering terjadi pesan error padahal ga ada yang salah dan tiba-tiba bener sendiri. Sungguh ajaib tapi nyata! Sabar. Setelah bisa dicompile di WinCUPL, file hasil kompilasi *.jed diimport ke driver GAL dan pemrograman GAL dimulai. Setelah deprogram terus apa? Lah kan bingung. Cara ngeceknya gimana? Saya berpikir sejenak. Lalu keluar solusi, ya lansung pasang aja ke breadboard terus cek apakah benar ouputnya kalo dimasukin kombinasi inputnya. Dan melihat LED menyala di output sesuai dengan harapan hati rasanya senang bukan main. Ingat, ini baru GAL. Tapi progress cukup baik untuk seorang yang belum pernah menggunakan Programmer, dapet dapet tulisan China semua, hingga bisa memrogram itu, “sesuatu” sekali.

GAL ini pintu gerbang kesuksesan project buat saya. Soalnya kalo GAL udah berhasil, yang lain pasnag-pasang aja, hubungkan kawat, troubleshoot kalo terjadi error. Dan troubleshooting inilah yang memakan waktu sangat lama.

Saya langsung mencoba memasangkan komponennya di breadboard tanpa simulasi di software terlebih dulu. Dan hasilnya GAGAL TOTAL. Keesokan hari, Hudi datang ke kos saya bertanya tentang GAL. Ini dia bagian menariknya. Bincang-bincang seputar project dan saya nanya-nanya soal penggunaan software elektro buat desain PCB dan simulasi. Nah, Hudi langsung meminta saya untuk membuka PROTEUS ISIS. Dia menunjukkan saya bagaimana cara simulasi yang sangat sederhana, Vcc-LED-resistor-GND. Play simulation, buletan LED jadi merah, weee, gitu doang? Kemudian PROTEUS lah yang menyelamatkan saya dari trial error yang berkepanjangan. Saya yakin bahwa solusi saya tentang konsep rangkaian tidak salah dan sangat tepat, kalo teori 100 dah! Kalo teori ya hehe

Hudi tidak tau bagaimana cara simulasi GAL di PROTEUS ISIS, sehingga kalo mau simulasi berarti harus buat mintermnya satu-satu, sungguh hal yang memuakkan. Saya pikir gak mungkin gak ada. Dimulailah penjelajahan GAL di Library ISIS dan saya mendapatkan… NOTHING! Tapi terbesit ide bagaimana kalo PLD? Jangan-jangan ada. Dan benar saja ada! Tapi ATMEL16V8, bisakah? Just try. Terus setelah blok PLDnya ada ngisi programnya gimana? Iseng-iseng klik dua kali eh muncul kotak dan di salah satu textboxnya ada yang minta file HEX atau JED. Hurraaay! Dan simulasi menggunakan GAL bisa dilakukan di PROTEUS untuk pertama kalinya dalam sejarah pengerjaan project SCD oleh seorang mahasiswa pas-pasan.

Namun tidak berjalan sebagaimana mestinya, perlahan tapi pasti saya menemukan kesalahannya terdapat pada clock yang terlalu cepat masuk ke dalam GAL. Oleh karena itu harus didelay. Dan benar! Dengan berbagai koreksi lainnya untuk membuat rangkaian hazard free dan lain lain akhirnya saya benar-benar berhasil menyelesaikan rangkaiannya DI PROTEUS. Setidaknya secercah harapan muncul dalam lubuk hati saya. Saya senang sekali waktu itu. Saya adalah orang pertama yang menyelesaikannya. Saya nyaris tidak percaya.

Tantangan selanjutnya adalah implementasi ke hardware. Ada banyak yang harus diperbaiki ketika implementasi ke hardware. Karena ternyata tidak semua yang berhasil disimulasi akan berjalan mulus pula di hardwarenya. Tetapi tanda-tanda akan keberhasilan selalu muncul, troubleshoot, shoot, and shoot again, hingga akhirnya tadi pagi demo untuk project saya lakukan, semua state berjalan benar walaupun agak unstable, tetapi itu sebuah prestasi buat saya.

Sebenarnya keberhasilan project ini bukan karena semangat saya saja. Banyak juga sumbangsih dari teman yang datang ke kosan saya. Ide-ide memperbaiki rangkaian itu datangnya kadang dari hal-hal yang kita tidak sangka. Oh ya, sejak berhasilnya saya memrogram GAL tiba-tiba banyak yang sms dan maen ke kosan. Inilah tipe gula-semut. Ketika anda dirasa penting oleh orang lain, mereka akan menghubungi anda. Berkali-kali kita mengerjakan project sampe subuh. Dan saya pernah berhari-hari terus-menerus melakukan troubleshoot, sering juga saya sebut, dari subuh ke subuh lagi. Haha.

Menyelesaikan project ini memang tidak gampang. Ada banyak ilmu yang saya dapatkan dari mengerjakan project ini. Walaupun ketika berteori hal ini seperti mudah, tetapi prakteknya tidak seperti mereplika apa yang ada di teori. Untuk saya, praktek dan teori perbedaannya seperti langit dan bumi. Praktek memberikan kita ilmu yang begitu luas. Sedangkan teori sekompleks apapun hanya bisa seperti mobil tanpa ban. Kita mungkin punya mobil dengan teknologi yang canggih, tapi tanpa ban dia tidak bisa jalan dan digunakan, NONSENSE!

Saya pikir ini bisa dimisalkan dengan riset. Saya duluan yang minjem Programmer, saya duluan yang menyelesaikan simulasi, saya duluan yang implementasi ke rangkaian. Maka sepantasnya saya yang paling tau soal permasalahan dan ilmu lainnya terkait project ini. Ingat, seorang mahasiswa pas-pasan. Konsekuensinya banyak waktu yang saya habiskan untuk menyelesaikan project ini dibanding teman-teman lainnya. Lah iya, wong mereka tinggal nanya saya, gampang, ga usah ngatasin masalah, udah langsung dapet solusi. Tapi ilmu itulah yang paling penting buat saya. Bukannya nilai tidak penting. Nilai itu tidak terlalu penting. Sedangkan yang belakangan baru mulai terlambat tahu dan mau tidak mau saya lah orang yang paling depan dalam project ini, menjadi pembuka semak belukar permasalahan dalam hutan rangkaian. Karena saya tidak mendapati tempat untuk bertanya, teman-teman lain juga lebih di belakang saya posisinya, ya mau ga mau GO AHEAD!

Hal yang menyakitkan hati adalah ketika saya mendengar seorang teman berkata “oh gini doang nih gampang!” “Ye iye lu mah udah ngeliat punya gw bilang gampang, coba buat dari awal, mungkin kepikiran aja kagak!” Entah kenapa walaupun kita tidak kehilangan apa-apa, ketika hasil kerja kita digunakan orang lain itu memang sedikit sakit hati, apalagi kalau tidak diapresiasi dengan layak. Pelajaran di sini adalah cobalah hargai kerja keras orang lain.

Nah urusan beli-beli komponen, saya hobi nitip ke Hudi. Kata dia sampe mbak-mbak Duta Irama di Jaya Plaza apal haha. Hampir tiap hari ke sana soalnya. Bumbel Bee (motor vixion-nya hudi) memang tidak merintih lelah, tapi dia tetap butuh bensin haha.

Tibalah hari pengumpulan. Di malam sebelumnya Hudi dan Pranata di kos saya ngerjain project sampe jam 3 malam, bahkan mau pagi. Dan setelah itu di pagi hari rame sekali di kos saya, anak-anak yang belum ngerti sama sekali dateng untuk nanya-nanya. Rangkaian saya juga belum berhasil dengan baik. Tapi ya mau gimana lagi, that day was the dead line! Dengan PD ngadep Pak Yudi yang ternyata sedang melihat demo project Sismik temen-temen. Waktu sampe di ruangan, Indra langsung nanya kan, “pak yang PRS gimana?” Pak Yudi balik nanya, “Udah berhasil belom?” “Belom Pak.” “Udah tanggal 4 Januari.” “APA?” Rasanya udah bela-belain begadang, exhausted, biar duluan ngumpul, seperti sia-sia. Lagi-lagi sabar. 4 Januari berarti ada 2 minggu. Seminggu saya pake untuk liburan sejenak bersama keluarga. Seminggu setelahnya mulai lagi!

Tanggal 2 Januari, rangkaian saya juga belum berhasil. Saya bingung karena tidak masuk akal permasalahannya ada pada GAL delay clock yang tidak keluar outputnya ketika deprogram XOR. Di HME suara-suara pesimis mulai terdengar dari teman-teman membuat saya pesimis pula. “Ini gak masuk akal, udah ah sampe sini aja!” Kemudian saya pikir ulang, dan saya terdorong untuk jangan menyerah, pasti ada salahnya, dan saya harus bisa menemukannya. Ingat, jangan menyerah sebelum FINISH. Benar saja, petunjuk dari Allah datang, ternyata harus menggunakan pull-down dan pull-up resistor di input GALnya. Keren.

Akhir kata, dengan perjuangan yang terus menerus tanpa mengenal waktu dan lelah, jadilah rangkaian saya, dan selesai lah project PRS yang berminggu-minggu saya lakukan.

Mungkin ketika melihat rangkainnya anda yang non-teknik elektro akan merasa aneh, tidak ada yang special, nyala sih cuma lampu lampu doang ngapain? Tapi untuk mengatur jutaan electron agar mengalir membentuk keadaan yang kita inginkan itu bukan suatu hal yang “GINI DOANG?”.

Kita pasti bisa kalau kita MAU berusaha.Terima kasih sudah membaca, salam perjuangan!

Advertisements

6 thoughts on “Project Perancangan Rangkaian Sekuensial

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s