Innehållsförteckning:

Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg
Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg

Video: Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg

Video: Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg
Video: 15 изменяющих жизнь инноваций и самых полезных изобретений 2024, December
Anonim
Design av en programmerbar avbrottsstyrenhet i VHDL
Design av en programmerbar avbrottsstyrenhet i VHDL

Jag är överväldigad av den typ av svar jag får i den här bloggen. Tack killar för att du besökte min blogg och motiverade mig att dela min kunskap med dig. Den här gången kommer jag att presentera designen av en annan intressant modul som vi ser i alla SOC: er - Interrupt Controller.

Vi kommer att designa en enkel men kraftfull programmerbar avbrottsstyrenhet. Det är en helt konfigurerbar och parametrerad design som är bärbar över plattformar. Jag konstruerade detta efter att ha läst mycket om några populära avbrottskontrollarkitekturer där ute som NVIC, 8259a, RISC-V PLIC, Microblaze's INTC etc. Hoppas att ni tycker att den här bloggen är till hjälp och hjälper er att få en smak på hur avbrott hanteras av en processor med hjälp av en Interrupt Controller.

Steg 1: Specifikationer

Följande är specifikationerna för IP:

  • AHB3-Lite-gränssnitt.
  • Statiskt konfigurerbara parametrar:

    • Antal externa avbrottskällor; stöder upp till 63 avbrott.
    • Antal prioritetsnivåer; stöder upp till 63 nivåer.
    • Antal häckningsnivåer; stöder upp till 8 häckningsnivåer. 
    • Bussbredd; 32 eller 64.
  • Globalt och lokalt maskerbara avbrott.
  • Dynamiskt konfigurerbar prioritetsnivå för varje avbrott.
  • Två driftsätt - Fullt kapslat läge och lika prioritetsläge.
  • Stöder aktiva och höga känsliga avbrott.

RISC-V PLIC-specifikationer inspirerade interrupt handskakningsmekanism används i designen.

Interrupt pre-emption är inspirerad av 8259a

Andra läser: Microblaze INTC, NVIC

Steg 2: Översikt över PIC

Översikt över PIC
Översikt över PIC

Programmerbar Interrupt Controller (PIC) tar emot flera avbrott från externa kringutrustning och slår samman dem till en enda avbrottsutgång till en målprocessorkärna.

PIC styrs genom kontroll- och statusregister. Alla PIC-register är minnesmappade och åtkomliga via AHB3-Lite-bussgränssnittet.

Registerbanken består av konfigurationsregister, aktiveringsregister, väntande register, in-service-register, prioritetsregister och ID-register, som är typiska för Interrupt Controllers.

Konfigurationsregistret används för att ställa in driftläget för PIC. Det kan fungera i antingen helt kapslat läge eller lika prioritetsläge.

Varje avbrott kan tilldelas prioriteringar och maskeras individuellt. Global maskering av alla avbrott stöds också.

Registerbanken interagerar med Priority Resolver och BTC (Binary-Tree-Comparator) för att lösa prioriteringar för väntande avbrott och hävda avbrott för processorn i enlighet därmed. ID -register innehåller ID för högsta prioritet väntande avbrott.

Steg 3: RTL -design och implementering

RTL Design och implementering
RTL Design och implementering

PIC: s design stressar på att minska latensen för att lösa prioriteringar, vilket är den mest tidskritiska delen av designen. Eftersom designen löser prioriteringar i en enda klockcykel försämras prestandan med ökningen av antalet källor med en Log2 -komplexitet.

Designen implementerades framgångsrikt och timing verifierades upp till följande frekvenser på Artix-7 FPGA.

  • Upp till 15 källor: 100 MHz
  • Upp till 63 källor: 50 MHz

Interrupt Latency som läggs till av PIC enbart är 3 klockcykler (Exklusive kontextväxlingstiden för processorn och den första ISR -instruktionens hämtningstid).

Steg 4: Viktiga anteckningar och bifogade filer

Viktiga anteckningar:

  • Om AHB3-Lite-gränssnittet är oönskat kan du ändra toppmodulen och använda skelettdesignen för PIC. Testbänken som tillhandahålls är dock för IP med AHB3-Lite-gränssnitt.
  • PIC IP v1.0 är en helt bärbar, ren RTL -design.
  • Funktionellt verifierad för att fungera på båda lägena.

Bifogade filer:

  • Designkoder och testbänk i VHDL.
  • Fullständig IP -dokumentation.

Det är en design med öppen källkod … Använd gärna …

För frågor, när som helst:

Mitu Raj

Rekommenderad: