Çevre Birimleri
Tüm çevre birimleri işlemciyle AXI4-Lite protokolü üzerinden haberleşir. Adres haritasında esneklik sağlamak için her modüle 256 byte'lık sabit bir alan ayırdık ve aralarında boşluklar bıraktık.Optimizasyon seneryolarına göre bu noktalarda değişklikler olabilecektir.
Özel Modüller ve Özellikleri
1. UART ve UART-Stream
Standart UART biriminin yanında şartnamede belirtildiği gibi, NPU'yu beslemesi için UART-Stream adında ikinci bir modül tasarladık.
sequenceDiagram
participant PC as Dış Cihaz (PC vs.)
participant UART as UART-Stream
participant NPURAM as 30kB NPU Belleği
participant CPU as CV32E40P İşlemci
participant NPU as Yapay Zeka Hızlandırıcı
CPU->>UART: AXI-Lite ile başlangıç ayarı (Config)
PC->>UART: Ses Verisi (Spectrogram)
UART->>NPURAM: Doğrudan Veri Yazma (Burst)
UART-->>CPU: Veri aktarımı bitti uyarısı
CPU->>NPU: İşlemi başlat
NPU->>NPURAM: Veriyi oku ve işle
NPU-->>CPU: İşlem tamamlandı (Interrupt)
CPU->>NPU: Sonucu oku (CSR üzerinden)
- UART-Stream bir nevi DMA mantığıyla çalışır. İşlemciye hiç yük bindirmeden, dışarıdan gelen ses verilerini doğrudan 30 kB'lık NPU belleğine yazar.
- CPU sadece başlangıç ayarlarını yapar. Önemli bir kural olarak, veri yazılırken NPU ve UART-Stream aynı anda belleğe erişemez.
2. QSPI Master
Sistemin dış dünya ve özellikle flash bellek ile iletişimini sağlar.
- Performans darboğazını önlemek için içinde 64 derinliğinde ve 32-bit genişliğinde TX (verici) ve RX (alıcı) FIFO'lar barındırır.
- FIFO'ların doluluk durumları, donanımsal flag'ler aracılığıyla QSPI status register'ı üzerinden otomatik güncellenir.
3. I2C Master
I2C modülü için açık kaynaklı hazır bir IP kullandık. Ancak bu modülü sistemin AXI-Lite veriyoluna entegre etmek için özel bir wrapper (sarmalayıcı) yazmamız gerekti.
- Donanımsal Kısıtlama: Tasarım gereği I2C kontrol register'ında (I2C_CFG) veri okuma (RX enable) ve yazma (TX enable) bitlerinin aynı anda aktif edilmesine donanımsal olarak izin verilmez.
4. GPIO ve Timer
Standart sinyal kontrolleri ve zamanlama görevleri için tamamen projeye özgü olarak ÖTR'de bahsedildiği gibi RTL seviyesinde sıfırdan tasarlanmışlardır. Dışarıdan herhangi bir IP kullanılmamıştır.