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.

1378

Ein-/Ausgänge

datatype_icon

x

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

Bei x und y muss es sich um zwei Skalare oder zwei 1D-Arrays fester Größe handeln. Wenn Sie für die Vektorgröße 1 festlegen, müssen Sie Skalarwerte angeben.
datatype_icon

y

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

Bei x und y muss es sich um zwei Skalare oder zwei 1D-Arrays fester Größe handeln. Wenn Sie für die Vektorgröße 1 festlegen, müssen Sie Skalarwerte angeben.
datatype_icon

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.
datatype_icon

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.
Hinweis Wenn dieser Eingang während einer Ausführungsperiode "False" ist, gibt der Ausgang Ausgabe gültig für diese Periode "False" aus.

Default value: True

datatype_icon

Skalarprodukt

Gibt das Skalarprodukt von x und y aus.

datatype_icon

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.
datatype_icon

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.
datatype_icon

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.
Hinweis Wenn der Ausgang während einer Taktperiode "False" ausgibt, verwirft der Knoten in der nachfolgenden Taktperiode die von anderen Knoten gesendeten Daten. Das gilt auch, wenn Eingabe gültig bei der nachfolgenden Taktperiode auf "True" wechselt.

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