Indholdsfortegnelse:

Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin

Video: Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin

Video: Design af en programmerbar afbrydelsescontroller i VHDL: 4 trin
Video: Рон Эглэш об африканских фракталах 2024, November
Anonim
Design af en programmerbar afbrydelsescontroller i VHDL
Design af en programmerbar afbrydelsescontroller i VHDL

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

Oversigt over PIC
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

RTL Design og implementering
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: