Skalarprodukt
- Aktualisiert2023-02-17
- 4 Minute(n) Lesezeit
Skalarprodukt
Berechnet das Skalarprodukt von zwei Vektoren aus komplexen oder reellen Zahlen. Wenn Sie für die Vektorgröße 1 festlegen, müssen Sie Skalarwerte angeben. Für jede andere Vektorgröße unterstützt dieser Knoten Skalarwerte oder 1D-Arrays fester Größe, die dieselbe Größe haben.
Ein-/Ausgänge

x
Eingangswerte. Sie können Skalarwerte entweder Punkt-für-Punkt oder gleichzeitig in ein Array fester Größe übertragen.

y
Eingangswerte. Sie können Skalarwerte entweder Punkt-für-Punkt oder gleichzeitig in ein Array fester Größe übertragen.

Eingabe gültig
Boolescher Wert, der anzeigt, ob das nächste Datenelement zur Verarbeitung eingetroffen ist. Verbinden Sie den Ausgang Ausgabe gültig eines vorgelagerten Knotens mit diesem Eingang, um Daten von einem vorgelagerten Knoten an diesen Knoten zu übergeben.
| True | Das nächste Datenelement ist zur Verarbeitung eingetroffen. |
| False | Das nächste Datenelement ist noch nicht zur Verarbeitung eingetroffen. |

Für Ausgabe bereit
Boolescher Wert, der festlegt, ob nachgelagerte Knoten für einen neuen Ausgabewert von diesem Knoten bereit sind. Verwenden Sie einen Rückkopplungsknoten zum Verbinden des Ausgangs Für Eingabe bereit eines nachgelagerten Knotens mit diesem Eingang des aktuellen Knotens.
| True | Nachgelagerte Knoten sind bereit für einen neuen Ausgabewert von diesem Knoten. |
| False | Nachgelagerte Knoten sind nicht bereit für einen neuen Ausgabewert von diesem Knoten. |
Default value: True

Skalarprodukt
Gibt das Skalarprodukt von x und y aus.

Operationsüberlauf
Boolescher Wert, der angibt, ob der Ausgabedatentyp alle Ergebniswerte darstellen kann. Der Knoten wendet Überlauf- und Rundungsoptionen entsprechend der Konfiguration des Ausgangs an.
| True | Der Ausgabedatentyp kann nicht alle Ergebniswerte darstellen. |
| False | Der Ausgabedatentyp kann alle Ergebniswerte darstellen. |

Ausgabe gültig
Boolescher Wert, der angibt, ob dieser Knoten ein Ergebnis berechnet hat, das von nachgelagerten Knoten verwendet werden kann.
Verbinden Sie diesen Ausgang mit dem Eingang Eingabe gültig eines nachgelagerten Knotens, um Daten vom Knoten an den nachgelagerten Knoten zu übertragen.
| True | Nachgelagerte Knoten können das Ergebnis verwenden, das dieser Knoten berechnet. |
| False | Dieser Knoten gibt einen undefinierten Wert aus, der für nachgelagerte Knoten unbrauchbar ist. Hinweis Die ausgegebenen undefinierten Werte können im Simulationsmodus und auf der Hardware unterschiedlich sein. |

Für Eingabe bereit
Boolescher Wert, der anzeigt, ob dieser Knoten für neue Eingangsdaten bereit ist.
Verbinden Sie diesen Ausgang über Rückkopplungsknoten mit dem Ausgang Für Ausgabe bereit eines vorgelagerten Knotens.
| True | Der Knoten ist bereit, neue Eingangsdaten anzunehmen. |
| False | Der Knoten kann keine neuen Eingangsdaten annehmen. |
Konjugationsoptionen
Konfiguriert, wie Eingänge während einer Operation konjugiert werden. Sie können jegliche Kombinationen von Eingängen konjugieren: x, y, beide oder keine.
Vektorgröße
Legt die Größe des Eingangsvektors fest.
Ressourcenoption
Gibt an, wie der Multiplizierer implementiert wird. Bei Autom. kann der Compiler entscheiden, ob eingebettete Blockmultiplizierer oder Zuordnungstabellen verwendet werden. Zuordnungstabelle gibt an, dass der Knoten Zuordnungstabellen verwenden soll.
Pipelininggrad
Konfiguriert, wie viele Pipeline-Stufen dieser Knoten intern verwendet.
Was passiert, wenn sich Schnittstellen oder Array-Größen unterscheiden?
Bei x und y muss es sich um zwei Skalare oder zwei 1D-Arrays fester Größe handeln. Wenn sich die Schnittstellentypen unterscheiden, hat x Vorrang. Wenn es sich bei beiden Schnittstellentypen um 1D-Arrays fester Größe handelt, sich die Array-Größen aber unterscheiden, hat der Eingang mit dem kleineren Array Vorrang. Wenn der vorrangige Eingang ein 1D-Array fester Größe ist, ist die Vektorgrößen-Option für den Knoten ausgegraut und der Compiler verwendet die Array-Größe der Verbindung.
Verbessern der maximalen Taktrate durch Pipelining
Sie können die Ausführungsgeschwindigkeit dieses Knotens auf einem FPGA-Zielsystem verbessern, indem Sie die Anzahl der Pipeline-Stufen anpassen. Im Allgemeinen wird durch eine größere Anzahl von Pipeline-Stufen auch die maximal mögliche Taktrate für diesen Knoten erhöht. Die tatsächliche Rate kann jedoch von mehreren Umständen abhängen, wie zum Beispiel:
- dem verwendeten FPGA-Zielsystem
- der Größe des Faktors
- den Rundungs- und Überlaufbedingungen, die Sie in der Festkommakonfiguration für den Knoten festgelegt haben
- dem Modus, der für Ressource im Abschnitt Pipelining-Optionen auf der Registerkarte Objekt ausgewählt wurde
- anderem FPGA-Programmcode, der zusätzlich zum Multiplizierer existiert