Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
Jeg er overveldet over hva slags svar jeg får i denne bloggen. Takk gutter for at du besøkte bloggen min og motiverte meg til å dele min kunnskap med deg. Denne gangen skal jeg presentere designet til en annen interessant modul vi ser i alle SOC -er - Interrupt Controller.
Vi skal designe en enkel, men kraftig programmerbar avbryterkontroller. Det er en helt konfigurerbar og parameterisert design som er bærbar på tvers av plattformer. Jeg designet dette etter å ha lest mye om noen populære interrupt controller-arkitekturer der ute som NVIC, 8259a, RISC-V PLIC, Microblaze's INTC etc. ved hjelp av en Interrupt Controller.
Trinn 1: Spesifikasjoner
Følgende er spesifikasjonene til IP:
- AHB3-Lite-grensesnitt.
-
Statisk konfigurerbare parametere:
- Antall eksterne avbruddskilder; støtter opptil 63 avbrudd.
- Antall prioriterte nivåer; støtter opptil 63 nivåer.
- Antall hekkingsnivåer; støtter opptil 8 hekkingsnivåer.
- Bussbredde; 32 eller 64.
- Globalt og lokalt maskerbare avbrudd.
- Dynamisk konfigurerbart prioritetsnivå for hvert avbrudd.
- To driftsmåter - Fullt nestet modus og lik prioritetsmodus.
- Støtter aktive avanserte avbrudd på høyt nivå.
RISC-V PLIC-spesifikasjoner inspirert avbruddshåndryksmekanisme brukes i designet.
Interrupt pre-emption er inspirert av 8259a
Andre leser: Microblaze INTC, NVIC
Trinn 2: Oversikt over PIC
Programmable Interrupt Controller (PIC) mottar flere avbrudd fra eksterne periferiutstyr og slår dem sammen til en enkelt interrupt -utgang til en målprosessorkjerne.
PIC kontrolleres gjennom kontroll- og statusregistre. Alle PIC-registre blir minnekartet og tilgjengelig via AHB3-Lite bussgrensesnitt.
Registerbanken består av konfigurasjonsregister, aktiveringsregistre, ventende registre, driftsregistre, prioritetsregistre og ID-register, som er typiske for Avbrytkontrollere.
Konfigurasjonsregister brukes til å angi driftsmåten for PIC. Det kan fungere i enten fullt nestet modus eller lik prioritetsmodus.
Hvert avbrudd kan tildeles prioriteter og maskeres individuelt. Global maskering av alle avbrudd støttes også.
Registerbanken samhandler med Priority Resolver og BTC (Binary-Tree-Comparator) for å løse prioriteringer for ventende avbrudd og hevde avbrudd for prosessoren tilsvarende. ID -registeret inneholder ID -en til den høyest prioriterte ventende avbruddet.
Trinn 3: RTL Design og implementering
PICs design legger vekt på å redusere forsinkelsen til å løse prioriteringer, som er den mest kritiske delen av designet. Siden designet løser prioriteringer i en enkelt klokkesyklus, forringes ytelsen med økningen i antall kilder med en Log2 -kompleksitet.
Designet ble vellykket implementert og timingen bekreftet opp til følgende frekvenser på Artix-7 FPGAer.
- Opptil 15 kilder: 100 MHz
- Opptil 63 kilder: 50 MHz
Interrupt Latency lagt til av PIC alene er 3 klokkesykluser (Ekskludert kontekstbrytertiden til prosessoren og den første ISR -instruksjonens hentetid).
Trinn 4: Viktige notater og vedlagte filer
Viktige notater:
- Hvis AHB3-Lite-grensesnittet er uønsket, kan du endre toppmodulen og bruke skjelettdesignet til PIC. Imidlertid er testbenken som er gitt for IP med AHB3-Lite-grensesnitt.
- PIC IP v1.0 er en helt bærbar, ren RTL -design.
- Funksjonelt verifisert for å fungere på begge moduser.
Vedlagte filer:
- Design koder og testbenk i VHDL.
- Full IP -dokumentasjon.
Det er en åpen kildekode-design … Bruk gjerne …
For spørsmål, når som helst:
Mitu Raj
Anbefalt:
Design av en enkel fire-veis sett assosiert cache-kontroller i VHDL: 4 trinn
Design av en enkel fire-veis sett assosiert cache-kontroller i VHDL: I min forrige instruktive så vi hvordan vi designer en enkel direkte kartlagt cachekontroller. Denne gangen går vi et skritt videre. Vi skal designe en enkel assosiativ cache-kontroller med fire veier. Fordel? Mindre glipprate, men på bekostning av perfo
Design av en enkel cache -kontroller i VHDL: 4 trinn
Design av en enkel cache -kontroller i VHDL: Jeg skriver dette instruerbart, fordi jeg syntes det var litt vanskelig å få noen referanse -VHDL -koder for å lære og begynne å designe en cache -kontroller. Så jeg designet en cache -kontroller selv fra bunnen av, og testet den vellykket på FPGA. Jeg har p
Design av I2C Master i VHDL: 5 trinn
Design av I2C Master i VHDL: I denne instruksjonsboken diskuteres det å designe en enkel I2C -master i VHDL. MERK: klikk på hvert bilde for å se hele bildet
Design av en enkel VGA -kontroller i VHDL og Verilog: 5 trinn
Design av en enkel VGA -kontroller i VHDL og Verilog: I denne instruksen skal vi designe en enkel VGA -kontroller i RTL. VGA -kontrolleren er den digitale kretsen designet for å drive VGA -skjermer. Den leser fra Frame Buffer (VGA Memory) som representerer rammen som skal vises, og genererer nese
Design av SPI Master i VHDL: 6 trinn
Design av SPI Master i VHDL: I denne instruksen skal vi designe en SPI Bus Master fra bunnen av i VHDL