Ana içeriğe geç

Ceres RISC-V Başlangıç Rehberi

Bu rehber, Ceres RISC-V procesörü kullanmaya yeni başlayan kullanıcılar için adım adım talimatlar sunmaktadır.


📋 Ön Koşullar

Yazılım Gereksinimleri

# 1. Verilator (Verilog simulator)
verilator --version  # 5.0 veya üzeri

# 2. RISC-V Toolchain
riscv32-unknown-elf-gcc --version

# 3. Python 3
python3 --version

# 4. Make
make --version

# 5. lcov (isteğe bağlı, coverage raporları için)
lcov --version

Sistem Gereksinimleri

  • İşletim Sistemi: Linux (Ubuntu 18.04+, Debian 10+) veya macOS
  • CPU: Minimum 4 cores (önerilen 8+)
  • RAM: Minimum 8 GB
  • Disk: Minimum 5 GB boş alan

Windows Kullanıcıları

Windows'ta çalıştırmak için WSL2 (Windows Subsystem for Linux 2) kullanınız:

# WSL2 Ubuntu kurulu olduğunu varsayarak
wsl --install -d Ubuntu-22.04
wsl -d Ubuntu-22.04

🔧 Kurulum Adımları

Adım 1: Repository'i Klonla

git clone https://github.com/yourusername/level-v.git
cd level-v

Adım 2: Bağımlılıkları Kur

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y verilator riscv-gnu-toolchain python3 make lcov

# macOS (Homebrew)
brew install verilator riscv-gnu-toolchain python3 lcov

Adım 3: Verilator Modelini Derle

make verilator_build

Beklenen çıktı:

Verilator RTL build successful
Build time: ~2-3 minutes
Output: build/obj_dir/Vceres_wrapper

Adım 4: Hızlı Test Çalıştır

make quick

Beklenen sonuç:

Tests passing: 100%
Test execution time: ~5 minutes


🎯 Temel Kullanım

Yapı Kodu (Build)

# Tüm bileşenleri derle
make build

# Verilator modelini derle
make verilator_build

# Python scriptlerini derle
make python_build

Test Çalıştırma

# Hızlı test sürüsü (~5 min)
make quick

# Tam regression testi (~30 min)
make full

# Gece testleri (tüm testler, ~2 saat)
make nightly

# Belirli bir test kategorisi
make test_isa          # ISA testleri
make test_arch         # Architecture testleri
make coremark          # CoreMark benchmark

Temizleme

# Derleme ürünlerini sil
make clean

# Tüm çıktıları sil (test sonuçları, loglar, vb)
make distclean

# Belirli klasörü temizle
make clean_build  # build/ klasörü
make clean_logs   # Logları sil

📊 Çıktı Analizi

Test Sonuçları

# Tüm test sonuçlarını gör
cat build/logs/test_summary.log

# Başarısız testleri listele
grep -i "fail\|error" build/logs/test_summary.log

# Belirli test kategorisinin detaylarını gör
cat build/logs/isa_tests.log

Waveform Analizi

# VCD dosyasını oluştur
make wave

# GTKWave ile görüntüle
gtkwave build/work/waveform.vcd &

# Alternatif: Surfer (ileri analiz)
surfer build/work/waveform.vcd &

Coverage Raporu

# Coverage raporu oluştur
make coverage

# HTML raporu aç
firefox build/logs/coverage/index.html &

# Coverage özeti oku
cat build/logs/coverage/coverage.txt

💻 Komut Hızlı Referansı

Komut Açıklama Süre
make build Tüm derlemeleri yap 5-10 min
make quick Hızlı test sürüsü 5 min
make full Tam test sürüsü 30 min
make coverage Coverage raporu 20 min
make wave VCD oluştur 2 min
make clean Çıktıları temizle <1 min
make help Tüm komutları listele
make help_lists Test komutlarını listele

🐛 Sorun Giderme

Sorun: "verilator: command not found"

Çözüm:

# Verilator'u kur
sudo apt-get install verilator

# Veya homebrew ile (macOS)
brew install verilator

# Path'i kontrol et
which verilator

Sorun: "riscv32-unknown-elf-gcc: command not found"

Çözüm:

# RISC-V toolchain'i kur
sudo apt-get install riscv-gnu-toolchain

# Veya manuel indirme:
# https://github.com/riscv-collab/riscv-gnu-toolchain

# Path'i ekle (manuel kurulum durumunda)
export PATH=$PATH:/opt/riscv/bin

Sorun: "make: command not found"

Çözüm:

# Build tools'u kur
sudo apt-get install build-essential

# macOS'ta:
brew install make

Sorun: Test başarısız oluyor ("Tests failed")

Çözüm:

# 1. Clean build yap
make distclean
make verilator_build

# 2. İlk test'i çalıştır
make quick

# 3. Logları kontrol et
tail -100 build/logs/quick_test.log

# 4. Specific test'i debug mode'da çalıştır
./sim/test/run_single_test.sh test_name --verbose

Sorun: "Out of memory" hatası

Çözüm:

# 1. Paralellizasyon'u azalt
make -j2 quick  # 2 job yerine

# 2. Veya sırayla çalıştır
make -j1 quick

# 3. Sistem belleğini kontrol et
free -h

# 4. Arka planda çalışan işlemleri kapat
killall firefox # Diğer heavy apps


📖 Sonraki Adımlar

Test Yazıcılar İçin

  1. Test Otomasyonu Rehberi
  2. RISC-V ISA Testleri
  3. İlk test'ini yaz

Tasarımcılar İçin

  1. Mimari Tasarım
  2. Exception Priority
  3. RTL kodu incele (rtl/core/)

Debug Etmek İsteyenler

  1. Debug Guide
  2. RAD Guide
  3. Breakpoint ayarla ve trace analiz et

🎓 Eğitim Kaynakları

Öğrenme Yolu (Önerilen)

  1. Hafta 1: Kurulum ve temel testler
  2. Bölüm: Kurulum Adımları ✓
  3. Bölüm: Temel Kullanım ✓
  4. Bölüm: Çıktı Analizi

  5. Hafta 2: Mimari anlaşılması

  6. Mimari Tasarım - Bölüm 1-3
  7. Pipeline aşamaları
  8. Waveform analiziyle işletim gözleme

  9. Hafta 3: Test yazma

  10. Test Otomasyonu
  11. ISA testleri örneği
  12. Kendi testini yaz

  13. Hafta 4+: İleri konular

  14. Exception handling
  15. CSR operasyonları
  16. Debug trigger'lar

Mühendislik Kaynakları

# RISC-V Specifikasyonu
# https://riscv.org/specifications/

# Verilator Kullanım Kılavuzu
# https://verilator.org/guide/latest/

# RISC-V GNU Toolchain
# https://github.com/riscv-collab/riscv-gnu-toolchain

✅ Kontrol Listesi

Başlamadan önce aşağıdaki kutuları işaretleyin:

  • Verilator kurulu (verilator --version)
  • RISC-V Toolchain kurulu (riscv32-unknown-elf-gcc --version)
  • Python 3 kurulu (python3 --version)
  • Make kurulu (make --version)
  • Repository klonlandı (ls level-v)
  • Verilator model derlendi (make verilator_build)
  • Hızlı test başarılı (make quick)

Tüm kutular işaretlendiyse, Başlamaya hazırsınız! 🎉


📞 Yardım ve Destek

Sorun Raporlama

Bir sorunla karşılaşırsanız:

  1. Repository Issues'ni kontrol edin: Issues
  2. Yeni issue oluşturun şu bilgileri ekleyerek:
  3. Kullanılan OS ve sürüm
  4. Hata mesajının tam metni
  5. Kullanılan komut
  6. Adımlar (tekrar üretmek için)

Katkı

Pull request'ler memnuniyetle karşılanır! Lütfen öncesinde bir issue açın.


📝 Notlar

  • İlk derlemeler ~10 dakika sürebilir
  • Daha sonraki derlemeler daha hızlı olacaktır (cached)
  • WSL2'de rasgele yavaşlamalar olabilir (yavaşsa native Linux kullanın)

Versiyon: 1.0
Son Güncelleme: 1 Aralık 2025