Selasa, 30 Desember 2014

Picoblaze

Microblaze adalah 32-bit soft-core prosesor yang didesain khusus untuk di implementasikan pada produk-produk FPGA Xilinx. Disebut soft-core karena prosesor ini didesain mengunakan rangkaian logika (baik menggunakan skematik maupun VHDL) sehingga arsitektur soft-core prosesor bersifat reconfigurable atau bisa dikonfigurasi ulang sesuai dengan kemauan desainer. Microblaze sendiri memiliki arsitektur 32-bit RISC. Seri 8-bit nya dikenal dengan istilah Picoblaze.

Untuk memudahkan pemahaman bagi anda yang pemula, pada level implementasi kita bisa membayangkan microblaze ini sebagai sebuah prosesor 32-bit dengan arsitektur RISC yang sudah fixed dan tidak bisa di utak ati layaknya sebuah IC mikroprosesor yang kita beli di pasaran. Jadi seadainya pun anda cukup mahir untuk mengutak atik atau memodifikasi arsitektur microblaze pada level VHDL maka soft-core prosesor hasil modifikasi anda tersebut bisa jadi sudah harus disebut dengan nama yang lain selain microblaze (misalnya agusblaze) meskipun modifikasinya merupakan hasil turunan dari arsitektur microblaze. Oleh karena itu microblaze yang dimaksud dalam tulisan ini adalah mengacu pada soft-core prosesor yang asli atau standard seperti yang dirilis oleh Xilinx.
Oleh karena microblaze hanyalah sebuah prosesor, maka microblaze tidak bisa bekerja sendiri. Tanpa peripheral pendukung seperti memori, IO, dan peripheral lainya, microblaze tidak ada fungsinya. Contoh arsitektur sistem yang menggunakan microblaze seperti terlihat pada gambar diatas. Jadi dalam perancangan sistem digital, menggunakan microblaze pada dasarnya seperti merancang mikrokontroler dengan fitur dan spesifikasi sendiri. Menggunakan microblaze memiliki beberapa keuntungan bila dibandingkan dengan menggunakan IC mikrokontroller yaitu :

Rangkaian digital yang dibangun berbasis microblaze pada dasarnya adalah reconfigurable sehingga kita dapat melakukan modifikasi rangkaian kapan saja sesuai dengan kebutuhan dan keinginan.
Performance sistem dapat kita optimalkan sesuai dengan target kebutuhan karena kita memiliki keleluasaan penuh untuk mengatur fitur-fitur dan peripheral yang kita gunakan.
Memungkinkan aplikasi multi-prosesor dalam sebuah chip (Multi-processor on Chip), yaitu menanamkan lebih dari satu prosesor dalam sebuah IC, untuk meningkatkan performance khususnya execution time.
Kita juga dapat dengan mudah mengkolaborasi rangkaian digital buatan kita sendiri (full-custom) dengan microblaze. Hal ini sangat membantu meringankan beban kerja microblaze karena untuk fungsi-fungsi tertentu dapat didelegasikan dan dikerjakan oleh rangkaian lain diluar microblaze sehingga pada akhirnya akan meningkatkan unjuk kerja/performance sistem secara keseluruhan. Contohnya adalah aplikasi co-processor floating point unit untuk mendukung operasi aritmatika data-data yang bertipe floating point. Rangkaian co-processor ini dapat kita desain dalam rangkaian logika tersendiri kemudian dibuatkan mapping memori sehingga dapat diakses oleh prosesor secara langsung.

Meskipun dari beberapa hal microblaze memberikan keuntungan dibandingkan dengan mikrokontroler seperti disebutkan diatas, namun tetap saja ada sisi kelemahanya. Kelemahan ini lebih cenderung pada teknis sebagai berikut:

Dalam proses desain sistem digital berbasis microblaze diperlukan 2 tahapan besar yaitu
a) konfigurasi hardware dan
b) perancangan software.
Tahapan pertama yang perlu dilakukan adalah mengkonfigurasi hardware, yaitu menspesifikasikan peripheral-peripheral yang kita butuhkan, misalnya sistem kita memerlukan 1 buah microblaze, 32 KB memory on chip, 1 UART, 1 SPI, 2 timer dll. Setelah peripheral-peripheral tersebut didefinisikan selanjutnya kita mengkonfigurasi hardware sesuai dengan yang telah dispesifikasi, langkah ini sering disebut dengan proses synthesizing.  Hasil sintesis ini bisa kita umpamakan berupa sebuah mikrokontroler dengan fitur-fitur yang telah kita buat fixed sesuai spesifikasi diatas. Tahap kedua setelah konfigurasi hardware selesai (sudah terbentuk sebuah mikrokontroler) adalah menuliskan program yang kemudian akan kita kompile dan selanjutnya kita download kedalam mikrokontroler tersebut. Oleh karena kita melakukan dua tahapan besar seperti diatas tentu kita menghabiskan waktu lebih lama pada saat merancang sistem menggunakan microblaze dibandingkan dengan menggunakan mikrokontroler langsung.
Mempelajari microblaze beserta implementasinya membutuhkan pengetahuan yang jauh lebih mendalam dibandingkan belajar mikrokontroler, karena untuk merancang sistem berbasis microblaze kita perlu memahami arsitektur dan cara kerja mikroprosesor, bagaimana mapping memory, pengalamatan I/O dan lain sebagainya. Hal-hal tersebut perlu dipahami dengan baik karena software yang kita buat untuk ditanam kedalam sistem microblaze kita harus cocok dan sesuai dengan arsitektur sistem keseluruhan. Contoh misalnya peripheral UART saat ini ditempatkan di alamat A, tetapi di kemudian hari kita mengkonfigurasi ulang arsitekturnya menjadi di alamat B, maka otomatis software yang pernah kita buat harus disesuaikan yaitu dengan mengganti alamat peripheral UART dari alamat A menjadi alamat B. Jika software tidak disesuaikan maka tentu saja akan mengakibatkan sistem tidak bekerja sebagaimana mestinya.
Dalam proses produksi, implementasi rangkaian digital dengan FPGA, termasuk aplikasi microblaze lebih cocok dilakukan pada tahap prototyping sebuah produk. Setelah rangkaian digital selesai di uji dan di evaluasi baru tahap selanjutnya desain tersebut dapat di produksi secara masal dalam bentuk kemasan sebuah IC. Proses prototyping menggunakan FPGA ini sangat bermanfaat untuk membantu mempercepat dan mempermudah desain dan evaluasi, karena desain masih memungkinkan di modifikasi atau di konfigurasi ulang sesuai keperluan untuk penyempurnaan.

referensi

Tidak ada komentar:

Posting Komentar