Sistem Mimarisi ve Özeti
Tasarladığımız sistem, çip tasarım yarışmasının gerekliliklerine göre şekillendirilmiş modüler bir RISC-V platformudur. Sensörlerden gelen ses verilerini donanım seviyesinde sınıflandırabilmek için özel bir yapay zeka hızlandırıcısı içerir.
Genel Mimari
Veriyolu mimarisi PULP ekosistemine ait crossbar (çapraz çubuk) topolojisi üzerine kuruludur. Sistemde işlemci ve NPU ana birim (master) olarak, çevre birimleri ve bellekler ise bağımlı birim (slave) olarak görev yapar.
Çekirdeğin donanım komut ve veri erişimlerinin birbirini tıkamaması için iki ayrı OBI-AXI köprüsü tasarladık.
graph TD
subgraph "Çekirdek Bölgesi"
Core[CV32E40P]
IBridge[Buyruk OBI-AXI Köprüsü]
DBridge[Veri OBI-AXI Köprüsü]
Core -- "Buyruk (OBI)" --> IBridge
Core -- "Veri (OBI)" --> DBridge
end
subgraph "Ana Veriyolu (AXI4 Crossbar)"
Xbar[AXI XBAR]
IBridge -- "Master 0" --> Xbar
DBridge -- "Master 1" --> Xbar
NPU[Ses Sınıflandırma NPU] -- "Master 2" --> Xbar
UARTStream[UART Stream] -- "Master 3" --> Xbar
end
subgraph "Çevre Birimleri ve Bellekler"
IMEM[8kB Buyruk Belleği]
DMEM[8kB Veri Belleği]
NPURAM[30kB Çift Portlu NPU Belleği]
Periphs[GPIO, Timer, I2C, QSPI, UART]
Xbar --> IMEM
Xbar --> DMEM
Xbar --> NPURAM
Xbar -- "AXI4-Lite" --> Periphs
end
Temel Bileşenler
1. CV32E40P Çekirdeği
Açık kaynaklı OpenHW Group projesinden alınan, 4 aşamalı boru hattına (pipeline) sahip 32-bit RISC-V işlemcidir. Veriyolu olarak doğal OBI arayüzünü kullanır.
2. OBI-AXI Köprüleri
Çekirdek tarafındaki OBI iletişimini sistem genelindeki AXI4 protokolüne çeviririz. Ayrık komut ve veri köprüleri sayesinde işlemcinin bellek darboğazı yaşamasını önleriz.
3. Çevre Birimleri
Standart donanım kontrolü için GPIO, Timer ve standart UART modüllerini doğrudan RTL seviyesinde sıfırdan tasarladık. I2C master için açık kaynaklı bir IP kullanıyoruz, ancak bunu AXI-Lite arayüzüne bağlayabilmek için özel bir sarmalayıcı (wrapper) yazdık. Sistem ayrıca 64 derinlikli TX/RX FIFO'ya sahip özel bir QSPI master içerir.
4. Ses Sınıflandırma NPU ve UART-Stream
Yapay zeka birimimiz TFLite Micro Speech modelini donanım seviyesinde çalıştırır. Dışarıdan gelen ses verisini NPU'ya doğrudan yazabilmek için UART-Stream adlı özel bir modül kullanıyoruz. Bu modül DMA mantığıyla çalışıp CPU'yu meşgul etmeden 30 kB'lık NPU belleğine doğrudan veri basar. NPU işlemi tamamladığında işlemciye kesme (interrupt) gönderir. İşlemci sadece işlemin sonucunu NPU registerlarından (CSR) okur.
Veriyolu Kararları
Tüm çevre birimlerinin yapılandırma işlemleri AXI4-Lite üzerinden yapılır. Veri taşıma (özellikle UART-Stream'den NPU belleğine) işlemleri ise tam AXI4 üzerinden burst (çoklu paket) şeklinde gerçekleştirilir.