Multiplizieren (hoher Durchsatz)

Berechnet das Produkt zweier Werte.

Zum Aktivieren von Handshaking wählen Sie 4-Draht auf der Registerkarte Objekt aus.

1378

Ein-/Ausgänge

datatype_icon

x

Multiplikand

Der Eingang arbeitet mit folgenden Datentypen:

  • Festkommazahl
  • Komplexe Festkommazahlen
  • 1D-Array aus Festkommazahlen
  • 1D-Array aus komplexen Festkommazahlen
datatype_icon

y

Multiplikator.

Der Eingang arbeitet mit folgenden Datentypen:

  • Festkommazahl
  • Komplexe Festkommazahlen
  • 1D-Array aus Festkommazahlen
  • 1D-Array aus komplexen Festkommazahlen
datatype_icon

Eingabe gültig

Boolescher Wert, mit dem festgelegt wird, ob der nächste Datenpunkt gültig ist und verarbeitet werden kann.

Verbinden Sie Ausgabe gültig eines vorgelagerten Knotens mit diesem Eingang, um Daten von dem vorgelagerten Knoten an diesen Knoten zu übertragen.

Dieser Eingang ist nur verfügbar, wenn Sie auf der Registerkarte Objekt die Option 4-Draht aktivieren.

True Der Datenpunkt ist gültig und kann verarbeitet werden.
False Der Datenpunkt ist nicht gültig.
datatype_icon

Für Ausgabe bereit

Boolescher Wert, der angibt, ob nachgelagerte Knoten für einen neuen Ausgabewert von diesem Knoten bereit sind.

Verwenden Sie einen Rückkopplungsknoten zum Verbinden des Anschlusses Für Eingabe bereit eines nachgelagerten Knotens mit diesem Eingang des aktuellen Knotens. Wenn dieser Eingang während einer Ausführungsperiode "False" ist, gibt Ausgabe gültig für diese Periode "False" aus.

Dieser Eingang ist nur verfügbar, wenn Sie auf der Registerkarte Objekt die Option 4-Draht aktivieren.

True Der nachgelagerte Knoten ist bereit für den nächsten Datenpunkt.
False Der nachgelagerte Knoten ist nicht bereit für den nächsten Datenpunkt.

Default value: True

datatype_icon

Operationsüberlauf

Boolescher Wert, der anzeigt, ob der theoretische berechnete Wert den gültigen Bereich des Ausgabedatentyps überschreitet.

True Der theoretische berechnete Wert überschreitet den gültigen Bereich des Ausgabedatentyps.
False Der theoretische berechnete Wert liegt im gültigen Bereich des Ausgabedatentyps.

Dieser Ausgang kann einen booleschen Wert oder ein 1D-Array aus booleschen Werten ausgeben.

datatype_icon

x*y

Produkt von x und y.

Dieser Ausgang kann einen der folgenden Datentypen ausgeben:

  • Festkommazahl
  • Komplexe Festkommazahlen
  • 1D-Array aus Festkommazahlen
  • 1D-Array aus komplexen Festkommazahlen

Wenn x oder y eine komplexen Festkommazahl ist, ist x*y eine komplexe Festkommazahl.

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 Anschluss Eingabe gültig eines nachgelagerten Knotens, um Daten vom Knoten an den nachgelagerten Knoten zu übertragen.

Dieser Ausgang ist nur verfügbar, wenn Sie auf der Registerkarte Objekt das Feld 4-Draht aktivieren.

True Der Knoten hat ein Ergebnis berechnet, das von nachgelagerten Knoten verwendet werden kann.
False Dieser Knoten hat kein Ergebnis berechnet, das von nachgelagerten Knoten verwendet werden kann, und der Knoten gibt einen undefinierten Wert aus.
Hinweis Die ausgegebenen undefinierten Werte können je nach Arbeitsweise des Knotens (im Simulationsmodus oder mit Hardware) variieren.
datatype_icon

Für Eingabe bereit

Ein boolescher Wert, der anzeigt, ob dieser Knoten bereit ist für das Annehmen neuer Eingangsdaten.

Verwenden Sie einen Rückkopplungsknoten, um diesen Ausgang mit dem Anschluss Für Ausgabe bereit eines vorgelagerten Knotens zu verbinden.

Dieser Ausgang ist nur verfügbar, wenn Sie auf der Registerkarte Objekt das Feld 4-Draht aktivieren.

True Der Knoten ist bereit, neue Eingangsdaten anzunehmen.
False Der Knoten kann keine neuen Eingangsdaten annehmen.

Funktionsweise des Knotens, wenn x und y Arrays sind

Wenn x und y Arrays sind, werden Berechnungen an den zwei Arrays elementweise durchgeführt. Wenn die beiden Arrays unterschiedlich groß sind, führt dieser Knoten die Berechnung an den ersten n Elementen durch, wobei n die Anzahl der Elemente des kleineren Arrays ist. Wenn ein Eingang ein Array und der andere Eingang ein Skalar ist, wird die Berechnung an jedem Element des Arrays mit dem Skalar durchgeführt.

Wann verwirft dieser Knoten Daten?

Wenn Für Eingabe bereit während einer Taktperiode "False" ausgibt, verwirft dieser 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.

Erzielen der gewünschten Taktrate, wenn x und y komplexe Festkommazahlen sind

Wenn x und y komplexe Fließkommazahlen sind, kann dies zu einer verringerten Taktrate während der Kompilierung führen. Wenn Sie die gewünschte Taktrate nicht mit diesem Knoten erzielen können, gehen Sie nach folgenden Schritten vor:

  1. Aktivieren Sie Handshaking durch Auswahl von 4-Draht auf der Registerkarte Objekt.
  2. Erhöhen Sie die Anzahl der Pipeline-Stufen auf der Registerkarte Objekt.

Wenn Sie die gewünschte Ausführungsgeschwindigkeit immer noch nicht erzielen können, kann der Funktionsumfang evtl. mit Hilfe der Xilinx-IP-Knoten umgesetzt werden.

Verbessern des Timings durch Pipelining

Sie können die Ausführungsgeschwindigkeit dieses Knotens auf einem FPGA-Zielsystem verbessern, indem Sie die Anzahl der Pipeline-Stufen anpassen. Der Funktionsumfang des Pipelinings von Multiplizierern ist äquivalent zur Multiplikation ohne Pipelining kaskadiert um eine bestimmte Anzahl von Registern. Die Anzahl der Register entspricht der Anzahl der Pipeline-Stufen.

Verbessern der maximalen Taktrate durch Pipelining

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