Sisteme Katılım Rehberi
Bu rehber, tar32 SoC projesine yeni katılan geliştiriciler için hazırlanmıştır. Donanım ve yazılım ekiplerinde verimli bir şekilde anlayabilmemiz için gereken teknik konseptleri içerir.
1. Teknik Strateji
tar32 projesi, yüksek performanslı ve modüler bir RISC-V SoC geliştirmeyi hedefler. Tasarım felsefemiz üç temel prensibe dayanır:
- Çalışma Ortamı Tutarlılığı: "Benim bilgisayarımda çalışıyordu" sorunlarını çözmek için Docker kullanıyoruz. Tüm araçlar önceden belirlenmiş sürümlere sabitlenmiştir.
- Çevik Donanım Geliştirme: Saat çevrimi hassasiyetinde simülasyon (Verilator) ve bağımsız modül sentezi (OOC) gibi hızlı yöntemlere öncelik veriyoruz.
- Hibrit Pipeline: Doğrulama işlemleri izole konteynerlerde yapılırken, yüksek performans gerektiren fiziksel donanım sentezi doğrudan ana işletim sisteminde gerçekleştirilir.
2. Araç Tercihlerimiz
Projede kullanılan araçların tercih nedenleri:
- Verilator: Donanım tasarımını (SystemVerilog) yüksek performanslı C++ modeline çevirerek saniyeler içinde simülasyon yapmamızı sağlar.
- Bender: Donanım bağımlılıklarını yönetir. Endüstriyel IP'leri (örneğin OpenHW Group'un işlemci çekirdeği) projeye kolayca dahil etmemizi sağlar.
- tar32.py: Projedeki tüm simülasyon, statik analiz (linting) ve derleme işlemlerini yöneten ana otomasyon betiğidir.
3. İlk Adımlar
Sistemi test etmek ve projeye aşina olmak için şu adımları izleyin:
Aşama A: Ortam Kurulumu
- [ ] Depoyu klonlayın:
git clone https://github.com/minyatur32/tar32/ - [ ] Ortamı hazırlayın:
./scripts/setup.sh(veyamake setup) - [ ] Tüm sistemi test edin:
python3 tar32.py pipeline
Aşama B: Doğrulama ve İnceleme
- [ ] Teknik Konseptler sayfasını okuyun.
- [ ] Birim testi çalıştırın:
python3 tar32.py sim unit --module tar32_obi_axi_wrapper - [ ] Simülasyon sinyallerini inceleyin:
gtkwave sim/build/unit/tar32_obi_axi_wrapper/*.vcd(örnek yol).
Aşama C: Sistem Entegrasyonu
- [ ] Yazılım tarafını derlemek için:
python3 tar32.py clean swveya ilgili make komutlarını kullanın. - [ ] SoC simülasyonu başlatın:
python3 tar32.py sim soc - [ ] Çekirdeğin programı başarıyla bitirip bitirmediğini loglardan kontrol edin.
Aşama D: İlk Katkı
- [ ]
developdalındaki en güncel değişiklikleri çekin. - [ ] Kendi çalışma dalınızı (branch) oluşturun:
git checkout -b feat/ozellik-adiniz - [ ] Yeni donanım kodlarınızı
rtl/veya yazılımlarınızısw/klasöründe geliştirin. - [ ] Yeni bir birim (module) eklemek için
python3 tar32.py add-modulekomutunu kullanın. - [ ] Geliştirme rehberindeki adımları izleyerek PR (Pull Request) açın.
4. İletişim ve Destek
- Önce Dokümantasyon: Sistem veya mimariyle ilgili sorularınız için bu dokümantasyona göz atın.
- Sorun Bildirimi: Bir script hata verirse, log çıktılarını detaylı bir şekilde GitHub Issue üzerinden paylaşın.
- Kod İncelemesi (Code Review): Kodunuzu incelemeye göndermekten çekinmeyin, mükemmellikten ziyade birlikte çalışmaya önem veriyoruz.