VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı: 4 Adım
VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı: 4 Adım
Anonim
VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı
VHDL'de Programlanabilir Kesinti Denetleyicisi Tasarımı

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ış

PIC'ye Genel Bakış
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ı

RTL Tasarım ve Uygulama
RTL Tasarım ve Uygulama

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: