Intel-Logo

Intel UG-20094 Cyclone 10 GX Nativer Festpunkt-DSP-IP-Core

Intel-UG-20094-Cyclone-10-GX-Natives-Fixed-Point-DSP-IP-Core-PRODUKT

Intel® Cyclone® 10 GX nativer Fixed-Point-DSP-IP-Core – Benutzerhandbuch

Der Intel Cyclone® 10 GX Native Fixed Point DSP IP-Kern instanziiert und steuert einen einzelnen Intel Cyclone 10 GX Digital Signal Processing (DSP)-Block mit variabler Präzision. Der Cyclone 10 GX Native Fixed Point DSP IP-Core ist nur für Intel Cyclone 10 GX-Geräte verfügbar.

Funktionsblockdiagramm des Cyclone 10 GX Native Fixed Point DSP IP CoreIntel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (1)

Zugehörige Informationen
Einführung in Intel FPGA IP-Cores.

Cyclone 10 GX native Fixed-Point-DSP-IP-Kernfunktionen

Der Cyclone 10 GX Native Fixed Point DSP IP-Kern unterstützt die folgenden Funktionen:

  • Leistungsstarke, leistungsoptimierte und vollständig registrierte Multiplikationsoperationen
  • 18-Bit- und 27-Bit-Wortlängen
  • Zwei 18 × 19-Multiplikatoren oder ein 27 × 27-Multiplikator pro DSP-Block
  • Eingebautes Additions-, Subtraktions- und 64-Bit-Doppelakkumulationsregister zum Kombinieren von Multiplikationsergebnissen
  • 19-Bit- oder 27-Bit-Kaskadierung, wenn der Voraddierer deaktiviert ist, und 18-Bit-Kaskadierung, wenn der Voraddierer verwendet wird, um die Abgriffverzögerungsleitung für die Filteranwendung zu bilden
  • Kaskadierender 64-Bit-Ausgangsbus zur Weitergabe von Ausgangsergebnissen von einem Block zum nächsten Block ohne externe Logikunterstützung
  • Hard Pre-Adder wird im 19-Bit- und 27-Bit-Modus für symmetrische Filter unterstützt
  • Interne Koeffizientenregisterbank sowohl im 18-Bit- als auch im 27-Bit-Modus zur Filterimplementierung
  • 18-Bit- und 27-Bit-Systolische Finite-Impulse-Response-Filter (FIR) mit verteiltem Ausgangsaddierer

Erste Schritte

Dieses Kapitel bietet einen allgemeinen Überblickview des Intel FPGA IP Core Design Flow, um Ihnen den schnellen Einstieg in den Cyclone 10 GX Native Fixed Point DSP IP Core zu erleichtern. Die Intel FPGA IP-Bibliothek wird als Teil des Intel Quartus® Prime-Installationsprozesses installiert. Sie können jeden Intel FPGA IP-Core aus der Bibliothek auswählen und parametrieren. Intel bietet einen integrierten Parametereditor, mit dem Sie den Intel FPGA DSP IP-Core anpassen können, um eine Vielzahl von Anwendungen zu unterstützen. Der Parametereditor führt Sie durch die Einstellung von Parameterwerten und die Auswahl optionaler Ports.

Zugehörige Informationen

  • Einführung in Intel FPGA IP-Cores
    Bietet allgemeine Informationen zu allen Intel FPGA IP-Cores, einschließlich Parametrierung, Generierung, Upgrade und Simulation von IP-Cores.
  • Erstellen von Versions-unabhängigen IP- und Plattform-Designer (Standard)-Simulationsskripten
    Erstellen Sie Simulationsskripte, die keine manuellen Updates für Software- oder IP-Versions-Upgrades erfordern.
  • Best Practices für das Projektmanagement
    Richtlinien für effizientes Management und Übertragbarkeit Ihres Projekts und IP files.
Cyclone 10 GX Native Fixpunkt-DSP-IP-Core-Parametereinstellungen

Sie können den Cyclone 10 GX Native Fixed Point DSP IP-Kern anpassen, indem Sie die Parameter mit dem Parameter-Editor in der Intel Quartus Prime-Software angeben.

Registerkarte Betriebsmodus

ParameterIP-generierter ParameterWertBeschreibung
Bitte wählen Sie den BetriebsmodusBetriebsmodusm18×18_full m18×18_sumof2 m18×18_plus36 m18×18_systolic m27×27Wählen Sie den gewünschten Betriebsmodus.
Multiplikator-Konfiguration
Darstellungsformat für den oberen Multiplikator x Operandensigniert_maxsigniert unsigniertGeben Sie das Darstellungsformat für den oberen Multiplikator-x-Operanden an.
ParameterIP-generierter ParameterWertBeschreibung
Darstellungsformat für den oberen Multiplikator-y-Operandensigniert_maisigniert unsigniertGeben Sie das Darstellungsformat für den oberen Multiplikator-y-Operanden an.
Darstellungsformat für den unteren Multiplikator x Operandenunterzeichnet_mbxsigniert unsigniertGeben Sie das Darstellungsformat für den unteren Multiplikator-x-Operanden an.
Darstellungsformat für den unteren Multiplikator-y-Operandenunterzeichnet_mbysigniert unsigniertGeben Sie das Darstellungsformat für den unteren Multiplikator-y-Operanden an.

Immer auswählen ohne Vorzeichen für m18×18_plus36 .

Aktivieren Sie den „Sub“-Portenable_subNEIN JaWählen Ja aktivieren

Sub-Port.

Registereingang 'sub' des Multiplikatorssub_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für das Untereingangsregister.
Eingangskaskade
Eingabekaskade für 'ay'-Eingang aktivierenay_use_scan_inNEIN JaWählen Ja um das Eingangskaskadenmodul für jeden Dateneingang zu aktivieren.

Wenn Sie das Eingangskaskadenmodul aktivieren, verwendet der Cyclone 10 GX Native Fixed Point DSP IP-Core die Scanin-Eingangssignale als Eingang anstelle von y-Eingangssignalen.

Eingangskaskade für 'by'-Eingang aktivierenby_use_scan_inNEIN JaWählen Ja um das Eingangskaskadenmodul für die Dateneingabe zu aktivieren.

Wenn Sie das Eingangskaskadenmodul aktivieren, verwendet der Cyclone 10 GX Native Fixed Point DSP IP-Core die ay-Eingangssignale als Eingang anstelle von Eingangssignalen.

Daten-Ay-Verzögerungsregister aktivierendelay_scan_out_ayNEIN JaWählen Ja zum Aktivieren des Verzögerungsregisters zwischen ay und durch Eingangsregister.

Diese Funktion wird nicht unterstützt in m18×18_plus36 Und m27x27 Betriebsmodus.

ParameterIP-generierter ParameterWertBeschreibung
Daten durch Verzögerungsregister aktivierenVerzögerung_scan_out_byNEIN JaWählen Ja zum Aktivieren des Verzögerungsregisters zwischen den Eingangsregistern und dem Scanout-Ausgangsbus.

Diese Funktion wird nicht unterstützt in m18×18_plus36 Und m27x27 Betriebsmodus.

Scanout-Port aktivierengui_scanout_enableNEIN JaWählen Ja aktivieren

Scanout-Ausgangsbus.

'scanout' Ausgangsbusbreitescan_out_width1–27Geben Sie die Breite von an

Scanout-Ausgangsbus.

Daten 'x' Konfiguration
'ax' EingangsbusbreiteAxtbreite1–27Geben Sie die Breite von an

ax Eingangsbus.(1)

Registereingang 'ax' des Multiplikatorsax_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für ein x-Eingangsregister zu aktivieren und zu spezifizieren.

ax-Eingaberegister ist nicht verfügbar, wenn Sie festlegen 'ax'-Operandenquelle Zu 'coef'.

'bx' Eingangsbusbreitebx_width1–18Geben Sie die Breite von an

bx Eingangsbus.(1)

Registereingang 'bx' des Multiplikatorsbx_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für das bx-Eingangsregister.

bx-Eingangsregister ist nicht verfügbar, wenn Sie festlegen Quelle des Operanden 'bx' Zu 'coef'.

Daten 'y' Konfiguration
'ay' oder 'scanin' Busbreiteay_scan_in_width1–27Geben Sie die Breite eines y- oder Scanin-Eingangsbusses an.(1)
Registereingabe 'ay' oder Eingabe 'scanin' des Multiplikatorsay_scan_in_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für ein y- oder Scanin-Eingangsregister.
'by' Eingangsbusbreitenach_breite1–19Geben Sie die Breite des Eingangsbusses an.(1)
ParameterIP-generierter ParameterWertBeschreibung
Registereingang 'by' des Multiplikatorsum_UhrNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für by oder scanin

Eingaberegister.(1)

Konfiguration „Ergebnis“ ausgeben
'resulta' Ausgangsbusbreiteresult_a_width1–64Geben Sie die Breite von an

resultierender Ausgangsbus.

'resultb' Ausgangsbusbreiteresult_b_width1–64Geben Sie die Breite des resultierenden Ausgangsbusses an. resultb nur bei Verwendung von operation_mode verfügbar m18×18_voll.
Ausgangsregister verwendenAusgabe_UhrNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Ausgangsregister resulta und resultb.

Voraddierer-Registerkarte

ParameterIP-generierter ParameterWertBeschreibung
'ay' Operandenquelleoperand_source_mayEingangs-PreadderGeben Sie die Operandenquelle für jeden Eingang an. Wählen Preadder um das Pre-Adder-Modul für den Top-Multiplikator zu aktivieren. Die Einstellungen für ay und by operand source müssen gleich sein.
'von' Operandenquelleoperand_source_mbyEingangs-PreadderGeben Sie die Operandenquelle für by input an. Wählen Preadder um das Pre-Adder-Modul für den unteren Multiplikator zu aktivieren. Die Einstellungen für ay und by operand source müssen gleich sein.
Setzen Sie den Voraddierer einer Operation auf Subtraktionpreadder_subtract_aNEIN JaWählen Ja um die Subtraktionsoperation für das Voraddierermodul für den oberen Multiplikator zu spezifizieren. Pre-Adder-Einstellungen für Top- und Bottom-Multiplikator müssen gleich sein.
Stellen Sie die Operation des Voraddierers b auf Subtraktion einpreadder_subtract_bNEIN JaWählen Ja um die Subtraktionsoperation für das Voraddierermodul für den unteren Multiplikator zu spezifizieren. Pre-Adder-Einstellungen für Top- und Bottom-Multiplikator müssen gleich sein.
Daten 'z' Konfiguration
'az' Eingangsbusbreiteaz_breite1–26Geben Sie die Breite eines z-Eingangsbusses an.(1)
Registereingang 'az' des Multiplikatorsaz_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für ein z-Eingangsregister. Die Takteinstellungen für ay- und az-Eingangsregister müssen gleich sein.
'bz' Eingangsbusbreitebz_breite1–18Geben Sie die Breite des bz-Eingangsbusses an.(1)
Registereingang 'bz' des Multiplikatorsbz_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für bz-Eingangsregister. Die Takteinstellungen für die Eingangsregister by und bz müssen gleich sein.

Registerkarte „Interner Koeffizient“.

ParameterIP-generierter ParameterWertBeschreibung
'ax'-Operandenquelleoperand_source_maxEingang koefGeben Sie die Operandenquelle für den x-Eingangsbus an. Wählen koef um das interne Koeffizientenmodul für den oberen Multiplikator zu aktivieren.

Wählen NEIN für Registereingang 'ax' des Multiplikators Parameter, wenn Sie die interne Koeffizientenfunktion aktivieren.

ParameterIP-generierter ParameterWertBeschreibung
   Die Einstellungen für ax und bx Operandenquelle müssen gleich sein.
Quelle des Operanden 'bx'operand_source_mbxEingang koefGeben Sie die Operandenquelle für den bx-Eingangsbus an. Wählen koef um das interne Koeffizientenmodul für den oberen Multiplikator zu aktivieren.

Wählen NEIN für Registereingang 'bx' des Multiplikators Parameter, wenn Sie die interne Koeffizientenfunktion aktivieren.

Die Einstellungen für ax und bx Operandenquelle müssen gleich sein.

'coefsel' Eingangsregisterkonfiguration
Registereingang 'coefsela' des Multiplikatorscoef_sel_a_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Coefsela-Eingangsregister.
Registereingang 'coefselb' des Multiplikatorscoef_sel_b_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für die Coefselb-Eingangsregister zu aktivieren und zu spezifizieren.
Koeffizientenspeicherkonfiguration
coef_a_0–7coef_a_0–7Ganze ZahlGeben Sie die Koeffizientenwerte für den x-Eingangsbus an.

Für den 18-Bit-Betriebsmodus beträgt der maximale Eingabewert 218 – 1. Für den 27-Bit-Betrieb beträgt der maximale Wert 227 – 1.

coef_b_0–7coef_b_0–7Ganze ZahlGeben Sie die Koeffizientenwerte für den bx-Eingangsbus an.

Registerkarte „Akkumulator/Ausgangskaskade“.

ParameterIP-generierter ParameterWertBeschreibung
Aktivieren Sie den 'akkumulieren'-Portenable_accumulateNEIN JaWählen Ja aktivieren

Akkuanschluss.

Aktivieren Sie den „negierten“ Portenable_negierenNEIN JaWählen Ja aktivieren

Hafen negieren.

Aktivieren Sie den 'loadconst'-Portenable_loadconstNEIN JaWählen Ja aktivieren

loadconst-Port.

Registereingang 'akkumulieren' des AkkumulatorsAccumulate_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0 , Uhr1, oder Uhr2 zum Freigeben und Spezifizieren des Eingangstaktsignals für die akkumulierten Eingangsregister.
ParameterIP-generierter ParameterWertBeschreibung
Registereingang 'loadconst' des AkkumulatorsLoad_const_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Loadconst-Eingangsregister.
Registereingang 'negieren' der Addiereinheitnegate_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die negierten Eingangsregister.
Doppelakku aktivierenenable_double_accumNEIN JaWählen Ja um die Doppelakkumulator-Funktion zu aktivieren.
N-Wert der voreingestellten KonstanteLoad_const_value0 – 63Geben Sie den voreingestellten konstanten Wert an.

Dieser Wert kann 2 seinN Wo N ist der voreingestellte konstante Wert.

Chainin-Port aktivierenuse_chainadderNEIN JaWählen Ja um das Ausgangskaskadenmodul und den Chainin-Eingangsbus zu aktivieren.

Die Ausgangskaskadenfunktion wird nicht unterstützt in m18×18_voll Betriebsmodus.

Chainout-Port aktivierengui_chainout_enableNEIN JaWählen Ja um den Chainout-Ausgangsbus zu aktivieren. Die Ausgangskaskadenfunktion wird nicht unterstützt in

m18×18_voll Betriebsmodus.

Registerkarte „Pipeline“.

ParameterIP-generierter ParameterWertBeschreibung
Eingabe-Pipeline-Register zum Eingabedatensignal hinzufügen (x/y/z/coefsel)input_pipeline_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für x-, y-, z-, coefsela- und coefselb-Pipelineeingangsregister zu aktivieren und zu spezifizieren.
Fügen Sie dem 'Sub'-Datensignal ein Eingangs-Pipeline-Register hinzusub_pipeline_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für das Sub-Pipeline-Eingangsregister zu aktivieren und zu spezifizieren. (2)
Fügen Sie dem 'akkumulieren'-Datensignal ein Eingabe-Pipeline-Register hinzuaccum_pipeline_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für das Akkumulations-Pipeline-Eingangsregister zu aktivieren und zu spezifizieren.(2)
Fügen Sie dem 'loadconst'-Datensignal ein Eingabe-Pipeline-Register hinzuLoad_const_pipeline_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für das Loadconst-Pipeline-Eingangsregister.(2)
Fügen Sie dem "negierten" Datensignal ein Eingangs-Pipeline-Register hinzunegate_pipeline_clockNEIN Uhr0 Uhr1 Uhr2Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für das Eingangsregister der negierten Pipeline.(2)

Maximale Eingangsdatenbreite pro Betriebsmodus
Sie können die Datenbreite für x-, y- und z-Eingänge wie in der Tabelle angegeben anpassen.

Alle Pipeline-Eingangsregister für dynamische Steuersignale müssen die gleiche Takteinstellung haben.

BetriebsmodusMaximale Eingabedatenbreite
axayazbxbybz
Ohne Voraddierer oder internen Koeffizienten
m18×18_voll18 (signiert)

18

(ohne Vorzeichen)

19 (signiert)

18 (unsigniert)

Nicht verwendet18 (signiert)

18

(ohne Vorzeichen)

19 (signiert)

18

(ohne Vorzeichen)

Nicht verwendet
m18×18_sumof2
m18×18_systolisch
m18×18_plus36
m27×2727 (signiert)

27 (unsigniert)

Nicht verwendet
Nur mit Pre-Adder-Funktion
m18×18_voll18 (signiert)

18 (unsigniert)

m18×18_sumof2
m18×18_systolisch
m27×2727 (signiert)

27

(ohne Vorzeichen)

26 (signiert)

26 (unsigniert)

Nicht verwendet
Nur mit interner Koeffizientenfunktion
m18×18_vollNicht verwendet19 (signiert)

18 (unsigniert)

Nicht verwendet19 (signiert)

18

(ohne Vorzeichen)

Nicht verwendet
m18×18_sumof2
m18×18_systolisch
m27×2727 (signiert)

27 (unsigniert)

Nicht verwendet

Funktionsbeschreibung

Der Cyclone 10 GX Native Fixed Point DSP IP-Core besteht aus 2 Architekturen; 18 × 18-Multiplikation und 27 × 27-Multiplikation. Jede Instanziierung des Cyclone 10 GX Native Fixed Point DSP IP-Kerns generiert abhängig von den ausgewählten Betriebsmodi nur 1 der 2 Architekturen. Sie können optionale Module für Ihre Anwendung aktivieren.

Zugehörige Informationen
DSP-Blöcke mit variabler Genauigkeit im Kapitel Intel Cyclone 10 GX-Geräte, Intel Cyclone 10 GX Core Fabric und Handbuch für allgemeine E/A.

Betriebsarten

Der Cyclone 10 GX Native Fixed Point DSP IP-Core unterstützt 5 Betriebsmodi:

  • Der 18 × 18-Vollmodus
  • Der 18 × 18-Summe-von-2-Modus
  • Der 18 × 18 Plus 36-Modus
  • Der 18 × 18 systolische Modus
  • Der 27 × 27-Modus

Der 18 × 18-Vollmodus
Bei der Konfiguration als 18 × 18-Vollmodus arbeitet der Cyclone 10 GX Native Fixed Point DSP IP-Core als zwei unabhängige 18 (signed/unsigned) × 19 (signed) oder 18
(vorzeichenbehaftet/vorzeichenlos) × 18 (vorzeichenlose) Multiplikatoren mit 37-Bit-Ausgabe. Dieser Modus wendet die folgenden Gleichungen an:

  • resulta = ax * ay
  • resultb = bx * durch

Die 18 × 18 Full-Mode-Architektur

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (2)

Der 18 × 18-Summe-von-2-Modus
In 18 × 18 Sum of 2-Modi aktiviert der Cyclone 10 GX Native Fixed Point DSP IP-Kern die oberen und unteren Multiplikatoren und generiert ein Ergebnis aus Addition oder Subtraktion zwischen den 2 Multiplikatoren. Das subdynamische Steuersignal steuert einen Addierer, um die Additions- oder Subtraktionsoperationen durchzuführen. Die resultierende Ausgangsbreite des Cyclone 10 GX Native Fixed Point DSP IP-Kerns kann bis zu 64 Bit unterstützen, wenn Sie die Akkumulator-/Ausgangskaskade aktivieren. Dieser Modus wendet die Gleichung resulta =[±(ax * ay) + (bx * by)] an.

Die 18 × 18-Summe der 2-Modus-Architektur

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (3)

Der 18 × 18 Plus 36-Modus
Bei Konfiguration als 18 × 18 Plus 36-Modus aktiviert der Cyclone 10 GX Native Fixed Point DSP IP-Kern nur den oberen Multiplikator. Dieser Modus wendet die Gleichung resulta = (ax * ay) + concatenate(bx[17:0],by[17:0]) an.

Die 18 × 18 Plus 36-Modus-Architektur

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (4)

Sie müssen das Darstellungsformat für den unteren Multiplikator-y-Operanden auf unsigned setzen, wenn Sie diesen Modus verwenden. Wenn der Eingangsbus in diesem Modus weniger als 36 Bit aufweist, müssen Sie die erforderliche vorzeichenbehaftete Erweiterung bereitstellen, um den 36-Bit-Eingang aufzufüllen.

Verwenden von weniger als 36-Bit-Operanden im 18 × 18 Plus 36-Modus
Dieses Example zeigt, wie der Cyclone 10 GX Native Fixed Point DSP IP-Core konfiguriert wird, um den 18 × 18 Plus 36-Betriebsmodus mit signierten 12-Bit-Eingangsdaten von 101010101010 (binär) anstelle eines 36-Bit-Operanden zu verwenden.

  1. Stellen Sie das Darstellungsformat für den unteren Multiplikator x-Operanden: auf signiert ein.
  2. Stellen Sie das Darstellungsformat für den unteren Multiplikator y-Operanden: auf unsigned ein.
  3. Stellen Sie die Eingangsbusbreite von 'bx' auf 18 ein.
  4. Stellen Sie die Eingangsbusbreite „by“ auf 18 ein.
  5. Liefern Sie Daten von '111111111111111111' an den bx-Eingangsbus.
  6. Stellen Sie Daten von '111111101010101010' an den Eingangsbus bereit.

Der 18 × 18 systolische Modus
In 18 × 18 systolischen Betriebsmodi aktiviert der Cyclone 10 GX Native Fixed Point DSP IP-Kern die oberen und unteren Multiplikatoren, ein systolisches Eingangsregister für den oberen Multiplikator und ein systolisches Kettenregister für die Kette in Eingangssignalen. Wenn Sie die Ausgangskaskadierung aktivieren, unterstützt dieser Modus eine Ausgangsbreite von 44 Bit. Wenn Sie die Akkumulatorfunktion ohne Ausgangskaskade aktivieren, können Sie die resultierende Ausgangsbreite auf 64 Bit konfigurieren.

Die 18 × 18 systolische Modusarchitektur

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (4)

Der 27 × 27-Modus
Bei einer Konfiguration als 27 × 27-Modi ermöglicht der Cyclone 10 GX Native Fixed Point DSP IP-Core einen 27 (signed/unsigned) × 27 (signed/unsigned) Multiplikator. Der Ausgangsbus kann bis zu 64 Bit mit aktivierter Akkumulator-/Ausgangskaskade unterstützen. Dieser Modus wendet die Gleichung resulta = ax * ay an.

Die 27 × 27-Modus-Architektur

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (6)

Optionale Module

Die im Cyclone 10 GX Native Fixed Point DSP IP Core verfügbaren optionalen Module sind:

  • Eingangskaskade
  • Voraddierer
  • Interner Koeffizient
  • Akkumulator und Ausgangskaskade
  • Pipeline-Register

Eingangskaskade
Die Eingangskaskadenfunktion wird von jedem und vom Eingangsbus unterstützt. Wenn Sie Enable input cascade for 'ay' input auf Yes setzen, nimmt der Cyclone 10 GX Native Fixed Point DSP IP-Core Eingaben von Scan-Eingangssignalen statt von einem y-Eingangsbus. Wenn Sie Enable input cascade for 'by' input auf Yes setzen, nimmt der Cyclone 10 GX Native Fixed Point DSP IP-Core Eingänge von jedem Eingangsbus statt vom Eingangsbus.

Es wird empfohlen, die Eingangsregister für ay und/oder by immer dann zu aktivieren, wenn die Eingangskaskade für die Korrektheit der Anwendung aktiviert ist.

Sie können die Verzögerungsregister aktivieren, um die Latenzanforderungen zwischen dem Eingangsregister und dem Ausgangsregister zu erfüllen. Es gibt 2 Verzögerungsregister im Kern. Das obere Verzögerungsregister wird für y- oder Scan-In-Eingangsports verwendet, während das untere Verzögerungsregister für Scan-Out-Ausgangsports verwendet wird. Diese Verzögerungsregister werden im 18 × 18 Vollmodus, 18 × 18 Summen von 2 Modi und 18 × 18 systolischen Modi unterstützt.

Voraddierer

Der Voraddierer kann in den folgenden Konfigurationen konfiguriert werden:

  • Zwei unabhängige 18-Bit-Voraddierer (mit/ohne Vorzeichen).
  • Ein 26-Bit-Voraddierer.

Wenn Sie den Voraddierer im 18 × 18-Multiplikationsmodus aktivieren, werden ay und az als Eingangsbus zum oberen Voraddierer verwendet, während by und bz als Eingangsbus zum unteren Voraddierer verwendet werden. Wenn Sie den Voraddierer im 27 × 27-Multiplikationsmodus aktivieren, werden ay und az als Eingangsbus zum Voraddierer verwendet. Der Voraddierer unterstützt sowohl Additions- als auch Subtraktionsoperationen. Wenn beide Voraddierer innerhalb desselben DSP-Blocks verwendet werden, müssen sie denselben Operationstyp teilen (entweder Addition oder Subtraktion).

Interner Koeffizient
Der interne Koeffizient kann bis zu acht konstante Koeffizienten für die Multiplikanden im 18-Bit- und 27-Bit-Modus unterstützen. Wenn Sie die interne Koeffizientenfunktion aktivieren, werden zwei Eingangsbusse zur Steuerung der Auswahl des Koeffizienten-Multiplexers generiert. Der Coefsela-Eingangsbus wird verwendet, um die vordefinierten Koeffizienten für den oberen Multiplikator auszuwählen, und der Coefsela-Eingangsbus wird verwendet, um die vordefinierten Koeffizienten für den unteren Multiplikator auszuwählen.

Der interne Koeffizientenspeicher unterstützt keine dynamisch steuerbaren Koeffizientenwerte und ein externer Koeffizientenspeicher ist erforderlich, um eine solche Operation durchzuführen.

Akkumulator und Ausgangskaskade

Das Akkumulatormodul kann aktiviert werden, um die folgenden Operationen auszuführen:

  • Additions- oder Subtraktionsoperation
  • Voreingenommene Rundungsoperation mit einem konstanten Wert von 2N
  • Akkumulation in zwei Kanälen

Um eine Additions- oder Subtraktionsoperation des Akkumulators dynamisch auszuführen, steuern Sie das negierte Eingangssignal. Für eine voreingenommene Rundungsoperation können Sie eine voreingestellte Konstante von 2N spezifizieren und laden, bevor das Akkumulatormodul aktiviert wird, indem Sie eine Ganzzahl für den Wert des Parameters N der voreingestellten Konstante spezifizieren. Die Ganzzahl N muss kleiner als 64 sein. Sie können die Verwendung der voreingestellten Konstante dynamisch aktivieren oder deaktivieren, indem Sie das Signal loadconst steuern. Sie können diese Operation als aktives Multiplexen des Rundungswerts in den Rückkopplungspfad des Akkumulators verwenden. Die geladenen Kosten und die akkumulierte Signalnutzung schließen sich gegenseitig aus.

Sie können das Doppelakkumulatorregister mit dem Parameter Doppelakkumulator aktivieren aktivieren, um eine Doppelakkumulation durchzuführen. Das Akkumulatormodul kann die Verkettung mehrerer DSP-Blöcke für Additions- oder Subtraktionsoperationen unterstützen, indem es den Verkettungseingangsport und den Verkettungsausgangsport aktiviert. Im systolischen 18 × 18-Modus werden nur 44 Bit des Ketteneingangsbusses und des Kettenausgangsbusses verwendet. Alle 64-Bit-Ketten im Eingangsbus müssen jedoch mit dem verketteten Ausgangsbus des vorhergehenden DSP-Blocks verbunden werden.

Pipeline-Register

Der Cyclone 10 GX Native Fixed Point DSP IP-Core unterstützt eine einzelne Ebene von Pipeline-Registern. Das Pipeline-Register unterstützt bis zu drei Taktquellen und ein asynchrones Löschsignal zum Zurücksetzen der Pipeline-Register. Es gibt fünf Pipeline-Register:

  • Dateneingangsbus-Pipeline-Register
  • untergeordnetes dynamisches Steuersignal-Pipeline-Register
  • Negieren des dynamischen Steuersignal-Pipeline-Registers
  • dynamisches Steuersignal-Pipeline-Register akkumulieren
  • Loadconst dynamisches Steuerpipelineregister

Sie können jedes Dateneingangsbus-Pipeline-Register und das dynamische Steuersignal-Pipeline-Register unabhängig voneinander aktivieren. Alle aktivierten Pipeline-Register müssen jedoch dieselbe Taktquelle verwenden.

Taktungsschema

Die Eingangs-, Pipeline- und Ausgangsregister im Cyclone 10 GX Native Fixed Point DSP IP-Core unterstützen drei Taktquellen/Aktivierungen und zwei asynchrone Löschvorgänge. Alle Eingangsregister verwenden aclr[0] und alle Pipeline- und Ausgangsregister verwenden aclr[1]. Jeder Registertyp kann eine der drei Taktquellen und Taktfreigabesignale auswählen. Wenn Sie den Cyclone 10 GX Native Fixed Point DSP IP-Kern auf den 18 × 18 systolischen Betriebsmodus konfigurieren, stellt die Intel Quartus Prime-Software das systolische Eingangsregister und die Taktquelle des systolischen Kettenregisters intern auf dieselbe Taktquelle wie das Ausgangsregister ein.

Wenn Sie die Doppelakkumulator-Funktion aktivieren, stellt die Intel Quartus Prime-Software die Taktquelle des Doppelakkumulator-Registers intern auf dieselbe Taktquelle wie das Ausgangsregister ein.

Einschränkungen des Zeitschemas
Diese Registerkarte zeigt die Einschränkungen, die Sie für alle Registertaktungsschemata anwenden müssen.

ZustandZwang
Wenn der Voraddierer aktiviert istDie Taktquelle für ay- und az-Eingangsregister muss dieselbe sein.
 Taktquelle für by- und bz-Eingangsregister muss gleich sein.
Wenn Pipeline-Register aktiviert sindDie Taktquelle für alle Pipeline-Register muss dieselbe sein.
Wenn eines der Eingangsregister für dynamische SteuersignaleDie Taktquelle für Eingangsregister für Sub, Accumulate, Loadconst und Negate muss dieselbe sein.
Cyclone 10 GX Native Fixed-Point-DSP-IP-Core-Signale

Die folgende Abbildung zeigt die Ein- und Ausgangssignale des Cyclone 10 GX Native Fixed Point DSP IP-Kerns.

Cyclone 10 GX Native Fixed-Point-DSP-IP-Core-Signale

Intel-UG-20094-Cyclone-10-GX-Native-Fixed-Point-DSP-IP-Core-FIG- (7)

Dateneingangssignale
SignalnameTypBreiteBeschreibung
Axt[]Eingang27Eingangsdatenbus zum oberen Multiplikator.
ja[]Eingang27Eingangsdatenbus zum oberen Multiplikator.

Wenn der Voraddierer aktiviert ist, dienen diese Signale als Eingangssignale für den oberen Voraddierer.

az[]Eingang26Diese Signale sind Eingangssignale für den oberen Voraddierer.

Diese Signale sind nur verfügbar, wenn der Voraddierer aktiviert ist. Diese Signale sind nicht verfügbar in m18×18_plus36

Betriebsmodus.

bx[]Eingang18Eingangsdatenbus zum unteren Multiplikator.

Diese Signale sind nicht verfügbar in m27×27 Betriebsmodus.

von[]Eingang19Eingangsdatenbus zum unteren Multiplikator.

Wenn der Voraddierer aktiviert ist, dienen diese Signale als Eingangssignale für den unteren Voraddierer.

Diese Signale sind nicht verfügbar in m27×27 Betriebsmodus.

bz[]Eingang18Diese Signale sind Eingangssignale für den unteren Voraddierer. Diese Signale sind nur verfügbar, wenn der Voraddierer aktiviert ist. Diese Signale sind nicht verfügbar in m27×27 Und m18×18_plus36 Betriebsmodi.
Datenausgangssignale
SignalnameTypBreiteBeschreibung
resultat[]Ausgabe64Ausgangsdatenbus vom oberen Multiplikator.

Diese Signale unterstützen bis zu 37 Bit für m18×18_voll Betriebsmodus.

Ergebnisb[]Ausgabe37Ausgangsdatenbus vom unteren Multiplikator.

Diese Signale sind nur in verfügbar m18×18_voll Betriebsmodus.

Takt-, Aktivierungs- und Löschsignale

SignalnameTypBreiteBeschreibung
clk[]Eingang3Eingangstaktsignale für alle Register.

Diese Taktsignale sind nur verfügbar, wenn eines der Eingangsregister, Pipeline-Register oder Ausgangsregister auf gesetzt ist Uhr0, Uhr1, oder Uhr2.

• clk[0] = Uhr0

• clk[1] = Uhr1

• clk[2] = Uhr2

ena[]Eingang3Taktfreigabe für clk[2:0]. Dieses Signal ist aktiv-High.

• ena[0] ist für Uhr0

• ena[1] ist für Uhr1

• ena[2] ist für Uhr2

aclr[]Eingang2Asynchrone Clear-Eingangssignale für alle Register. Dieses Signal ist aktiv-High.

Verwenden aclr[0] für alle Eingaberegister und Verwendung aclr[1] für alle Pipelineregister und Ausgangsregister.

Standardmäßig ist dieses Signal deaktiviert.

Dynamische Steuersignale

SignalnameTypBreiteBeschreibung
unterEingang1Eingangssignal zum Addieren oder Subtrahieren der Ausgabe des oberen Multiplikators mit der Ausgabe des unteren Multiplikators.

• Deaktivieren Sie dieses Signal, um die Additionsoperation zu spezifizieren.

• Aktivieren Sie dieses Signal, um die Subtraktionsoperation zu spezifizieren.

Standardmäßig ist dieses Signal deaktiviert. Sie können dieses Signal während der Laufzeit aktivieren oder deaktivieren.(3)

negierenEingang1Eingangssignal zum Addieren oder Subtrahieren der Summe der oberen und unteren Multiplikatoren mit den Daten von Chainin-Signalen.

• Deaktivieren Sie dieses Signal, um die Additionsoperation zu spezifizieren.

• Aktivieren Sie dieses Signal, um die Subtraktionsoperation zu spezifizieren.

Standardmäßig ist dieses Signal deaktiviert. Sie können dieses Signal während der Laufzeit aktivieren oder deaktivieren.(3)

akkumulierenEingang1Eingangssignal zum Aktivieren oder Deaktivieren der Akkumulatorfunktion.

• Deaktivieren Sie dieses Signal, um die Akkumulatorfunktion zu deaktivieren.

• Aktivieren Sie dieses Signal, um die Akkumulatorfunktion zu aktivieren.

Standardmäßig ist dieses Signal deaktiviert. Sie können dieses Signal während der Laufzeit aktivieren oder deaktivieren.(3)

LastkonstEingang1Eingangssignal zum Aktivieren oder Deaktivieren der Lastkonstantenfunktion.

• Deaktivieren Sie dieses Signal, um die Lastkonstantenfunktion zu deaktivieren.

• Aktivieren Sie dieses Signal, um die Lastkonstantenfunktion zu aktivieren.

Standardmäßig ist dieses Signal deaktiviert. Sie können dieses Signal während der Laufzeit aktivieren oder deaktivieren.(3)

Interne Koeffizientensignale

SignalnameTypBreiteBeschreibung
coefsela[]Eingang3Eingangsauswahlsignale für 8 vom Benutzer definierte Koeffizientenwerte für den oberen Multiplikator. Die Koeffizientenwerte werden im internen Speicher abgelegt und durch Parameter vorgegeben coef_a_0 Zu coef_a_7.

• coefsela[2:0] = 000 bezieht sich auf coef_a_0

• coefsela[2:0] = 001 bezieht sich auf coef_a_1

• coelsela[2:0] = 010 bezieht sich auf coef_a_2

• … und so weiter.

Diese Signale sind nur verfügbar, wenn die interne Koeffizientenfunktion aktiviert ist.

coefselb[]Eingang3Eingangsauswahlsignale für 8 vom Benutzer definierte Koeffizientenwerte für den unteren Multiplikator. Die Koeffizientenwerte werden im internen Speicher abgelegt und durch Parameter vorgegeben coef_b_0 Zu coef_b_7.

• coefselb[2:0] = 000 bezieht sich auf coef_b_0

• coefselb[2:0] = 001 bezieht sich auf coef_b_1

• coelseb[2:0] = 010 bezieht sich auf coef_b_2

• … und so weiter.

Diese Signale sind nur verfügbar, wenn die interne Koeffizientenfunktion aktiviert ist.

Eingangskaskadensignale

SignalnameTypBreiteBeschreibung
Scannen[]Eingang27Eingangsdatenbus für Eingangskaskadenmodul.

Verbinden Sie diese Signale mit den Scanout-Signalen des vorhergehenden DSP-Kerns.

scannen[]Ausgabe27Ausgangsdatenbus des Eingangskaskadenmoduls.

Verbinden Sie diese Signale mit den Scanin-Signalen des nächsten DSP-Kerns.

Ausgabe von Kaskadensignalen

SignalnameTypBreiteBeschreibung
verketten[]Eingang64Eingangsdatenbus für Ausgangskaskadenmodul.

Verbinden Sie diese Signale mit den Chainout-Signalen des vorhergehenden DSP-Kerns.

Verkettung[]Ausgabe64Ausgangsdatenbus des Ausgangskaskadenmoduls.

Verbinden Sie diese Signale mit den verketteten Signalen des nächsten DSP-Kerns.

Dokumentüberarbeitungsverlauf für das Cyclone 10 GX Native Fixed Point DSP IP Core-Benutzerhandbuch

DatumVersionÄnderungen
November 20172017.11.06Erstveröffentlichung.

Intel Corporation. Alle Rechte vorbehalten. Intel, das Intel-Logo und andere Intel-Marken sind Marken der Intel Corporation oder ihrer Tochtergesellschaften. Intel garantiert die Leistung seiner FPGA- und Halbleiterprodukte gemäß den aktuellen Spezifikationen gemäß der Standardgarantie von Intel, behält sich jedoch das Recht vor, jederzeit ohne Vorankündigung Änderungen an Produkten und Diensten vorzunehmen. Intel übernimmt keine Verantwortung oder Haftung, die sich aus der Anwendung oder Verwendung von hierin beschriebenen Informationen, Produkten oder Diensten ergeben, es sei denn, Intel hat ausdrücklich schriftlich zugestimmt. Intel-Kunden wird empfohlen, die neueste Version der Gerätespezifikationen zu beschaffen, bevor sie sich auf veröffentlichte Informationen verlassen und bevor sie Produkte oder Dienstleistungen bestellen.

Bei anderen Namen und Marken kann es sich um das Eigentum Dritter handeln.

Dokumente / Ressourcen

Intel UG-20094 Cyclone 10 GX Nativer Festpunkt-DSP-IP-Core [pdf] Benutzerhandbuch
UG-20094 Cyclone 10 GX nativer Festpunkt-DSP-IP-Core, UG-20094, Cyclone 10 GX nativer Festpunkt-DSP-IP-Core, nativer Festpunkt-DSP-IP-Core, Festpunkt-DSP-IP-Core, DSP-IP-Core

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *