Sadržaj:
- Korak 1: Specifikacije
- Korak 2: Pregled PIC -a
- Korak 3: Dizajn i implementacija RTL -a
- Korak 4: Važne napomene i priložene datoteke
Video: Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Prezadovoljna sam odgovorima koje dobivam na ovom blogu. Hvala momci što ste posjetili moj blog i motivirali me da svoje znanje podijelim s vama. Ovaj put ću predstaviti dizajn još jednog zanimljivog modula koji vidimo u svim SOC -ovima - Interrupt Controller.
Dizajnirat ćemo jednostavan, ali moćan programabilni kontroler prekida. To je potpuno konfigurabilan i parametriziran dizajn koji je prenosiv na sve platforme. Dizajnirao sam ovo nakon što sam puno čitao o nekim popularnim arhitekturama kontrolera prekida kao što su NVIC, 8259a, RISC-V PLIC, Microblaze's INTC itd. Nadam se da će vam ovaj blog biti od pomoći i pomoći vam da osjetite kako procesor rješava prekide uz pomoć kontrolera prekida.
Korak 1: Specifikacije
Slijede specifikacije IP -a:
- AHB3-Lite sučelje.
-
Statistički konfigurirani parametri:
- Broj vanjskih izvora prekida; podržava do 63 prekida.
- Br. Razina prioriteta; podržava do 63 razine.
- Broj razina gniježđenja; podržava do 8 razina gniježđenja.
- Širina sabirnice; 32 ili 64.
- Globalno i lokalno maskirani prekidi.
- Dinamički podesiva razina prioriteta za svaki prekid.
- Dva načina rada - potpuno ugniježđen način rada i način jednakog prioriteta.
- Podržava osjetljive prekide na visokoj razini aktivne razine.
U dizajnu se koristi RISC-V PLIC specifikacija inspirirana mehanizmom za rukovanje prekidom.
Prevencija prekida je inspirirana 8259a
Ostalo glasi: Microblaze INTC, NVIC
Korak 2: Pregled PIC -a
Programabilni kontroler prekida (PIC) prima više prekida s vanjske periferije i spaja ih u jedan izlaz prekida na jezgru ciljnog procesora.
PIC se kontrolira putem kontrolnih i statusnih registara. Svi PIC registri registrirani su u memoriju, a pristupa im se putem sučelja sabirnice AHB3-Lite.
Banka registara sastoji se od registra konfiguracije, registra za omogućavanje, registara na čekanju, registara u službi, registara prioriteta i registra ID-a, koji su tipični za kontrolere prekida.
Konfiguracijski registar služi za postavljanje načina rada PIC -a. Može raditi u potpuno ugniježđenom načinu rada ili u načinu jednakog prioriteta.
Svakom prekidu mogu se dodijeliti prioriteti i pojedinačno maskirati. Globalno maskiranje svih prekida također je podržano.
Banka registara stupa u interakciju s Priority Resolverom i BTC-om (Binary-Tree-Comparator) radi rješavanja prioriteta neriješenih prekida i u skladu s tim potvrđuje prekid procesoru. Registar ID -a sadrži ID prekida s najvišim prioritetom.
Korak 3: Dizajn i implementacija RTL -a
PIC -ov dizajn naglašava smanjenje kašnjenja u rješavanju prioriteta, što je dio vremena koji je najvažniji dio dizajna. Budući da dizajn rješava prioritete u jednom ciklusu takta, performanse se smanjuju povećanjem broja izvora sa Log2 složenošću.
Dizajn je uspješno proveden i provjereno vrijeme do sljedećih frekvencija na Artix-7 FPGA-ima.
- Do 15 izvora: 100 MHz
- Do 63 izvora: 50 MHz
Latencija prekida dodana samo od strane PIC -a je 3 takta (isključujući vrijeme prebacivanja konteksta procesora i vrijeme dohvaćanja prve ISR upute).
Korak 4: Važne napomene i priložene datoteke
Važne bilješke:
- Ako je sučelje AHB3-Lite neželjeno, možete promijeniti gornji modul i upotrijebiti dizajn kostura PIC-a. Međutim, predviđena ispitna ploča namijenjena je IP-u s AHB3-Lite sučeljem.
- PIC IP v1.0 potpuno je prenosiv, goli RTL dizajn.
- Funkcionalno provjereno radi na oba načina rada.
Priložene datoteke:
- Dizajn kodovi i ispitni sto u VHDL -u.
- Potpuna IP dokumentacija.
To je dizajn otvorenog koda … Slobodno koristite …
Za bilo koje upite, u bilo koje vrijeme:
Mitu Raj
Preporučeni:
Laboratorij prekida (rad u tijeku): 3 koraka
Laboratorij prekida (rad u tijeku): Svrha ovog laboratorija je pokretanje Arduino programa pomoću prekida. Ovaj laboratorij ne radi u potpunosti ispravno zbog problema s kodiranjem. Ono što će vam trebati:- 1 Arduino Uno- 1 Breadboard- 1 gumb za pritiskanje- 3 LED-a- otpornici od 220 ohma- kratkospojne žice
Dizajn jednostavnog četverosmjernog asocijativnog upravljača predmemorije u VHDL-u: 4 koraka
Dizajn jednostavnog četverosmjernog asocijativnog upravljačkog predmemorije u VHDL-u: U mojim prethodnim uputama vidjeli smo kako dizajnirati jednostavan izravno mapirani predmemorski kontroler. Ovaj put idemo korak naprijed. Dizajnirat ćemo jednostavan četverosmjerni set asocijativnih kontrolera predmemorije. Prednost? Manje propuštanja, ali po cijenu performanse
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: 5 koraka
Dizajn jednostavnog VGA kontrolera u VHDL -u i Verilogu: U ovom uputstvu ćemo dizajnirati jednostavan VGA kontroler u RTL -u. VGA kontroler je digitalni sklop dizajniran za pogon VGA zaslona. Čita iz Frame Buffer -a (VGA memorija) koji predstavlja okvir za prikaz i generira potrebno
LED mod kontrolera kontrolera Gamecube: 8 koraka (sa slikama)
LED mod za Gamecube Controller: Jeste li ikada imali kontroler igre koji ste zaista voljeli, ali vam nije bio prilagođen? Pa tako sam se ja osjećao sa svojim Gamecube kontrolerom. Gamecube kontroleri su moje omiljene vrste kontrolera, ali u Sjevernoj Americi tri najčešća su
AVR mikrokontroler. LED treperi pomoću mjerača vremena. Odbrojavanje prekida. Timer CTC način rada: 6 koraka
AVR mikrokontroler. LED treperi pomoću mjerača vremena. Odbrojavanje prekida. Timer CTC način rada: Pozdrav svima! Mjerači su važan koncept u području elektronike. Svaka elektronička komponenta radi na vremenskoj bazi. Ova vremenska baza pomaže da se sav rad uskladi. Svi mikrokontroleri rade na unaprijed definiranoj frekvenciji sata