- AMD MicroBlaze V adalah IP prosesor RISC-V softcore untuk digunakan di dalam AMD adaptive SoC dan FPGA, terintegrasi dengan alur desain Vivado dan Vitis
- Sambil mempertahankan kompatibilitas perangkat keras dengan desain MicroBlaze yang ada, prosesor ini menargetkan portabilitas perangkat lunak berbasis ISA RISC-V dan pemanfaatan ekosistem open source
- Dapat mengonfigurasi set instruksi dasar RV32I·RV64I, serta memilih ekstensi M/A/F/C dan ekstensi manipulasi bit ZBa, ZBB, ZBc, ZBs
- Menyediakan konfigurasi preset mulai dari mikrokontroler hingga prosesor aplikasi, serta mencakup 4 opsi pipeline dan fitur keselamatan seperti dual-core lockstep dan TMR
- Dapat ditargetkan ke semua perangkat AMD adaptive SoC atau FPGA yang didukung Vivado Design Suite tanpa biaya tambahan, tetapi RV64I dan Memory Protection Unit masih Early Access, sementara Memory Management Unit berada pada tahap roadmap
Prosesor Soft RISC-V untuk AMD adaptive SoC dan FPGA
- AMD MicroBlaze V adalah IP prosesor RISC-V softcore untuk AMD adaptive SoC dan FPGA
- Berbasis arsitektur set instruksi (ISA) RISC-V, dan menyediakan arsitektur yang dapat dikonfigurasi secara modular untuk aplikasi sistem embedded
- Developer dapat menargetkan MicroBlaze V ke perangkat AMD adaptive SoC atau FPGA yang didukung Vivado Design Suite tanpa biaya tambahan
- RISC-V adalah ISA standar open source yang dikelola oleh organisasi nirlaba RISC-V Foundation, dan AMD telah menjadi anggotanya sejak 2020
Konfigurasi ISA RISC-V dan Portabilitas
- MicroBlaze V berbasis ISA open source yang didukung oleh ekosistem perangkat lunak dan solusi di seluruh industri
- Tujuan desainnya adalah memudahkan migrasi perangkat keras dari desain prosesor MicroBlaze yang sudah ada, serta meningkatkan portabilitas perangkat lunak untuk desain RISC-V
- Cakupan dukungan ISA yang dapat dikonfigurasi:
- RV32I dan RV64I Base Integer Instruction Set
- Ekstensi M untuk perkalian dan pembagian
- Ekstensi A untuk instruksi atomik
- Ekstensi F untuk floating point
- Ekstensi C untuk kompresi kode
- Ekstensi ZBa, ZBB, ZBc, ZBs untuk manipulasi bit
- Fitur kompresi kode digunakan untuk mengurangi ukuran kode dan menghemat memori desain
Arsitektur, Performa, dan Fitur Keselamatan
- Tersedia pilihan konfigurasi preset yang disesuaikan untuk berbagai cakupan aplikasi, mulai dari mikrokontroler hingga prosesor aplikasi
- Menyediakan 4 opsi pipeline untuk optimasi area atau performa
- Juga mencakup mekanisme keselamatan opsional untuk sistem yang kritis terhadap keselamatan
-
Dual-core lockstep
- Triple modular redundancy(TMR)
-
Alur Desain Berbasis Vivado·Vitis dan Periferal
- MicroBlaze V menyediakan alur desain yang terintegrasi dengan Vivado Design Suite dan Vitis software tools
- Kompatibel dengan semua AMD adaptive SoC dan FPGA yang didukung alat desain Vivado
- Dapat digunakan melalui antarmuka pengguna grafis (GUI) dan antarmuka command-line (CLI)
- Dengan memanfaatkan IP yang dioptimalkan, subsistem prosesor MicroBlaze V terintegrasi dapat ditempatkan di dalam programmable logic, dengan tujuan mengurangi jumlah komponen sistem dan waktu pengembangan
- Kategori periferal utama yang dapat ditambahkan dengan metode drag-and-drop:
- General Purpose: Multichannel DMA, Streaming FIFO, Timer / Watchdog, Mutex / Mailbox
- I/O: UART, USB 2.0, SPI, GPIO, PWM
- Video: HDMI Camera/Display Interface, MIPI-CSI, MIPI-DSI, Video DMA
- Memory: DDR, Quad SPI, SDRAM
- Networking: Ethernet Subsystem, Controller Area Network
Contoh Konfigurasi, Dokumentasi, dan Status Dukungan
- Contoh konfigurasi desain terdiri dari dua jenis: MicroBlaze V Microcontroller dan MicroBlaze V with Memory Protection Unit
-
Konfigurasi MicroBlaze V Microcontroller
- 32-bit Processor Core RV32IMAFC
- JTAG Debug Interface
- Tightly Coupled Local Memory
- SPI controller, I2C Controller, UART
- Interrupt Controller, Timer, GPIO
-
Konfigurasi MicroBlaze V with Memory Protection Unit
- Seluruh Microcontroller Preset Blocks
- Instruction Cache
-
Memory Protection Unit
- Data Cache
- Memory Controller
-
Dokumentasi dan Sumber Daya Dukungan
- MicroBlaze V Processor Quick Start Guide: memandu proses membuat sistem prosesor AMD MicroBlaze V dasar menggunakan desain preset prosesor
- MicroBlaze V Processor Reference Guide: menyediakan informasi tentang prosesor soft MicroBlaze V 32-bit dan 64-bit yang disertakan dalam AMD Vivado Design Suite
- MicroBlaze Debug Module V Product Guide: menyediakan spesifikasi desain core MDM V yang memungkinkan debugging berbasis JTAG untuk satu atau lebih prosesor MicroBlaze V
- Webinar: Getting Started with Zephyr® RTOS on the AMD MicroBlaze™ V Processor: membahas pengaturan dan konfigurasi Zephyr, serta build aplikasi target MicroBlaze V
- Documentation: kumpulan panduan pengguna dan panduan produk MicroBlaze V
- Wiki: membahas fleksibilitas untuk memilih kombinasi periferal, memori, dan antarmuka yang diperlukan
-
Status Dukungan
- Microcontroller configuration tersedia sebagai Production
- AMD MicroBlaze V dengan RV64I dan Memory Protection Unit berstatus Early Access
- AMD MicroBlaze V dengan Memory Management Unit berada dalam roadmap
1 komentar
Komentar Hacker News
Bisa membingungkan jika tidak ingat bahwa AMD baru-baru ini mengakuisisi Xilinx
Ke depannya, kemungkinan akan makin sering ada produk Xilinx baru yang memakai nama AMD
Padanan di kubu Intel kurang lebih adalah Altera NIOS II
Menurut komentar Reddit [1], ini pada dasarnya seperti menempelkan dekoder instruksi RISC-V di bagian depan RTL MicroBlaze yang sudah ada
Dari sudut pandang “mari buat core RISC-V terbaik”, ini tampak tidak masuk akal, tetapi memang itu bukan tujuan Xilinx/AMD sejak awal
MicroBlaze adalah contoh bagus dari CPU RISC eksekusi berurutan yang membosankan untuk ceruk yang membosankan, dan bagi vendor FPGA, soft core itu semacam produk umpan. Ia membantu menjual silikon, tetapi tidak menghasilkan uang dengan sendirinya. Ini lebih seperti “lem integrasi” daripada area FPGA yang menentukan performa, jadi “cukup bagus” memang sudah cukup
Jika AMD benar-benar memakai ulang RTL MicroBlaze, mereka bisa mempertahankan firmware yang ada (core, FPU, debug, periferal, dll.) dan perangkat lunaknya (HAL, compiler, driver). Ini sangat menarik baik dari sisi pemasok maupun dari sisi pengguna yang ingin beralih ke core MicroBlaze baru tanpa rasa sakit
1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...
Saya tidak akan bergantung pada informasi itu
Meski begitu, ia memang punya antarmuka eksternal yang sama seperti MicroBlaze lama, jadi dari sudut pandang perangkat keras, ini tetap merupakan pengganti yang bisa langsung disisipkan ke desain lama
Itulah sebabnya para CEO miliarder Xilinx dan Altera mungkin menggeleng prihatin saat mendengar Jensen Huang terus mengucurkan uang ke software stack Nvidia. Suatu hari nanti mereka akan belajar di mana nilai yang sebenarnya berada
Bisa jelaskan seberapa penting pengumuman ini bagi RISC-V?
Tentu saja, banyak juga core pihak ketiga dari GitHub yang dipakai, tetapi integrasi resmi dan dukungan di IDE serta toolchain sangat berarti bagi banyak pelanggan
MicroSemi sudah menyediakan soft core RISC-V sejak 2017, dan sejak akhir 2020 juga menyediakan hard core seperti PolarFire SoC. Contohnya BeagleBoard Fire baru, Icicle, dan lain-lain
Lattice mengumumkan soft core RISC-V resmi pertamanya sekitar Juni 2020, telah mengumumkan kolaborasi dengan SiFive pada Desember 2019, dan pada pertengahan 2021 juga merilis versi yang ditingkatkan seperti core 800 LUT
Intel memperkenalkan Nios V pada Oktober 2021
Hal-hal seperti Tensilica dan ARC juga telah kehilangan banyak nilai tambah di area ini. Dari pengalaman saya yang pernah mem-porting kernel langsung ke MicroBlaze, ini kurang lebih adalah RISC berpipeline klasik di kisaran 20 ribu gerbang, berada di antara MIPS dan SH4
Bagian paling menarik dari pengumuman ini adalah bahwa AMD/Xilinx masuk cukup dalam sampai-sampai mereka mendefinisikan ulang istilah bermerek “MicroBlaze” itu sendiri, alih-alih membuat nama baru dan tetap mendukung pembaruan MicroBlaze lama
I/O-nya tidak seragam, dan DRAM bawaan papan pun tidak bisa dipakai. Akan keren jika ada soft core RV32 dengan dukungan resmi di Artix-7
Saya dulu cukup sering memakai MicroBlaze dan sebenarnya lumayan bagus, tetapi sangat tertutup sehingga saya tidak pernah terpikir memakainya untuk hal lain selain pengujian atau pendidikan. Saya bukan pendukung fanatik RISC-V, tetapi untuk area seperti ini, ia memang cocok. Karena idenya adalah “kami menyediakan alat yang memakai instruction set yang mungkin sudah Anda investasikan, dan kami tidak akan berusaha mengunci Anda ke toolchain kami juga”
Jika AMD/Xilinx ingin mengunci pengguna di lapisan bawah instruction set, saya masih bisa menerimanya sampai batas tertentu. Bagaimanapun juga, entah membeli FPGA atau komponen katalog yang mungkin suatu hari akan muncul, kemungkinan besar Anda tetap harus membayar biaya perangkat keras
TMR sendiri bukan hal baru di RISC-V, tetapi artinya banyak proyek yang sudah memakai MicroBlaze, serta proyek baru yang ingin memakai MicroBlaze, sekarang bisa memakai RISC-V
RISC-V sudah cukup populer di pasar itu
Saya penasaran seperti apa posisi penggunaan MicroBlaze V dibandingkan, misalnya, SERV https://serv.readthedocs.io/en/latest/servant.html
Maksudnya, selain persetujuan resmi dari pembuat chip, satu-satunya kelebihan unik MicroBlaze V tampaknya adalah kecepatan. Bukankah CPU FPGA biasanya dipakai untuk pekerjaan yang tidak terlalu sensitif terhadap waktu? Untuk pekerjaan cepat dan sensitif waktu, bukankah tujuannya justru agar fabric FPGA yang menanganinya bersama antarmuka I/O on-chip?
MicroBlaze memungkinkan Anda memilih berbagai opsi konfigurasi dan periferal, lalu secara drag-and-drop benar-benar menyusun soft core Anda sendiri. Termasuk juga SDK untuk aplikasi pengguna dan alat debug untuk mencari akar masalah
Jika mengembangkan dengan SERV, tidak akan mengejutkan bila waktu pengembangannya memakan beberapa orde magnitudo lebih lama hanya karena kematangan alatnya masih rendah
Munculnya softcore baru memang bagus, tapi rasanya tidak perlu sampai mengotori namespace
MicroBlaze sudah merupakan nama arsitektur yang bisa dicari orang
Harusnya cukup diberi nama seperti AMDcoreV
Tinggal kompilasi ulang, dan kali ini bisa memakai alat standar industri yang tepercaya seperti gcc, binutils, llvm tanpa harus berurusan dengan tool yang lemah, proprietari, dan kustom berkualitas rendah
Apakah ada komponen semacam PSP atau ME di dalamnya? Saya sudah muak dengan CPU black box yang mencurigakan, tidak aman, dan bahkan tidak bisa ditambal
Apakah core ini sendiri open source?
Kalau harus bayar lisensi, saya tidak akan tertarik dengan pengumuman ini karena sudah ada alternatif gratis
Bisa diasumsikan core ini dioptimalkan dengan baik untuk menggunakan sumber daya FPGA Xilinx secara efisien, dan itu kemungkinan menjadi keunggulannya dibanding alternatif lain
Bahkan komentar dalam kode sumbernya pun tidak dihapus
Akan bagus kalau ada ikhtisar yang membandingkan softcore RISC-V seperti ini dalam satu tempat
Misalnya apakah open source, berapa skor CoreMark-nya, seberapa besar ukurannya, dan sebagainya
neorv, serv, vexrisc, nios v, microblaze v, dll.
Apakah ada kit pengembangan untuk mencoba ini? Bagaimana cara memulainya?
Karena ini desain FPGA Xilinx, masuk akal untuk memulai dari board pengembangan Xilinx
https://www.xilinx.com/products/boards-and-kits/cost-optimiz...
Kalau yang dibutuhkan hanya softcore RISC-V, ada banyak pilihan di luar ekosistem Xilinx juga. Secara pribadi saya lebih suka board yang didukung baik oleh yosys/nextpnr
0. https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards
Ini adalah langkah awal, dan pertanda baik
Hanya saja akan lebih baik kalau ini core 64-bit daripada core 32-bit. Soalnya jika menulis jalur kode assembly RISC-V 64-bit, itu benar-benar bisa dipakai ulang di desktop, server, dan embedded
Kalau menginginkan core 64-bit, kemungkinan Anda memang bukan target pasarnya
Gagasan memakai ulang assembly RISC-V 64-bit di desktop, server, dan embedded juga tidak realistis. Desktop dan server pada praktiknya hampir selalu 64-bit, sedangkan embedded kebanyakan memakai core 32-bit, jadi irisan kesamaannya tidak banyak
Bukan cuma berbeda 32-bit dan 64-bit, lingkungan pemrogramannya juga sangat berbeda dalam hal kompleksitas sistem, prosedur boot, dan cara berinteraksi dengan dunia luar
Singkatnya, Anda harus memilih perangkat target lalu menulis kode yang sesuai untuk itu. Kalau ingin mudah dipindahkan antarberbagai jenis perangkat, sebaiknya gunakan bahasa lain, bukan assembly