INHOUDSOPGAWE:

Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe

Video: Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe

Video: Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
Video: Building G100 webinar IoT 2.0 als ondersteuning van je gebouwbeheer 2024, November
Anonim
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL
Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL

Ek is oorweldig deur die soort reaksies wat ek op hierdie blog kry. Dankie ouens dat julle my blog besoek het en my gemotiveer het om my kennis met julle te deel. Hierdie keer gaan ek die ontwerp voorstel van 'n ander interessante module wat ons in alle SOC's sien - Interrupt Controller.

Ons ontwerp 'n eenvoudige, maar kragtige programmeerbare onderbrekingsbeheerder. Dit is 'n volledig konfigureerbare en geparametreerde ontwerp wat draagbaar is op platforms. Ek het dit ontwerp nadat ek baie gelees het oor 'n paar gewilde onderbrekingsbeheerargitekture daar buite, soos NVIC, 8259a, RISC-V PLIC, Microblaze's INTC, ens. Hoop julle vind hierdie blog nuttig en help julle 'n voorsmakie van hoe onderbrekings deur 'n verwerker hanteer word. met die hulp van 'n onderbrekingsbeheerder.

Stap 1: Spesifikasies

Hier volg die spesifikasies van die IP:

  • AHB3-Lite-koppelvlak.
  • Staties instelbare parameters:

    • Aantal eksterne onderbrekingsbronne; ondersteun tot 63 onderbrekings.
    • Aantal prioriteitsvlakke; ondersteun tot 63 vlakke.
    • Aantal nesvlakke; ondersteun tot 8 vlak van nes. 
    • Buswydte; 32 of 64.
  • Wêreldwyd en plaaslik maskeerbare onderbrekings.
  • Dinamies instelbare prioriteitsvlak vir elke onderbreking.
  • Twee werkswyses - volledig geneste modus en gelyke prioriteitsmodus.
  • Ondersteun sensitiewe onderbrekings op hoë vlak.

RISC-V PLIC-spesifikasies geïnspireer deur die onderbrekende handskudmeganisme word in die ontwerp gebruik.

Onderbreekvoorkeuring is geïnspireer uit 8259a

Ander lees: Microblaze INTC, NVIC

Stap 2: Oorsig van PIC

Oorsig van PIC
Oorsig van PIC

Programmeerbare onderbrekingsbeheerder (PIC) ontvang veelvuldige onderbrekings van eksterne randapparatuur en smelt dit saam in 'n enkele onderbrekingsuitset na 'n doelverwerkerkern.

PIC word beheer deur middel van beheer- en statusregisters. Alle PIC-registers word deur geheue gekarteer en verkry via die AHB3-Lite-bus-koppelvlak.

Die registerbank bestaan uit konfigurasie-registers, aktiveer-registers, hangende registers, in-diens-registers, prioriteitsregisters en ID-registers, wat tipies is by Interrupt Controllers.

Konfigurasieregister word gebruik om die werkswyse van PIC in te stel. Dit kan werk in die volledig geneste modus of die gelyke prioriteitsmodus.

Elke onderbreking kan prioriteite kry en individueel gemasker word. Globale maskering van alle onderbrekings word ook ondersteun.

Die registerbank het interaksie met Priority Resolver en BTC (Binary-Tree-Comparator) om die prioriteite van hangende onderbrekings op te los en dienooreenkomstig aan die verwerker te gee. ID -register bevat die ID van hangende onderbreking met die hoogste prioriteit.

Stap 3: RTL -ontwerp en implementering

RTL Ontwerp en implementering
RTL Ontwerp en implementering

PIC se ontwerp beklemtoon die vermindering van die vertraging by die oplossing van prioriteite, wat die belangrikste tyd van die ontwerp is. Aangesien die ontwerp prioriteite in 'n enkele kloksiklus oplos, versleg prestasie met die toename in aantal bronne met 'n Log2 -kompleksiteit.

Die ontwerp is suksesvol geïmplementeer en die tydsberekening is geverifieer tot die volgende frekwensies op Artix-7 FPGA's.

  • Tot 15 bronne: 100 MHz
  • Tot 63 bronne: 50 MHz

Interrupt Latency wat slegs deur PIC bygevoeg word, is 3 kloksiklusse (uitgesluit die konteksskakeltyd van die verwerker en die eerste ISR -instruksie -afhaaltyd).

Stap 4: Belangrike notas en aangehegte lêers

Belangrike aantekeninge:

  • As die AHB3-Lite-koppelvlak ongewens is, kan u die boonste module verander en die skeletontwerp van PIC gebruik. Die toetsbank wat verskaf word, is egter vir IP met AHB3-Lite-koppelvlak.
  • PIC IP v1.0 is 'n volledig draagbare, bloot RTL -ontwerp.
  • Funksioneel geverifieer om op beide modusse te werk.

Bygevoegde lêers:

  • Ontwerp kodes en toetsbank in VHDL.
  • Volledige IP -dokumentasie.

Dit is 'n open source-ontwerp … Gebruik dit gerus …

Vir enige navrae, te eniger tyd:

Mitu Raj

Aanbeveel: