INHOUDSOPGAWE:
- Stap 1: Spesifikasies
- Stap 2: Oorsig van PIC
- Stap 3: RTL -ontwerp en implementering
- Stap 4: Belangrike notas en aangehegte lêers
Video: Ontwerp van 'n programmeerbare onderbrekingsbeheerder in VHDL: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
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
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
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:
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige vierweg-stel assosiatiewe cache-beheerder in VHDL: In my vorige instruksies het ons gesien hoe om 'n eenvoudige direkte gekarteerde kasbestuurder te ontwerp. Hierdie keer beweeg ons 'n stap vorentoe. Ons ontwerp 'n eenvoudige assosiatiewe kasbestuurder met vier rigtings. Voordeel? Minder miskoers, maar ten koste van perfo
Ontwerp van 'n eenvoudige kasbeheerder in VHDL: 4 stappe
Ontwerp van 'n eenvoudige cache -beheerder in VHDL: ek skryf hierdie instruksies, want dit was 'n bietjie moeilik om 'n verwysing -VHDL -kode te kry om te leer en 'n kasbestuurder te begin ontwerp. Ek het dus self 'n kasbeheerder ontwerp en dit met sukses op FPGA getoets. Ek het p
Ontwerp van I2C Master in VHDL: 5 stappe
Ontwerp van I2C Master in VHDL: In hierdie instruksies word die ontwerp van 'n eenvoudige I2C master in VHDL bespreek.OPMERKING: klik op elke prent om die volledige prent te sien
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: 5 stappe
Ontwerp van 'n eenvoudige VGA -beheerder in VHDL en Verilog: In hierdie instruksies gaan ons 'n eenvoudige VGA -beheerder in RTL ontwerp. VGA Controller is die digitale stroombaan wat ontwerp is om VGA -skerms aan te dryf. Dit word gelees uit die raambuffer (VGA -geheue), wat die raam verteenwoordig wat vertoon moet word, en genereer
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: 5 stappe
Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele: Ontwerp en realisering van 'n stelsel van oriëntasie van fotovoltaïese panele