Accumulateur (Non signé)

Accumule ou décrémente x. Ce nœud supporte les opérations sur plusieurs canaux et la mise à l'échelle de la rétroaction.

Ce nœud ne supporte que les tableau de booléens et les valeurs scalaires de types de données entiers ou à virgule fixe.

1378

Entrées/Sorties

datatype_icon

x

Données à ajouter ou soustraire de la valeur de somme. Si x est un tableau de booléens de taille fixe, le premier élément du tableau représentant le bit de poids faible (LSB) et le dernier élément représentant le bit de poids fort (MSB).

Dans les applications multicanaux, entrelacez les données et câblez un élément par période d'horloge à x.
datatype_icon

soust?

Booléen qui spécifie s'il faut effectuer une soustraction ou une addition. Utilisez cette entrée pour changer d'opération par programmation.

VRAI Calcule somme - x.
FAUX Calcule somme + x.

Default value: FAUX

datatype_icon

charger

Booléen qui spécifie s'il faut démarrer une nouvelle accumulation à partir de 0.

VRAI Ignore toute valeur antérieure de somme et commence une nouvelle accumulation en chargeant la valeur de x.
FAUX Poursuit l'accumulation à partir des exécutions précédentes.

Default value: FAUX

Redémarrage de l'accumulation à partir d'un canal spécifique

Dans les applications multicanaux, cette entrée affecte le canal dont les données parviennent à x pendant la période d'horloge lorsque charger change. Par exemple, si vous accumulez des données de deux canaux pendant huit périodes d'horloge, x reçoit les données du canal 1 pendant les première, troisième, cinquième et septième périodes d'horloge. Pour redémarrer l'accumulation pour le canal 1, définissez charger à Vrai pendant une de ces périodes d'horloge. L'accumulation du canal 2 se poursuit sans changement.

datatype_icon

activer

Booléen qui spécifie s'il faut agir sur la valeur de x. Utilisez cette entrée pour n'agir que sur des valeurs valides de x. Par exemple, vous pouvez câbler la sortie sortie valide d'un nœud Math haut débit à cette entrée pour qu'Accumulateur n'agisse que si le nœud en amont produit un résultat valide.

VRAI Accumule la valeur actuelle de x.
FAUX Ignore x et ne change pas la somme.

Default value: VRAI

Ignorer les valeurs d'un canal spécifique

Dans les applications multicanaux, cette entrée affecte le canal dont les données parviennent à x pendant la période d'horloge lorsque activer change. Par exemple, si vous accumulez des données de deux canaux pendant huit périodes d'horloge, x reçoit les données du canal 1 pendant les première, troisième, cinquième et septième périodes d'horloge. Pour ignorer la deuxième valeur du canal 1, définissez activer à FAUX pendant la troisième période d'horloge puis redéfinissez-le à VRAI pendant la cinquième période d'horloge. L'accumulation du canal 2 se poursuit sans changement.

datatype_icon

retenue en entrée/report inversé en entrée

Booléen qui spécifie si Accumulateur tient compte d'un bit de poids faible (LSB) supplémentaire lorsqu'il calcule la somme.

Par exemple, le LSB pourrait provenir de la configuration binaire de la sortie retenue en sortie/report inversé en sortie d'un nœud Accumulateur en amont.
VRAI

Si sous? est aussi VRAI : calcule somme - x.

Si sous? est FAUX : calcule somme + x + 1(LSB).

FAUX

Si sous? est VRAI : calcule somme - x - 1(LSB).

Si sous? est aussi FAUX : calcule somme + x.

datatype_icon

somme

Résultat calculé par ce nœud.

Ce résultat dépend non seulement de la valeur de x, mais aussi des valeurs des entrées booléennes du nœud, telles que charger et activer. Dans les applications multicanaux, somme effectue une accumulation séparée pour chaque canal.

Cette fonction applique le mode de dépassement Encapsuler à somme dans les situations suivantes :

  • soust? est VRAI et retenue en sortie/report inversé en sortie renvoie FAUX
  • soust? est FAUX et retenue en sortie/report inversé en sortie renvoie VRAI
datatype_icon

retenue en sortie/report inversé en sortie

Un booléen qui indique si le type de données de la somme ne peut pas représenter le résultat d'une opération d'addition non signée ou d'une opération de soustraction non signée.

Vrai Le type de données de somme ne peut pas représenter le résultat d'une opération d'addition non signée.
Faux Le type de données de somme ne peut pas représenter le résultat d'une opération de soustraction non signée. Dans cette situation, ce nœud enroule la valeur de la somme.

Rétroaction inférieure

Spécifie le nombre de bits vers lequel ce nœud peut décaler vers la droite le modèle de bits de la sortie avant d'accumuler/décrémenter la sortie par x.

Voies

Spécifie le nombre de voies de données sur lesquelles ce nœud opère.

Ce nœud enregistre les données venant de voies séparées dans des registres internes séparés.. Si vous spécifiez plus d'une voie, vous devez entrelacer les valeurs que vous envoyez à x. La valeur par défaut est 1 voie.

Registre pour retenue en sortie/report inversé en sortie

Spécifie si ce nœud ajoute un registre interne avant la retenue en sortie/report inversé en sortie. Ce nœud renvoie le résultat retenue en sortie/report inversé en sortie une période d'horloge avant la valeur de somme par défaut. Pour renvoyer la valeur de retenue en sortie/report inversé en sortie pendant la même période d'horloge que celle de somme, cochez cette option.

Examples

Le tableau suivant montre un exemple de la façon dont ce nœud calcule somme + x dans une application qui accumule les données entrelacées de deux canaux.

Période d'horloge entrée x Explication de x résultat de la somme Explication de la somme
1 6 Canal 1, échantillon 1 - Accumulateur ne renvoie pas de somme à la première période car il lui faut une période d'horloge pour s'exécuter.
2 8 Canal 2, échantillon 1 6 (l'accumulation du canal 1) Bien que x reçoive des données du canal 2, somme renvoie le calcul des données du canal 1 reçues pendant la période d'horloge 1. Pendant la période 1, somme était 0 et x était 6. Ce nœud renvoie donc 6.
3 44 Canal 1, échantillon 2 8 (l'accumulation du canal 2) Bien que x reçoive des données du canal 1, somme renvoie le calcul des données du canal 2 reçues pendant la période d'horloge 2. Pendant la période 2, somme était 0 pour le canal 2 et x était 8. Ce nœud renvoie donc 8.
4 5 Canal 2, échantillon 2 50 (l'accumulation du canal 1) 6 (somme de la période d'horloge 2) + 44 (x de la période d'horloge 3)
5 2 Canal 1, échantillon 3 13 (l'accumulation du canal 2) 8 (somme de la période d'horloge 3) + 5 (x de la période d'horloge 4)
6 3 Canal 2, échantillon 3 52 (l'accumulation du canal 1) 50 (somme de la période d'horloge 4) + 2 (x de la période d'horloge 5)
7 - Il n'y a plus de données du canal 1. 16 (l'accumulation du canal 2) 13 (somme de la période d'horloge 5) + 3 (x de la période d'horloge 6)

Réinitialisation de l'accumulation

Pour démarrer une nouvelle accumulation, définissez l'entrée charger à VRAI. Puis réinitialisez charger à FAUX tant que vous voulez que la somme accumule des valeurs.

Opération multicanal

Deux facteurs définissent comment ce nœud agit sur les données de plusieurs canaux.

  • Ce nœud met toujours une période à calculer une valeur de somme,
  • Pour chaque canal, ce nœud maintient des valeurs internes séparées de somme.

Étant donné un ensemble de données entrelacées de deux canaux, ce comportement signifie que pendant une période où x est du canal 1, le nœud renvoie une valeur de somme pour le canal 2. Pour un exemple détaillé de ce comportement, reportez-vous à l'onglet Exemples de ce nœud.

Emprunter les valeurs dans les nœuds accumulateur en aval

Si vous avez des instances en cascade de ce nœud, spécifiez si le nœud en aval transmet ou emprunte une valeur. Pour spécifier qu'un nœud en aval utilise la valeur, câbler la sortie retenue en sortie/report inversé en sortie à l'entrée retenue en entrée/report inversé en entrée du nœud Accumulateur en aval.

Pour renvoyer la valeur de retenue en sortie/report inversé en sortie pendant la même période d'horloge que la valeur de la somme, sélectionnez l'option Registre pour retenue en sortie/report inversé en sortie. Cette fonctionnalité est utilisée si vous avez les nœuds Accumulateur en cascade et que vous ne voulez pas de délai entre la sortie retenue en sortie/report inversé en sortie d'un nœud et l'entrée retenue en entrée/report inversé en entrée du nœud en aval. Par défaut, cette option n'est pas sélectionnée, ce qui signifie que ce nœud renvoie le résultat de retenue en sortie/report inversé en sortie une période d'horloge avant la valeur de somme.

Effet sur les performances des simulations

Ce nœud peut ralentir considérablement l'exécution des simulations si vous l'utilisez avec le téléchargement, l'arrêt ou l'exécution du VI FPGA.