🧪 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
vebash
temellidir, karmaşık bağımlılıklar gerektirmez. - Sadece hedef işlemci ve test süiti belirtilerek çalıştırılabilir.
🖥️ 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.
🧮 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
veRISCV_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 isminizRISCV_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: #
.elf
dosyasını.bin
formatına çevirin:
riscv32-unknown-elf-objcopy -O binary test.elf test.bin
- 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