Multiplier (haut débit)
- Mise à jour2023-02-17
- Temps de lecture : 5 minute(s)
Multiplier (haut débit)
Calcule le produit de deux valeurs.
Pour activer le handshake, sélectionnez l'option Quatre fils sur l'onglet Élément.
Entrées/Sorties

x
Multiplicande.
Cette entrée accepte les types de données suivants :
- Nombre à virgule fixe
- Nombre complexe à virgule fixe
- Tableau 1D de nombres à virgule fixe
- Tableau 1D de nombres complexes à virgule fixe

y
Multiplicateur.
Cette entrée accepte les types de données suivants :
- Nombre à virgule fixe
- Nombre complexe à virgule fixe
- Tableau 1D de nombres à virgule fixe
- Tableau 1D de nombres complexes à virgule fixe

entrée valide
Valeur booléenne qui spécifie si le point de données suivant est valide et peut être traité.
Câblez la sortie sortie valide d'un nœud en amont à cette entrée pour transférer des données du nœud en amont à ce nœud-ci.
Cette entrée n'est disponible que si vous sélectionnez l'option Quatre fils sur l'onglet Élément.
| Vrai | Le point de données est valide et peut être traité. |
| Faux | Le point de données n'est pas valide. |

prêt pour la sortie
Valeur booléenne qui spécifie si les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur.
Utilisez un nœud de rétroaction pour câbler la sortie prêt pour l'entrée d'un nœud en aval à cette entrée du nœud actuel. Si cette entrée est Faux pendant une période donnée, sortie valide renvoie Faux pendant cette période.
Cette entrée n'est disponible que si vous sélectionnez l'option Quatre fils sur l'onglet Élément.
| Vrai | Le nœud en aval est prêt pour le point de données suivant. |
| Faux | Le nœud en aval n'est pas prêt pour le point de données suivant. |
Default value: Vrai

dépassement de l'opération
Valeur booléenne qui indique si la valeur théorique calculée dépasse la gamme valide du type de données en sortie.
| Vrai | La valeur théorique calculée dépasse la gamme valide du type de données en sortie. |
| Faux | La valeur théorique calculée se trouve dans la gamme valide du type de données en sortie. |
Cette sortie peut renvoyer un booléen ou un tableau 1D de booléens.

x*y
Produit de x et de y.
Cette sortie peut renvoyer un des types de données suivants :
- Nombre à virgule fixe
- Nombre complexe à virgule fixe
- Tableau 1D de nombres à virgule fixe
- Tableau 1D de nombres complexes à virgule fixe
Si x ou y est un nombre à virgule fixe complexe, x*y est un nombre à virgule fixe complexe.

sortie valide
Valeur booléenne qui indique si ce nœud a calculé un résultat qui peut être utilisé par les nœuds en aval.
Câblez cette sortie à l'entrée entrée valide d'un nœud en aval pour transférer les données du nœud au nœud en aval.
Cette sortie n'est disponible que si vous sélectionnez l'option Quatre fils sur l'onglet Élément.
| Vrai | Le nœud a calculé un résultat qui peut être utilisé par les nœuds en aval. |
| Faux | Le nœud n'a pas calculé de résultat pouvant être utilisé par les nœuds en aval et renvoie une valeur non définie. Remarque Ce nœud peut renvoyer des valeurs non définies différentes selon qu'il s'exécute en mode simulation ou sur du matériel. |

prêt pour l'entrée
Valeur booléenne qui indique si ce nœud est prêt à accepter de nouvelles données en entrée.
Utilisez un nœud de rétroaction pour câbler cette sortie à l'entrée prêt pour la sortie d'un nœud en amont.
Cette sortie n'est disponible que si vous sélectionnez l'option Quatre fils sur l'onglet Élément.
| Vrai | Le nœud est prêt à accepter de nouvelles données en entrée. |
| Faux | Le nœud n'est pas prêt à accepter de nouvelles données en entrée. |
Comportements du nœud quand x et y sont des tableaux
Lorsque x et y sont des tableaux, ce nœud effectue le calcul sur les deux tableaux élément par élément. Si les deux tableaux ont des tailles différentes, ce nœud fait le calcul sur les N premiers éléments, N étant le nombre d'éléments du plus petit tableau. Si une entrée est un tableau et que l'autre est un scalaire, ce nœud effectue le calcul avec le scalaire sur chaque élément du tableau.
Quand ce nœud supprime-t-il des données ?
Si prêt pour l'entrée renvoie Faux pendant un cycle donné, ce nœud rejette les données qu'il reçoit d'autres nœuds pendant le cycle suivant. Ce nœud rejette ces données même si le terminal entrée valide est Vrai pendant le cycle suivant.
Comment obtenir la fréquence d'horloge désirée quand x et y sont des nombres à virgule fixe complexes
Si x et y sont des nombres à virgule fixe complexes, vous risquez d'avoir une fréquence d'horloge réduite à la compilation Si vous ne parvenez pas à atteindre la fréquence d'horloge désirée avec ce nœud, vous pouvez effectuer les étapes suivantes :
- Activez le handshake en sélectionnant l'option Quatre fils sur l'onglet Élément.
- Augmentez le nombre d'Étages de pipeline sur l'onglet Élément.
Si ceci ne suffit pas pour atteindre les performances désirées, implémentez la même logique en utilisant des nœuds IP Xilinx.
Améliorer les performances de cadencement avec un pipeline
Vous pouvez améliorer les performances de cadencement de ce nœud sur une cible FPGA en ajustant le nombre d'étages du pipeline. La fonctionnalité d'un multiplieur en pipeline équivaut à celle d'un multiplieur sans pipeline cascadé par un certain nombre de registres. Le nombre de registres est égal au nombre d'étages du pipeline.
Améliorer la fréquence maximale de l'horloge avec un pipeline
En général, l'augmentation du nombre d'étages d'un pipeline augmente aussi la fréquence d'horloge maximale que ce nœud peut atteindre. Cependant, la fréquence d'horloge réelle dépend de nombreux facteurs, y compris :
- La cible FPGA utilisée
- La taille du multiplieur
- Les modes d'arrondi et de dépassement sélectionnés pour la configuration de virgule fixe du nœud
- Le mode que vous sélectionnez pour Ressource dans la section Option de pipeline de l'onglet Élément.
- La logique FPGA autre que le multiplieur