Turinys:
- 1 žingsnis: specifikacijos
- 2 žingsnis: PIC apžvalga
- 3 žingsnis: RTL projektavimas ir diegimas
- 4 veiksmas: svarbios pastabos ir pridedami failai
Video: VHDL programuojamo pertraukimo valdiklio dizainas: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Esu priblokštas tokių atsakymų, kuriuos gaunu šiame tinklaraštyje. Ačiū vaikinai, kad lankotės mano tinklaraštyje ir paskatinote mane pasidalinti su jumis savo žiniomis. Šį kartą pristatysiu dar vieno įdomaus modulio, kurį matome visuose SOC, dizainą - pertraukimo valdiklį.
Mes sukursime paprastą, bet galingą programuojamą pertraukimo valdiklį. Tai visiškai sukonfigūruojamas ir parametrinis dizainas, kuris yra nešiojamas įvairiose platformose. Sukūriau tai daug perskaitęs apie kai kurias populiarias pertraukimo valdiklių architektūras, tokias kaip NVIC, 8259a, RISC-V PLIC, „Microblaze's INTC“ir tt Tikiuosi, kad jums, vaikinai, šis tinklaraštis bus naudingas ir padės jums suprasti, kaip pertraukimus tvarko procesorius padedant pertraukimo valdikliui.
1 žingsnis: specifikacijos
Toliau pateikiamos IP specifikacijos:
- AHB3-Lite sąsaja.
-
Statiškai konfigūruojami parametrai:
- Išorinių pertraukimo šaltinių skaičius; palaiko iki 63 pertraukimų.
- Prioritetų lygių skaičius; palaiko iki 63 lygių.
- Lizdavimo lygių skaičius; palaiko iki 8 lizdavimo lygių.
- Autobuso plotis; 32 arba 64.
- Globali ir vietinė maskuojama pertrauka.
- Dinamiškai konfigūruojamas kiekvieno pertraukimo prioriteto lygis.
- Du darbo režimai - visiškai įdėtas režimas ir vienodo prioriteto režimas.
- Palaiko aukšto lygio jautrias pertraukas.
Projektuojant naudojamas RISC-V PLIC specifikacijų įkvėptas pertraukimo rankos paspaudimo mechanizmas.
Nutraukimo išankstinis pirkimas įkvėptas 8259a
Kiti skaitiniai: „Microblaze INTC“, NVIC
2 žingsnis: PIC apžvalga
Programuojamas pertraukimo valdiklis (PIC) gauna kelis pertraukimus iš išorinių išorinių įrenginių ir sujungia juos į vieną pertraukimo išvestį į tikslinį procesoriaus branduolį.
PIC valdomas naudojant valdymo ir būsenos registrus. Visi PIC registrai yra susieti su atmintimi ir prieinami per AHB3-Lite magistralės sąsają.
Registrų banką sudaro konfigūracijos registras, įgalinimo registrai, laukiantys registrai, eksploatuojamų registrai, prioritetų registrai ir ID registras, kurie yra būdingi „Interrupt Controllers“.
Konfigūracijos registras naudojamas PIC veikimo režimui nustatyti. Jis gali veikti visiškai įterptu režimu arba vienodo prioriteto režimu.
Kiekvienam pertraukimui gali būti priskirti prioritetai ir jie gali būti užmaskuoti atskirai. Taip pat palaikomas visiškas visų pertraukų maskavimas.
Registro bankas sąveikauja su „Priority Resolver“ir BTC („Binary-Tree-Comparator“), kad išspręstų laukiančių pertraukų prioritetus ir atitinkamai patvirtintų pertraukimą procesoriui. ID registre yra aukščiausio prioriteto laukiančio pertraukos ID.
3 žingsnis: RTL projektavimas ir diegimas
PIC dizainas pabrėžia prioritetų sprendimo delsos sumažinimą, o tai yra svarbiausia laiko dalis. Kadangi dizainas išsprendžia prioritetus per vieną laikrodžio ciklą, našumas blogėja didėjant šaltinių, kurių sudėtingumas yra Log2, skaičiui.
Dizainas buvo sėkmingai įgyvendintas ir laikas patikrintas iki šių dažnių „Artix-7“FPGA.
- Iki 15 šaltinių: 100 MHz
- Iki 63 šaltinių: 50 MHz
Vien tik PIC pridėtas pertraukos vėlavimas yra 3 laikrodžio ciklai (neįskaitant procesoriaus kontekstinio perjungimo laiko ir pirmojo ISR nurodymo gavimo laiko).
4 veiksmas: svarbios pastabos ir pridedami failai
Svarbios pastabos:
- Jei AHB3-Lite sąsaja nepageidaujama, galite pakeisti viršutinį modulį ir naudoti PIC karkaso dizainą. Tačiau pateiktas bandymų stendas skirtas IP su AHB3-Lite sąsaja.
- PIC IP v1.0 yra visiškai nešiojamas, plikas RTL dizainas.
- Funkcionaliai patikrinta, ar veikia abu režimai.
Prisegtos bylos:
- Dizaino kodai ir bandymo stendas VHDL.
- Pilna IP dokumentacija.
Tai atviro kodo dizainas … Nesivaržykite naudoti…
Dėl bet kokių klausimų bet kuriuo metu:
Mitu Raj
Rekomenduojamas:
Paprasto keturių krypčių asociatyvaus talpyklos valdiklio VHDL dizainas: 4 žingsniai
Paprasto keturių krypčių rinkinio asociatyvaus talpyklos valdiklio dizainas VHDL: Ankstesniame nurodyme pamatėme, kaip sukurti paprastą tiesioginį žemėlapio talpyklos valdiklį. Šį kartą žengiame žingsnį į priekį. Mes sukursime paprastą keturių krypčių asociatyvaus talpyklos valdiklį. Privalumas? Mažesnis praleidimo procentas, bet už perfo kainą
Paprasto talpyklos valdiklio VHDL dizainas: 4 žingsniai
Paprasto talpyklos valdiklio VHDL dizainas: Rašau šį nurodymą, nes man buvo šiek tiek sunku gauti tam tikrą nuorodinį VHDL kodą, kad išmokčiau ir pradėčiau kurti talpyklos valdiklį. Taigi aš pats nuo pat pradžių sukūriau talpyklos valdiklį ir sėkmingai išbandžiau jį FPGA. Turiu p
„I2C Master“dizainas VHDL: 5 žingsniai
„I2C Master“dizainas VHDL: Šioje instrukcijoje aptariamas paprasto I2C meistro kūrimas VHDL. PASTABA: spustelėkite visą vaizdą, kad pamatytumėte visą vaizdą
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: 5 žingsniai
Paprasto VGA valdiklio dizainas VHDL ir „Verilog“: Šioje instrukcijoje mes suprojektuosime paprastą VGA valdiklį RTL. VGA valdiklis yra skaitmeninė grandinė, skirta VGA ekranams valdyti. Jis nuskaitomas iš kadrų buferio (VGA atmintis), rodančio rodomą kadrą, ir sukuria reikiamą
„SPI Master“dizainas VHDL: 6 žingsniai
„SPI Master“dizainas VHDL: Šioje instrukcijoje mes suprojektuosime „SPI Bus Master“nuo pat pradžių VHDL