DSP48E2
- Aktualisiert2023-02-17
- 12 Minute(n) Lesezeit
DSP48E2
Berechnet eine benutzerdefinierbare arithmetische Gleichung oder Logikoperation an einem DSP48E2-Logikblock, der auf bestimmten Xilinx-FPGAs verfügbar ist.
Zum benutzerdefinierten Anpassen der arithmetischen Gleichung oder logischen Operation während der Ausführung konfigurieren Sie die Knotenschnittstelle auf der Registerkarte Objekt.
Ein-/Ausgänge

a
Wert, der bei einer arithmetischen Berechnung oder Logikoperation im Logikblock verwendet werden soll.
Beibehalten der Genauigkeit von Festkommawerten
Festkommawerte passen sich nicht an Bedien- und Anzeigeelemente mit unterschiedlichen Datentypen an. Stattdessen wird der Wert angepasst, was zu einer verringerten Genauigkeit führt. Zum Beibehalten der Genauigkeit verbinden Sie einen Festkommawert mit übereinstimmendem Datentyp mit dem Eingang oder passen Sie die Integer-Wortlänge des Eingangs an.

acin
Wert von a, der von einem vorhergehenden DSP48-Knoten kaskadiert ist, der bei einer arithmetischen Berechnung oder Logikoperation im Logikblock verwendet werden soll.
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option acin aus.
Kaskadierte Eingangsverbindungen
Dieser kaskadierte Eingang kann nur mit dem Ausgang acout eines anderen DSP48-Knotens verbunden werden.

b
Wert, der bei einer arithmetischen Berechnung oder Logikoperation im Logikblock verwendet werden soll.
Beibehalten der Genauigkeit von Festkommawerten
Festkommawerte passen sich nicht an Bedien- und Anzeigeelemente mit unterschiedlichen Datentypen an. Stattdessen wird der Wert angepasst, was zu einer verringerten Genauigkeit führt. Zum Beibehalten der Genauigkeit verbinden Sie einen Festkommawert mit übereinstimmendem Datentyp mit dem Eingang oder passen Sie die Integer-Wortlänge des Eingangs an.

bcin
Wert von b, der von einem vorhergehenden DSP48-Knoten kaskadiert ist, der bei einer arithmetischen Berechnung oder Logikoperation im Logikblock verwendet werden soll.
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option bcin aus.
Kaskadierte Eingangsverbindungen
Dieser kaskadierte Eingang kann nur mit dem Ausgang bcout eines anderen DSP48-Knotens verbunden werden.

c
Wert, der bei einer arithmetischen Berechnung oder Logikoperation im Logikblock verwendet werden soll.
Beibehalten der Genauigkeit von Festkommawerten
Festkommawerte passen sich nicht an Bedien- und Anzeigeelemente mit unterschiedlichen Datentypen an. Stattdessen wird der Wert angepasst, was zu einer verringerten Genauigkeit führt. Zum Beibehalten der Genauigkeit verbinden Sie einen Festkommawert mit übereinstimmendem Datentyp mit dem Eingang oder passen Sie die Integer-Wortlänge des Eingangs an.

Eingangsmodus
Steuerbits zur Auswahl der Funktionsweise des Voraddierers, der Eingangsregister sowie der Anschlüsse a, b und d.
Dieser Eingang wird nur angezeigt, wenn auf der Registerkarte Objekt als Berechnungsmodus die Option "Benutzerdefiniert" ausgewählt ist.

pcin
Wert von p, der von einem vorhergehenden DSP48-Knoten kaskadiert ist, der bei einer arithmetischen Gleichung oder Logikoperation im Logikblock verwendet werden soll.
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option pcin aus.
Kaskadierte Eingangsverbindungen
Dieser kaskadierte Eingang kann nur mit dem Ausgang pcout eines anderen DSP48-Knotens verbunden werden.

carryin
Boolescher Wert, der den Übertragseingang von der FPGA-Logik darstellt.
| True | Der Eingang des DSP48-Logikblocks für den Übertrag von einer externen arithmetischen Operation ist auf 1 gesetzt. |
| False | Der Eingang des DSP48-Logikblocks für den Übertrag von einer externen arithmetischen Operation ist auf 0 gesetzt. |
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option carryin aus.

carrycascin
Boolescher Wert für das Weiterleiten des kaskadierten Übertrags eines vorherigen DSP48-Knotens.
| True | Der Eingang für das Weiterleiten des Übertrags von vorherigen Knoten ist am DSP48-Logikblock auf 1 gesetzt. |
| False | Der Eingang für das Weiterleiten des Übertrags von vorherigen Knoten ist am DSP48-Logikblock auf 0 gesetzt. |
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option carrycascin aus.
Kaskadierte Eingangsverbindungen
Dieser kaskadierte Eingang kann nur mit dem Ausgang carrycascout eines anderen DSP48-Knotens verbunden werden.

multsignin
Boolescher Wert für das Vorzeichen des Produkts einer vorhergehenden DSP48-Knotenberechnung.
| True | Das Ergebnis der Multiplikation des vorhergehenden DSP48-Knotens ist negativ und die Eingabe auf dem DSP48-Logikblock ist auf 1 gesetzt. |
| False | Das Ergebnis der Multiplikation des vorhergehenden DSP48-Knotens ist positiv und die Eingabe auf dem DSP48-Logikblock ist auf 0 gesetzt. |
Zur Anzeige dieses Eingangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option multsignin aus.
Kaskadierte Eingangsverbindungen
Dieser kaskadierte Eingang kann nur mit dem Ausgang multsignout eines anderen DSP48-Knotens verbunden werden.

alumode
Steuer-Bits, welche die arithmetische Gleichung oder Logikoperation auswählen, die vom Logikblock berechnet wird.
Dieser Eingang wird nur angezeigt, wenn auf der Registerkarte Objekt als Berechnungsmodus die Option "Benutzerdefiniert" ausgewählt ist.

opmode
Steuer-Bits für die Auswahl des Eingangs für den X-, Y- und Z-Multiplexer des Logikblocks.
Dieser Eingang wird nur angezeigt, wenn auf der Registerkarte Objekt als Berechnungsmodus die Option "Benutzerdefiniert" ausgewählt ist.

carryinsel
Steuer-Bits für die Auswahl der Carry-Quelle.
Dieser Eingang wird nur angezeigt, wenn auf der Registerkarte Objekt als Berechnungsmodus die Option "Benutzerdefiniert" ausgewählt ist.

acout
Wert von a, der an einen anderen DSP48-Knoten weitergegeben wird.
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option acout aus.
Kaskadierte Ausgangsverbindungen
Dieser kaskadierte Ausgang kann nur mit dem Eingang acin eines anderen DSP48-Knotens verbunden werden.

bcout
Wert von b, der an einen anderen DSP48-Knoten weitergegeben wird.
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option bcout aus.
Kaskadierte Ausgangsverbindungen
Dieser kaskadierte Ausgang kann nur mit dem Eingang bcin eines anderen DSP48-Knotens verbunden werden.

p
Ergebnis der Operation, die vom Logikblock ausgeführt wurde.
Beibehalten der Genauigkeit von Festkommawerten
Festkommawerte passen sich nicht an Bedien- und Anzeigeelemente mit unterschiedlichen Datentypen an. Stattdessen wird der Wert automatisch angepasst, was zu einem Genauigkeitsverlust führt. Zum Beibehalten der Genauigkeit verbinden Sie einen Festkommawert mit einem entsprechenden Datentyp mit dem Ausgang oder passen Sie die Integer-Wortlänge des Ausgangs an.

pcout
Wert von p, der an einen anderen DSP48-Knoten weitergegeben wird.
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option pcout aus.
Kaskadierte Ausgangsverbindungen
Dieser kaskadierte Ausgang kann nur mit dem Eingang pcin eines anderen DSP48-Knotens verbunden werden.

carryout
4-Bit-Ausgang des DSP48-Logikblocks.
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option carryout aus.

carrycascout
Boolescher Wert für das Steuer-Bit für den Carry-Ausgang, der an einen anderen DSP48-Knoten weitergegeben werden soll.
| True | Der Kaskadenübertragsausgang am DSP48-Logikblock ist auf 1 gesetzt. |
| False | Der Kaskadenübertragsausgang am DSP48-Logikblock ist auf 0 gesetzt. |
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option carrycascout aus.
Kaskadierte Ausgangsverbindungen
Dieser kaskadierte Ausgang kann nur mit dem Eingang carrycascin eines anderen DSP48-Knotens verbunden werden.

multsignout
Boolescher Wert für das Vorzeichen des multiplizierten Ergebnisses, das an einen anderen DSP48-Knoten weitergegeben werden soll.
| True | Das Ergebnis der Multiplikation ist negativ und die Ausgabe auf dem DSP48-Logikblock ist auf 1 gesetzt. |
| False | Das Ergebnis der Multiplikation ist positiv und die Ausgabe auf dem DSP48-Logikblock ist auf 0 gesetzt. |
Zur Anzeige dieses Ausgangs klicken Sie auf der Registerkarte Objekt auf Anschlussfeld ändern und wählen Sie auf der Registerkarte Anschlüsse im Dialogfeld Anschlussfeld für DSP48 konfigurieren die Option multsignout aus.
Kaskadierte Ausgangsverbindungen
Dieser kaskadierte Ausgang kann nur mit dem Eingang multsignin eines anderen DSP48-Knotens verbunden werden.
Konfigurieren der Knotenschnittstelle
Zum Festlegen, wie der Knoten während der Ausführung funktioniert, wählen Sie eine der drei Optionen unter Berechnung auf der Registerkarte Objekt aus.
Zur Auswahl der Werte für die Gleichung klicken Sie auf der Registerkarte Objekt auf Bearbeiten.
Zum Konfigurieren des booleschen Ausdrucks klicken Sie auf der Registerkarte Objekt auf Bearbeiten.
Bei Auswahl von "Arithmetik" oder "Logik" als Berechnungstyp werden opmode, alumode, inmode und carryinsel des DSP48-Knotens automatisch konfiguriert. Wenn die Kombination der Einstellungen der Eingänge opmode, alumode, inmode und carryinsel ungültig ist, gibt das Programm während der Ausführung einen entsprechenden Fehler aus.
Konfigurieren der Ein- und Ausgänge eines DSP48-Knotens
Ein Knoten des Typs DSP48 ist mit diversen optionalen Ein- und Ausgängen ausgestattet, mit deren Hilfe Sie die Funktionsweise eines DSP48-Logikblocks im Diagramm Ihren Anforderungen entsprechend anpassen können. Durch Aktivieren optionaler Ein- und Ausgänge können Sie die bei der Ausführung des Knotens verwendeten Werte für die Berechnung festlegen.
Um festzulegen, welche Eingänge eines DSP48-Knotens im Diagramm angezeigt werden sollen, gehen Sie wie folgt vor:
- Wählen Sie im Diagramm den zu konfigurierenden DSP48-Knoten aus.
- Klicken Sie auf der Registerkarte Objekt auf die Schaltfläche Anschlussfeld ändern.
- Wählen Sie auf der Registerkarte Anschlüsse des Dialogfelds Anschlussfeld für DSP48 konfigurieren aus, welche Ein- und Ausgänge des Knotens im Diagramm zu sehen sein sollen, und klicken Sie anschließend auf OK.
Beibehalten der numerischen Genauigkeit an einem DSP48-Knoten
Damit die numerische Genauigkeit bei jedem Schritt der Berechnungen von der Eingabe bis zur Ausgabe beibehalten wird, müssen Sie die Integer-Wortlänge der Eingangswerte ordnungsgemäß festlegen. Wenn Sie dies unterlassen, kann die Berechnung ein falsches Ergebnis liefern.
Die Wortlänge eines Eingangswerts eines DSP48-Knotens ist ein konstanter Wert, der mit der Bitbreite des entsprechenden Eingangswerts eines DSP48-Logikblocks übereinstimmt. Die Integer-Wortlänge von Eingangswerten eines DSP48-Knotens wird auf der Registerkarte Festkommakonfiguration des Dialogfelds Anschlussfeld für DSP48 konfigurieren festgelegt.
In der folgenden Tabelle werden die Modifikationen angezeigt, die am Datentyp der Eingangswerte von DSP48-Knoten erforderlich sind, damit die numerische Genauigkeit durchgehend die Gleiche ist.
| Konfiguration der Knoteneingangswerte oder der Gleichung | Erfordernisse zum Beibehalten der numerischen Genauigkeit | Beispiel |
|---|---|---|
|
a, b |
|
Der Datentyp des am Eingang b anliegenden Werts lautet I16 <1.15>. Stellen Sie die Integer-Wortlänge von b auf 3, 2 oder 1 ein, damit die Anforderungen zum Beibehalten der numerischen Genauigkeit erfüllt werden. |
|
Faktor (p = a * b) |
Die Wortlänge des Nachkommaanteils von p entspricht der Summe der Wortlängen des Nachkommaanteils von a und b. |
Die Summe der Wortlängen des Nachkommaanteils lautet 29. Stellen Sie in diesem Fall die Wortlängen von a, b und p entsprechend ein:
|
|
Summierer (p = p + c) |
Die Wortlänge des Nachkommaanteils von p entspricht der Wortlänge des Nachkommaanteils von c. |
Der Datentyp des am Eingang c anliegenden Werts lautet I16 <3.13>. Stellen Sie die Integer-Wortlänge von p auf 35 ein. |
Gebräuchliche DSP48E2-Einstellungen für arithmetische Gleichungen
Ein DSP48-Knoten berechnet die folgende generische Gleichung, wenn Sie auf der Registerkarte Objekt auf dem Dropdown-Menü Berechnung die Option Arithmetisch auswählen.
p = (+/NICHT z) +/- (x+y + carryin)
z, x+y und carryin sind Variablen. Sie können diese Variablen so konfigurieren, dass sie entweder einen konstanten Wert annehmen, einem Eingangswert des Knotens entsprechen oder das Rechenergebnis darstellen. Die Quellen für carryin sind von den für z und x+y festgelegten Werten abhängig. Klicken Sie zum Konfigurieren der Gleichung die auf der Registerkarte Objekt befindliche Schaltfläche Bearbeiten an.
Wenn Sie auf der Registerkarte Objekt aus dem Dropdown-Menü Schnittstelle die Einstellung DSP48E1 auswählen, wird im Dialogfeld DSP48 konfigurieren eine zweite Gleichung zur Lösung von m angezeigt. Das Ergebnis dieser Gleichung kann bei Ausführung des Knotens als Eingangswert für die Berechnung von x+y verwendet werden.
Per Standardeinstellung berechnet die DSP48E2-Schnittstelle eines DSP48-Knotens die folgende Gleichung:
p = c + (m + carryin)
m = a * b
| Arithmetische Operation | Arithmetische Gleichung | Konfiguration |
|---|---|---|
|
Multiplizieren |
p = a*b+carryin |
|
|
Multiplizieren mit Voraddierer |
p = (d+a)*b+carryin |
|
|
MAC-Operation |
p = p+(a*b+carryin) |
|
|
Multiplizieren-Addieren |
p = c+ (a*b+carryin) |
|
|
Multiplizieren-Subtrahieren |
p = c-(a*b+carryin) |
|