Produit scalaire

Calcule le produit scalaire de deux vecteurs de nombres réels ou complexes. Si vous configurez Taille du vecteur à 1, vous devez fournir des valeurs scalaires. Pour toute autre Taille du vecteur, ce nœud supporte les valeurs scalaires ou les tableaux 1D de taille fixe de cette taille.

Entrées/Sorties

datatype_icon

x

Valeurs en entrée. Vous pouvez transférer des valeurs scalaires point par point ou transférer toutes les valeurs à la fois dans un tableau de taille fixe.

x et y doivent être tous deux scalaires ou tous deux des tableaux 1D de taille fixe. Si vous configurez Taille du vecteur à 1, vous devez fournir des valeurs scalaires.
datatype_icon

y

Valeurs en entrée. Vous pouvez transférer des valeurs scalaires point par point ou transférer toutes les valeurs à la fois dans un tableau de taille fixe.

x et y doivent être tous deux scalaires ou tous deux des tableaux 1D de taille fixe. Si vous configurez Taille du vecteur à 1, vous devez fournir des valeurs scalaires.
datatype_icon

entrée valide

Valeur booléenne qui décrit si le prochain élément de données est arrivé pour ê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.

Vrai Le prochain élément de données est arrivé pour être traité.
Faux Le prochain élément de données n'est pas arrivé pour être traité.
datatype_icon

prêt pour la sortie

Valeur booléenne qui définit 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.

Vrai Les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur.
Faux Les nœuds en aval ne sont pas prêts à ce que ce nœud-ci renvoie une nouvelle valeur.
Remarque Si cette entrée est Faux pendant un cycle, la sortie sortie valide renvoie Faux pendant ce cycle.

Default value: Vrai

datatype_icon

produit scalaire

Le produit scalaire de x et y.

datatype_icon

dépassement de l'opération

Un booléen qui indique si le type de données en sortie ne peut pas exprimer toutes les valeurs du résultat. Ce nœud applique les options de dépassement et d'arrondi en fonction de votre configuration de la sortie.

Vrai Le type de données en sortie ne peut pas exprimer toutes les valeurs du résultat.
Faux Le type de données en sortie peut exprimer toutes les valeurs du résultat.
datatype_icon

sortie valide

Valeur booléenne qui indique si ce nœud calcule 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.

Vrai Les nœuds en aval peuvent utiliser le résultat que ce nœud calcule.
Faux Ce nœud renvoie une valeur non définie que les nœuds en aval ne peuvent pas utiliser.
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.
datatype_icon

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 Nœud de rétroaction pour câbler cette sortie à la sortie prêt pour la sortie d'un nœud en amont.

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.
Remarque Si cette sortie renvoie Faux pendant un cycle donné, ce nœud rejette les données qui lui sont envoyées par 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.

Options de conjugaison

Configurer comment conjuguer les entrées pendant l'opération. Vous pouvez conjuguer n'importe quelle combinaison des entrées : x, y, les deux ou aucune.

Taille du vecteur

Spécifie la taille du vecteur en entrée.

Option de ressource

Spécifie comment implémenter le multiplieur. Auto permet au compilateur de décider s'il faut utiliser des multiplieurs en blocs embarqués ou des tables de correspondance. Table de correspondance force le nœud à utiliser des tables de correspondance.

Degré de pipeline

Configurer combien d'étages de pipeline ce nœud utilise en interne.

Que se passe-t-il si les interfaces ou les tailles des tableaux diffèrent ?

x et y doivent être tous deux scalaires ou tous deux un tableau 1D de taille fixe> Si les interfaces sont de types différents, x l'emporte. Si le type des deux interfaces est tableau 1D de taille fixe mais que les tableaux sont de tailles différentes, l'entrée de plus petite taille l'emporte. Si l'entrée prioritaire est un tableau 1D de taille fixe, le compilateur grise l'option de configuration Taille du vecteur pour le nœud et utilise la taille de tableau du fil de liaison.

Améliorer la fréquence maximale de l'horloge 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. 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