Taula de continguts:
- Pas 1: especificacions
- Pas 2: Visió general de PIC
- Pas 3: Disseny i implementació de RTL
- Pas 4: Notes importants i fitxers adjunts
Vídeo: Disseny d'un controlador d'interrupció programable en VHDL: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Em sorprèn el tipus de respostes que rebo en aquest bloc. Gràcies nois per visitar el meu bloc i motivar-me a compartir el meu coneixement amb vosaltres. Aquesta vegada, presentaré el disseny d’un altre mòdul interessant que veiem a tots els SOCs: Interrupt Controller.
Dissenyarem un controlador d’interrupció programable senzill però potent. És un disseny completament configurable i parametritzat que és portàtil a totes les plataformes. Ho vaig dissenyar després de llegir molt sobre algunes arquitectures populars de controladors d’interrupcions, com NVIC, 8259a, RISC-V PLIC, INTC de Microblaze, etc. amb l'ajuda d'un controlador d'interrupció.
Pas 1: especificacions
A continuació es detallen les especificacions de la IP:
- Interfície AHB3-Lite.
-
Paràmetres configurables estàticament:
- Nombre de fonts d’interrupció externa; admet fins a 63 interrupcions.
- Nombre de nivells de prioritat; admet fins a 63 nivells.
- Nombre de nivells de nidificació; suporta fins a 8 nivells de nidificació.
- Amplada del bus; 32 o 64.
- Interrupcions emmascarables a nivell mundial i local.
- Nivell de prioritat configurable dinàmicament per a cada interrupció.
- Dos modes de funcionament: el mode totalment imbricat i el mode de prioritat igual.
- Admet interrupcions sensibles d’alt nivell actiu.
Les especificacions RISC-V PLIC s’utilitzen en el disseny amb mecanismes d’interrupció de mans d’interrupció inspirats.
La prelació preventiva s’inspira a partir de 8259a
Altres lectures: Microblaze INTC, NVIC
Pas 2: Visió general de PIC
El controlador d'interrupció programable (PIC) rep diverses interrupcions de perifèrics externs i les fusiona en una única sortida d'interrupció a un nucli de processador de destinació.
El PIC es controla a través de registres de control i estat. Tots els registres PIC estan assignats a la memòria i s’accedeix a través de la interfície de bus AHB3-Lite.
El banc de registres consta de registres de configuració, registres d’habilitació, registres pendents, registres en servei, registres de prioritats i registres d’ID, que són típics als controladors d’interrupció.
El registre de configuració s’utilitza per establir el mode de funcionament del PIC. Pot funcionar en mode totalment imbricat o en mode de prioritat igual.
A cada interrupció se li poden assignar prioritats i emmascarar-se individualment. També s’admet l’emmascarament global de totes les interrupcions.
El banc de registre interactua amb Priority Resolver i BTC (Binary-Tree-Comparator) per resoldre les prioritats de les interrupcions pendents i afirmar la interrupció al processador en conseqüència. El registre d'identificació conté l'identificador de la interrupció pendent de màxima prioritat.
Pas 3: Disseny i implementació de RTL
El disseny de PIC posa èmfasi en la reducció de la latència de resolució de prioritats, que és la part més important en el temps del disseny. Atès que el disseny resol les prioritats en un sol cicle de rellotge, el rendiment es degrada amb l'augment del nombre de fonts amb una complexitat de Log2.
El disseny es va implementar amb èxit i es va verificar el temps fins a les freqüències següents en els FPGA Artix-7.
- Fins a 15 fonts: 100 MHz
- Fins a 63 fonts: 50 MHz
La latència d'interrupció afegida només per PIC és de 3 cicles de rellotge (excloent el temps de canvi de context del processador i el primer temps de recuperació d'instruccions ISR).
Pas 4: Notes importants i fitxers adjunts
Notes importants:
- Si la interfície AHB3-Lite no és desitjable, podeu canviar el mòdul superior i utilitzar el disseny esquelètic de PIC. Tanmateix, el banc de proves proporcionat és per a IP amb interfície AHB3-Lite.
- PIC IP v1.0 és un disseny RTL completament portàtil.
- Verificat funcionalment per funcionar en ambdós modes.
Fitxers adjunts:
- Codis de disseny i banc de proves en VHDL.
- Documentació IP completa.
És un disseny de codi obert … No dubteu a utilitzar-lo …
Per a qualsevol consulta, en qualsevol moment:
Mitu Raj
Recomanat:
Disseny d'un controlador de memòria cau associatiu conjunt de quatre vies en VHDL: 4 passos
Disseny d'un controlador de memòria cau associatiu de configuració simple de quatre direccions en VHDL: en el meu instructable anterior, vam veure com dissenyar un controlador de memòria cau mapat directe. Aquesta vegada, fem un pas endavant. Dissenyarem un senzill controlador de memòria cau associativa de quatre vies. Avantatge ? Menys percentatge de missatges, però a costa de perfos
Disseny d'un controlador de memòria cau simple en VHDL: 4 passos
Disseny d'un controlador de memòria cau simple a VHDL: escric això instructiu, perquè em va semblar una mica difícil obtenir algun codi VHDL de referència per aprendre i començar a dissenyar un controlador de memòria cau. Així que vaig dissenyar un controlador de memòria cau des de zero i el vaig provar amb èxit a FPGA. Tinc p
Sensor de bloqueig de llum Arduino (mòdul d’interrupció de fotos): protecció de les vostres targetes (prototip): 4 passos
Sensor de bloqueig de llum Arduino (mòdul d’interrupció de fotos): protecció de les vostres targetes (prototip): aquest projecte és un prototip i en aquest projecte parlaré de com es poden conservar les vostres targetes (com ara targetes de crèdit, targetes de dèbit, targetes regal). Caixa forta. Feu una ullada a les imatges anteriors per veure com funciona aquest projecte. Deixeu-me fer una ullada a
Disseny d'un controlador VGA simple en VHDL i Verilog: 5 passos
Disseny d'un controlador VGA senzill en VHDL i Verilog: en aquesta instrucció, dissenyarem un controlador VGA simple en RTL. El controlador VGA és el circuit digital dissenyat per conduir pantalles VGA. Es llegeix des de Frame Buffer (memòria VGA) que representa el marc que es mostrarà i genera nece
Botó STM32CubeMX Rebounce amb interrupció: 5 passos
Rebut del botó STM32CubeMX amb interrupció: Hola, en aquest tutorial intentaré donar la meva solució senzilla per evitar el rebot del botó, que és un problema molt greu. A Internet hi ha molts vídeos per oferir solució a aquest problema, però cap d'ells per a interrupcions externes. Botó de tots aquests vídeos