La position actuelle:Accueil du site>Détails du Protocole Axi

Détails du Protocole Axi

2022-07-23 05:09:12IC disruption

AXIDétails du Protocole

Created: July 11
Tags: ARM

amba_axi_protocol_spec.pdf

AMBA_axi.pdf

AXIIntroduction de base

AXITotal divisé en5Canaux,Écrivez l'adresse,Écrire des données,Écrire une réponse,Lire l'adresse,Lire les données(La réponse de lecture est reflétée dans les données de lecture)

Caractéristiques:Canal de données d'adresse séparé,La transmission du canal est unidirectionnelle.Peut lire et écrire des données en même temps.

Il existe trois modes de transmission,Adresse fixe(fixed),Augmentation équivalente de l'adresse(incr),L'adresse augmente également la boucle(wrap),

ChaqueAXILe composant utilise un signal d'horlogeACLK,Tous les signaux d'entrée sontACLKÉchantillonnage du bord ascendant,Tous les signaux de sortie doivent êtreACLKSe produit après le bord ascendant.

AXIUtiliser un signal de Réinitialisation efficace de bas niveauARESETn,Le signal de Réinitialisation est une Réinitialisation asynchrone,Synchro release.

  • Qu'est - ce queburst La transmission signifie ?

    Transmission par éclatement.Transmission continue

  • FIXED Puis - je transférer des données sans arrêt après avoir transmis la première adresse en mode ?

    C'est vrai., En coordination avec chaque transmission byteNombre, Pour déterminer l'adresse de la prochaine transmission .

  • La transmission par éclatement ne peut pas traverser 4KBFrontière?

    Parce queAXI4 Le Protocole stipule que la plus petite Unit é de bloc d'un bloc de registre sur l'hôte est 4K Byte, L'adresse de cartographie de départ de chaque esclave est 4KBLes limites de. Ça affecte aussi AXI4 Une règle de lecture et d'écriture pour ,C'est ça.burst La transmission ne peut pas traverser 4KBLes limites de, Sinon, vous risquez d'écrire des erreurs de données à d'autres esclaves .Regarde ça.4KB Les limites de MASTER Limite d'adresse pour ,Par exemple,burst Impossible de traverser 0xXXXX_X000Adresse de.FFF=4095,

    C'est1024Registres,*4byte =4KB.

  • Transmission non alignée.

    La non - transmission se réfère à l'adresse de destination de la transmission (byte) Limite avec le registre (wordAligner) Non aligné , Les transferts non alignés peuvent être utilisés , Par exemple, une transmission à 0x3L'adresse commence,Au lieu de0x0Ou0x4, Le non - transfert n'affecte qu'un seul burst Première transmission de données ,DisponibleWSTRB Signal pour le premier data Lequel d'entre eux byteÇa marche., Le reste est normal. burstTransmission.

  • Les exigences suivantes s'appliquent à l'interface pendant la Réinitialisation: :valid(Indique l'adresse/Données/ Réponse sortie signal valide ) Conduite à bas niveau

    ①HôteARVALID,AWVALID,WVALIDFaible niveau;

    ② L'interface esclave doit conduire RVALID,BVALIDFaible niveau;

    ③ Tous les autres signaux peuvent être actionnés à n'importe quelle valeur .

    Après Réinitialisation , L'hôte peut être conduit sur le bord ascendant de l'horloge ARVALID,AWVALID,WVALIDHaut niveau

• Lire l'adresse, Son nom de signal est AR Au début.

• Lire le nom du signal pour R Données initiales.
• Écrivez l'adresse,Le nom du signal estAW Au début.
• Écrivez le nom du signal à W Données initiales.
• Écrire une réponse, Son nom de signal est B Au début.

Write/Read address signal ( Les signaux de fonctionnement sont similaires , Peut être mis ensemble pour discuter )

awid/aridÉcrivez l'adresseID.
awaddr/araddrÉcrivez l'adresse, Donne l'adresse d'écriture d'une transmission par éclatement
awready/aready Réponse valide à partir de l'adresse d'écriture principale , Indique que les données sont prêtes à être reçues
awvalid/arvalidSignal actif, Indique que le signal de commande d'adresse actuellement transmis est valide
awsize/arzize Ce signal indique chaque fois que BurstTransmissionbyteTaille. Est la largeur du BIT de données ,Par exemple:011=8byte=32 bit
awlen/arlen Nombre de paquets de transmission dans une tâche de transmission ,InINCR Peut être transféré sous le type de transfert 1à256Paquets, Ne peut être transféré que sous d'autres types de transport 1-16Paquets,En particulier,WRAP Ne peut être transféré que sous le type de transport 2,4,8Ou16 Nombre fixe de paquets .Donc,AWLENAvecARLENLa largeur du BIT est8Bits,Parmi euxLEN=0 Représente le transfert d'un paquet ,
eg: len = ed = 238Paquets,size = 0,C'est1byte. Le nombre total de données à transférer cette fois est 238 *1byte
awburst/arburstType d'éclatement
awlock/arlockSignal de verrouillage du bus.AXI3 Utilisé dans le Protocole pour verrouiller l'esclave , Bus occupé ,AXI4 Le soutien connexe a été annulé dans , Laisser un signal pour indiquer que la transmission est normale (1’b0) Ou une transmission exclusive (1’b1)
awcache/arcacheType de mémoire, Montre comment une transmission passe par le système .
awprot/arprotType de protection, Indique le niveau de privilège et de sécurité d'une transmission .

AWSIZE/ARSIZE: Taille du paquet de transmission ,La largeur du BIT est3Bits,(Bytes=2^Burst_size):

AxSIZENombre d'octets transférésAxSIZEAxSIZE
3’b00013’b10016
3’b00123’b10132
3’b01043’b11064
3’b01183’b111128

AWBURST/ARBURST: Type de transmission,La largeur du BIT est2Bits,Les significations spécifiques sont les suivantes:

AxBURSTType de transmission
2’b00Fixe(FIXED)
2’b01Incrémental(INCR)
2’b10Boucle(WRAP)
2’b11Non défini

FIXED Transmission à adresse fixe , Tous les transferts sont écrits à la même adresse .Principalement utilisé dansFIFODans la transmission de,Parce queFIFO Pour le premier entré premier sorti , Il suffit d'écrire les données à la même adresse .

INCR Transmission par incréments d'adresse , Il peut y avoir des incréments de longueur fixes et des incréments de longueur non fixes selon la configuration spécifique . La plupart des transferts de données sont effectués de cette façon , En particulier dans l'accès à la mémoire ,Peut grandement améliorer l'efficacité.

WRAP Transmission en boucle d'adresse , Il est retourné à l'adresse de départ après une certaine longueur .Principalement utilisé dansCacheEn fonctionnement,Parce quecacheOui.cache lineExécution des opérations,Adoptionwrap La transmission permet de récupérer facilement l'ensemble de la mémoire cache line.

AWLOCK/ARLOCK: Ce signal est AXI3 Utilisé dans le Protocole pour verrouiller l'esclave , Bus occupé ,Mais dansAXI4 Le soutien connexe a été annulé dans , Un seul signal est laissé pour indiquer que la transmission est normale (1’b0) Ou une transmission exclusive (1’b1).

AWPROT/ARPROT: Indique si l'accès est autorisé ,La largeur du BIT est3Bits,AvecslaveAutres, Différents retours d'accès produisent différents Respect.

AxPROTValeurFonction
AxPROT[0]0/1 Accès non prioritaire /Accès prioritaire
AxPROT[1]0/1Accès sécurisé/Accès non sécurisé
AxPROT[2]0/1Accès aux données/Accès à la directive

AWCACHE/ARCACHE: Le signal indique le type de stockage dans le bus , La largeur du BIT de signal est 4Bits

AWQoS/ARQoS:Quality of Service, La largeur du BIT est4Bits, L'utilisation exacte de ce signal n'est pas fixée dans le manuel , Cependant, il est recommandé d'utiliser ce signal pour Déclaration de prioritéSignal, Plus la valeur est élevée, plus la priorité est élevée. .

**AWREGION/ARREGION:**Marquage des zones,La largeur du BIT est4Bits.4 Les signaux de marquage de zone de bits peuvent être marqués 16Régions. Lorsque l'esclave a beaucoup d'espace d'adresse séparé , L'utilisation de ce signal permet de réaliser les fonctions de plusieurs bus logiques en utilisant un seul bus physique . L'application classique est quand un registre de contrôle périphérique est séparé d'un registre de données , L'utilisation de ce signal permet d'accéder à deux espaces d'adresse sans décoder l'adresse

Par exemple, Lorsque l'espace d'adresse d'un registre de contrôle périphérique est 0x0000 - 0x00FF, L'espace d'adresse du registre de données est 0x1000 - 0x1FFF, Vous pouvez définir le BIT d'adresse à 12Bits(0x000-0xFFF), La zone du registre de contrôle est marquée comme suit: 4’b0000, La zone du registre de données est marquée comme suit: 4’b0001, L'adresse effectivement adressée est une balise de zone +Adresse, Où le marqueur de zone est ajouté au BIT d'adresse en tant que bit supérieur , Peut être interprété comme une priorité plus élevée ID.

Writer/Read data signal

rid Une transmission id tag. AXI4C'est annulé.WidAppui, L'ordre d'écriture du canal d'écriture doit donc être compatible avec celui du canal d'adresse d'écriture
wdata/rdataLire et écrire des données
wuser/ruserSignaux personnalisés par l'utilisateur
wvalid/rvalidSignal actif, Indique que les données de transmission du canal sont valides
wready/rreadyIndique que l'esclave peut recevoir des données d'écriture/ Lire les données et les signaux de réponse
wlast/rlast Indique que cette transmission est la dernière transmission par éclatement
Écrire les dernières données transférées par transaction . Avec le dernier WVALID Synchronisation du signal .Seulement siWLASTDe haut en bas, Une tâche de transmission est terminée . Le processus de transfert ne peut être interrompu avant .RLAST Le signal est similaire. .
wstrbWSTRB Pour écrire un signal stroboscopique , Indique les segments de données valides actuellement transférés . Les unités de segment valides sont 8bit,C'est - à - dire32bit Bus large de bits de données WSTRB Le signal aura 4Bits,WSTRB[3]IndicationsWDATA[31:24]Efficacité.
rresp Lire le signal de réponse ,Indique l'état du transfert de lecture

Writer resp signal

BIDÉcrire une réponseID tag
BRESPÉcrire une réponse, Indique l'état du transfert d'écriture
BUSERPersonnalisation par l'utilisateur
BVALIDLa réponse écrite est valide
BREADYIndique que l'hôte peut recevoir une réponse en écriture

AXI_Write

Insérer la description de l'image ici

Les canaux d'écriture sont divisés en adresses d'écriture ,Écrire des données, Écrivez la réponse trois canaux , Les données des trois canaux ne sont pas interférentes les unes avec les autres , Mais il y a un certain ordre .

Une seule flèche dans la figure ci - dessous indique qu'il n'y a pas de dépendance séquentielle , Deux flèches indiquent une dépendance séquentielle .

Insérer la description de l'image ici

  1. Trois canauxvaildEtready Le signal n'a pas d'ordre ,vaild Peut être antérieure ou postérieure ou en même temps que readySignal élevé.
  2. Les données du canal write Data peuvent apparaître sur le bus avant les données du canal write address .
  3. L'ordre d'écriture du canal d'écriture doit être le même que celui du canal d'adresse d'écriture
  4. Parce queaxiSéparation des canaux, C'est pour ça que outstandingFonctionnement, C'est - à - dire qu'il n'est pas nécessaire d'attendre que le transfert précédent soit terminé pour envoyer l'opération suivante .master Pas besoin d'attendre l'opération précédente A Une fois la réponse terminée, la prochaine demande d'action peut être envoyée. B, Cela améliore efficacement l'utilisation des voies ,Améliorer les performances du système
  5. L'adresse de transmission et les données de transmission sont validEtready Le signal est également transmis à haute fréquence .

Voici une analyse axi Écrire l'opération de transfert :
Insérer la description de l'image ici

  • T0Le moment:mst Envoyer un signal d'adresse d'écriture ,En même tempsvaildSignal élevé.Mais...ready Le signal n'a pas augmenté ( À ce moment - là readySignal élevé)
  • T1Le moment:slv Échantillonnage à l'adresse d'écriture et vaildSignal,Oui.readySignal élevé, Poignée de main sur le canal d'adresse d'écriture .
  • T2Le moment.mstÉchantillonnage versslvDereadySignal élevé.Poignée de main réussie. Et conduire le canal de données d'écriture pour transmettre les données .En même tempsvaildRalph!.Indique que les données sont valides.Pour commencerburstTransmission.
  • T3Le momentslvDébut de l'échantillonnagemstDonnées transmises.Seulement sivalidEtready Les données échantillonnées ne sont valides que lorsqu'elles sont élevées. .
  • T8Le momentmst Envoyer le dernier burst Données publiées ,En même tempsWLASTSignal élevé,Ça veut dire que cette foisBurstEnvoi des données terminé
  • T9Le moment,mst Échantillonnage de toutes les données et WLASTSignal,Et donnerespSignal,En même tempsvalidSignal.READY Le signal s'est déjà levé
  • T10,slcvÉchantillonnage versrespEtvalid readyLe signal est actif,Une fois.burstTransmission terminée.

Note:

  • Les informations de données écrites sur le canal de données sont considérées comme un tampon (buffered)C'est parti.,“Seigneur.”Pas besoin d'attendre“De” La confirmation du dernier transfert d'écriture déclenche un nouveau transfert d'écriture . Le canal d'écriture comprend le bus de données (8/16…1024bit) Et les lignes d'octets (Pour indication8bit Validité du signal de données )
  • BurstTransmission: Plusieurs transferts de données ,Unburst L'intérieur peut être brisé . Valid Le signal est la source , Un transfert de données ,Une foisvalid Si le signal est élevé, il ne peut pas être abaissé. , Jusqu'à ce que cette transmission soit terminée .slaveDeready Le signal peut être interrompu , Mais en fin de compte, c'est plus haut que ça. burst. PourmasterDis, Une fois que la transmission a commencé ,UnburstEntrevalid Ça ne devrait pas être bas.
  • READY Le signal est libre ,On peut attendre. VALID Le signal arrive et répond , Mais c'est aussi parfaitement possible VALID Mettez le signal en haut avant qu'il arrive , Indique que le récepteur est prêt .READY Signal et VALID C'est différent., Le récepteur peut mettre en place READY Et j'ai découvert: En fait, j'ai l'air très occupé , Puis tirez vers le bas READY Signal.Pour le moment VALID Le signal n'est pas allumé , C'est tout à fait possible. .
  • Dans la séquence d'écriture ci - dessus ,Wdata Peut être plus tôt que Awaddr Apparaît sur l'interface . Le signal de réponse en écriture doit apparaître à la fin de la transaction en écriture qui lui est associée
  • En écrivant une réponse BVALIDAvant d'être efficace, Le signal de poignée de main du canal d'adresse d'écriture et du canal de données d'écriture doit être valide , Et écrire sur le canal de données WVALID Le signal doit être le dernier signal valide à écrire les données .BREADY Le signal est disponible à BVALID Le signal est actif avant et après . Il n'y a pas de relation temporelle nécessaire entre le canal d'adresse d'écriture et les quatre signaux de poignée de main du canal de données d'écriture .

AXI_Read

Insérer la description de l'image ici

Le schéma de lecture ne lit pas le message de réponse , Lire le message de réponse indique l'achèvement de la transaction de lecture . Chaque donnée est lue avec une réponse de lecture . Il n'y aura qu'un seul transfert d'écriture Burst Écrivez une réponse lorsque vous avez terminé . Écrire une réponse est l'inverse du flux de données de Xie Write , La réponse de lecture est la même que le flux de données de lecture .

Insérer la description de l'image ici

Comme écrire un canal de données . Lire le canal d'adresse et lire le canal de données validEtready Ni séquentiel , Mais l'adresse de lecture est liée aux données de lecture (Merde!) L'opération de lecture des données doit être effectuée après que l'opération de lecture de l'adresse a été donnée , Mais il n'y a pas de séquence définie entre le signal de poignée de main dans le canal de données de lecture et le signal de poignée de main dans le canal d'adresse de lecture . L'appareil doit attendre ARVALIDEtARREADY Les signaux ne peuvent être donnés que s'ils sont valides. RVALIDSignal,Début du transfert de données.

Insérer la description de l'image ici

  • T0Le moment:mst Le canal d'adresse de lecture donne l'adresse de lecture et validRalph!.
  • T1Le moment:slv Adresse de lecture détectée et vaildSignal,Oui.readySignal élevé.
  • T2Le moment:mstÉchantillonnage versvalidEtready Le signal est élevé en même temps , Première poignée de main du canal d'adresse de lecture terminée .En même tempsmst Drive the second read address to read address Channel bus .
  • T3Le moment:slv Lisez la première adresse de lecture burst Transmission des données de lecture au bus ,En même tempsRVALIDSignal,Attendez.mst Recevoir et compléter la poignée de main .En même tempsslv Le canal d'adresse de lecture échantillonne les données du deuxième bus d'adresse de lecture ,Ralph!ARREADYSignal.Attendez.mstUne poignée de main..
  • T4Le moment:mstÉchantillonnage versAREADYEtARVALID Le signal est élevé en même temps , Deuxième transfert d'adresse de lecture terminé .Attendez.
  • T8Le moment:Terminer la première foisburst Dernière lecture des données ,Et tirez vers le hautRlastSignal, Indique la première lecture BurstTerminé..

:Q&A

  • AXI3AvecAXI4Quelle est la différence entre?

    1、AXI3 Ne supporte que jusqu'à 16J'ai prisburst .EtAXI4Support jusqu'à256J'ai prisburst .

    2、AXI3Soutienwrite interleave.AXI4Non pris en chargewrite interleave(Enlevée.wid)

    3、AXI3Soutienlocked Transmission,AXI4Non pris en chargelocked Transmission

    4、AXI4SoutienQoS,AXI3Non pris en chargeQoS.

  • Pourquoi il n'y a pas de read Canal de réponse ?

    VALID/READY Le système de préhension ne permet qu'un seul flux de données directionnel , Donc pour lire la transaction ,Données(dataEtresp)DeslaveDirection du fluxmaster, Et pour écrire des transactions ,Les données proviennent demasterDirection du fluxslave, Donc vous avez besoin d'un canal de réponse séparé

  • Pourquoi?burst C'est écrit., Il n'y a pas toujours de réponse écrite. .Mais dansburst En cours de lecture , Chaque battement a une réponse de lecture individuelle ?

    Tous lesAXI Le canal n'est disponible qu'à 1 Transmission du message dans les directions , C'est pourquoi un canal de réponse en écriture séparé est nécessaire . Dans la plupart des applications slave Peut - on accepter des données complètes? burst Le transfert sera effectué ,slave Pas besoin de revenir à chaque battement ERRORRéponse

  • Comment mettre fin à burst Transmission?

    Je ne peux pas.AXI Impossible de mettre fin plus tôt burstTransmission.Pour les transactions d'écriture,masterÇa peut être faitburst Transmission,AdoptionWSTRB Le signal supprime les données invalides , Les données lues en arrière peuvent également être rejetées pour les transactions lues. .

  • master Ça pourrait être dansburst Transmission intermédiaire à WLASTC'est ça??

    Je ne peux pas..Seulement siburst C'est le dernier coup de la transmission. WLAST,Inburst Le milieu de la transmission WLAST C'est une violation de l'accord .En outre,Beaucoupslave Le design ne sera pas utilisé WLASTSignal, Mais compter par soi - même ,Alors...masterRalph!WLAST Et il n'y aura pas de résiliation anticipée burstTransmission.

  • SlaveOui.burst Mise en place avant la fin du transfert rlast- Oui.?

    Comme à la question précédente,slaveInburst Tirez sur le transfert incomplet RLAST C'est une violation de l'accord .master Il est également possible de ne pas dépendre RLAST

  • PuisqueWLASTEtRLAST Peut ne pas être utilisé , Alors pourquoi ces deux signaux doivent - ils être soutenus? ?

    Pour soutenir tousmasterEtslave, Qu'il repose ou non sur ces deux signaux pour transmettre des données .

  • Exclusive Quelles sont les transactions de lecture et d'écriture ?Où utiliser?

    Si plus d'une zone mémoire est masterPartage,Unmaster Il faut s'assurer qu'il n'y a rien d'autre master Séquence complète de lecture et d'écriture avec modification de la mémoire partagée ,On peut l'utiliser.Exclusive Transmission

  • Est - il possible de lire les transactions en un seul cycle ?

    Au moins1 Adresses de transfert de cycles d'horloge (DemasterÀslave),Et au moins1 Cycles d'horloge pour transmettre des données (DeslaveÀmaster).

  • axi slaveComment soutenirExclusive Visites?

    Hypothèses AXI Master1(M1) L'emplacement de la paire d'adresses a déjà commencé 12h100À12h10FDeexclusive Lire et écrire.Donc ça correspond.salve La surveillance commencera par M1 Ces adresses sont données . Si l'adresse est maintenant différente masterEffectuer une opération d'écriture,Ceci revient àExclusive error

  • Envoyé àslave Comment les adresses de lecture et d'écriture sont - elles associées aux données de lecture et d'écriture? ?

    ARBus etAW Le bus est indépendant , Que les adresses des demandes de lecture et d'écriture soient émises séquentiellement ou non , Les données de réponse peuvent être désordonnées ,Entre eux, c'est parawidEtarid Correspond à l'appariement (axi3)axi4Enlevée.wid, L'ordre d'écriture du canal d'écriture doit donc être compatible avec celui du canal d'adresse d'écriture

Mentions de copyright
Auteur de cet article [IC disruption],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/204/202207221753241084.html

Recommandé au hasard