Satura rādītājs:

Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi
Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi

Video: Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi

Video: Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi
Video: Электрический самокат Dualtron Dolphin по отличной цене Moxie 2024, Novembris
Anonim
Programmējama pārtraukuma kontroliera dizains VHDL
Programmējama pārtraukuma kontroliera dizains VHDL

Esmu satriekta par šāda veida atbildēm, ko saņemu šajā emuārā. Paldies puišiem, ka apmeklējāt manu emuāru un motivējāt mani dalīties savās zināšanās ar jums. Šoreiz es iepazīstināšu ar cita interesanta moduļa dizainu, ko redzam visos SOC - pārtraukuma kontrolieris.

Mēs izstrādāsim vienkāršu, bet jaudīgu programmējamu pārtraukuma kontrolieri. Tas ir pilnībā konfigurējams un parametrizēts dizains, kas ir pārnēsājams dažādās platformās. Es to izstrādāju pēc tam, kad esmu daudz lasījis par dažām populārām pārtraukuma kontrollera arhitektūrām, piemēram, NVIC, 8259a, RISC-V PLIC, Microblaze's INTC uc ar Interrupt Controller palīdzību.

1. darbība: specifikācijas

Tālāk ir norādītas IP specifikācijas:

  • AHB3-Lite interfeiss.
  • Statiski konfigurējami parametri:

    • Ārējo pārtraukumu avotu skaits; atbalsta līdz 63 pārtraukumiem.
    • Prioritāšu līmeņu skaits; atbalsta līdz 63 līmeņiem.
    • Ligzdošanas līmeņu skaits; atbalsta līdz 8 ligzdošanas līmeņiem. 
    • Autobusa platums; 32 vai 64.
  • Globāli un lokāli maskējami pārtraukumi.
  • Dinamiski konfigurējams prioritātes līmenis katram pārtraukumam.
  • Divi darbības režīmi - pilnībā ligzdots režīms un vienādas prioritātes režīms.
  • Atbalsta aktīva augsta līmeņa jutīgus pārtraukumus.

Dizainā tiek izmantots RISC-V PLIC specifikāciju iedvesmots pārtraukšanas rokasspiediena mehānisms.

Pārtraukšanas priekšpirkšana ir iedvesmota no 8259a

Citi lasījumi: Microblaze INTC, NVIC

2. darbība. PIC pārskats

PIC pārskats
PIC pārskats

Programmējamais pārtraukuma kontrolieris (PIC) saņem vairākus pārtraukumus no ārējām perifērijas ierīcēm un apvieno tos vienā pārtraukuma izejā uz mērķa procesora kodolu.

PIC tiek kontrolēts, izmantojot kontroles un statusa reģistrus. Visi PIC reģistri ir kartēti atmiņā un tiem var piekļūt, izmantojot AHB3-Lite kopnes saskarni.

Reģistru banka sastāv no konfigurācijas reģistra, iespējošanas reģistriem, neapstiprinātiem reģistriem, ekspluatācijas reģistriem, prioritāšu reģistriem un ID reģistra, kas ir raksturīgi pārtraukuma kontrolieriem.

Konfigurācijas reģistrs tiek izmantots, lai iestatītu PIC darbības režīmu. Tas var darboties pilnībā ligzdotā režīmā vai vienādas prioritātes režīmā.

Katram pārtraukumam var piešķirt prioritātes un individuāli maskēt. Tiek atbalstīta arī visu pārtraukumu globāla maskēšana.

Reģistra banka mijiedarbojas ar Priority Resolver un BTC (Binary-Tree-Comparator), lai atrisinātu gaidāmo pārtraukumu prioritātes un attiecīgi apgalvotu pārtraukumu procesoram. ID reģistrā ir augstākās prioritātes ID, kas gaida pārtraukumu.

3. darbība: RTL projektēšana un ieviešana

RTL projektēšana un ieviešana
RTL projektēšana un ieviešana

PIC dizains uzsver prioritāšu atrisināšanas latentuma samazināšanu, kas ir viskritiskākā dizaina daļa. Tā kā dizains nosaka prioritātes vienā pulksteņa ciklā, veiktspēja pasliktinās, palielinoties avotu skaitam ar Log2 sarežģītību.

Dizains tika veiksmīgi ieviests, un laiks tika pārbaudīts līdz šādām frekvencēm Artix-7 FPGA.

  • Līdz 15 avotiem: 100 MHz
  • Līdz 63 avotiem: 50 MHz

Pārtraukšanas latentums, ko pievieno tikai PIC, ir 3 pulksteņa cikli (izņemot procesora konteksta pārslēgšanās laiku un pirmo ISR instrukcijas ielādes laiku).

4. darbība. Svarīgas piezīmes un pievienotie faili

Svarīgas piezīmes:

  • Ja AHB3-Lite interfeiss nav vēlams, varat mainīt augšējo moduli un izmantot PIC skeleta dizainu. Tomēr testa stends ir paredzēts IP ar AHB3-Lite interfeisu.
  • PIC IP v1.0 ir pilnībā pārnēsājams, tukšs RTL dizains.
  • Funkcionāli pārbaudīts darbam abos režīmos.

Pievienotie faili:

  • Dizaina kodi un testa stends VHDL.
  • Pilna IP dokumentācija.

Tas ir atvērtā koda dizains… Jūtieties brīvi izmantot…

Ja rodas jautājumi, jebkurā laikā:

Mitu Radžs

Ieteicams: