Intel UG-20094 Cyclone 10 GX Nativer Festpunkt-DSP-IP-Core
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 Core
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
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Bitte wählen Sie den Betriebsmodus | Betriebsmodus | m18×18_full m18×18_sumof2 m18×18_plus36 m18×18_systolic m27×27 | Wählen Sie den gewünschten Betriebsmodus. |
Multiplikator-Konfiguration | |||
Darstellungsformat für den oberen Multiplikator x Operanden | signiert_max | signiert unsigniert | Geben Sie das Darstellungsformat für den oberen Multiplikator-x-Operanden an. |
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Darstellungsformat für den oberen Multiplikator-y-Operanden | signiert_mai | signiert unsigniert | Geben Sie das Darstellungsformat für den oberen Multiplikator-y-Operanden an. |
Darstellungsformat für den unteren Multiplikator x Operanden | unterzeichnet_mbx | signiert unsigniert | Geben Sie das Darstellungsformat für den unteren Multiplikator-x-Operanden an. |
Darstellungsformat für den unteren Multiplikator-y-Operanden | unterzeichnet_mby | signiert unsigniert | Geben 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“-Port | enable_sub | NEIN Ja | Wählen Ja aktivieren Sub-Port. |
Registereingang 'sub' des Multiplikators | sub_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für das Untereingangsregister. |
Eingangskaskade | |||
Eingabekaskade für 'ay'-Eingang aktivieren | ay_use_scan_in | NEIN Ja | Wä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 aktivieren | by_use_scan_in | NEIN Ja | Wä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 aktivieren | delay_scan_out_ay | NEIN Ja | Wä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. |
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Daten durch Verzögerungsregister aktivieren | Verzögerung_scan_out_by | NEIN Ja | Wä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 aktivieren | gui_scanout_enable | NEIN Ja | Wählen Ja aktivieren Scanout-Ausgangsbus. |
'scanout' Ausgangsbusbreite | scan_out_width | 1–27 | Geben Sie die Breite von an Scanout-Ausgangsbus. |
Daten 'x' Konfiguration | |||
'ax' Eingangsbusbreite | Axtbreite | 1–27 | Geben Sie die Breite von an ax Eingangsbus.(1) |
Registereingang 'ax' des Multiplikators | ax_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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' Eingangsbusbreite | bx_width | 1–18 | Geben Sie die Breite von an bx Eingangsbus.(1) |
Registereingang 'bx' des Multiplikators | bx_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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' Busbreite | ay_scan_in_width | 1–27 | Geben Sie die Breite eines y- oder Scanin-Eingangsbusses an.(1) |
Registereingabe 'ay' oder Eingabe 'scanin' des Multiplikators | ay_scan_in_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für ein y- oder Scanin-Eingangsregister. |
'by' Eingangsbusbreite | nach_breite | 1–19 | Geben Sie die Breite des Eingangsbusses an.(1) |
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Registereingang 'by' des Multiplikators | um_Uhr | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für by oder scanin Eingaberegister.(1) |
Konfiguration „Ergebnis“ ausgeben | |||
'resulta' Ausgangsbusbreite | result_a_width | 1–64 | Geben Sie die Breite von an resultierender Ausgangsbus. |
'resultb' Ausgangsbusbreite | result_b_width | 1–64 | Geben Sie die Breite des resultierenden Ausgangsbusses an. resultb nur bei Verwendung von operation_mode verfügbar m18×18_voll. |
Ausgangsregister verwenden | Ausgabe_Uhr | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Ausgangsregister resulta und resultb. |
Voraddierer-Registerkarte
Parameter | IP-generierter Parameter | Wert | Beschreibung |
'ay' Operandenquelle | operand_source_may | Eingangs-Preadder | Geben 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' Operandenquelle | operand_source_mby | Eingangs-Preadder | Geben 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 Subtraktion | preadder_subtract_a | NEIN Ja | Wä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 ein | preadder_subtract_b | NEIN Ja | Wä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' Eingangsbusbreite | az_breite | 1–26 | Geben Sie die Breite eines z-Eingangsbusses an.(1) |
Registereingang 'az' des Multiplikators | az_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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' Eingangsbusbreite | bz_breite | 1–18 | Geben Sie die Breite des bz-Eingangsbusses an.(1) |
Registereingang 'bz' des Multiplikators | bz_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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“.
Parameter | IP-generierter Parameter | Wert | Beschreibung |
'ax'-Operandenquelle | operand_source_max | Eingang koef | Geben 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. |
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Die Einstellungen für ax und bx Operandenquelle müssen gleich sein. | |||
Quelle des Operanden 'bx' | operand_source_mbx | Eingang koef | Geben 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 Multiplikators | coef_sel_a_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Coefsela-Eingangsregister. |
Registereingang 'coefselb' des Multiplikators | coef_sel_b_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 um das Eingangstaktsignal für die Coefselb-Eingangsregister zu aktivieren und zu spezifizieren. |
Koeffizientenspeicherkonfiguration | |||
coef_a_0–7 | coef_a_0–7 | Ganze Zahl | Geben 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–7 | coef_b_0–7 | Ganze Zahl | Geben Sie die Koeffizientenwerte für den bx-Eingangsbus an. |
Registerkarte „Akkumulator/Ausgangskaskade“.
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Aktivieren Sie den 'akkumulieren'-Port | enable_accumulate | NEIN Ja | Wählen Ja aktivieren Akkuanschluss. |
Aktivieren Sie den „negierten“ Port | enable_negieren | NEIN Ja | Wählen Ja aktivieren Hafen negieren. |
Aktivieren Sie den 'loadconst'-Port | enable_loadconst | NEIN Ja | Wählen Ja aktivieren loadconst-Port. |
Registereingang 'akkumulieren' des Akkumulators | Accumulate_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0 , Uhr1, oder Uhr2 zum Freigeben und Spezifizieren des Eingangstaktsignals für die akkumulierten Eingangsregister. |
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Registereingang 'loadconst' des Akkumulators | Load_const_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die Loadconst-Eingangsregister. |
Registereingang 'negieren' der Addiereinheit | negate_clock | NEIN Uhr0 Uhr1 Uhr2 | Wählen Uhr0, Uhr1, oder Uhr2 zum Aktivieren und Spezifizieren des Eingangstaktsignals für die negierten Eingangsregister. |
Doppelakku aktivieren | enable_double_accum | NEIN Ja | Wählen Ja um die Doppelakkumulator-Funktion zu aktivieren. |
N-Wert der voreingestellten Konstante | Load_const_value | 0 – 63 | Geben Sie den voreingestellten konstanten Wert an. Dieser Wert kann 2 seinN Wo N ist der voreingestellte konstante Wert. |
Chainin-Port aktivieren | use_chainadder | NEIN Ja | Wählen Ja um das Ausgangskaskadenmodul und den Chainin-Eingangsbus zu aktivieren. Die Ausgangskaskadenfunktion wird nicht unterstützt in m18×18_voll Betriebsmodus. |
Chainout-Port aktivieren | gui_chainout_enable | NEIN Ja | Wählen Ja um den Chainout-Ausgangsbus zu aktivieren. Die Ausgangskaskadenfunktion wird nicht unterstützt in m18×18_voll Betriebsmodus. |
Registerkarte „Pipeline“.
Parameter | IP-generierter Parameter | Wert | Beschreibung |
Eingabe-Pipeline-Register zum Eingabedatensignal hinzufügen (x/y/z/coefsel) | input_pipeline_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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 hinzu | sub_pipeline_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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 hinzu | accum_pipeline_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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 hinzu | Load_const_pipeline_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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 hinzu | negate_pipeline_clock | NEIN Uhr0 Uhr1 Uhr2 | Wä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.
Betriebsmodus | Maximale Eingabedatenbreite | |||||
ax | ay | az | bx | by | bz | |
Ohne Voraddierer oder internen Koeffizienten | ||||||
m18×18_voll | 18 (signiert) 18 (ohne Vorzeichen) | 19 (signiert) 18 (unsigniert) | Nicht verwendet | 18 (signiert) 18 (ohne Vorzeichen) | 19 (signiert) 18 (ohne Vorzeichen) | Nicht verwendet |
m18×18_sumof2 | ||||||
m18×18_systolisch | ||||||
m18×18_plus36 | ||||||
m27×27 | 27 (signiert) 27 (unsigniert) | Nicht verwendet | ||||
Nur mit Pre-Adder-Funktion | ||||||
m18×18_voll | 18 (signiert) 18 (unsigniert) | |||||
m18×18_sumof2 | ||||||
m18×18_systolisch | ||||||
m27×27 | 27 (signiert) 27 (ohne Vorzeichen) | 26 (signiert) 26 (unsigniert) | Nicht verwendet | |||
Nur mit interner Koeffizientenfunktion | ||||||
m18×18_voll | Nicht verwendet | 19 (signiert) 18 (unsigniert) | Nicht verwendet | 19 (signiert) 18 (ohne Vorzeichen) | Nicht verwendet | |
m18×18_sumof2 | ||||||
m18×18_systolisch | ||||||
m27×27 | 27 (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
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
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
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.
- Stellen Sie das Darstellungsformat für den unteren Multiplikator x-Operanden: auf signiert ein.
- Stellen Sie das Darstellungsformat für den unteren Multiplikator y-Operanden: auf unsigned ein.
- Stellen Sie die Eingangsbusbreite von 'bx' auf 18 ein.
- Stellen Sie die Eingangsbusbreite „by“ auf 18 ein.
- Liefern Sie Daten von '111111111111111111' an den bx-Eingangsbus.
- 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
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
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.
Zustand | Zwang |
Wenn der Voraddierer aktiviert ist | Die Taktquelle für ay- und az-Eingangsregister muss dieselbe sein. |
Taktquelle für by- und bz-Eingangsregister muss gleich sein. | |
Wenn Pipeline-Register aktiviert sind | Die Taktquelle für alle Pipeline-Register muss dieselbe sein. |
Wenn eines der Eingangsregister für dynamische Steuersignale | Die 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
Dateneingangssignale
Signalname | Typ | Breite | Beschreibung |
Axt[] | Eingang | 27 | Eingangsdatenbus zum oberen Multiplikator. |
ja[] | Eingang | 27 | Eingangsdatenbus zum oberen Multiplikator. Wenn der Voraddierer aktiviert ist, dienen diese Signale als Eingangssignale für den oberen Voraddierer. |
az[] | Eingang | 26 | Diese 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[] | Eingang | 18 | Eingangsdatenbus zum unteren Multiplikator. Diese Signale sind nicht verfügbar in m27×27 Betriebsmodus. |
von[] | Eingang | 19 | Eingangsdatenbus 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[] | Eingang | 18 | Diese 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
Signalname | Typ | Breite | Beschreibung |
resultat[] | Ausgabe | 64 | Ausgangsdatenbus vom oberen Multiplikator. Diese Signale unterstützen bis zu 37 Bit für m18×18_voll Betriebsmodus. |
Ergebnisb[] | Ausgabe | 37 | Ausgangsdatenbus vom unteren Multiplikator. Diese Signale sind nur in verfügbar m18×18_voll Betriebsmodus. |
Takt-, Aktivierungs- und Löschsignale
Signalname | Typ | Breite | Beschreibung |
clk[] | Eingang | 3 | Eingangstaktsignale 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[] | Eingang | 3 | Taktfreigabe 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[] | Eingang | 2 | Asynchrone 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
Signalname | Typ | Breite | Beschreibung |
unter | Eingang | 1 | Eingangssignal 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) |
negieren | Eingang | 1 | Eingangssignal 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) |
akkumulieren | Eingang | 1 | Eingangssignal 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) |
Lastkonst | Eingang | 1 | Eingangssignal 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
Signalname | Typ | Breite | Beschreibung |
coefsela[] | Eingang | 3 | Eingangsauswahlsignale 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[] | Eingang | 3 | Eingangsauswahlsignale 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
Signalname | Typ | Breite | Beschreibung |
Scannen[] | Eingang | 27 | Eingangsdatenbus für Eingangskaskadenmodul. Verbinden Sie diese Signale mit den Scanout-Signalen des vorhergehenden DSP-Kerns. |
scannen[] | Ausgabe | 27 | Ausgangsdatenbus des Eingangskaskadenmoduls. Verbinden Sie diese Signale mit den Scanin-Signalen des nächsten DSP-Kerns. |
Ausgabe von Kaskadensignalen
Signalname | Typ | Breite | Beschreibung |
verketten[] | Eingang | 64 | Eingangsdatenbus für Ausgangskaskadenmodul. Verbinden Sie diese Signale mit den Chainout-Signalen des vorhergehenden DSP-Kerns. |
Verkettung[] | Ausgabe | 64 | Ausgangsdatenbus 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
Datum | Version | Änderungen |
November 2017 | 2017.11.06 | Erstverö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 |