CERES RISC-V — Development Tools Guide¶
Bu döküman, CERES RISC-V projesinde kullanılan açık kaynak geliştirme araçlarını, kurulumlarını ve kullanım örneklerini açıklar.
📊 Araç Özeti¶
| Araç | Kategori | Güçlülük | Lisans | Açıklama |
|---|---|---|---|---|
| Verilator | Simülasyon | ⭐⭐⭐⭐⭐ | LGPL | En hızlı açık kaynak RTL simülatörü |
| Spike | RISC-V ISS | ⭐⭐⭐⭐⭐ | BSD | Resmi RISC-V referans simülatörü |
| Slang (pyslang) | Linting | ⭐⭐⭐⭐⭐ | MIT | En kapsamlı SV parser/linter |
| Yosys | Sentez | ⭐⭐⭐⭐⭐ | ISC | RTL sentez framework |
| svlint | Linting | ⭐⭐⭐⭐ | MIT | Hızlı SV stil linter |
| GTKWave | Waveform | ⭐⭐⭐⭐ | GPL | Olgun VCD/FST viewer |
| Surfer | Waveform | ⭐⭐⭐⭐ | MIT | Modern, GPU-hızlandırmalı viewer |
| Icarus Verilog | Simülasyon | ⭐⭐⭐ | GPL | Basit Verilog simülatörü |
Güçlülük Skalası: ⭐ Temel → ⭐⭐⭐⭐⭐ Profesyonel
🚀 Simülasyon Araçları¶
Verilator (Önerilen)¶
Versiyon: 5.026
Güçlülük: ⭐⭐⭐⭐⭐
Website: https://verilator.org
Verilator, SystemVerilog/Verilog RTL'i C++/SystemC'ye derleyen en hızlı açık kaynak simülatördür.
Özellikler¶
- ✅ SystemVerilog 2017 desteği
- ✅ Çok iş parçacıklı simülasyon
- ✅ Lint ve statik analiz
- ✅ Coverage analizi
- ✅ FST/VCD waveform çıktısı
- ✅ C++ testbench entegrasyonu
Kurulum¶
# Ubuntu 24.04
sudo apt install verilator
# Kaynak koddan (önerilen, daha güncel)
git clone https://github.com/verilator/verilator
cd verilator && git checkout v5.026
autoconf && ./configure --prefix=/opt/verilator
make -j$(nproc) && sudo make install
Kullanım¶
make verilate # Model derle
make run_verilator TEST_NAME=rv32ui-p-add
make verilator_static # Lint kontrolü
Spike (RISC-V ISS)¶
Güçlülük: ⭐⭐⭐⭐⭐
Website: https://github.com/riscv-software-src/riscv-isa-sim
Resmi RISC-V Instruction Set Simulator. Golden model olarak kullanılır.
Özellikler¶
- ✅ Tüm RISC-V ISA uzantıları
- ✅ Commit trace log çıktısı
- ✅ Interactive debugging
- ✅ Memory model desteği
Kullanım¶
Icarus Verilog¶
Güçlülük: ⭐⭐⭐
Website: http://iverilog.icarus.com
Basit Verilog simülatörü. Not: CERES RTL'i Icarus ile uyumlu değildir (advanced SV özellikleri kullanıyor).
Sınırlamalar¶
- ❌
insideoperatörü desteklenmiyor - ❌
automaticdeğişkenler sınırlı - ❌ Struct parametreleri desteklenmiyor
Kurulum¶
🔍 Linting Araçları¶
Slang (pyslang)¶
Versiyon: 9.1.0
Güçlülük: ⭐⭐⭐⭐⭐
Website: https://sv-lang.com
En kapsamlı SystemVerilog parser ve linter. IEEE 1800-2023 tam uyumlu.
Özellikler¶
- ✅ Tam SV 2023 desteği
- ✅ Semantik analiz
- ✅ Type checking
- ✅ 200+ lint kuralı
- ✅ Python bindings (pyslang)
Kurulum¶
Kullanım¶
Örnek Çıktı¶
rtl/core/cpu.sv:182:78: error: no implicit conversion from 'int' to 'spec_type_e'
rtl/core/cpu.sv:309:16: warning: 'case' marked 'unique' has 'default' label
svlint¶
Versiyon: 0.9.5
Güçlülük: ⭐⭐⭐⭐
Website: https://github.com/dalance/svlint
Hızlı SystemVerilog stil ve naming linter. Rust tabanlı.
Özellikler¶
- ✅ Hızlı çalışma
- ✅ TOML konfigürasyon
- ✅ Özelleştirilebilir kurallar
- ✅ CI/CD uyumlu
Kurulum¶
Kullanım¶
Konfigürasyon (.svlint.toml)¶
[option]
exclude_paths = ["subrepo/", "build/"]
[rules]
prefix_module = false
style_keyword_1space = true
case_default = true
Verilator Lint¶
Güçlülük: ⭐⭐⭐⭐
Verilator'ın dahili lint özelliği.
Kullanım¶
📊 Waveform Viewer¶
GTKWave¶
Güçlülük: ⭐⭐⭐⭐
Website: http://gtkwave.sourceforge.net
Olgun ve yaygın kullanılan waveform viewer.
Özellikler¶
- ✅ VCD, FST, LXT2 desteği
- ✅ TCL scripting
- ✅ Signal search
- ✅ Analog waveform
Kurulum¶
Kullanım¶
Surfer¶
Güçlülük: ⭐⭐⭐⭐
Website: https://surfer-project.org
Modern, GPU-hızlandırmalı waveform viewer. Rust tabanlı.
Özellikler¶
- ✅ GPU hızlandırma
- ✅ Modern UI
- ✅ Hızlı büyük dosya yükleme
- ✅ VCD, FST, GHW desteği
Kurulum¶
Kullanım¶
make surfer # Waveform aç
make surfer_file WAVE_FILE=path # Belirli dosya aç
make wave_compare # GTKWave vs Surfer karşılaştır
🔨 Sentez Araçları¶
Yosys¶
Güçlülük: ⭐⭐⭐⭐⭐
Website: https://yosyshq.net/yosys
Açık kaynak RTL sentez framework.
Özellikler¶
- ✅ Verilog/SystemVerilog parsing
- ✅ Çeşitli optimizasyon geçişleri
- ✅ FPGA ve ASIC hedefleri
- ✅ Formal verification desteği
Kurulum¶
Kullanım¶
🧪 Test Framework¶
riscv-tests¶
Resmi RISC-V ISA test suite.
riscv-arch-test¶
RISC-V mimari uyumluluk testleri.
CoreMark¶
Gömülü sistem benchmark.
📋 Hızlı Başvuru Tablosu¶
| Komut | Açıklama |
|---|---|
make verilate |
Verilator modeli derle |
make run_verilator TEST_NAME=... |
Simülasyon çalıştır |
make svlint |
svlint çalıştır |
make slang_lint |
Slang lint çalıştır |
make lint_all |
Tüm linterları çalıştır |
make lint_install |
Lint araçlarını kur |
make gtkwave |
GTKWave aç |
make surfer |
Surfer aç |
make yosys_check |
Yosys sentez kontrolü |
make isa |
ISA testlerini çalıştır |
make html |
Test dashboard oluştur |
🔧 Sorun Giderme¶
Verilator Hataları¶
BLKLOOPINIT hatası:
VL_SYSTEM_IN hatası:
svlint Konfigürasyon Hatası¶
pyslang Import Hatası¶
📚 Ek Kaynaklar¶
Son güncelleme: Kasım 2025