Indholdsfortegnelse:
- Trin 1: Specifikationer
- Trin 2: Oversigt over PIC
- Trin 3: RTL Design og implementering
- Trin 4: Vigtige noter og vedhæftede filer
Video: Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Jeg er overvældet over den slags svar, jeg får i denne blog. Tak fyre for at besøge min blog og motivere mig til at dele min viden med jer. Denne gang vil jeg præsentere designet af et andet interessant modul, vi ser i alle SOC'er - Interrupt Controller.
Vi vil designe en enkel, men kraftfuld programmerbar afbrydelsescontroller. Det er et fuldstændigt konfigurerbart og parameteriseret design, der er bærbart på tværs af platforme. Jeg designede dette efter at have læst meget om nogle populære interrupt controller-arkitekturer derude som NVIC, 8259a, RISC-V PLIC, Microblaze's INTC osv. Håber I finder denne blog nyttig og hjælper jer med at få en smag af hvordan afbrydelser håndteres af en processor ved hjælp af en Interrupt Controller.
Trin 1: Specifikationer
Følgende er specifikationerne for IP:
- AHB3-Lite interface.
-
Statisk konfigurerbare parametre:
- Antal eksterne afbrydelseskilder; understøtter op til 63 afbrydelser.
- Antal prioritetsniveauer; understøtter op til 63 niveauer.
- Antal redningsniveauer; understøtter op til 8 niveauer for indlejring.
- Busbredde; 32 eller 64.
- Globalt og lokalt maskerbare afbrydelser.
- Dynamisk konfigurerbart prioritetsniveau for hver afbrydelse.
- To funktionsmåder - Fuldt indlejret tilstand og lig prioritetstilstand.
- Understøtter følsomme afbrydelser på højt niveau.
RISC-V PLIC specifikationer inspireret interrupt håndtryk mekanisme bruges i designet.
Interrupt pre-emption er inspireret af 8259a
Andre læser: Microblaze INTC, NVIC
Trin 2: Oversigt over PIC
Programmable Interrupt Controller (PIC) modtager flere afbrydelser fra eksterne perifere enheder og fletter dem til en enkelt afbrydelsesoutput til en målprocessorkerne.
PIC styres gennem kontrol- og statusregistre. Alle PIC-registre er hukommelseskortede og tilgås via AHB3-Lite busgrænseflade.
Registerbanken består af konfigurationsregister, aktiveringsregistre, ventende registre, in-service-registre, prioritetsregistre og ID-register, som er typiske i Interrupt Controllers.
Konfigurationsregister bruges til at indstille driftsmåden for PIC. Det kan fungere i enten fuldt indlejret tilstand eller lige prioriteret tilstand.
Hver afbrydelse kan tildeles prioriteter og maskeres individuelt. Global maskering af alle afbrydelser understøttes også.
Registerbanken interagerer med Priority Resolver og BTC (Binary-Tree-Comparator) for at løse prioriteter ved afventende afbrydelser og gøre afbrydelse gældende for processoren i overensstemmelse hermed. ID -register indeholder ID for den højest prioriterede afventende afbrydelse.
Trin 3: RTL Design og implementering
PICs design lægger vægt på at reducere forsinkelsen ved at løse prioriteter, hvilket er den mest tidskritiske del af designet. Da designet løser prioriteter i en enkelt urcyklus, forringes ydelsen med stigningen i antallet af kilder med en Log2 -kompleksitet.
Designet blev implementeret med succes, og timing blev verificeret op til følgende frekvenser på Artix-7 FPGA'er.
- Op til 15 kilder: 100 MHz
- Op til 63 kilder: 50 MHz
Afbrydelsesforsinkelse tilføjet af PIC alene er 3 urcyklusser (Eksklusive kontekstskiftetiden for processor og den første ISR -instruktionens hentetid).
Trin 4: Vigtige noter og vedhæftede filer
Vigtige bemærkninger:
- Hvis AHB3-Lite-grænsefladen er uønsket, kan du ændre topmodulet og bruge skeletdesignet til PIC. Den leverede testbænk er dog til IP med AHB3-Lite Interface.
- PIC IP v1.0 er et fuldstændigt bærbart, bart RTL -design.
- Funktionelt verificeret til at fungere på begge tilstande.
Vedhæftede filer:
- Design koder og testbench i VHDL.
- Fuld IP -dokumentation.
Det er et open source-design … Brug gerne …
For enhver forespørgsel, når som helst:
Mitu Raj
Anbefalede:
Design af en simpel 4-vejs sæt associeret cache-controller i VHDL: 4 trin
Design af en simpel firevejssæt associeret cachecontroller i VHDL: I min tidligere instruerbare så vi, hvordan vi designede en simpel direkte kortlagt cachecontroller. Denne gang går vi et skridt foran. Vi designer en simpel associeret cache-controller med fire veje. Fordel? Mindre miss -rate, men på bekostning af perfo
Design af en simpel cache -controller i VHDL: 4 trin
Design af en simpel cache -controller i VHDL: Jeg skriver dette instruerbart, fordi jeg fandt det lidt svært at få en reference -VHDL -kode til at lære og begynde at designe en cache -controller. Så jeg designede selv en cache -controller fra bunden og testede den med succes på FPGA. Jeg har p
Design af I2C Master i VHDL: 5 trin
Design af I2C Master i VHDL: I denne instruktive diskuteres design af en simpel I2C master i VHDL.BEMÆRK: klik på hvert billede for at se fuldt billede
Design af en simpel VGA -controller i VHDL og Verilog: 5 trin
Design af en simpel VGA -controller i VHDL og Verilog: I denne instruktive skal vi designe en simpel VGA -controller i RTL. VGA Controller er det digitale kredsløb designet til at drive VGA -skærme. Den læser fra Frame Buffer (VGA Memory), der repræsenterer rammen, der skal vises, og genererer nece
Design af SPI Master i VHDL: 6 trin
Design af SPI Master i VHDL: I denne instruktive skal vi designe en SPI Bus Master fra bunden i VHDL