Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka
Dizajn programabilnog kontrolera prekida u VHDL -u: 4 koraka
Anonim
Dizajn programabilnog kontrolera prekida u VHDL -u
Dizajn programabilnog kontrolera prekida u VHDL -u

Prezadovoljna sam odgovorima koje dobijem na ovom blogu. Hvala momci što ste posjetili moj blog i motivirali me da podijelim svoje znanje s vama. Ovaj put ću vam 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 različite 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 interfejs.
  • Statistički podesivi parametri:

    • Broj spoljnih izvora prekida; podržava do 63 prekida.
    • Br. Nivoa prioriteta; podržava do 63 nivoa.
    • Broj nivoa gniježđenja; podržava do 8 nivoa gniježđenja. 
    • Širina sabirnice; 32 ili 64.
  • Globalno i lokalno maskirani prekidi.
  • Dinamički konfiguriran nivo prioriteta za svaki prekid.
  • Dva načina rada - potpuno ugniježđen način rada i način jednakog prioriteta.
  • Podržava osjetljive prekide aktivnog i visokog nivoa.

U dizajnu se koristi mehanizam za rukovanje prekidanjem rukovanja inspiriran specifikacijama RISC-V PLIC.

Prevencija prekida je inspirirana 8259a

Ostalo glasi: Microblaze INTC, NVIC

Korak 2: Pregled PIC -a

Pregled PIC -a
Pregled PIC -a

Programabilni kontroler prekida (PIC) prima više prekida sa vanjske periferije i spaja ih u jedan izlaz prekida sa jezgrom ciljnog procesora.

PIC se kontrolira putem kontrolnih i statusnih registara. Svi PIC registri su preslikani u memoriju i pristupa im se preko sučelja sabirnice AHB3-Lite.

Banka registara sastoji se od registra konfiguracije, registara za omogućavanje, registara na čekanju, registara u službi, registara prioriteta i registra identifikatora, koji su tipični za kontrolere prekida.

Konfiguracijski registar se koristi za postavljanje načina rada PIC -a. Može raditi u potpuno ugniježđenom načinu rada ili u režimu jednakog prioriteta.

Svakom prekidu se mogu dodijeliti prioriteti i pojedinačno maskirati. Globalno maskiranje svih prekida je također podržano.

Banka registara stupa u interakciju s prioritetnim rješavačem i BTC-om (Binary-Tree-Comparator) radi rješavanja prioriteta čekajućih prekida i u skladu s tim potvrđuje prekid procesoru. Registar ID -ova sadrži ID najvišeg prioriteta koji čeka na prekid.

Korak 3: Dizajn i implementacija RTL -a

RTL Dizajn i implementacija
RTL Dizajn i implementacija

PIC -ov dizajn naglasak stavlja na 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-ovima.

  • 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 instrukcije).

Korak 4: Važne napomene i priložene datoteke

Važne napomene:

  • Ako je sučelje AHB3-Lite neželjeno, možete promijeniti gornji modul i upotrijebiti skeletni dizajn PIC-a. Međutim, predviđena ispitna ploča namijenjena je IP-u s AHB3-Lite sučeljem.
  • PIC IP v1.0 je potpuno 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čuje se: