Satura rādītājs:
- 1. darbība: specifikācijas
- 2. darbība. PIC pārskats
- 3. darbība: RTL projektēšana un ieviešana
- 4. darbība. Svarīgas piezīmes un pievienotie faili
Video: Programmējama pārtraukuma kontroliera dizains VHDL: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
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
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
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:
PS2 kontroliera pārtraukuma adapteris Arduino saskarnei: 10 soļi
PS2 kontroliera pārtraukuma adapteris Arduino saskarnei: PlayStation 2 kontrolieris ir patiešām noderīgs spēļu bloks robotikas projektiem. Tas ir lēts, plaši pieejams (lietots), tajā ir daudz pogu un tas ir saderīgs ar Arduino! Lai to izmantotu, jums ir nepieciešams īpašs savienotājs, lai to savienotu līdz
Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša četrvirzienu komplekta asociatīvā kešatmiņas kontroliera dizains VHDL: Manā iepriekšējā pamācībā mēs redzējām, kā izveidot vienkāršu tieši kartētu kešatmiņas kontrolieri. Šoreiz mēs ejam soli uz priekšu. Mēs izstrādāsim vienkāršu četrvirzienu asociēto kešatmiņas kontrolieri. Priekšrocība ? Mazāk izlaiduma rādītājs, bet par perfo cenu
Vienkārša kešatmiņas kontroliera dizains VHDL: 4 soļi
Vienkārša kešatmiņas kontroliera dizains VHDL: Es rakstu šo pamācību, jo man bija nedaudz grūti iegūt kādu atsauces VHDL kodu, lai uzzinātu un sāktu izstrādāt kešatmiņas kontrolieri. Tāpēc es pats no jauna izveidoju kešatmiņas kontrolieri un veiksmīgi to pārbaudīju FPGA. Man ir p
I2C Master dizains VHDL: 5 soļi
I2C Master dizains VHDL: Šajā pamācībā tiek apspriesta vienkārša I2C meistara izstrāde VHDL. PIEZĪME: noklikšķiniet uz katra attēla, lai redzētu pilnu attēlu
Vienkārša VGA kontroliera dizains VHDL un Verilog: 5 soļi
Vienkārša VGA kontroliera dizains VHDL un Verilog: Šajā pamācībā mēs izstrādāsim vienkāršu VGA kontrolieri RTL. VGA kontrolieris ir digitālā shēma, kas paredzēta VGA displeju vadīšanai. Tas skan no kadru bufera (VGA atmiņa), kas apzīmē parādāmo kadru, un ģenerē vajadzīgo