17 poin oleh khwl1026 2026-01-07 | 6 komentar | Bagikan ke WhatsApp

Memperkenalkan basic_RV32s, yang memungkinkan Anda mempelajari dasar-dasar desain CPU RISC-V melalui praktik menggunakan 4 desain CPU dan 2 desain SoC.

Ringkasan basic_RV32s

  • softcore CPU RISC-V RV32I yang dapat berjalan di FPGA dan dibuat selama 6 bulan saat menjalani wajib militer
  • Mencapai performa Dhrystone 1.11 DMIPS/MHz, Coremark 1.10 Coremark/MHz
    Termasuk performa papan atas di antara makalah CPU berbasis RV32I yang dirancang di Korea.
    (merujuk pada 11 makalah yang menyertakan benchmark RV32I dari total 126 makalah di RISS, per tanggal penulisan)
    (berjalan pada @50MHz)
  • Proses desain CPU bertahap dan desain SoC
    • 3 core single-cycle, (37F, 43F, 46F)
    • 1 core pipeline 5 tahap, (46F5SP)
    • 2 desain SoC yang dilengkapi core pipeline
      (46F5SP_SoC - Debug, Benchmark)
  • Abstraksi modul tingkat tinggi yang intuitif dan mudah dipahami serta desainnya
  • Menyediakan berbagai dokumen untuk mempelajari desain CPU RISC-V
    • Excel cheatsheet RV32I
    • jurnal pengembangan, catatan debug
    • pedoman desain arsitektur
    • dokumen penjelasan logika untuk seluruh arsitektur dan tiap modul
    • pedoman porting bare-metal
      • pedoman build RISC-V GNU GCC Toolchain RV32I
      • pedoman menjalankan benchmark Dhrystone bare-metal RV32I, dll.
  • Menyediakan kode berstruktur dual format: clean code tanpa komentar dan kode dengan komentar
  • Menyediakan diagram blok arsitektur tingkat sinyal
  • Dua mahasiswa tahun kedua mengirimkan makalah secara mandiri dan mempresentasikannya di ISOCC 2025
  • Terdaftar di repositori pembelajaran resmi RISC-V riscv/learn
    • Learning Resources - Intermediate-Level Resource

Latar belakang pengembangan

Pada 15 Desember 2024, saat menjalani wajib militer, saya memulai proyek membuat CPU secara langsung bersama seorang teman seangkatan. Baru-baru ini, ternyata sudah genap satu tahun!

Membuat CPU RISC-V berdasarkan teori dasar arsitektur komputer relatif mudah dipelajari karena teorinya sangat kaya dan tersedia banyak buku ajar. Namun ketika benar-benar duduk di depan keyboard, persoalannya terasa berbeda.

Meskipun ini adalah pertama kalinya saya memulai proyek yang layak dengan VerilogHDL yang hanya dipelajari secara dangkal di kampus, saya menyadari bahwa hampir tidak ada contoh open source RISC-V nyata yang disertai dokumen, manual, dan pedoman untuk membuat CPU RISC-V, melampaui sekadar kemampuan coding. (berdasarkan riscv/learn - open implementations.)

Tentu saja, membongkar dan menganalisis core yang sudah diimplementasikan seperti NEORV32 atau DarkRISCV adalah cara belajar yang baik, tetapi untuk persoalan desain seperti filosofi desain dan catatan pengembangan, cukup sulit untuk memahami dan menemukan dasar atau alasan pasti di balik desain tersebut.

Karena itu, saya memutuskan untuk memperluas proyek ini bukan hanya sebagai implementasi open source CPU RISC-V, tetapi juga menjadi pedoman open source menyeluruh untuk membuat CPU RISC-V RV32I. Saya merasa rekaman pertumbuhan seorang pemula bisa menjadi jejak yang baik bagi para pemula berikutnya.

Pengenalan basic_RV32s

Seperti tertulis pada ringkasan di atas, proyek ini mencakup log pengembangan, dokumen tentang desain core, serta catatan kesalahan terkait pembuatan CPU RISC-V, dan menargetkan pemula desain hardware RISC-V seperti saya dengan arsitektur berbasis metodologi Patterson-Hennessy.

Desain intinya dimulai dari arsitektur 37F yang mendukung 37 instruksi pada RV32I, lalu disajikan dalam bentuk bertahap yang berkembang sebagai berikut.

  • 37F : arsitektur dasar, single-cycle.
  • 43F : mendukung 6 instruksi ekstensi Zicsr
  • 46F : mendukung instruksi EBREAK, ECALL, mret
  • 46F5SP : ekstensi pipeline 5 tahap dengan data forwarding dan prediktor cabang dinamis FSM 2-bit

Untuk mengimplementasikan core di FPGA, saya merancang 46F5SP_SoC dan membuatnya dalam dua versi.

  • Versi debugging
    Sambil melakukan debug instruksi, Anda dapat melihat proses eksekusi langkah demi langkah melalui komunikasi UART dengan menekan tombol.
  • Versi benchmarking
    Dengan menjalankan Dhrystone atau Coremark, hasilnya bisa diperoleh langsung melalui UART.

46F5SP_MMIO_SoC yang baru diperbarui mengimplementasikan MMIO yang mendukung output UART sehingga menyediakan fungsi printf. Jika SoC ini dikompilasi dengan tepat melalui file BSP seperti linker, boot script, dan syscall, Anda dapat memperoleh langsung hasil dari berbagai program C seperti Dhrystone 2.1 atau Coremark.

Penutup

Kami berharap semangat kami terhadap RISC-V bisa membantu para pemula untuk mulai belajar. Dan bagian terpentingnya adalah bahwa seluruh proyek ini bersifat open source!
Artinya, dengan memanfaatkan proyek ini, siapa pun dapat membuat tutorial pembelajaran, dokumentasi, dan desain prosesor yang lebih baik untuk komunitas RISC-V, serta berkontribusi secara bebas.

Saya merasa masih banyak yang dibutuhkan untuk tujuan proyek ini. Selama menjalankan proyek, saya menyadari bahwa verifikasi tidak ada habisnya, dan karena saya bukan ahli, kemungkinan ada banyak kesalahan yang tidak saya ketahui, termasuk berbagai hazard. Karena itu, repo ini tidak dibekukan dan akan tetap terbuka! Kami sangat berharap para ahli bersedia melihat karya kami dan memberi masukan, karena itu akan sangat membantu. Bukan hanya bagi kami, tetapi juga bagi semua orang yang belajar melalui proyek ini.

Selanjutnya

Sekarang, setelah menyelesaikan ekstensi dari RV32I ke RV64I, kami sedang terus melaju menuju target memperluasnya menjadi RV64IM, dan lebih jauh lagi mewujudkan impian awal kami: membuat CPU general-purpose Korea Selatan (RVA23). Saat ini kami fokus mengembangkan hingga ekstensi RV64IMA melalui repositori ima_make_rv64. Kami akan sangat berterima kasih jika Anda terus mengikuti perkembangannya.

6 komentar

 
m00nny 2026-01-12

Saya ingat pernah melihat proyek yang ditulis sebagai 'sedang dikerjakan saat menjalani wajib militer', tetapi saya tidak tahu apakah itu orang yang sama. Entah ini kelanjutan dari proyek itu atau bukan, tetap saja sangat mengagumkan. Sikap yang bahkan terhadap premis yang tampak sudah sewajarnya pun tetap melemparkan pertanyaan "mengapa?" adalah fondasi ilmu pengetahuan, dan itu benar-benar keren serta patut didukung.
Terutama, fakta bahwa ini bersifat open source benar-benar keren. Karena sains, lebih dari apa pun, seharusnya menjadi milik semua orang. Saya dulu sangat tertarik pada RISC-V sejak awal sambil membayangkan seperti apa jadinya jika ada hardware yang sepenuhnya open source, tetapi lama-kelamaan saya menjauh dari sisi rangkaian, dan seperti kata penulis, informasi terkait juga sulit ditemukan, jadi minat itu saya simpan rapat-rapat. Saya jadi merasa ingin belajar lagi, dan sepertinya ini juga akan banyak membantu saat saya membacanya. Terima kasih telah membagikan semua trial and error serta pengetahuan yang Anda peroleh kepada semua orang, dan telah berkontribusi. Saya juga akan terus mendukung apa pun yang Anda kerjakan ke depannya.

 
khwl1026 2026-01-12

Saya juga sempat membaca proyek beliau dan sedikit terkejut. Ternyata ada juga kasus pembuatan CPU di militer dengan ikut serta dalam proyek ASIC, dan itu bahkan terjadi pada periode yang sama, haha..

Saya sudah membaca komentar berharga Anda dengan baik. Saya rasa alasan terbesar saya memulai proyek ini juga karena saya sangat sering merasakan frustrasi pada bagian yang Anda sebutkan. Lalu dari pertanyaan "mengapa", secara alami muncul lanjutan pertanyaan, "adakah cara lain yang lebih baik?"
Setelah RV64 kali ini selesai, saya berencana menyesuaikan sedikit filosofi desainnya dan mencoba merancang mikroarsitektur baru.
Terima kasih banyak atas dukungannya. Ke depannya saya juga akan terus berusaha sebaik mungkin.!
Kalau ada hal yang membuat Anda penasaran, silakan beri tahu kapan saja!!

 
gwondori 2026-01-09

Sangat keren!!!

 
khwl1026 2026-01-09

Terima kasih sudah melihatnya dengan baik (_ _)

 
calofmijuck 2026-01-07

Saya mahasiswa yang meneliti CPU, terima kasih atas materi yang bagus! Saya akan mendukung Anda!

 
khwl1026 2026-01-09

Terima kasih atas dukungannya. Jika ada hal yang ingin Anda tanyakan saat menggunakannya, silakan beri tahu kami kapan saja..!