İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
Bu blogda aldığım cevaplardan çok etkilendim. Arkadaşlar, blogumu ziyaret ettiğiniz ve bilgilerimi sizinle paylaşmam için beni motive ettiğiniz için teşekkür ederim. Bu sefer, tüm SOC'lerde gördüğümüz başka bir ilginç modülün tasarımını sunacağım - Kesinti Denetleyicisi.
Basit ama güçlü bir Programlanabilir Kesinti Denetleyicisi tasarlayacağız. Platformlar arasında taşınabilir, tamamen yapılandırılabilir ve parametreli bir tasarımdır. Bunu, NVIC, 8259a, RISC-V PLIC, Microblaze's INTC vb. gibi bazı popüler kesme denetleyici mimarileri hakkında çok şey okuduktan sonra tasarladım. Umarım bu blogu faydalı bulursunuz ve kesmelerin bir işlemci tarafından nasıl işlendiğine dair bir fikir edinmenize yardımcı olur. Bir Kesme Denetleyicisi yardımıyla.
Adım 1: Özellikler
IP'nin özellikleri aşağıdadır:
- AHB3-Lite arayüzü.
-
Statik olarak yapılandırılabilir parametreler:
- Harici kesme kaynaklarının sayısı; 63 kesmeye kadar destekler.
- Öncelik düzeylerinin sayısı; 63 seviyeye kadar destekler.
- Yuvalama düzeylerinin sayısı; 8 seviyeye kadar yuvalamayı destekler.
- Otobüs genişliği; 32 veya 64.
- Küresel ve yerel olarak maskelenebilir kesintiler.
- Her kesme için dinamik olarak yapılandırılabilir öncelik düzeyi.
- İki çalışma modu – Tamamen Yuvalanmış Mod ve Eşit Öncelikli Mod.
- Aktif-yüksek seviyeli hassas kesmeleri destekler.
Tasarımda RISC-V PLIC spesifikasyonlarından ilham alan kesintili el sıkışma mekanizması kullanılmıştır.
Kesinti önleme 8259a'dan ilham almıştır
Diğer okumalar: Microblaze INTC, NVIC
2. Adım: PIC'ye Genel Bakış
Programlanabilir Kesinti Denetleyicisi (PIC), harici çevre birimlerinden çoklu kesmeleri alır ve bunları hedef işlemci çekirdeğine tek bir kesme çıkışında birleştirir.
PIC, kontrol ve durum kayıtları aracılığıyla kontrol edilir. Tüm PIC kayıtları bellek eşlenir ve AHB3-Lite veri yolu arabirimi aracılığıyla erişilebilir.
Kayıt bankası, Kesme Denetleyicilerinde tipik olan yapılandırma kaydı, etkinleştirme kayıtları, bekleyen kayıtlar, hizmet içi kayıtlar, öncelikli kayıtlar ve kimlik kaydından oluşur.
Konfigürasyon kaydı, PIC'nin çalışma modunu ayarlamak için kullanılır. Tam Yuvalanmış Modda veya Eşit Öncelikli Modda çalışabilir.
Her kesmeye öncelikler atanabilir ve ayrı ayrı maskelenebilir. Tüm kesintilerin küresel olarak maskelenmesi de desteklenir.
Kayıt bankası, bekleyen kesmelerin önceliklerini çözmek ve buna göre işlemciye kesmeyi onaylamak için Priority Resolver ve BTC (Binary-Tree-Comparator) ile etkileşime girer. Kimlik kaydı, bekleyen en yüksek öncelikli kesmenin kimliğini içerir.
Adım 3: RTL Tasarımı ve Uygulaması
PIC'nin tasarım vurgusu, tasarımın en kritik kısmı olan öncelikleri çözme gecikmesini azaltmaya odaklanır. Tasarım öncelikleri tek bir saat döngüsünde çözdüğünden, Log2 karmaşıklığına sahip kaynakların sayısındaki artışla performans düşer.
Tasarım başarıyla uygulandı ve Artix-7 FPGA'larda aşağıdaki frekanslara kadar zamanlama doğrulandı.
- 15 kaynağa kadar: 100 MHz
- 63 kaynağa kadar: 50 MHz
Yalnızca PIC tarafından eklenen Kesinti Gecikmesi 3 saat döngüsüdür (İşlemcinin bağlam değiştirme süresi ve ilk ISR komut getirme süresi hariç).
4. Adım: Önemli Notlar ve Ekli Dosyalar
Önemli notlar:
- AHB3-Lite arayüzü istenmiyorsa üst modülü değiştirebilir ve PIC'in iskelet tasarımını kullanabilirsiniz. Ancak sağlanan test tezgahı, AHB3-Lite Arayüzü ile IP içindir.
- PIC IP v1.0 tamamen taşınabilir, çıplak bir RTL tasarımıdır.
- Her iki modda da çalıştığı işlevsel olarak doğrulandı.
Ekli dosyalar:
- VHDL'de tasarım kodları ve testbench.
- Tam IP Belgeleri.
Açık kaynaklı bir tasarımdır… Kullanmaktan çekinmeyin…
Herhangi bir sorgu için, istediğiniz zaman:
Mitu Raj
Önerilen:
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi - Arduino PS2 Oyun Denetleyicisi - DIY Arduino Gamepad ile Tekken Oynamak: 7 Adım
Arduino Tabanlı Kendin Yap Oyun Denetleyicisi | Arduino PS2 Oyun Denetleyicisi | Tekken'i DIY Arduino Gamepad ile Oynamak: Merhaba arkadaşlar, oyun oynamak her zaman eğlencelidir ama kendi DIY özel oyun Controller'ınızla oynamak daha eğlencelidir. Bu yüzden bu talimatta arduino pro micro kullanarak bir oyun Controller yapacağız
VHDL'de Basit Dört Yönlü Küme İlişkili Önbellek Denetleyicisi Tasarımı: 4 Adım
VHDL'de Basit Dört Yollu Set İlişkili Önbellek Denetleyicisinin Tasarımı: Önceki talimatımda, basit bir doğrudan eşlenmiş önbellek denetleyicisinin nasıl tasarlanacağını gördük. Bu sefer bir adım ileri gidiyoruz. Basit bir dört yollu küme ilişkisel önbellek denetleyicisi tasarlayacağız. Avantaj? Daha az kayıp oranı, ancak performans pahasına
VHDL'de Basit Bir Önbellek Denetleyicisi Tasarımı: 4 Adım
VHDL'de Basit Bir Önbellek Denetleyicisinin Tasarımı: Bu talimatı yazıyorum, çünkü bir önbellek denetleyicisi tasarlamaya başlamak ve öğrenmek için bazı referans VHDL kodunu almayı biraz zor buldum. Bu yüzden kendim sıfırdan bir önbellek denetleyicisi tasarladım ve FPGA üzerinde başarıyla test ettim. bende p
Arduino - Periyodik Kesinti: 4 Adım
Arduino - Periyodik Kesinti: Bu Talimat, Arduino programlarında zamanlama için periyodik bir kesinti kullanmakla ilgilidir. Bu, Arduino'nun daha fazlasını yapabileceğini bilen, ancak bunun nasıl gerçekleşeceğini tam olarak bilmeyen, tomurcuklanan bir Arduino programcısı için bir adımdır. Bir performans pr varsa
YABC - Bir Başka Blynk Denetleyicisi - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: 4 Adım
YABC - Yine Bir Başka Blynk Denetleyici - IoT Bulut Sıcaklık ve Nem Denetleyicisi, ESP8266: Merhaba Yapımcılar, Geçenlerde evde mantar yetiştirmeye başladım, İstiridye mantarları, ancak evde Fermenter için bu denetleyicilerden 3x'e zaten sahibim, eşim şimdi de bu Kombucha işini yapıyor ve Isı Termostatı olarak