Sisällysluettelo:
- Vaihe 1: Tekniset tiedot
- Vaihe 2: PIC -yleiskatsaus
- Vaihe 3: RTL -suunnittelu ja toteutus
- Vaihe 4: Tärkeitä huomautuksia ja liitetiedostoja
Video: Ohjelmoitavan keskeytysohjaimen suunnittelu VHDL: ssä: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Olen hämmästynyt siitä, millaisia vastauksia saan tästä blogista. Kiitos kaverit vierailustani blogissani ja kannustivat minua jakamaan tietoni kanssanne. Tällä kertaa aion esitellä toisen mielenkiintoisen moduulin suunnittelun, jonka näemme kaikissa SOC -järjestelmissä - keskeytysohjain.
Suunnittelemme yksinkertaisen mutta tehokkaan ohjelmoitavan keskeytyksen ohjaimen. Se on täysin konfiguroitava ja parametroitu muotoilu, joka on kannettava eri alustoilla. Suunnittelin tämän lukiessani paljon joitakin suosittuja keskeytysohjaimen arkkitehtuureja, kuten NVIC, 8259a, RISC-V PLIC, Microblaze's INTC jne. keskeytysohjaimen avulla.
Vaihe 1: Tekniset tiedot
IP -tiedot ovat seuraavat:
- AHB3-Lite-käyttöliittymä.
-
Staattisesti konfiguroitavat parametrit:
- Ulkoisten keskeytyslähteiden määrä; tukee jopa 63 keskeytystä.
- Prioriteettitasojen määrä; tukee jopa 63 tasoa.
- Pesimistasojen määrä; tukee jopa 8 pesintätasoa.
- Väylän leveys; 32 tai 64.
- Maailmanlaajuisesti ja paikallisesti peitetyt keskeytykset.
- Dynaamisesti konfiguroitava prioriteettitaso kullekin keskeytykselle.
- Kaksi toimintatilaa - täysin sisäkkäinen tila ja yhtä tärkeystila.
- Tukee aktiivisen korkean tason herkkiä keskeytyksiä.
Suunnittelussa käytetään RISC-V PLIC -määritysten innoittamaa keskeytyskäden kättelymekanismia.
Keskeytysosto on saanut inspiraationsa 8259a: sta
Muita lukuja: Microblaze INTC, NVIC
Vaihe 2: PIC -yleiskatsaus
Ohjelmoitava keskeytysohjain (PIC) vastaanottaa useita keskeytyksiä ulkoisilta oheislaitteilta ja yhdistää ne yhteen keskeytyslähtöön kohdeprosessorin ytimeen.
PIC: tä ohjataan valvonta- ja tilarekisterien kautta. Kaikki PIC-rekisterit on kartoitettu muistiin ja niihin pääsee AHB3-Lite-väyläliitännän kautta.
Rekisteripankki koostuu kokoonpanorekisteristä, käyttöönottorekistereistä, vireillä olevista rekistereistä, käytössä olevista rekistereistä, ensisijaisuusrekistereistä ja henkilörekisteristä, jotka ovat tyypillisiä keskeytysohjaimille.
Konfigurointirekisteriä käytetään PIC: n toimintatilan asettamiseen. Se voi toimia joko täysin sisäkkäisessä tilassa tai yhtä tärkeänä.
Jokaiselle keskeytykselle voidaan määrittää prioriteetit ja peittää yksilöllisesti. Myös kaikkien keskeytysten maailmanlaajuista peittämistä tuetaan.
Rekisteripankki on vuorovaikutuksessa Priority Resolverin ja BTC: n (Binary-Tree-Comparator) kanssa ratkaistakseen odottavien keskeytysten prioriteetit ja vaatiakseen keskeytyksen prosessorille vastaavasti. ID -rekisteri sisältää korkeimman prioriteetin odottavan keskeytyksen tunnuksen.
Vaihe 3: RTL -suunnittelu ja toteutus
PIC: n suunnittelussa painotetaan prioriteettien ratkaisemisen viiveen vähentämistä, mikä on suunnittelun aikakriittisin osa. Koska suunnittelu ratkaisee prioriteetit yhdessä kellosyklissä, suorituskyky heikkenee Log2 -monimutkaisien lähteiden määrän kasvaessa.
Suunnittelu toteutettiin onnistuneesti ja ajoitus varmistettiin seuraaviin taajuuksiin Artix-7 FPGA -laitteissa.
- Jopa 15 lähdettä: 100 MHz
- Jopa 63 lähdettä: 50 MHz
Pelkästään PIC: n lisäämä keskeytysviive on 3 kellojaksoa (lukuun ottamatta prosessorin kontekstikytkentäaikaa ja ensimmäistä ISR -käskyn noutoaikaa).
Vaihe 4: Tärkeitä huomautuksia ja liitetiedostoja
Tärkeät muistiinpanot:
- Jos AHB3-Lite-käyttöliittymä ei ole toivottu, voit vaihtaa ylämoduulin ja käyttää PIC: n runkorakennetta. Kuitenkin toimitettu testipenkki on tarkoitettu IP: lle, jossa on AHB3-Lite-liitäntä.
- PIC IP v1.0 on täysin kannettava, paljas RTL -malli.
- Toiminnallisesti vahvistettu toimimaan molemmissa tiloissa.
Liitetyt tiedostot:
- Suunnittelukoodit ja koepenkki VHDL -muodossa.
- Täysi IP -dokumentaatio.
Se on avoimen lähdekoodin muotoilu… Käytä vapaasti…
Jos sinulla on kysyttävää, milloin tahansa:
Mitu Raj
Suositeltava:
Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: Edellisessä ohjeessani näimme kuinka suunnitella yksinkertainen suoraan kartoitettu välimuistiohjain. Tällä kertaa mennään askel eteenpäin. Suunnittelemme yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen. Etu? Vähemmän miss -korkoa, mutta perfo -kustannuksella
Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta
Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: Kirjoitan tämän ohjeellisen, koska minusta oli hieman vaikeaa saada viite -VHDL -koodi oppia ja aloittaa välimuistiohjaimen suunnittelu. Joten suunnittelin välimuistiohjaimen itse tyhjästä ja testasin sen onnistuneesti FPGA: lla. Minulla on p
I2C Masterin suunnittelu VHDL: ssä: 5 vaihetta
I2C Masterin suunnittelu VHDL: ssä: Tässä ohjeessa käsitellään yksinkertaisen I2C -masterin suunnittelua VHDL: ssä
SPI Masterin suunnittelu VHDL: ssä: 6 vaihetta
SPI Masterin suunnittelu VHDL: ssä: Tässä ohjeessa aiomme suunnitella SPI Bus Masterin alusta alkaen VHDL: ssä
UART: n suunnittelu VHDL: ssä: 5 vaihetta
UART: n suunnittelu VHDL: ssä: UART tarkoittaa Universal Asynchronous Receiver Transmitter. Se on suosituin ja yksinkertaisin sarjaliikenneprotokolla.Tässä ohjeessa opit suunnittelemaan UART -moduulin VHDL -muodossa