UDB. Qu'est-ce que c'est? Partie 5. Chemin de données. Petites choses utiles



Nous continuons à considérer UDB basé sur la documentation propriétaire de Cypress, à savoir des anecdotes utiles liées à Datapath.

Le contenu général du cycle «UDB. Qu'est-ce que c'est? "
Partie 1. Introduction. Pld.
Partie 2. Chemin de données.
Partie 3. Datapath FIFO.
Partie 4. Datapath ALU.
Partie 5. Chemin de données. Petites choses utiles. (Article actuel)
Partie 6. Module de gestion et d'état.
Partie 7. Module de commande de temporisation et de réinitialisation
Partie 8. Adressage UDB

21.3.2.6 Prise en charge CRC / PRS


Datapath prend en charge la génération du contrôle de redondance cyclique (CRC) et des séquences pseudo-aléatoires (Pseudo Random Sequence, PRS). Les signaux chaînés sont tracés entre les blocs Datapath pour prendre en charge CRC / PRS de plus de 8 bits.

Le numéro du bit le plus significatif (bit le plus significatif anglais, MSB) du bloc CRC / PRS le plus élevé est sélectionné et tracé (et lié dans une chaîne avec d'autres blocs) aux blocs inférieurs. Après cela, l'opération XOR avec des données d'entrée (données SI) est appliquée au MSB, fournissant un signal de rétroaction (rétroaction, FB). Après cela, le signal de rétroaction est tracé (et connecté en chaîne avec d'autres blocs) aux blocs inférieurs. Cette valeur de rétroaction est utilisée sur tous les blocs pour effectuer l'opération XOR du polynôme (à partir du registre Data0 ou Data1) avec la valeur actuelle de la batterie.

La figure 21-18 montre la configuration structurelle de l'opération CRC. La configuration PRS est identique, mais l'entrée de décalage (SI) est tirée à 0. En mode PRS, D0 ou D1 contient la valeur polynomiale et A0 ou A1 contient la valeur initiale (valeur de départ) et la valeur CRC obtenues après le calcul.

Note du traducteur.
Apparemment, il y a une faute de frappe dans la documentation propriétaire de cette phrase, car un nombre aléatoire doit être obtenu en mode PRS. Et les informations sur le CRC se trouvent juste en dessous.



Figure 21-18. Structure fonctionnelle du CRC.

Pour activer la prise en charge de CRC, vous devez définir le bit CFB_EN dans la RAM de configuration dynamique sur 1. Ceci active l'opération ET par rapport à l'entrée SRCB ALU et au signal de rétroaction CRC. Si ce bit est mis à zéro, le signal de rétroaction sera attribué à un, ce qui permet d'effectuer des opérations arithmétiques normales. Le contrôle dynamique de ce bit à chaque cycle vous permet d'alterner les opérations CRC / PRS avec d'autres opérations arithmétiques.

Chaînage CRC / PRS


La figure 21-19 montre un exemple de liaison de CRC / PRS en chaînes entre trois UDB. Ce scénario prend en charge le fonctionnement en modes avec une résolution de 17 à 24 bits. Les bits de liaison de contrôle dans les chaînes sont définis en fonction de la position du chemin de données dans la chaîne (voir figure).



Figure 21-19. Liaison de chaîne de CRC / PRS.

Comment le signal de rétroaction CRC / PRS (cfbo, cfbi) est connecté dans une chaîne:

  • Si le bloc sĂ©lectionnĂ© est le plus jeune, le signal de retour sur ce bloc est gĂ©nĂ©rĂ© Ă  partir de la logique intĂ©grĂ©e, qui prend l'entrĂ©e de dĂ©calage vers la droite (monsieur) et effectue une opĂ©ration XOR sur eux avec le bit le plus significatif. (Dans le cas de PRS, le signal «monsieur» est rĂ©glĂ© sur «0»).
  • Si le bloc sĂ©lectionnĂ© n'est pas un bloc d'ordre faible, le bit de configuration CHAIN ​​FB doit ĂŞtre armĂ© et la rĂ©troaction est transmise dans une chaĂ®ne Ă  partir du bloc prĂ©cĂ©dent.

Comment la chaîne du signal CRC / PRS MSB (cmsbo, cmsbi):

  • Si le bloc sĂ©lectionnĂ© est haut, le bit de configuration MSB (selon le polynĂ´me sĂ©lectionnĂ©) est configurĂ© Ă  l' aide des bits de configuration MSB_SEL .
  • Si le bloc sĂ©lectionnĂ© n'est pas haut, le bit de configuration CHAIN ​​MSB doit ĂŞtre armĂ© et le signal MSB sera envoyĂ© le long de la chaĂ®ne Ă  partir du bloc suivant.

Spécification polynomiale CRC / PRS


Comme exemple de configuration du polynôme pour l'écriture dans le registre correspondant D0 / D1, considérons le polynôme CCITT CRC-16 , qui a la forme x 16 + x 12 + x 5 + 1. La méthode pour extraire le format de données du polynôme est illustrée à la figure 21-20. Le terme X0, par définition, est toujours 1, il n'a donc pas besoin d'être écrit. Pour tous les autres membres du polynôme, l'unité est réglée sur les positions nécessaires, comme indiqué sur la figure.



Figure 21-20. Format du polynĂ´me CCITT CRC16.

Veuillez noter que le format du polynôme est légèrement différent du format spécifié dans le format hexadécimal classique. Par exemple, le polynôme CCITT CRC16 est communément appelé 1021H . Pour le convertir au format requis pour Datapath, vous devez effectuer un décalage vers la droite d'une position et ajouter 1 au bit MSB. Dans ce cas, la valeur polynomiale correcte à écrire en D0 ou en D1 est 8810H .

Exemple de configuration CRC / PRS


Voici une brève description des exigences de configuration du CRC / PRS, à condition que D0 soit un polynôme et que le CRC / PRS soit calculé en A0:

  1. Choisissez un polynôme approprié (exemple ci-dessus) et écrivez-le à D0.
  2. Sélectionnez la graine appropriée (par exemple, tous les zéros pour CRC ou tous ceux pour PRS) et écrivez-la dans A0.
  3. Si nécessaire, configurez le chaînage comme décrit ci-dessus.
  4. Sélectionnez un élément MSB comme décrit ci-dessus.
  5. Configurer la RAM dynamique Champs RAM:

a. Sélectionnez D0 comme ALU «SRCB» (source de données ALU B)
b. Sélectionnez A0 comme ALU «SRCA» (source de données ALU A)
c. Sélectionnez XOR pour le fonctionnement ALU
d. Sélectionnez SHIFT LEFT pour l'opération SHIFT
e. Sélectionnez CFB_EN pour activer la prise en charge CRC / PRS.
f. Sélectionnez ALU comme source d'enregistrement A0

Lorsque vous choisissez CRC, vous devez configurer le décalage dans le champ de droite pour les données d'entrée et soumettre des données sur cette entrée à chaque étape. Lorsque vous choisissez PRS, vous devez définir le décalage vers la droite sur 0.

Cette configuration de l'UDB génère le CRC nécessaire ou produit le bit le plus significatif, qui peut être transmis à l'extérieur, en supprimant une séquence pseudo-aléatoire.

Mode externe CRC / PRS


Pour activer le calcul CRC ou PRS externe, vous pouvez spécifier un bit de configuration statique ( EXT CRCPRS ). Comme le montre la figure 21-21, le calcul de rétroaction CRC est effectué dans le bloc PLD. Lorsque le bit est armé, le signal de rétroaction CRC est transmis directement à partir du multiplexeur d'entrée CI (Carry In), en contournant les calculs internes. La figure montre une configuration simple qui prend en charge CRC ou PRS jusqu'à 8 bits. Habituellement, des circuits électroniques intégrés sont utilisés, mais ce paramètre vous permet d'implémenter des configurations plus complexes, par exemple, des fonctions CRC / PRS 16 bits dans un UDB, en utilisant le multiplexage temporel.



Figure 21-21. Mode externe CRC / PRS.

Dans ce mode, le bit CFB_EN de la RAM de configuration dynamique contrôle également si l'opération ET est utilisée sur le signal de rétroaction CRC à l'entrée CRCB ALU ou non. Ainsi, comme dans le cas du mode CRC / PRS interne, cette fonction peut, si nécessaire, alterner avec d'autres fonctions.

21.3.2.7 Sorties de chemin de données et multiplexage


Les conditions sont générées à partir des valeurs de déclenchement de la batterie, des sorties ALU et de l'état FIFO. Ces conditions peuvent être transmises via des canaux de traçage numérique à d'autres UDB pour former des demandes d'interruption soit au DMA soit aux «jambes de la puce». 16 conditions possibles sont présentées dans le tableau ci-dessous.

Tableau 21-16. Génération de conditions de chemin de données.
Le titreConditionLa chaîne?La description
ce0Comparer égalOuiA0 == D0
cl0Comparer moins queOuiA0 <D0
z0Zéro détectéOuiA0 == 00h
ff0Unités trouvéesOuiA0 = FFh
ce1Comparer égalOuiA1 ou A0 == D1 ou A0 (sélection dynamique)
cl1Comparer moins queOuiA1 ou A0 <D1, ou A0 (sélection dynamique)
z1Zéro détectéOuiA1 == 00h
ff1Unités trouvéesOuiA1 == FFh
ov_msbDébordement / débordementNonPorter (msb) ^ Porter (msb-1)
co_msbRéaliserOuiMigrer un bit MSB spécifique
cmsbCRC MSBOuiFonctionnalités MSB CRC / PRS
doncShift OutOuiSortie de données de l'opération de décalage sélectionnée
f0_blk_statStatut du bloc FIFO0NonLa description dépend de la configuration FIFO.
f1_blk_statStatut du bloc FIFO1NonLa description dépend de la configuration FIFO.
f0_bus_statÉtat du bus FIFO0NonLa description dépend de la configuration FIFO.
f1_bus_statÉtat du bus FIFO1NonLa description dépend de la configuration FIFO.
Il existe six sorties de Datapath. Comme le montre la figure 21-22, chaque sortie possède un multiplexeur 16 en 1 qui vous permet de router n'importe lequel des 16 signaux vers n'importe quelle sortie Datapath.



Figure 21-22. Connexions au multiplexeur de sortie.

Comparaisons


Il existe deux comparaisons, dont l'une a des sources fixes ( Comparer 0 ), et l'autre est sélectionnée dynamiquement ( Comparer 1 ). Chaque comparaison possède un registre de masquage statique à 8 bits, permettant des comparaisons dans le champ de bits spécifié. Par défaut, le masquage est désactivé (tous les bits sont comparés) et doit être activé manuellement.

Les entrées Compare 1 sont configurées dynamiquement. Comme indiqué dans le tableau ci-dessous, quatre paramètres de comparaison 1 s'appliquent aux conditions inférieures et égales. Les bits de configuration CMP SELA et CMP SELB déterminent les configurations de comparaison possibles. Les bits RAM de la configuration dynamique spécifient une des configurations (A ou B) à chaque cycle.

Tableau 21-17. Configuration de comparaison.
CMP SEL A
CMP SEL B
Mode de comparaison pour Compare 1
00A1 se compare Ă  D1
01A1 se compare Ă  A0
10A0 se compare Ă  D1
11A0 se compare Ă  A0
Compare 0 et Compare 1 sont associés indépendamment aux conditions générées dans le chemin de données précédent (dans l'ordre de traitement). Le fait de chaîner ou non les comparaisons est spécifié statiquement dans les registres de configuration UDB. La figure 21-23 montre la liaison «égal» à la chaîne de comparaison, ce qui revient à appliquer l'opération ET à la comparaison «égale» de ce bloc et à l'entrée du bloc précédent.



Figure 21-23. Le lien avec la chaîne de comparaison est "égal".

La figure 21-24 montre la liaison avec la chaîne de comparaison la moins importante. Dans ce cas, le résultat de sortie (cl0) pour un bloc donné est généré par le circuit de comparaison «inférieur à» et est inconditionnel. Ce signal est combiné OU avec le résultat entrant de la chaîne si la condition est égale au bloc actuel et que le mode de liaison est activé.



Figure 21-24. Lien inférieur à

Détection de tous les zéros et de tous les uns


Chaque batterie a un détecteur de tous les zéros et un détecteur de toutes les unités. Ces conditions peuvent être chaînées statiquement comme indiqué dans les registres de configuration UDB. Le mode de liaison est défini dans les registres de configuration UDB. La liaison dans la chaîne de détection des zéros se fait selon le même concept que la comparaison "égal". Si le chaînage est activé, l'opération ET est appliquée aux données correctement liées.

Débordement


Un débordement est défini comme une opération de transfert XOR dans un MSB et un transfert à partir d'un MSB. Les calculs sont effectués avec le MSB actuel, comme indiqué dans les bits MSB_SEL . Cette condition ne peut pas être enchaînée, cependant, le calcul sera correct si la fonction de capacité totale est effectuée sur le chemin de données supérieur jusqu'à ce que le transfert entre les blocs soit connecté.

21.3.2.8 Chemin de données d'entrées et de sorties parallèles


Comme le montre la figure 21-25, les signaux Parallel In (PI) et Parallel Out (PO) offrent une capacité limitée à fournir des données et des ressources de trace à Datapath et à en sortir des données. Les signaux PO sont toujours disponibles pour le traçage en tant que choix d'ALU asrc entre A0 et A1.

Note du traducteur.
Il s'agit d'un mécanisme extrêmement important qui permet à UDB de fonctionner non seulement avec des données en série, mais également avec des données parallèles. Pour une raison quelconque, ce document ne le souligne pas, mais vous pouvez le lire en passant dans l'une des notes d'application.



Figure 21-25. Signaux de chemin de données d'entrée / sortie parallèle.

Pour entrer des données dans l'ALU, vous devez sélectionner Parallel In . Il existe deux modes: statique et dynamique. En mode statique, le bit PI SEL convertit la valeur asrc ALU en PI. Le bit PI DYN est utilisé pour fournir le mode dynamique PI. Lorsqu'il est armé, et à condition également que PI SEL soit à 0, le multiplexeur PI peut contrôler le bit de commande dynamique CFB_EN . La fonction principale du bit CFB_EN est de fournir la fonctionnalité PRS / CRC.

21.3.2.9 Chaînage du chemin de données


Chaque bloc Datapath possède une ALU 8 bits, qui est conçue pour enchaîner les traits d'union, les décalages, capturer les déclencheurs et les signaux conditionnels au Datapath voisin le plus proche pour créer des fonctions arithmétiques et des registres à décalage avec des profondeurs de bits plus élevées. Ces signaux, connectés en chaînes, sont isolés et vous permettent de mettre en œuvre efficacement des fonctions 16-24 et 32 ​​bits en un seul cycle sans course et autres problèmes résultant de retards dans les canaux de trace. De plus, les poignées de chaînage prennent en charge la lecture atomique des batteries dans les blocs liés. Comme le montre la figure 21-21, tous les signaux conditionnels et de capture générés sont connectés dans une chaîne qui se déplace du plus jeune au plus ancien bloc. Un décalage vers la gauche est également effectué de junior à senior. Un décalage vers la droite est effectué du plus vieux au plus jeune. Le signal de chaînage CRC / PRS pour la rétroaction est acheminé de haut en bas, et la sortie MSB est envoyée de haut en bas.



Figure 21-26. Chaîne d'enfilage Datapath.

21.3.2.10 Configuration dynamique de la RAM


Chaque chemin de données contient une RAM de configuration dynamique avec 8 mots de 16 bits chacun (voir la figure 21-27). Le but de cette RAM est de contrôler les bits de la configuration du chemin de données à chaque cycle, en fonction de l'horloge sélectionnée pour ce chemin de données. La RAM possède des ports de lecture et d'écriture synchrones pour le téléchargement des configurations via le bus système.

Pour sortir rapidement ces mots de 16 bits vers Datapath, un port de lecture asynchrone supplémentaire est fourni en tant que bits de contrôle. Les entrées d'adresse asynchrones sont sélectionnées par les multiplexeurs à partir des entrées Datapath, qui peuvent être prises à partir de tous les signaux possibles, y compris les jambes de microcircuit, les sorties PLD, les sorties de l'unité de contrôle ou toute sortie Datapath.

Le but principal d'un port de lecture asynchrone est de fournir un décodage rapide des bits de commande Datapath en un seul cycle.



Figure 21-27. Configuration d'E / S RAM.

Les champs du mot RAM de la configuration dynamique sont indiqués dans les tableaux suivants avec une description de l'utilisation de chaque champ.
S'inscrireL'adresse15141312111098
CFGRAM61h-6Fh
(étrange)
FUNC [2: 0]FUNC [2: 0]FUNC [2: 0]SRCASRCB [1: 0]SRCB [1: 0]MAJ [1: 0]MAJ [1: 0]

S'inscrireL'adresse76543210
CFGRAM60h-6Eh
(pair)
A0 WRSRC [1: 0]A0 WRSRC [1: 0]A1 WRSRC [1: 0]A1 WRSRC [1: 0]CFB ENCI SELSI SELCMPSEL
Tableau 21-18. Référence de configuration dynamique.
Le terrainBitsParamètreLes valeurs
FUNC [2: 0]3Fonction ALU000 PASS
001 INC SRCA
010 DEC SRCA
011 ADD
100 SUB
101 XOR
110 ET
111 OU
SRCA1Source d'entrée ALU A0 A0
1 A1
Srcb2Source d'entrée ALU B00 D0
01 D1
10 A0
11 A1
MAJ [1: 0]2Fonction Shift00 passe
01 Maj gauche
10 décalage à droite
Échange de 11 grignotages
A0 WR SRC [1: 0]2Source d'enregistrement pour A000 aucun
01 ALU
10 D0
11 F0
A1 WR SRC [1: 0]2Source d'enregistrement pour A100 aucun
01 ALU
10 D1
11 F1
CFB EN1Activateur de rétroaction CRC0 Activer
1 Désactiver
CI SEL1Sélectionnez une configuration à migrer0 ConfigA
1 ConfigB a
SI SEL1Sélectionnez une configuration pour le quart de travail0 ConfigA
1 ConfigB a
CMP SEL1Choisir une configuration Ă  comparer0 ConfigA
1 ConfigB a
(a. - Pour les champs CI, SI et CMP, les champs RAM vous permettent de sélectionner l'une des deux options prédéfinies. Voir la configuration du registre statique).

Ă€ suivre ...

Source: https://habr.com/ru/post/fr438818/


All Articles