Ana içeriğe geç

RISC-V Imperas

· loading · loading · · ·
HDL Verilog HDL
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents

🧪 Imperas RISC-V Test Çerçevesi ve riscvOVPsim Simülatörü
#

Imperas’ın RISC-V test altyapısı ve riscvOVPsim simülatörü, RISC-V işlemcilerin uyumluluk ve doğrulama süreçlerinde kritik öneme sahip araçlardır. Bu rehberde, bu araçların ne işe yaradığını, nasıl kullanılacağını ve kendi işlemcinizi test etmek için nasıl entegre edilebileceğini detaylı bir şekilde inceleyeceğiz.


🔧 Imperas RISC-V Test Çerçevesi Nedir?
#

Imperas tarafından geliştirilen bu çerçeve, RISC-V işlemcilerin ISA (Instruction Set Architecture) uyumluluğunu test etmek için bir dizi test ve araç sunar.

  • 2018’den bu yana RISC-V International Uyumluluk Çalışma Grubu tarafından kullanılan test altyapısının temelini oluşturur.
  • Kurulumu oldukça basittir; make ve bash temellidir, karmaşık bağımlılıklar gerektirmez.
  • Sadece hedef işlemci ve test süiti belirtilerek çalıştırılabilir.

🔗 GitHub: imperas-riscv-tests


🖥️ riscvOVPsim Simülatörü Nedir?
#

riscvOVPsim, RISC-V spesifikasyonlarını (hem User hem de Privileged) tam olarak destekleyen yüksek performanslı bir simülatördür.

  • Apache 2.0 lisansı ile açık kaynak sunulur.

  • Hem akademik hem ticari projelerde kullanılabilir.

  • Uyumluluk testleri, bare-metal yazılımlar, ve referans karşılaştırmaları için idealdir.

  • Tam ticari sürümde:

    • Talimat izleme
    • GDB/Eclipse debugging
    • CLIC, Debug modülü, multi-hart, hipervizör (H-ext), vektör ve bitmanip (V/B/K/Zfinx) desteği mevcuttur.

🔗 GitHub: riscv-ovpsim


🧮 riscvOVPsim vs riscvOVPsimPlus
#

Özellik riscvOVPsim riscvOVPsimPlus
ISA Uyumluluk Testleri
Vektör / Bitmanip Desteği
GDB/Eclipse Debug
Multi-hart / H-Extension
Talimat İzleme ✅ (konfigürasyonlu)

🧪 Test Süitleri ve Kullanımı
#

Imperas, hem kendi geliştirdiği test süitlerini hem de RISC-V International Mimari Test SIG tarafından sağlanan testleri destekler.

  • Tüm testler make komutu üzerinden entegre şekilde koşturulabilir.
  • RISC-V International test süitleri *-RVI uzantısı ile gösterilir.
  • Her hedef işlemci için riscv-target dizininde bir klasör tanımlanmalıdır.

▶️ Testleri Koşmak İçin Gerekli Olanlar
#

  • Yapılandırılmış bir toolchain
  • Uyumlu bir simülatör (ör. riscvOVPsim)
  • RISCV_PREFIX ve RISCV_TARGET değişkenlerinin tanımlı olması
git clone https://github.com/Imperas/riscv-toolchains.git --branch rvv-0.8.x
mv riscv-toolchains riscv-toolchains-rvv-0.8.x

🧭 Imperas RISC-V Testlerini Kendi İşlemcinizde Kullanma Rehberi
#

Aşağıda, Imperas RISC-V testlerini kendi tasarladığınız işlemcide nasıl çalıştırabileceğiniz adım adım anlatılmıştır.


1️⃣ Gerekli Araçların Kurulumu
#

1.1 Sistem Bağımlılıkları
#

sudo apt-get update
sudo apt-get install -y build-essential gcc g++ make autoconf automake \
libmpc-dev libmpfr-dev libgmp-dev gawk texinfo bison flex device-tree-compiler \
zlib1g-dev libexpat-dev python3 python3-pip

1.2 RISC-V Toolchain Kurulumu
#

git clone --recursive https://github.com/riscv/riscv-gnu-toolchain.git
cd riscv-gnu-toolchain
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d
make -j$(nproc)
sudo make install
echo 'export PATH=/opt/riscv/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

2️⃣ imperas-riscv-tests Kurulumu
#

git clone https://github.com/riscv-ovpsim/imperas-riscv-tests.git
cd imperas-riscv-tests
make RISCV_TARGET=my_cpu RISCV_PREFIX=riscv32-unknown-elf-
  • RISCV_TARGET: hedef işlemci isminiz
  • RISCV_PREFIX: toolchain prefix (ör. riscv32-unknown-elf-)

3️⃣ OVPSim Kurulumu ve Ayarlanması
#

mkdir -p ~/imperas
tar -xvzf imperas.tar.gz -C ~/imperas
echo 'export PATH=~/imperas/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
ovpsim --version

4️⃣ Testleri Çalıştırma
#

4.1 OVPSim ile:
#

ovpsim --program work/my_cpu/tests/test_program.elf

4.2 Kendi İşlemciniz ile:
#

  1. .elf dosyasını .bin formatına çevirin:
riscv32-unknown-elf-objcopy -O binary test.elf test.bin
  1. Simülatörünüzle çalıştırın:
./my_cpu_sim test.bin

5️⃣ Sonuçların Karşılaştırılması
#

ovpsim --program test.elf > ovpsim_output.log
./my_cpu_sim test.bin > processor_output.log
diff ovpsim_output.log processor_output.log

Eğer fark yoksa, test başarıyla geçmiştir ✅


6️⃣ Sorun Giderme
#

Sorun Çözüm
ISA veya CSR hataları İşlemcinizin desteklediği uzantıları kontrol edin.
GCC hatası Toolchain’i doğru ISA-ABI ile yeniden derleyin.
Test koşamıyor RISCV_TARGET klasörü ve make kuralları düzgün mü?

📌 Sonuç
#

Imperas’ın test çerçevesi ve riscvOVPsim simülatörü:

  • ✔ RISC-V uyumluluk kontrolü
  • ✔ Referans karşılaştırma
  • ✔ Kolaylaştırılmış make/bash altyapısı
  • ✔ Kendi işlemcinizi sistematik şekilde test etme imkanı

Daha fazla bilgi için: 🔗 Imperas GitHub 📧 info@imperas.com


Related

Ubuntu'da ModelSim Kurulumu
· loading · loading
HDL Verilog HDL
i3wm Kurulumu
· loading · loading
HDL Verilog HDL
Blocking ve Non-Blocking Atamalar
· loading · loading
HDL Verilog HDL
Derleyici Yönergeleri ve Makrolar
· loading · loading
HDL Verilog HDL
Gecikme Kontrolleri
· loading · loading
HDL Verilog HDL
Görev (Task) ve Fonksiyon (Function)
· loading · loading
HDL Verilog HDL