Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Olen üllatunud, milliseid vastuseid ma siin blogis saan. Tänan poisid, et külastasite minu ajaveebi ja motiveerisite mind teiega oma teadmisi jagama. Seekord tutvustan veel ühe huvitava mooduli kujundust, mida näeme kõigis SOC -des - katkestuskontroller.
Kavandame lihtsa, kuid võimsa programmeeritava katkestuskontrolleri. See on täielikult konfigureeritav ja parameetritega kujundus, mida saab platvormidel kaasas kanda. Ma kujundasin selle pärast seda, kui olin palju lugenud mõnda populaarset katkestuskontrolleri arhitektuuri, näiteks NVIC, 8259a, RISC-V PLIC, Microblaze's INTC jne. Loodetavasti leiate sellest ajaveebist abi ja saate aimu selle kohta, kuidas katkestusi protsessor käsitleb. katkestuskontrolleri abiga.
Samm: spetsifikatsioonid
IP -spetsifikatsioonid on järgmised:
- AHB3-Lite liides.
-
Staatiliselt konfigureeritavad parameetrid:
- Väliste katkestusallikate arv; toetab kuni 63 katkestust.
- Prioriteeditasemete arv; toetab kuni 63 taset.
- Pesitsusastmete arv; toetab kuni 8 pesastamistaset.
- Bussi laius; 32 või 64.
- Ülemaailmselt ja lokaalselt maskeeritavad katkestused.
- Dünaamiliselt seadistatav prioriteeditase iga katkestuse jaoks.
- Kaks töörežiimi - täielikult pesastatud režiim ja võrdse prioriteediga režiim.
- Toetab aktiivseid kõrgetasemelisi tundlikke katkestusi.
Kujunduses kasutatakse RISC-V PLIC spetsifikatsioonidest inspireeritud katkestuskäepigistusmehhanismi.
Katkestamise eeltingimused on inspireeritud 8259a-st
Muud loendid: Microblaze INTC, NVIC
2. samm: ülevaade PIC -ist
Programmeeritav katkestuskontroller (PIC) võtab mitu katkestust välisseadmetelt ja ühendab need üheks katkestusväljundiks sihtprotsessori tuuma.
PIC -d juhitakse kontrolli- ja olekuregistrite kaudu. Kõik PIC-registrid on mälukaardistatud ja neile pääseb juurde AHB3-Lite siiniliidese kaudu.
Registripank koosneb konfiguratsiooniregistrist, lubatud registritest, pooleliolevast registrist, kasutuses olevast registrist, prioriteediregistrist ja ID-registrist, mis on tüüpilised katkestuskontrolleritele.
Konfiguratsiooniregistrit kasutatakse PIC -i töörežiimi määramiseks. See võib töötada kas täielikult pesastatud või võrdse prioriteediga režiimis.
Igale katkestusele saab määrata prioriteedid ja need saab eraldi varjata. Samuti toetatakse kõigi katkestuste ülemaailmset maskeerimist.
Registripank suhtleb Priority Resolveri ja BTC-ga (Binary-Tree-Comparator), et lahendada ootel olevate katkestuste prioriteedid ja kinnitada katkestus vastavalt protsessorile. ID -register sisaldab kõrgeima prioriteediga ootel oleva katkestuse ID -d.
3. samm: RTL -i kavandamine ja juurutamine
PICi disain rõhutab prioriteetide lahendamise latentsuse vähendamist, mis on disaini kõige ajakriitilisem osa. Kuna disain lahendab prioriteedid ühe taktsükli jooksul, halveneb jõudlus koos Log2 keerukusega allikate arvu suurenemisega.
Disain viidi edukalt ellu ja ajastust kontrolliti kuni järgmiste sagedusteni Artix-7 FPGA-del.
- Kuni 15 allikat: 100 MHz
- Kuni 63 allikat: 50 MHz
Ainuüksi PIC -i poolt lisatud katkestuse latentsus on 3 taktsüklit (välja arvatud protsessori kontekstivahetuse aeg ja esimene ISR -käskude toomise aeg).
Samm: olulised märkused ja manustatud failid
Olulised märkused:
- Kui AHB3-Lite liides pole soovitud, saate ülemist moodulit vahetada ja kasutada PIC-i skeleti kujundust. Pakutav testpink on aga mõeldud IP-le koos AHB3-Lite liidesega.
- PIC IP v1.0 on täiesti kaasaskantav, paljas RTL -disain.
- Funktsionaalselt kontrollitud, et töötada mõlemas režiimis.
Lisatud failid:
- Disainikoodid ja testpink VHDL -is.
- Täielik IP dokumentatsioon.
See on avatud lähtekoodiga disain… Kasutage julgelt…
Küsimuste korral igal ajal:
Mitu Raj