FPGA Integer Arithmetic IP Cores

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch
Aktualisiert für Intel® Quartus® Prime Design Suite: 20.3

Online-Version Feedback senden

UG-01063

ID: 683490 Stand: 2020.10.05

Inhalt
Inhalt
1. Intel FPGA Integer Arithmetic IP Cores………………………………………………………………….. 5
2. LPM_COUNTER (Zähler) IP-Core……………………………………………………………………….. 7 2.1. Eigenschaften……………………………………………………………………………………………………7 2.2. Verilog-HDL-Prototyp……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… VHDL-Komponentendeklaration……………………………………………………………………….8 2.3. VHDL LIBRARY_USE Deklaration…………………………………………………………………… 8 2.4. Häfen………………………………………………………………………………………………………..9 2.5. Parameter …………………………………………………………………………………………… 9
3. LPM_DIVIDE (Teiler) Intel FPGA IP Core………………………………………………………….. 12 3.1. Merkmale………………………………………………………………………………………………. 12 3.2. Verilog-HDL-Prototyp ……………………………………………………………………………… 12 3.3. VHDL-Komponentendeklaration……………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 13 3.5. Häfen…………………………………………………………………………………………………… 13 3.6. Parameter …………………………………………………………………………………………… 14
4. LPM_MULT (Multiplikator) IP Core…………………………………………………………………………. 16 4.1. Merkmale………………………………………………………………………………………………. 16 4.2. Verilog-HDL-Prototyp ……………………………………………………………………………… 17 4.3. VHDL Komponentendeklaration……………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 17 4.5. Signale…………………………………………………………………………………………………… 18 4.6. Parameter für Stratix V-, Arria V-, Cyclone V- und Intel Cyclone 10 LP-Geräte …………… 18 4.6.1. Registerkarte „Allgemein“…………………………………………………………………………………18 4.6.2. Registerkarte „Allgemein 2“……………………………………………………………………………… 19 4.6.3. Registerkarte Pipelining……………………………………………………………………………… 19 4.7. Parameter für Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräte……….. 20 4.7.1. Registerkarte „Allgemein“…………………………………………………………………………………20 4.7.2. Registerkarte „Allgemein 2“……………………………………………………………………………… 20 4.7.3. Pipelining………………………………………………………………………………………21
5. LPM_ADD_SUB (Addierer/Subtrahierer)…………………………………………………………………… 22 5.1. Merkmale………………………………………………………………………………………………. 22 5.2. Verilog-HDL-Prototyp ……………………………………………………………………………… 23 5.3. VHDL-Komponentendeklaration……………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 23 5.5. Häfen…………………………………………………………………………………………………… 23 5.6. Parameter…………………………………………………………………………………………… 24
6. LPM_COMPARE (Komparator)…………………………………………………………………………… 26 6.1. Merkmale………………………………………………………………………………………………. 26 6.2. Verilog-HDL-Prototyp ……………………………………………………………………………… 27 6.3. VHDL-Komponentendeklaration……………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 27 6.5. Häfen…………………………………………………………………………………………………… 27 6.6. Parameter…………………………………………………………………………………………… 28

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 2

Feedback senden

Inhalt

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP-Core…………………………………… 30
7.1. Funktionen des ALTECC-Encoders……………………………………………………………………………..31 7.2. Verilog HDL-Prototyp (ALTECC_ENCODER) ……………………………………………………. 32 7.3. Verilog HDL-Prototyp (ALTECC_DECODER) ……………………………………………………. 32 7.4. VHDL-Komponentendeklaration (ALTECC_ENCODER)………………………………………………33 7.5. VHDL-Komponentendeklaration (ALTECC_DECODER)………………………………………………33 7.6. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 33 7.7. Encoder-Ports…………………………………………………………………………………………… 33 7.8. Decoder-Ports……………………………………………………………………………………………34 7.9. Encoder-Parameter………………………………………………………………………………… 34 7.10. Decoderparameter ……………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core………………………………………………………………………. 36
8.1. Merkmale………………………………………………………………………………………………. 37 8.1.1. Voraddierer…………………………………………………………………………………….. 38 8.1.2. Register der systolischen Verzögerung…………………………………………………………………….. 40 8.1.3. Vorlastkonstante…………………………………………………………………………… 43 8.1.4. Doppelakkumulator ………………………………………………………………………… 43
8.2. Verilog-HDL-Prototyp ……………………………………………………………………………… 44 8.3. VHDL-Komponentendeklaration……………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………. 44 8.5. Signale…………………………………………………………………………………………………… 44 8.6. Parameter …………………………………………………………………………………………… 47
8.6.1. Registerkarte „Allgemein“……………………………………………………………………………………47 8.6.2. Registerkarte „Extra-Modi“ …………………………………………………………………………….. 47 8.6.3. Registerkarte „Multiplikatoren“……………………………………………………………………………….. 49 8.6.4. Preadder-Registerkarte ………………………………………………………………………………. 51 8.6.5. Registerkarte „Akkumulator“ …………………………………………………………………………….. 53 8.6.6. Registerkarte „Systolisch/Verkettung“ ……………………………………………………………………. 55 8.6.7. Registerkarte Pipelining……………………………………………………………………………… 56
9. ALTMEMMULT (Speicherbasierter Multiplikator für konstante Koeffizienten) IP-Core…………………… 57
9.1. Merkmale………………………………………………………………………………………………. 57 9.2. Verilog HDL-Prototyp ……………………………………………………………………………… 58 9.3. VHDL-Komponentendeklaration……………………………………………………………………….. 58 9.4. Häfen…………………………………………………………………………………………………… 59 9.5. Parameter…………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiplizieren-Akkumulieren) IP-Core……………………………………………… 61
10.1. Features…………………………………………………………………………………………….. 62 10.2. Verilog HDL-Prototyp …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… VHDL-Komponentendeklaration……………………………………………………………………… 62 10.3. VHDL LIBRARY_USE Deklaration…………………………………………………………………63 10.4. Häfen…………………………………………………………………………………………………. 63 10.5. Parameter …………………………………………………………………………………………. 63
11. ALTMULT_ADD (Multiply-Adder) IP-Core……………………………………………………………..69
11.1. Eigenschaften……………………………………………………………………………………………….. 71 11.2. Verilog HDL Prototype……………………………………………………………………………..72 11.3. VHDL-Komponentendeklaration……………………………………………………………………… 72 11.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………72

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 3

Inhalt
11.5. Häfen…………………………………………………………………………………………………. 72 11.6. Parameter …………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (komplexer Multiplikator) IP-Core……………………………………………… 86 12.1. Komplexe Multiplikation ……………………………………………………………………………. 86 12.2. Kanonische Repräsentation ………………………………………………………………………… 87 12.3. Konventionelle Darstellung ……………………………………………………………………. 87 12.4. Funktionen……………………………………………………………………………………………….. 88 12.5. Verilog-HDL-Prototyp……………………………………………………………………………..88 12.6. VHDL-Komponentendeklaration……………………………………………………………………… 89 12.7. VHDL LIBRARY_USE Deklaration…………………………………………………………………89 12.8. Signale …………………………………………………………………………………………………. 89 12.9. Parameter …………………………………………………………………………………………. 90
13. ALTSQRT (Integer Square Root) IP Core……………………………………………………………92 13.1. Eigenschaften………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Verilog-HDL-Prototyp ……………………………………………………………………………..92 13.2. VHDL-Komponentendeklaration…………………………………………………………………… 92 13.3. VHDL LIBRARY_USE Deklaration…………………………………………………………………93 13.4. Häfen…………………………………………………………………………………………………. 93 13.5. Parameter …………………………………………………………………………………………. 93
14. PARALLEL_ADD (Parallel-Addierer) IP-Core………………………………………………………….. 95 14.1. Feature……………………………………………………………………………………………….95 14.2. Verilog-HDL-Prototyp ……………………………………………………………………………..95 14.3. VHDL-Komponentendeklaration……………………………………………………………………… 96 14.4. VHDL LIBRARY_USE Deklaration…………………………………………………………………96 14.5. Häfen…………………………………………………………………………………………………. 96 14.6. Parameter …………………………………………………………………………………………. 97
15. Integer Arithmetic IP Cores User Guide Document Archives ………………………………… 98
16. Dokumentüberarbeitungsverlauf für Intel FPGA Integer Arithmetic IP Cores User Guide…. 99

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 4

Feedback senden

683490 | 2020.10.05 Feedback senden

1. Intel FPGA Integer Arithmetic IP-Kerne

Sie können die Intel® FPGA-Integer-IP-Kerne verwenden, um mathematische Operationen in Ihrem Design durchzuführen.

Diese Funktionen bieten eine effizientere Logiksynthese und Geräteimplementierung als das Codieren Ihrer eigenen Funktionen. Sie können die IP-Cores an Ihre Designanforderungen anpassen.

Intel-IP-Kerne für ganzzahlige Arithmetik werden in die folgenden zwei Kategorien unterteilt: · Bibliothek von parametrisierten Modulen (LPM) IP-Kerne · Intel-spezifische (ALT) IP-Kerne

Die folgende Tabelle listet die ganzzahligen arithmetischen IP-Kerne auf.

Tabelle 1.

Liste der IP-Cores

IP-Cores

LPM-IP-Kerne

LPM_ZÄHLER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Intel-spezifische (ALT) IP-Kerne ALTECC

Funktion überview Zähler Teiler Multiplikator
Addierer oder Subtrahierer Komparator
ECC-Encoder/Decoder

Unterstütztes Gerät
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel Cyclone 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V Fortsetzung…

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

1. Intel FPGA Integer Arithmetic IP Cores 683490 | 2020.10.05

IP-Cores Intel FPGA Multiply Adder oder ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

Funktion überview Multiplikator-Addierer
Speicherbasierter Multiplikator für konstante Koeffizienten
Multiplikator-Akkumulator Multiplikator-Addierer
Komplexer Multiplikator
Ganzzahlige Quadratwurzel
Paralleler Addierer

Unterstütztes Gerät
Arria V, Stratix V, Cyclone V, Intel Stratix 10, Intel Arria 10, Intel Cyclone
10 GX
Arria II GX, Arria II GZ, Arria V, Intel Arria 10 (Intel Quartus® Prime Standard Edition), Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 GX, Intel Cyclone 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V

Zugehörige Informationen
· Versionshinweise zu Intel FPGAs und programmierbaren Geräten
· Einführung in Intel FPGA IP-Kerne Bietet weitere Informationen über Intel FPGA IP-Kerne.
· Gleitkomma-IP-Kerne – Benutzerhandbuch Enthält weitere Informationen zu Intel FPGA-Gleitkomma-IP-Kernen.
· 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 versionsunabhängigen IP- und Qsys-Simulationsskripten Erstellen Sie Simulationsskripte, die keine manuellen Aktualisierungen für Software- oder IP-Versions-Upgrades erfordern.
· Best Practices-Richtlinien für das Projektmanagement für effizientes Management und Übertragbarkeit Ihres Projekts und geistigen Eigentums files.
· Integer Arithmetic IP Cores User Guide Document Archives auf Seite 98 Bietet eine Liste von Benutzerhandbüchern für frühere Versionen der Integer Arithmetic IP Cores.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 6

Feedback senden

683490 | 2020.10.05 Feedback senden

2. LPM_COUNTER (Zähler) IP-Core

Abbildung 1.

Der IP-Kern LPM_COUNTER ist ein Binärzähler, der Aufwärtszähler, Abwärtszähler und Aufwärts- oder Abwärtszähler mit Ausgängen von bis zu 256 Bit Breite erstellt.

Die folgende Abbildung zeigt die Ports für den IP-Core LPM_COUNTER.

LPM_COUNTER-Ports

LPM_ZÄHLER

ssclr laden sset data[]

Q[]

updown

aus

aclr aset laden

clk_en cnt_en cin
inst

2.1. Funktionen
Der IP-Kern LPM_COUNTER bietet die folgenden Funktionen: · Erzeugt Aufwärts-, Abwärts- und Aufwärts/Abwärts-Zähler · Erzeugt die folgenden Zählertypen:
— Einfacher Binärwert – der Zähler erhöht sich ab Null oder verringert sich ab 255
— Modulus – der Zähler erhöht oder verringert den vom Benutzer angegebenen Moduluswert und wiederholt sich
· Unterstützt optionale synchrone Lösch-, Lade- und Set-Eingangsports. · Unterstützt optionale asynchrone Lösch-, Lade- und Set-Eingangsports. · Unterstützt optionale Zählfreigabe- und Taktfreigabe-Eingangsports

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

2. LPM_COUNTER (Zähler) IP-Core
683490 | 2020.10.05
2.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul lpm_counter ( q, data, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); Parameter lpm_type = „lpm_counter“; Parameter lpm_width = 1; Parameter lpm_modulus = 0; parameter lpm_direction = „UNUSED“; Parameter lpm_avalue = „UNBENUTZT“; parameter lpm_svalue = „UNUSED“; Parameter lpm_pvalue = „UNBENUTZT“; Parameter lpm_port_updown = „PORT_CONNECTIVITY“; parameter lpm_hint = „UNBENUTZT“; Ausgabe [lpm_width-1:0] q; Ausgabe cout; Ausgang [15:0] eq; Eingang cin; Eingabe [lpm_width-1:0] Daten; Eingangsuhr, clk_en, cnt_en, updown; Eingabe aset, aclr, aload; Eingabe sset, sclr, sload; Endmodul
2.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) LPM_PACK.vhd im Librariesvhdllpm-Verzeichnis.
Komponente LPM_COUNTER generisch ( LPM_WIDTH : natürlich; LPM_MODULUS : natürlich := 0; LPM_DIRECTION : string := „UNUSED“; LPM_AVALUE : string := „UNUSED“; LPM_SVALUE : string := „UNUSED“; LPM_PORT_UPDOWN : string := „PORT_CONNECTIVITY“ ; LPM_PVALUE : Zeichenfolge := „UNBENUTZT“; LPM_TYPE : Zeichenfolge := L_COUNTER; LPM_HINT : Zeichenfolge := „UNBENUTZT“); port (DATA: in std_logic_vector(LPM_WIDTH-1 downto 0):= (OTHERS =>
'0'); UHR: in std_logic; CLK_EN : in std_logic := '1'; CNT_EN : in std_logic := '1'; UPDOWN : in std_logic := '1'; SLOAD : in std_logic := '0'; SSET : in std_logic := '0'; SCLR : in std_logic := '0'; ALOAD : in std_logic := '0'; ASET : in std_logic := '0'; ACLR : in std_logic := '0'; CIN : in std_logic := '1'; COUT : out std_logic := '0'; Q: out std_logic_vector (LPM_WIDTH-1 bis 0); EQ: out std_logic_vector (15 bis 0));
Endkomponente;

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 8

Feedback senden

2. LPM_COUNTER (Zähler) IP-Core 683490 | 2020.10.05

2.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK lpm; VERWENDEN Sie lpm.lpm_components.all;

2.5. Häfen

Die folgenden Tabellen listen die Eingabe- und Ausgabeports für den LPM_COUNTER-IP-Core auf.

Tabelle 2.

LPM_COUNTER Eingabeports

Anschlussname

Erforderlich

Beschreibung

Daten[]

NEIN

Paralleler Dateneingang zum Zähler. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTH ab.

Uhr

Ja

Positivflankengetriggerter Takteingang.

clk_de

NEIN

Taktaktivierungseingang zum Aktivieren aller synchronen Aktivitäten. Wenn weggelassen, ist der Standardwert 1.

cnt_de

NEIN

Zählfreigabeeingang zum Deaktivieren des Zählwerts, wenn er niedrig geltend gemacht wird, ohne sload, sset oder sclr zu beeinflussen. Wenn weggelassen, ist der Standardwert 1.

updown

NEIN

Steuert die Richtung der Zählung. Wenn es hoch (1) behauptet wird, ist die Zählrichtung aufwärts, und wenn es niedrig (0) behauptet wird, ist die Zählrichtung abwärts. Wenn der Parameter LPM_DIRECTION verwendet wird, kann der Updown-Port nicht verbunden werden. Wenn LPM_DIRECTION nicht verwendet wird, ist der Updown-Port optional. Wenn weggelassen, ist der Standardwert up (1).

cin

NEIN

Carry-in zum niederwertigen Bit. Bei Aufwärtszählern ist das Verhalten des Eingangs cin

identisch mit dem Verhalten des Eingangs cnt_en. Wenn weggelassen, ist der Standardwert 1

(VCC).

aclr

NEIN

Asynchrone Clear-Eingabe. Wenn sowohl aset als auch aclr verwendet und geltend gemacht werden, überschreibt aclr aset. Wenn weggelassen, ist der Standardwert 0 (deaktiviert).

aset

NEIN

Asynchrone Set-Eingabe. Gibt die q[]-Ausgaben als alle 1en oder auf den durch den LPM_AVALUE-Parameter angegebenen Wert an. Wenn sowohl der aset- als auch der aclr-Port verwendet und bestätigt werden, überschreibt der Wert des aclr-Ports den Wert des aset-Ports. Wenn weggelassen, ist der Standardwert 0, deaktiviert.

eine Ladung

NEIN

Asynchroner Ladeeingang, der den Zähler asynchron mit dem Wert am Dateneingang lädt. Wenn der aload-Port verwendet wird, muss der data[]-Port verbunden werden. Wenn weggelassen, ist der Standardwert 0, deaktiviert.

sclr

NEIN

Synchroner Löscheingang, der den Zähler bei der nächsten aktiven Taktflanke löscht. Wenn sowohl der sset- als auch der sclr-Port verwendet und bestätigt werden, überschreibt der Wert des sclr-Ports den Wert des sset-Ports. Wenn weggelassen, ist der Standardwert 0, deaktiviert.

irrsset

NEIN

Synchroner Setzeingang, der den Zähler bei der nächsten aktiven Taktflanke setzt. Gibt den Wert der q-Ausgänge als reine Einsen oder den durch den Parameter LPM_SVALUE angegebenen Wert an. Wenn sowohl der sset- als auch der sclr-Port verwendet und bestätigt werden,
Der Wert des sclr-Ports überschreibt den Wert des sset-Ports. Wenn weggelassen, ist der Standardwert 0 (deaktiviert).

laden

NEIN

Synchroner Ladeeingang, der den Zähler bei der nächsten aktiven Taktflanke mit data[] lädt. Wenn der sload-Port verwendet wird, muss der data[]-Port verbunden werden. Wenn weggelassen, ist der Standardwert 0 (deaktiviert).

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 9

2. LPM_COUNTER (Zähler) IP-Core 683490 | 2020.10.05

Tabelle 3.

LPM_COUNTER-Ausgangsports

Anschlussname

Erforderlich

Beschreibung

Q[]

NEIN

Datenausgabe vom Zähler. Die Größe des Ausgangsports hängt von der ab

LPM_WIDTH-Parameterwert. Entweder q[] oder mindestens einer der eq[15..0]-Ports

muss angeschlossen sein.

Gleichung[15..0]

NEIN

Ausgabe der Zählerdecodierung. Auf den Port eq[15..0] kann im Parametereditor nicht zugegriffen werden, da der Parameter nur AHDL unterstützt.
Entweder der q[]-Port oder der eq[]-Port muss verbunden sein. Es können bis zu c EQ-Ports verwendet werden (0 <= c <= 15). Nur die 16 niedrigsten Zählwerte werden dekodiert. Wenn der Zählwert c ist, wird der eqc-Ausgang hoch (1) geltend gemacht. Zum Bspample, wenn der Zählwert 0 ist, ist eq0 = 1, wenn der Zählwert 1 ist, ist eq1 = 1, und wenn der Zählwert 15 ist, ist eq 15 = 1. Die decodierte Ausgabe für Zählwerte von 16 oder mehr erfordert eine externe Decodierung. Die Ausgaben von eq[15..0] sind asynchron zur Ausgabe von q[].

aus

NEIN

Carry-Out-Port des MSB-Bits des Zählers. Es kann verwendet werden, um eine Verbindung zu einem anderen Zähler herzustellen, um einen größeren Zähler zu erstellen.

2.6. Parameter

In der folgenden Tabelle sind die Parameter für den IP-Kern LPM_COUNTER aufgeführt.

Tabelle 4.

LPM_COUNTER-Parameter

Parametername

Typ

LPM_WIDTH

Ganze Zahl

LPM_RICHTUNG

Zeichenfolge

LPM_MODULUS LPM_AVALUE

Ganze Zahl
Ganzzahl/String

LPM_SVALUE LPM_HINT

Ganzzahl/String
Zeichenfolge

LPM_TYPE

Zeichenfolge

Erforderlich Ja Nein Nein Nein
Nein Nein
NEIN

Beschreibung
Gibt die Breite der Ports data[] und q[] an, falls sie verwendet werden.
Mögliche Werte sind UP, DOWN und UNUSED. Wenn der Parameter LPM_DIRECTION verwendet wird, kann der Updown-Port nicht verbunden werden. Wenn der Updown-Port nicht verbunden ist, ist der Standardwert des Parameters LPM_DIRECTION UP.
Die maximale Anzahl plus eins. Anzahl eindeutiger Zustände im Zyklus des Zählers. Wenn der Ladewert größer als der Parameter LPM_MODULUS ist, wird das Verhalten des Zählers nicht angegeben.
Konstanter Wert, der geladen wird, wenn ein Set hoch geltend gemacht wird. Wenn der angegebene Wert größer oder gleich ist , ist das Verhalten des Zählers ein undefinierter (X) Logikpegel, wobei ist LPM_MODULUS, falls vorhanden, oder 2 ^ LPM_WIDTH. Intel empfiehlt, diesen Wert als Dezimalzahl für AHDL-Designs anzugeben.
Konstanter Wert, der auf der ansteigenden Flanke des Taktports geladen wird, wenn der sset-Port hoch geltend gemacht wird. Intel empfiehlt, diesen Wert als Dezimalzahl für AHDL-Designs anzugeben.
Wenn Sie eine Bibliothek parametrisierter Module (LPM) in einem VHDL-Design instanziieren File (.vhd) müssen Sie den LPM_HINT-Parameter verwenden, um einen Intel-spezifischen Parameter anzugeben. Zum BspampDatei: LPM_HINT = „CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES“
Der Standardwert ist NICHT VERWENDET.
Identifiziert den Entitätsnamen der Bibliothek parametrisierter Module (LPM) im VHDL-Design files.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 10

Feedback senden

2. LPM_COUNTER (Zähler) IP-Core 683490 | 2020.10.05

Parametername INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

Geben Sie Zeichenfolge Zeichenfolge ein
Zeichenfolge
Zeichenfolge

Erforderlich Nein Nein
NEIN
NEIN

Beschreibung
Dieser Parameter wird für Modellierungs- und Verhaltenssimulationszwecke verwendet. Dieser Parameter wird für Modellierungs- und Verhaltenssimulationszwecke verwendet. Der Parametereditor berechnet den Wert für diesen Parameter.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter CARRY_CNT_EN im VHDL-Design anzugeben files. Mögliche Werte sind SMART, ON, OFF und UNUSED. Aktiviert die LPM_COUNTER-Funktion, um das cnt_en-Signal durch die Übertragskette zu verbreiten. In einigen Fällen kann die CARRY_CNT_EN-Parametereinstellung einen leichten Einfluss auf die Geschwindigkeit haben, daher sollten Sie sie möglicherweise ausschalten. Der Standardwert ist SMART, was den besten Kompromiss zwischen Größe und Geschwindigkeit bietet.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter LABWIDE_SCLR im VHDL-Design anzugeben files. Mögliche Werte sind ON, OFF oder UNUSED. Der Standardwert ist EIN. Ermöglicht es Ihnen, die Verwendung der LABwide-SCLR-Funktion zu deaktivieren, die in veralteten Gerätefamilien zu finden ist. Das Deaktivieren dieser Option erhöht die Wahrscheinlichkeit, dass die teilweise gefüllten LABs vollständig verwendet werden, und kann somit eine höhere Logikdichte ermöglichen, wenn SCLR nicht auf ein vollständiges LAB angewendet wird. Dieser Parameter ist aus Gründen der Abwärtskompatibilität verfügbar, und Intel empfiehlt, diesen Parameter nicht zu verwenden.
Gibt die Verwendung des Updown-Eingangsports an. Wenn weggelassen, ist der Standardwert PORT_CONNECTIVITY. Wenn der Portwert auf PORT_USED gesetzt ist, wird der Port als verwendet behandelt. Wenn der Portwert auf PORT_UNUSED gesetzt ist, wird der Port als unbenutzt behandelt. Wenn der Portwert auf PORT_CONNECTIVITY gesetzt ist, wird die Portnutzung durch Überprüfen der Portkonnektivität bestimmt.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 11

683490 | 2020.10.05 Feedback senden

3. LPM_DIVIDE (Teiler) Intel FPGA IP Core

Abbildung 2.

Der LPM_DIVIDE Intel FPGA IP-Kern implementiert einen Teiler, um einen Zähler-Eingabewert durch einen Nenner-Eingabewert zu dividieren, um einen Quotienten und einen Rest zu erzeugen.

Die folgende Abbildung zeigt die Ports für den IP-Core LPM_DIVIDE.

LPM_DIVIDE-Ports

LPM_DIVIDE

Zahl[] denom[] Uhr

Quotient[] bleibt[]

clken aclr

inst

3.1. Funktionen
Der IP-Kern LPM_DIVIDE bietet die folgenden Merkmale: · Erzeugt einen Teiler, der einen Zählereingangswert durch einen Nennereingang dividiert
Wert, um einen Quotienten und einen Rest zu erzeugen. · Unterstützt Datenbreite von 1 Bit. · Unterstützt vorzeichenbehaftetes und vorzeichenloses Datendarstellungsformat sowohl für den Zähler
und Nennerwerte. · Unterstützt Flächen- oder Geschwindigkeitsoptimierung. · Stellt eine Wahl zur Verfügung, um eine positive Restausgabe anzugeben. · Unterstützt Pipelining mit konfigurierbarer Ausgangslatenz. · Unterstützt optionale asynchrone Clear- und Clock-Enable-Ports.

3.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul lpm_divide (Quotient, Rest, Zahl, Nenner, Uhr, Klken, Aclr); parameter lpm_type = „lpm_divide“; Parameter lpm_widthn = 1; Parameter lpm_widthd = 1; Parameter lpm_nrepresentation = „UNSIGNED“; Parameter lpm_drepresentation = „UNSIGNED“; Parameter lpm_remainderpositive = „TRUE“; Parameter lpm_pipeline = 0;

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

3. LPM_DIVIDE (Teiler) Intel FPGA IP Core 683490 | 2020.10.05

parameter lpm_hint = „UNBENUTZT“; Eingangsuhr; Eingabe-Clken; Eingabe aclr; Eingabe [lpm_widthn-1:0] Zahl; input [lpm_widthd-1:0] denom; Ausgabe [lpm_widthn-1:0] Quotient; Ausgabe [lpm_widthd-1:0] bleibt; Endmodul

3.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) LPM_PACK.vhd im Librariesvhdllpm-Verzeichnis.
Komponente LPM_DIVIDE generisch (LPM_WIDTHN : natürlich; LPM_WIDTHD : natürlich;
LPM_NREPRESENTATION : string := „UNSIGNED“; LPM_DREPRESENTATION : string := „UNSIGNED“; LPM_PIPELINE : natürlich := 0; LPM_TYPE : Zeichenfolge := L_DIVIDE; LPM_HINT : string := „UNUSED“); Port (NUMER : in std_logic_vector(LPM_WIDTHN-1 bis 0); DENOM : in std_logic_vector(LPM_WIDTHD-1 bis 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; QUOTIENT : out std_logic_vector (LPM_WIDTHN-1 bis 0); REMAIN : out std_logic_vector (LPM_WIDTHD-1 bis 0)); Endkomponente;

3.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK lpm; VERWENDEN Sie lpm.lpm_components.all;

3.5. Häfen

In den folgenden Tabellen sind die Eingabe- und Ausgabeports für den LPM_DIVIDE-IP-Kern aufgeführt.

Tabelle 5.

LPM_DIVIDE-Eingangsports

Anschlussname

Erforderlich

Zahl[]

Ja

nenn[]

Ja

Beschreibung
Zählerdateneingabe. Die Größe des Eingangsports hängt vom Wert des Parameters LPM_WIDTHN ab.
Nennerdateneingabe. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTHD ab.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 13

3. LPM_DIVIDE (Teiler) Intel FPGA IP Core 683490 | 2020.10.05

Uhr des Portnamens clken
aclr

Erforderlich Nein Nein
NEIN

Beschreibung
Takteingang für Pipeline-Nutzung. Für LPM_PIPELINE-Werte ungleich 0 (Standard) muss der Uhrenport aktiviert sein.
Uhr aktiviert die Pipeline-Nutzung. Wenn der clken-Port hoch geltend gemacht wird, findet die Divisionsoperation statt. Wenn das Signal niedrig ist, findet keine Operation statt. Wenn weggelassen, ist der Standardwert 1.
Asynchroner Clear-Port, der jederzeit verwendet wird, um die Pipeline asynchron zum Takteingang auf alle Nullen zurückzusetzen.

Tabelle 6.

LPM_DIVIDE-Ausgangsports

Anschlussname

Erforderlich

Beschreibung

Quotient[]

Ja

Datenausgabe. Die Größe des Ausgangsports hängt von LPM_WIDTHN ab

Parameterwert.

bleiben übrig[]

Ja

Datenausgabe. Die Größe des Ausgangsports hängt von LPM_WIDTHD ab

Parameterwert.

3.6. Parameter

Die folgende Tabelle listet die Parameter für den LPM_DIVIDE Intel FPGA IP-Kern auf.

Parametername

Typ

Erforderlich

Beschreibung

LPM_WIDTHN

Ganze Zahl

Ja

Gibt die Breite von numer[] und an

Quotient[]-Ports. Werte sind 1 bis 64.

LPM_WIDTHD

Ganze Zahl

Ja

Gibt die Breite von denom[] und an

bleiben[] Ports. Werte sind 1 bis 64.

LPM_NREPRESENTATION LPM_DREPRESENTATION

Zeichenfolge Zeichenfolge

NEIN

Vorzeichendarstellung der Zählereingabe.

Werte sind SIGNED und UNSIGNED. Wenn das

Parameter auf SIGNED gesetzt ist, der Teiler

interpretiert die Eingabe numer[] als vorzeichenbehaftete Zwei

ergänzen.

NEIN

Vorzeichendarstellung der Nennereingabe.

Werte sind SIGNED und UNSIGNED. Wenn das

Parameter auf SIGNED gesetzt ist, der Teiler

interpretiert die denom[]-Eingabe als vorzeichenbehaftete Zweien

ergänzen.

LPM_TYPE

Zeichenfolge

NEIN

Identifiziert die Bibliothek von parametrized

module (LPM) Entitätsname im VHDL-Design

files (.vhd).

LPM_HINT

Zeichenfolge

NEIN

Wenn Sie eine Bibliothek von instanziieren

parametrisierte Module (LPM) funktionieren in a

VHDL-Design File (.vhd), müssen Sie die verwenden

LPM_HINT-Parameter zur Angabe eines Intel-

spezifischer Parameter. Zum BspampDatei: LPM_HINT

= „KETTENGRÖSSE = 8,

ONE_INPUT_IS_CONSTANT = JA“ Die

Der Standardwert ist NICHT VERWENDET.

LPM_REMAINDERPOSITIVE

Zeichenfolge

NEIN

Intel-spezifischer Parameter. Sie müssen die verwenden

LPM_HINT-Parameter zum Angeben des

LPM_REMAINDERPOSITIVE-Parameter in

VHDL-Design files. Werte sind TRUE oder FALSE.

Wenn dieser Parameter auf TRUE gesetzt ist, dann wird die

Der Wert des Remain[]-Ports muss größer sein

Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 14

Feedback senden

3. LPM_DIVIDE (Teiler) Intel FPGA IP Core 683490 | 2020.10.05

Parametername

Typ

MAXIMIZE_SPEED

Ganze Zahl

LPM_PIPELINE

Ganze Zahl

INTENDED_DEVICE_FAMILY SKIP_BITS

String-Ganzzahl

Erforderlich Nr
Nein, nein, nein

Beschreibung
als oder gleich Null. Wenn dieser Parameter auf TRUE gesetzt ist, ist der Wert des Remain[]-Ports entweder null oder der Wert hat das gleiche Vorzeichen, entweder positiv oder negativ, wie der Wert des numerischen Ports. Um den Bereich zu reduzieren und die Geschwindigkeit zu verbessern, empfiehlt Intel, diesen Parameter bei Operationen, bei denen der Rest positiv sein muss oder bei denen der Rest unwichtig ist, auf TRUE zu setzen.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter MAXIMIZE_SPEED im VHDL-Design anzugeben files. Werte sind [0..9]. Falls verwendet, versucht die Intel Quartus Prime-Software, eine bestimmte Instanz der LPM_DIVIDE-Funktion eher auf Geschwindigkeit als auf Routing-Fähigkeit zu optimieren, und setzt die Einstellung der Logikoption „Optimization Technique“ außer Kraft. Wenn MAXIMIZE_SPEED nicht verwendet wird, wird stattdessen der Wert der Option „Optimization Technique“ verwendet. Wenn der Wert von MAXIMIZE_SPEED 6 oder höher ist, optimiert der Compiler den LPM_DIVIDE-IP-Kern für höhere Geschwindigkeit, indem er Übertragungsketten verwendet; wenn der Wert 5 oder kleiner ist, implementiert der Compiler das Design ohne Übertragsketten.
Gibt die Anzahl der Taktzyklen der Latenz an, die den Ausgängen quotient[] und stay[] zugeordnet sind. Ein Wert von Null (0) gibt an, dass keine Latenzzeit vorhanden ist und dass eine rein kombinatorische Funktion instanziiert wird. Wenn weggelassen, ist der Standardwert 0 (nicht Pipeline). Sie können für den Parameter LPM_PIPELINE keinen Wert angeben, der höher als LPM_WIDTHN ist.
Dieser Parameter wird für Modellierungs- und Verhaltenssimulationszwecke verwendet. Der Parametereditor berechnet den Wert für diesen Parameter.
Ermöglicht eine effizientere Bruchbitteilung zur Optimierung der Logik auf den führenden Bits, indem die Anzahl der führenden GND an den LPM_DIVIDE-IP-Kern geliefert wird. Geben Sie die Nummer des führenden GND am Quotientenausgang zu diesem Parameter an.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 15

683490 | 2020.10.05 Feedback senden

4. LPM_MULT (Multiplikator) IP-Core

Abbildung 3.

Der LPM_MULT-IP-Kern implementiert einen Multiplizierer, um zwei Eingabedatenwerte zu multiplizieren, um ein Produkt als Ausgabe zu erzeugen.

Die folgende Abbildung zeigt die Ports für den LPM_MULT-IP-Core.

LPM_Mehrere Ports

LPM_MULT-Uhr dataa[] result[] datab[] aclr/sclr clken
inst

Zugehörige Informationen Funktionen auf Seite 71

4.1. Funktionen
Der LPM_MULT IP-Kern bietet die folgenden Funktionen: · Erzeugt einen Multiplikator, der zwei Eingangsdatenwerte multipliziert · Unterstützt Datenbreite von 1 Bits · Unterstützt vorzeichenbehaftetes und vorzeichenloses Datendarstellungsformat · Unterstützt Bereichs- oder Geschwindigkeitsoptimierung · Unterstützt Pipelining mit konfigurierbarer Ausgangslatenz · Bietet eine Option zur Implementierung in dedizierte digitale Signalverarbeitung (DSP)
Blockschaltkreise oder Logikelemente (LEs) Hinweis: Beim Erstellen von Multiplikatoren, die größer als die nativ unterstützte Größe sind, können/
wird eine Auswirkung auf die Leistung sein, die sich aus der Kaskadierung der DSP-Blöcke ergibt. · Unterstützt optionales asynchrones Löschen und Taktfreigabe-Eingangsports. · Unterstützt optionales synchrones Löschen für Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräte

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

4. LPM_MULT (Multiplikator) IP-Core 683490 | 2020.10.05
4.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul lpm_mult ( result, dataa, datab, sum, clock, clken, aclr ) parameter lpm_type = „lpm_mult“; Parameter lpm_widtha = 1; Parameter lpm_widthb = 1; Parameter lpm_widths = 1; Parameter lpm_widthp = 1; parameter lpm_representation = „UNSIGNED“; Parameter lpm_pipeline = 0; parameter lpm_hint = „UNBENUTZT“; Eingangsuhr; Eingabe-Clken; Eingabe aclr; Eingabe [lpm_widtha-1:0] dataa; Eingabe [lpm_widthb-1:0] datab; Eingabe [lpm_widths-1:0] Summe; Ausgabe [lpm_widthp-1:0] Ergebnis; Endmodul
4.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) LPM_PACK.vhd im Librariesvhdllpm-Verzeichnis.
Komponente LPM_MULT generisch ( LPM_WIDTHA : natürlich; LPM_WIDTHB : natürlich; LPM_WIDTHS : natürlich := 1; LPM_WIDTHP : natürlich;
LPM_REPRESENTATION : string := „UNSIGNED“; LPM_PIPELINE : natürlich := 0; LPM_TYPE: Zeichenkette := L_MULT; LPM_HINT : string := „UNUSED“); port ( DATAA : in std_logic_vector (LPM_WIDTHA-1 bis 0); DATAB : in std_logic_vector (LPM_WIDTHB-1 bis 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; SUMME : in std_logic_vector(LPM_WIDTHS-1 bis 0) := (OTHERS => '0'); ERGEBNIS : out std_logic_vector(LPM_WIDTHP-1 bis 0)); Endkomponente;
4.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK lpm; VERWENDEN Sie lpm.lpm_components.all;

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 17

4. LPM_MULT (Multiplikator) IP-Core 683490 | 2020.10.05

4.5. Signale

Tabelle 7.

LPM_MULT Eingangssignale

Signalname

Erforderlich

Beschreibung

Daten[]

Ja

Dateneingabe.

Bei Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräten hängt die Größe des Eingangssignals vom Parameterwert Dataa width ab.

Bei älteren und Intel Cyclone 10 LP-Geräten hängt die Größe des Eingangssignals vom Parameterwert LPM_WIDTHA ab.

Datenb[]

Ja

Dateneingabe.

Bei Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräten hängt die Größe des Eingangssignals vom Parameterwert Datab width ab.

Bei älteren und Intel Cyclone 10 LP-Geräten hängt die Größe des Eingangssignals davon ab

auf dem Parameterwert LPM_WIDTHB.

Uhr

NEIN

Takteingang für Pipeline-Nutzung.

Bei älteren und Intel Cyclone 10 LP-Geräten muss das Taktsignal für andere LPM_PIPELINE-Werte als 0 (Standard) aktiviert werden.

Für Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräte muss das Taktsignal aktiviert werden, wenn der Latenzwert nicht 1 (Standard) ist.

clken

NEIN

Taktaktivierung für Pipeline-Nutzung. Wenn das clken-Signal hoch geltend gemacht wird, wird die

Addierer/Subtrahierer-Betrieb findet statt. Wenn das Signal niedrig ist, kein Betrieb

tritt ein. Wenn weggelassen, ist der Standardwert 1.

aclr sclr

NEIN

Asynchrones Löschsignal, das jederzeit verwendet wird, um die Pipeline auf alle Nullen zurückzusetzen,

asynchron zum Taktsignal. Die Pipeline wird mit einem undefinierten (X) initialisiert.

logische Ebene. Die Ausgaben sind ein konsistenter Wert ungleich Null.

NEIN

Synchrones Löschsignal, das jederzeit verwendet wird, um die Pipeline auf alle Nullen zurückzusetzen,

synchron zum Taktsignal. Die Pipeline wird mit einem undefinierten (X) initialisiert.

logische Ebene. Die Ausgaben sind ein konsistenter Wert ungleich Null.

Tabelle 8.

LPM_MULT Ausgangssignale

Signalname

Erforderlich

Beschreibung

Ergebnis[]

Ja

Datenausgabe.

Bei älteren und Intel Cyclone 10 LP-Geräten hängt die Größe des Ausgangssignals vom Parameterwert LPM_WIDTHP ab. Wenn LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) oder (LPM_WIDTHA + LPM_WIDTHS), sind nur die LPM_WIDTHP MSBs vorhanden.

Bei Intel Stratix 10, Intel Arria 10 und Intel Cyclone 10 GX hängt die Größe der Ausgangssignale vom Parameter Ergebnisbreite ab.

4.6. Parameter für Stratix V-, Arria V-, Cyclone V- und Intel Cyclone 10 LP-Geräte

4.6.1. Registerkarte „Allgemein“.

Tabelle 9.

Registerkarte „Allgemein“

Parameter

Wert

Multiplikator-Konfiguration

Multiplizieren Sie die Eingabe „dataa“ mit der Eingabe „datab“.

Standardwert

Beschreibung

Multiplizieren Sie die Eingabe „dataa“ mit der Eingabe „datab“.

Wählen Sie die gewünschte Konfiguration für den Multiplikator aus.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 18

Feedback senden

4. LPM_MULT (Multiplikator) IP-Core 683490 | 2020.10.05

Parameter
Wie breit sollte die 'dataa'-Eingabe sein? Wie breit sollte die 'datab'-Eingabe sein? Wie soll die Breite der 'Ergebnis'-Ausgabe bestimmt werden? Beschränken Sie die Breite

Wert
'dataa'-Eingabe mit sich selbst multiplizieren (Quadrieren)
1 – 256 Bit

Standardwert

Beschreibung

8 Bit

Geben Sie die Breite des dataa[]-Ports an.

1 – 256 Bit

8 Bit

Geben Sie die Breite des datab[]-Ports an.

Breite automatisch berechnen Beschränken Sie die Breite
1 – 512 Bit

Berechne automatisch die Breite

Wählen Sie die gewünschte Methode aus, um die Breite des result[]-Ports zu bestimmen.

16 Bit

Geben Sie die Breite des result[]-Ports an.
Dieser Wert wird nur wirksam, wenn Sie Breite einschränken im Parameter Typ auswählen.

4.6.2. Allgemein 2 Registerkarte

Tabelle 10. Registerkarte „Allgemein 2“.

Parameter

Wert

Datab-Eingang

Hat der 'datab'-Eingangsbus einen konstanten Wert?

Nein Ja

Multiplikationstyp

Welche Art von

Ohne Vorzeichen

Multiplikation willst du? Unterzeichnet

Durchführung

Welche Multiplikatorimplementierung soll verwendet werden?

Verwenden Sie die Standardimplementierung
Verwenden Sie die dedizierte Multiplikatorschaltung (nicht für alle Familien verfügbar)
Verwenden Sie logische Elemente

Standardwert

Beschreibung

NEIN

Wählen Sie Ja, um den konstanten Wert von anzugeben

`datab'-Eingangsbus, falls vorhanden.

Ohne Vorzeichen

Geben Sie das Darstellungsformat für die Eingaben dataa[] und datab[] an.

Verwenden Sie die Standardimplementierung

Wählen Sie die gewünschte Methode aus, um die Breite des result[]-Ports zu bestimmen.

4.6.3. Registerkarte „Pipeline“.

Tabelle 11. Registerkarte „Pipeline“.

Parameter

Möchten Sie die Nr

Funktion?

Ja

Wert

Erstellen Sie ein 'aclr'

asynchroner klarer Port

Standardwert

Beschreibung

NEIN

Wählen Sie Ja, um die Pipeline-Registrierung für zu aktivieren

Ausgang des Multiplikators und geben Sie den gewünschten an

Ausgangslatenz im Taktzyklus. Aktivieren der

Pipeline-Register fügt zusätzliche Latenz hinzu

Ausgabe.

Nicht aktiviert

Wählen Sie diese Option aus, um dem aclr-Port zu ermöglichen, asynchrones Löschen für das Pipeline-Register zu verwenden.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 19

4. LPM_MULT (Multiplikator) IP-Core 683490 | 2020.10.05

Parameter
Erstellen Sie eine „clken“-Uhraktivierungsuhr
Optimierung
Welche Art von Optimierung wünschen Sie?

Wert -
Standardgeschwindigkeitsbereich

Standardwert

Beschreibung

Nicht aktiviert

Gibt die aktive hohe Taktfreigabe für den Taktanschluss des Pipelineregisters an

Standard

Geben Sie die gewünschte Optimierung für den IP-Core an.
Wählen Sie Standard, damit die Intel Quartus Prime-Software die beste Optimierung für den IP-Kern ermitteln kann.

4.7. Parameter für Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräte

4.7.1. Registerkarte „Allgemein“.

Tabelle 12. Registerkarte „Allgemein“.

Parameter

Wert

Standardwert

Beschreibung

Multiplikator-Konfigurationstyp
Breiten von Datenports

Multiplizieren Sie die Eingabe „dataa“ mit der Eingabe „datab“.
'dataa'-Eingabe mit sich selbst multiplizieren (Quadrieren)

Multiplizieren Sie die Eingabe „dataa“ mit der Eingabe „datab“.

Wählen Sie die gewünschte Konfiguration für den Multiplikator aus.

Datenbreite

1 – 256 Bit

8 Bit

Geben Sie die Breite des dataa[]-Ports an.

Datab-Breite

1 – 256 Bit

8 Bit

Geben Sie die Breite des datab[]-Ports an.

Wie soll die Breite der 'Ergebnis'-Ausgabe bestimmt werden?

Typ

Breite automatisch berechnen
Beschränken Sie die Breite

Berechne automatisch die Breite

Wählen Sie die gewünschte Methode aus, um die Breite des result[]-Ports zu bestimmen.

Wert

1 – 512 Bit

16 Bit

Geben Sie die Breite des result[]-Ports an.
Dieser Wert wird nur wirksam, wenn Sie Breite einschränken im Parameter Typ auswählen.

Ergebnisbreite

1 – 512 Bit

Zeigt die effektive Breite des result[]-Ports an.

4.7.2. Allgemein 2 Registerkarte

Tabelle 13. Registerkarte „Allgemein 2“.

Parameter

Datab-Eingang

Hat der 'datab'-Eingangsbus einen konstanten Wert?

Nein Ja

Wert

Standardwert

Beschreibung

NEIN

Wählen Sie Ja, um den konstanten Wert von anzugeben

`datab'-Eingangsbus, falls vorhanden.

Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 20

Feedback senden

4. LPM_MULT (Multiplikator) IP-Core 683490 | 2020.10.05

Parameter

Wert

Wert

Jeder Wert größer als 0

Multiplikationstyp

Welche Art von

Ohne Vorzeichen

Multiplikation willst du? Unterzeichnet

Implementierungsstil

Welche Multiplikatorimplementierung soll verwendet werden?

Verwenden Sie die Standardimplementierung
Verwenden Sie die dedizierte Multiplikatorschaltung
Verwenden Sie logische Elemente

Standardwert

Beschreibung

0

Geben Sie den konstanten Wert von datab[] port an.

Ohne Vorzeichen

Geben Sie das Darstellungsformat für die Eingaben dataa[] und datab[] an.

Verwenden Sie die Standardimplementierung

Wählen Sie die gewünschte Methode aus, um die Breite des result[]-Ports zu bestimmen.

4.7.3. Verrohrung

Tabelle 14. Registerkarte „Pipeline“.

Parameter

Wert

Möchten Sie die Funktion leiten?

Pipeline

Nein Ja

Latenz-Clear-Signaltyp

Jeder Wert größer als 0.
KEINE ACLR SCLR

Erstellen Sie eine 'clken'-Uhr

Uhr aktivieren

Welche Art von Optimierung wünschen Sie?

Typ

Standardgeschwindigkeitsbereich

Standardwert

Beschreibung

Nein 1 KEINE

Wählen Sie Ja, um die Pipeline-Registrierung für den Ausgang des Multiplikators zu aktivieren. Das Aktivieren des Pipeline-Registers fügt der Ausgabe zusätzliche Latenz hinzu.
Geben Sie die gewünschte Ausgangslatenz in Taktzyklus an.
Geben Sie den Reset-Typ für das Pipeline-Register an. Wählen Sie NONE, wenn Sie kein Pipeline-Register verwenden. Wählen Sie ACLR aus, um asynchrones Löschen für das Pipeline-Register zu verwenden. Dadurch wird der ACLR-Port generiert. Wählen Sie SCLR aus, um das synchrone Löschen für das Pipeline-Register zu verwenden. Dadurch wird ein SCLR-Port generiert.
Gibt die aktive hohe Taktfreigabe für den Taktanschluss des Pipelineregisters an

Standard

Geben Sie die gewünschte Optimierung für den IP-Core an.
Wählen Sie Standard, damit die Intel Quartus Prime-Software die beste Optimierung für den IP-Core ermittelt.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 21

683490 | 2020.10.05 Feedback senden

5. LPM_ADD_SUB (Addierer/Subtrahierer)

Abbildung 4.

Mit dem IP-Kern LPM_ADD_SUB können Sie einen Addierer oder Subtrahierer implementieren, um Datensätze zu addieren oder zu subtrahieren, um eine Ausgabe zu erzeugen, die die Summe oder Differenz der Eingabewerte enthält.

Die folgende Abbildung zeigt die Ports für den IP-Core LPM_ADD_SUB.

LPM_ADD_SUB-Ports

LPM_ADD_SUB add_sub cin

Daten[]

Uhr clken datab[] aclr

Ergebnis[] Überlauf cout

inst

5.1. Funktionen
Der IP-Kern LPM_ADD_SUB bietet die folgenden Merkmale: · Erzeugt Addierer, Subtrahierer und dynamisch konfigurierbare Addierer/Subtrahierer
Funktionen. · Unterstützt Datenbreite von 1 Bit. · Unterstützt Datendarstellungsformate wie signiert und unsigniert. · Unterstützt optionales Carry-in (Borrow-out), asynchrones Löschen und Clock-Enable
Eingangsports. · Unterstützt optionale Carry-out- (Borrow-in) und Überlauf-Ausgangsports. · Weist einen der Eingangsdatenbusse einer Konstanten zu. · Unterstützt Pipelining mit konfigurierbarer Ausgangslatenz.

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

5. LPM_ADD_SUB (Addierer/Subtrahierer) 683490 | 2020.10.05
5.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul lpm_add_sub ( result, cout, overflow, add_sub, cin, dataa, datab, clock, clken, aclr ); parameter lpm_type = „lpm_add_sub“; Parameter lpm_width = 1; parameter lpm_direction = „UNUSED“; parameter lpm_representation = „SIGNED“; Parameter lpm_pipeline = 0; parameter lpm_hint = „UNBENUTZT“; Eingabe [lpm_width-1:0] dataa, datab; Eingabe add_sub, cin; Eingangsuhr; Eingabe-Clken; Eingabe aclr; Ausgabe [lpm_width-1:0] Ergebnis; Ausgang cout, Überlauf; Endmodul
5.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) LPM_PACK.vhd im Librariesvhdllpm-Verzeichnis.
Komponente LPM_ADD_SUB generisch (LPM_WIDTH : natürlich;
LPM_DIRECTION : Zeichenfolge := „UNBENUTZT“; LPM_REPRESENTATION: string := „SIGNED“; LPM_PIPELINE : natürlich := 0; LPM_TYPE : Zeichenkette := L_ADD_SUB; LPM_HINT : string := „UNUSED“); port (DATAA : in std_logic_vector(LPM_WIDTH-1 bis 0); DATAB : in std_logic_vector(LPM_WIDTH-1 bis 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; CIN : in std_logic := 'Z'; ADD_SUB : in std_logic := '1'; RESULT : out std_logic_vector(LPM_WIDTH-1 down to 0); COUT : out std_logic; OVERFLOW : out std_logic); Endkomponente;
5.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK lpm; VERWENDEN Sie lpm.lpm_components.all;
5.5. Häfen
In den folgenden Tabellen sind die Eingangs- und Ausgangsports für den IP-Core LPM_ADD_SUB aufgeführt.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 23

5. LPM_ADD_SUB (Addierer/Subtrahierer) 683490 | 2020.10.05

Tabelle 15. LPM_ADD_SUB IP-Core-Eingangsports

Anschlussname

Erforderlich

Beschreibung

cin

NEIN

Carry-in zum niederwertigen Bit. Für Additionsoperationen ist der Standardwert 0. For

Subtraktionsoperationen, der Standardwert ist 1.

Daten[]

Ja

Dateneingabe. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTH ab.

Datenb[]

Ja

Dateneingabe. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTH ab.

add_sub

NEIN

Optionaler Eingangsport, um dynamisches Umschalten zwischen Addierer und Subtrahierer zu ermöglichen

Funktionen. Wenn der Parameter LPM_DIRECTION verwendet wird, kann add_sub nicht verwendet werden. Wenn

weggelassen, der Standardwert ist ADD. Intel empfiehlt die Verwendung von

Parameter LPM_DIRECTION, um den Betrieb der Funktion LPM_ADD_SUB anzugeben,

anstatt dem Port add_sub eine Konstante zuzuweisen.

Uhr

NEIN

Eingabe für die Pipeline-Nutzung. Der Taktanschluss stellt den Takteingang für eine Pipeline bereit

Betrieb. Für andere LPM_PIPELINE-Werte als 0 (Standard) muss der Uhrenport sein

ermöglicht.

clken

NEIN

Taktaktivierung für Pipeline-Nutzung. Wenn der clken-Port hoch behauptet wird, wird der Addierer/

Subtraktionsbetrieb stattfindet. Wenn das Signal niedrig ist, findet keine Operation statt. Wenn

weggelassen, der Standardwert ist 1.

aclr

NEIN

Asynchrones Löschen für die Pipeline-Nutzung. Die Pipeline wird mit einem undefinierten (X) initialisiert.

logische Ebene. Der aclr-Port kann jederzeit verwendet werden, um die Pipeline auf alle 0s zurückzusetzen,

asynchron zum Taktsignal.

Tabelle 16. LPM_ADD_SUB IP-Core-Ausgangsports

Anschlussname

Erforderlich

Beschreibung

Ergebnis[]

Ja

Datenausgabe. Die Größe des Ausgangsports hängt vom Parameter LPM_WIDTH ab

Wert.

aus

NEIN

Carry-Out (Borrow-In) des höchstwertigen Bits (MSB). Der Cout-Port hat eine physische

Interpretation als Carry-Out (Borrow-In) des MSB. Der Cout-Port erkennt

Überlauf in UNSIGNED-Operationen. Der Cout-Port arbeitet auf die gleiche Weise für

SIGNED- und UNSIGNED-Operationen.

Überlauf

NEIN

Optionale Überlauf-Ausnahmeausgabe. Der Überlaufanschluss hat eine physikalische Auslegung als

das XOR des Übertrags in das MSB mit dem Übertrag des MSB. Der Überlaufanschluss

bestätigt, wenn Ergebnisse die verfügbare Genauigkeit überschreiten, und wird nur verwendet, wenn die

Der LPM_REPRESENTATION-Parameterwert ist SIGNED.

5.6. Parameter

In der folgenden Tabelle sind die LPM_ADD_SUB-IP-Core-Parameter aufgeführt.

Tabelle 17. LPM_ADD_SUB IP-Core-Parameter

Parametername LPM_WIDTH

Geben Sie ganze Zahl ein

Erforderlich Ja

Beschreibung
Gibt die Breite der Ports dataa[], datab[] und result[] an.

LPM_RICHTUNG

Zeichenfolge

NEIN

Werte sind ADD, SUB und UNUSED. Wenn weggelassen, ist der Standardwert DEFAULT, was den Parameter anweist, seinen Wert vom Port add_sub zu übernehmen. Der Port add_sub kann nicht verwendet werden, wenn LPM_DIRECTION verwendet wird. Intel empfiehlt, dass Sie den LPM_DIRECTION-Parameter verwenden, um den Betrieb der LPM_ADD_SUB-Funktion anzugeben, anstatt dem add_sub-Anschluss eine Konstante zuzuweisen.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 24

Feedback senden

5. LPM_ADD_SUB (Addierer/Subtrahierer) 683490 | 2020.10.05

Parametername LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

Geben Sie String Integer ein. String String String Integer
Zeichenfolge

Erforderlich Nein Nein Nein Nein Nein Nein
NEIN

Beschreibung
Gibt den Typ der durchgeführten Addition an. Werte sind SIGNED und UNSIGNED. Wenn weggelassen, ist der Standardwert SIGNED. Wenn dieser Parameter auf SIGNED eingestellt ist, interpretiert der Addierer/Subtrahierer die Dateneingabe als vorzeichenbehaftetes Zweierkomplement.
Gibt die Anzahl der Latenztaktzyklen an, die der Ausgabe von result[] zugeordnet sind. Ein Wert von Null (0) gibt an, dass keine Latenzzeit vorhanden ist und dass eine rein kombinatorische Funktion instanziiert wird. Wenn weggelassen, ist der Standardwert 0 (nicht Pipeline).
Ermöglicht Ihnen, Intel-spezifische Parameter im VHDL-Design anzugeben files (.vhd). Der Standardwert ist NICHT VERWENDET.
Identifiziert den Entitätsnamen der Bibliothek parametrisierter Module (LPM) im VHDL-Design files.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter ONE_INPUT_IS_CONSTANT im VHDL-Design anzugeben files. Mögliche Werte sind YES, NO und UNUSED. Bietet eine größere Optimierung, wenn ein Eingang konstant ist. Wenn weggelassen, ist der Standardwert NO.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter MAXIMIZE_SPEED im VHDL-Design anzugeben files. Sie können einen Wert zwischen 0 und 10 angeben. Falls verwendet, versucht die Intel Quartus Prime-Software, eine bestimmte Instanz der LPM_ADD_SUB-Funktion auf Geschwindigkeit und nicht auf Routing-Fähigkeit zu optimieren, und setzt die Einstellung der Logikoption „Optimization Technique“ außer Kraft. Wenn MAXIMIZE_SPEED nicht verwendet wird, wird stattdessen der Wert der Option „Optimization Technique“ verwendet. Wenn die Einstellung für MAXIMIZE_SPEED 6 oder höher ist, optimiert der Compiler den IP-Kern LPM_ADD_SUB für höhere Geschwindigkeit unter Verwendung von Übertragungsketten; wenn die Einstellung 5 oder weniger ist, implementiert der Compiler das Design ohne Übertragsketten. Dieser Parameter muss für Cyclone-, Stratix- und Stratix GX-Geräte nur angegeben werden, wenn der add_sub-Port nicht verwendet wird.
Dieser Parameter wird für Modellierungs- und Verhaltenssimulationszwecke verwendet. Der Parametereditor berechnet den Wert für diesen Parameter.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 25

683490 | 2020.10.05 Feedback senden

6. LPM_COMPARE (Komparator)

Abbildung 5.

Der IP-Kern LPM_COMPARE vergleicht den Wert von zwei Datensätzen, um die Beziehung zwischen ihnen zu bestimmen. In seiner einfachsten Form können Sie ein Exklusiv-ODER-Gatter verwenden, um festzustellen, ob zwei Datenbits gleich sind.

Die folgende Abbildung zeigt die Ports für den IP-Core LPM_COMPARE.

LPM_COMPARE-Ports

LPM_COMPARE

clken

alb

aeb

Daten[]

AGB

Datenb[]

alter

Uhr

oder

aclr

aleb

inst

6.1. Funktionen
Der IP-Kern LPM_COMPARE bietet die folgenden Funktionen: · Generiert eine Komparatorfunktion zum Vergleichen zweier Datensätze · Unterstützt eine Datenbreite von 1 Bit · Unterstützt Datendarstellungsformate wie vorzeichenbehaftet und vorzeichenlos · Erzeugt die folgenden Ausgabetypen:
— alb (Eingabe A ist kleiner als Eingabe B) — aeb (Eingabe A ist gleich Eingabe B) — agb (Eingabe A ist größer als Eingabe B) — ageb (Eingabe A ist größer oder gleich Eingabe B) — aneb ( Eingang A ist nicht gleich Eingang B) — aleb (Eingang A ist kleiner oder gleich Eingang B) · Unterstützt optionale asynchrone Clear- und Clock-Enable-Eingangsports · Weist den datab[]-Eingang einer Konstanten zu · Unterstützt Pipelining mit konfigurierbarer Ausgangslatenz

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
6.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr ); Parameter lpm_type = „lpm_compare“; Parameter lpm_width = 1; parameter lpm_representation = „UNSIGNED“; Parameter lpm_pipeline = 0; parameter lpm_hint = „UNBENUTZT“; Eingabe [lpm_width-1:0] dataa, datab; Eingangsuhr; Eingabe-Clken; Eingabe aclr; Ausgabe alb, aeb, agb, aleb, aneb, ageb; Endmodul
6.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) LPM_PACK.vhd im Librariesvhdllpm-Verzeichnis.
Komponente LPM_COMPARE generisch (LPM_WIDTH : natürlich;
LPM_REPRESENTATION : string := „UNSIGNED“; LPM_PIPELINE : natürlich := 0; LPM_TYPE: Zeichenkette := L_COMPARE; LPM_HINT : string := „UNUSED“); port (DATAA : in std_logic_vector(LPM_WIDTH-1 bis 0); DATAB : in std_logic_vector(LPM_WIDTH-1 bis 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; AGB : out std_logic; AGEB : out std_logic; AEB : out std_logic; ANEB : out std_logic; ALB : out std_logic; ALEB : out std_logic); Endkomponente;
6.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK lpm; VERWENDEN Sie lpm.lpm_components.all;
6.5. Häfen
Die folgenden Tabellen listen die Eingabe- und Ausgabeports für den LMP_COMPARE-IP-Core auf.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 27

6. LPM_COMPARE (Komparator) 683490 | 2020.10.05

Tabelle 18. LPM_COMPARE-IP-Core-Eingangsports

Anschlussname

Erforderlich

Beschreibung

Daten[]

Ja

Dateneingabe. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTH ab.

Datenb[]

Ja

Dateneingabe. Die Größe des Eingangsports hängt vom Parameterwert LPM_WIDTH ab.

Uhr

NEIN

Takteingang für Pipeline-Nutzung. Der Taktanschluss stellt den Takteingang für eine Pipeline bereit

Betrieb. Für andere LPM_PIPELINE-Werte als 0 (Standard) muss der Uhrenport sein

ermöglicht.

clken

NEIN

Taktaktivierung für Pipeline-Nutzung. Wenn der clken-Port hoch behauptet wird, wird die

Vergleichsoperation findet statt. Wenn das Signal niedrig ist, findet keine Operation statt. Wenn

weggelassen, der Standardwert ist 1.

aclr

NEIN

Asynchrones Löschen für die Pipeline-Nutzung. Die Pipeline wird mit einer undefinierten (X) Logik initialisiert

eben. Der aclr-Port kann jederzeit verwendet werden, um die Pipeline auf alle 0s zurückzusetzen,

asynchron zum Taktsignal.

Tabelle 19. LPM_COMPARE-IP-Core-Ausgangsports

Anschlussname

Erforderlich

Beschreibung

alb

NEIN

Ausgangsport für den Komparator. Wird aktiviert, wenn Eingabe A kleiner als Eingabe B ist.

aeb

NEIN

Ausgangsport für den Komparator. Wird gesetzt, wenn Eingabe A gleich Eingabe B ist.

AGB

NEIN

Ausgangsport für den Komparator. Wird aktiviert, wenn Eingabe A größer als Eingabe B ist.

alter

NEIN

Ausgangsport für den Komparator. Wird aktiviert, wenn Eingabe A größer oder gleich Eingabe ist

B.

oder

NEIN

Ausgangsport für den Komparator. Wird gesetzt, wenn Eingabe A nicht gleich Eingabe B ist.

aleb

NEIN

Ausgangsport für den Komparator. Wird gesetzt, wenn Eingabe A kleiner oder gleich Eingabe B ist.

6.6. Parameter

In der folgenden Tabelle sind die Parameter für den IP-Kern LPM_COMPARE aufgeführt.

Tabelle 20. IP-Core-Parameter von LPM_COMPARE

Parametername

Typ

Erforderlich

LPM_WIDTH

Ganzzahl Ja

LPM_DARSTELLUNG

Zeichenfolge

NEIN

LPM_PIPELINE

Ganzzahl Nr

LPM_HINT

Zeichenfolge

NEIN

Beschreibung
Gibt die Breite der Ports dataa[] und datab[] an.
Gibt den Typ des durchgeführten Vergleichs an. Werte sind SIGNED und UNSIGNED. Wenn weggelassen, ist der Standardwert UNSIGNED. Wenn dieser Parameterwert auf SIGNED gesetzt ist, interpretiert der Komparator die Dateneingabe als vorzeichenbehaftetes Zweierkomplement.
Gibt die Anzahl der Latenztaktzyklen an, die mit der alb-, aeb-, agb-, ageb-, aleb- oder aneb-Ausgabe verbunden sind. Ein Wert von Null (0) gibt an, dass keine Latenzzeit vorhanden ist und dass eine rein kombinatorische Funktion instanziiert wird. Wenn weggelassen, ist der Standardwert 0 (nicht Pipeline).
Ermöglicht Ihnen, Intel-spezifische Parameter im VHDL-Design anzugeben files (.vhd). Der Standardwert ist NICHT VERWENDET.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 28

Feedback senden

6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Parametername LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT

Geben Sie Zeichenfolge Zeichenfolge ein
Zeichenfolge

Erforderlich Nein Nein
NEIN

Beschreibung
Identifiziert den Entitätsnamen der Bibliothek parametrisierter Module (LPM) im VHDL-Design files.
Dieser Parameter wird für Modellierungs- und Verhaltenssimulationszwecke verwendet. Der Parametereditor berechnet den Wert für diesen Parameter.
Intel-spezifischer Parameter. Sie müssen den Parameter LPM_HINT verwenden, um den Parameter ONE_INPUT_IS_CONSTANT im VHDL-Design anzugeben files. Mögliche Werte sind YES, NO oder UNUSED. Bietet eine größere Optimierung, wenn eine Eingabe konstant ist. Wenn weggelassen, ist der Standardwert NO.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 29

683490 | 2020.10.05 Feedback senden

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP-Core

Abbildung 6.

Intel stellt den ALTECC IP-Core bereit, um die ECC-Funktionalität zu implementieren. ECC erkennt beschädigte Daten, die auf der Empfängerseite während der Datenübertragung auftreten. Dieses Fehlerkorrekturverfahren eignet sich am besten für Situationen, in denen Fehler eher zufällig als in Bursts auftreten.

Der ECC erkennt Fehler durch den Prozess der Datencodierung und -decodierung. Zum BspampDas heißt, wenn der ECC in einer Übertragungsanwendung angewendet wird, werden die von der Quelle gelesenen Daten codiert, bevor sie an den Empfänger gesendet werden. Die Ausgabe (Codewort) des Codierers besteht aus den Rohdaten, an die die Anzahl der Paritätsbits angehängt ist. Die genaue Anzahl der angehängten Paritätsbits hängt von der Anzahl der Bits in den Eingangsdaten ab. Das generierte Codewort wird dann an das Ziel übertragen.

Der Empfänger empfängt das Codewort und decodiert es. Von dem Decoder erhaltene Informationen bestimmen, ob ein Fehler erkannt wird. Der Decoder erkennt Einzelbit- und Doppelbitfehler, kann jedoch nur Einzelbitfehler in den beschädigten Daten beheben. Diese Art von ECC ist eine Einzelfehlerkorrektur-Doppelfehlererkennung (SECDED).

Sie können Encoder- und Decoderfunktionen des ALTECC IP-Cores konfigurieren. Die Dateneingabe in den Codierer wird codiert, um ein Codewort zu erzeugen, das eine Kombination aus der Dateneingabe und den erzeugten Paritätsbits ist. Das erzeugte Codewort wird unmittelbar vor dem Erreichen seines Zielblocks zum Decodieren an das Decodiermodul übertragen. Der Decoder erzeugt einen Syndromvektor, um zu bestimmen, ob es irgendeinen Fehler in dem empfangenen Codewort gibt. Der Decoder korrigiert die Daten nur, wenn der Einzelbitfehler von den Datenbits herrührt. Kein Signal wird gekennzeichnet, wenn der Einzelbitfehler von den Paritätsbits stammt. Der Decoder hat auch Flag-Signale, um den Status der empfangenen Daten und gegebenenfalls die vom Decoder durchgeführten Maßnahmen anzuzeigen.

Die folgenden Abbildungen zeigen die Ports für den ALTECC IP-Core.

ALTECC-Encoder-Ports

ALTECC_ENCODER

Daten[]

Q[]

Uhr

Uhr

aclr

inst

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP Core 683490 | 2020.10.05

Abbildung 7. ALTECC-Decoder-Ports

ALTECC_DECODER

data[] Clock Clocken

q[] err_detected err_corrected
err_fatal

aclr

inst

7.1. Funktionen des ALTECC-Encoders

Der ALTECC-Encoder-IP-Kern bietet die folgenden Merkmale: · Führt Datenkodierung unter Verwendung des Hamming-Kodierungsschemas durch · Unterstützt Datenbreite von 2 Bit · Unterstützt vorzeichenbehaftetes und vorzeichenloses Datendarstellungsformat · Unterstützt Pipelining mit Ausgabelatenz von entweder einem oder zwei Taktzyklen · Unterstützt optional asynchrone Clear- und Clock-Enable-Ports

Der IP-Kern des ALTECC-Codierers nimmt die Daten auf und codiert sie unter Verwendung des Hamming-Codierungsschemas. Das Hamming-Codierungsschema leitet die Paritätsbits ab und hängt sie an die ursprünglichen Daten an, um das Ausgangscodewort zu erzeugen. Die Anzahl der angehängten Paritätsbits hängt von der Breite der Daten ab.

Die folgende Tabelle listet die Anzahl der Paritätsbits auf, die für verschiedene Bereiche von Datenbreiten angehängt werden. Die Spalte Total Bits repräsentiert die Gesamtzahl der Eingangsdatenbits und angehängten Paritätsbits.

Tabelle 21.

Anzahl der Paritätsbits und des Codeworts entsprechend der Datenbreite

Datenbreite

Anzahl der Paritätsbits

Gesamtbits (Codewort)

2-4

3+1

6-8

5-11

4+1

10-16

12-26

5+1

18-32

27-57

6+1

34-64

58-64

7+1

66-72

Die Paritätsbitableitung verwendet eine Prüfung auf gerade Parität. Das zusätzliche 1-Bit (in der Tabelle als +1 dargestellt) wird als MSB des Codeworts an die Paritätsbits angehängt. Dadurch wird sichergestellt, dass das Codewort eine gerade Anzahl von Einsen hat. Zum BspampBeispiel: Wenn die Datenbreite 4 Bit beträgt, werden 4 Paritätsbits an die Daten angehängt, um ein Codewort mit insgesamt 8 Bit zu werden. Wenn 7 Bits vom LSB des 8-Bit-Codeworts eine ungerade Anzahl von Einsen haben, ist das 1. Bit (MSB) des Codeworts 8, was die Gesamtzahl von Einsen im Codewort gerade macht.
Die folgende Abbildung zeigt das generierte Codewort und die Anordnung der Paritätsbits und Datenbits in einem 8-Bit-Dateneingang.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 31

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP Core 683490 | 2020.10.05

Abbildung 8.

Anordnung von Paritätsbits und Datenbits in einem generierten 8-Bit-Codewort

MSB

LSB

4 Paritätsbits

4 Datenbits

8

1

Der ALTECC-Encoder-IP-Core akzeptiert nur Eingabebreiten von 2 bis 64 Bits gleichzeitig. Eingabebreiten von 12 Bit, 29 Bit und 64 Bit, die ideal für Intel-Geräte geeignet sind, erzeugen Ausgaben von 18 Bit, 36 Bit bzw. 72 Bit. Sie können die Begrenzung der Bitauswahl im Parametereditor steuern.

7.2. Verilog HDL-Prototyp (ALTECC_ENCODER)
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul altecc_encoder #( Parameter Certain_device_family = „unused“, Parameter lpm_pipeline = 0, Parameter width_codeword = 8, Parameter width_dataword = 8, Parameter lpm_type = „altecc_encoder“, Parameter lpm_hint = „unused“) (Eingangsdraht ACLR, Eingangsdrahttakt, Eingang Leitungsuhren, Eingangsleitung [Breite_Datenwort-1:0] Daten, Ausgangsleitung [Breite_Codewort-1:0] q); Endmodul

7.3. Verilog HDL-Prototyp (ALTECC_DECODER)
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) lpm.v im edasynthese-Verzeichnis.
Modul altecc_decoder #( Parameter Certain_device_family = „unused“, Parameter lpm_pipeline = 0, Parameter width_codeword = 8, Parameter width_dataword = 8, Parameter lpm_type = „altecc_decoder“, Parameter lpm_hint = „unused“) (Eingangsleitung ACLR, Eingangsleitung Uhr, Eingang Leitungsuhren, Eingangsleitung [width_codeword-1:0] data, Ausgangsleitung err_corrected, Ausgangsleitung err_detected, Ausgangsleitung err_fatal, Ausgangsleitung [width_dataword-1:0] q); Endmodul

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 32

Feedback senden

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. VHDL-Komponentendeklaration (ALTECC_ENCODER)
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) altera_mf_components.vhd im Librariesvhdlaltera_mf-Verzeichnis.
Komponente altecc_encoder generisch ( beabsichtigte_Gerätefamilie:string := „unused“; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „UNUSED“; lpm_type:string := „altecc_encoder “); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clocken:in std_logic := '1'; data:in std_logic_vector(width_dataword-1 downto 0); q:out std_logic_vector(width_codeword -1 bis 0)); Endkomponente;
7.5. VHDL-Komponentendeklaration (ALTECC_DECODER)
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) altera_mf_components.vhd im Librariesvhdlaltera_mf-Verzeichnis.
Komponente altecc_decoder generisch ( beabsichtigte_Gerätefamilie:string := „unused“; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „UNUSED“; lpm_type:string := „altecc_decoder “); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clocken:in std_logic := '1'; data:in std_logic_vector(width_codeword-1 downto 0); err_corrected : out std_logic; err_detected : out std_logic; q:out std_logic_vector(width_dataword-1 bis 0); syn_e : out std_logic); Endkomponente;
7.6. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK altera_mf; VERWENDE altera_mf.altera_mf_components.all;
7.7. Encoder-Ports
In den folgenden Tabellen sind die Eingangs- und Ausgangsports für den ALTECC-Encoder-IP-Kern aufgeführt.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 33

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP Core 683490 | 2020.10.05

Tabelle 22. Eingangsports des ALTECC-Encoders

Anschlussname

Erforderlich

Beschreibung

Daten[]

Ja

Dateneingangsport. Die Größe des Eingangsports hängt vom WIDTH_DATAWORD ab

Parameterwert. Der Port data[] enthält die zu codierenden Rohdaten.

Uhr

Ja

Takteingangsport, der das Taktsignal zum Synchronisieren des Codiervorgangs bereitstellt.

Der Uhrenport ist erforderlich, wenn der LPM_PIPELINE-Wert größer als 0 ist.

Uhr

NEIN

Uhr aktivieren. Wenn weggelassen, ist der Standardwert 1.

aclr

NEIN

Asynchrone Clear-Eingabe. Das aktiv hohe aclr-Signal kann jederzeit dazu verwendet werden

Register asynchron löschen.

Tabelle 23. ALTECC-Encoder-Ausgangsports

Portname q[]

Erforderlich Ja

Beschreibung
Ausgabeport für codierte Daten. Die Größe des Ausgangsports hängt vom Parameterwert WIDTH_CODEWORD ab.

7.8. Decoder-Ports

Die folgenden Tabellen listen die Eingangs- und Ausgangsports für den IP-Kern des ALTECC-Decoders auf.

Tabelle 24. Eingangsports des ALTECC-Decoders

Anschlussname

Erforderlich

Beschreibung

Daten[]

Ja

Dateneingangsport. Die Größe des Eingangsports hängt vom WIDTH_CODEWORD-Parameterwert ab.

Uhr

Ja

Takteingangsport, der das Taktsignal zum Synchronisieren des Codiervorgangs bereitstellt. Der Uhrenport ist erforderlich, wenn der LPM_PIPELINE-Wert größer als 0 ist.

Uhr

NEIN

Uhr aktivieren. Wenn weggelassen, ist der Standardwert 1.

aclr

NEIN

Asynchrone Clear-Eingabe. Das aktiv hohe aclr-Signal kann jederzeit verwendet werden, um die Register asynchron zu löschen.

Tabelle 25. ALTECC-Decoder-Ausgangsports

Portname q[]

Erforderlich Ja

Beschreibung
Ausgabeport für dekodierte Daten. Die Größe des Ausgangsports hängt vom Parameterwert WIDTH_DATAWORD ab.

err_detected Ja

Flag-Signal, das den Status der empfangenen Daten widerspiegelt und alle gefundenen Fehler angibt.

err_correcte Ja d

Flag-Signal, um den Status der empfangenen Daten widerzuspiegeln. Bezeichnet einen gefundenen und korrigierten Einzelbitfehler. Sie können die Daten verwenden, da sie bereits korrigiert wurden.

err_fatal

Ja

Flag-Signal, um den Status der empfangenen Daten widerzuspiegeln. Bezeichnet einen Doppelbitfehler, der gefunden, aber nicht korrigiert wurde. Sie dürfen die Daten nicht verwenden, wenn dieses Signal aktiviert ist.

syn_e

NEIN

Ein Ausgangssignal, das hoch geht, wenn ein Einzelbitfehler auf der Parität erkannt wird

Bits.

7.9. Encoder-Parameter
Die folgende Tabelle listet die Parameter für den ALTECC-Encoder-IP-Core auf.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 34

Feedback senden

7. ALTECC (Fehlerkorrekturcode: Encoder/Decoder) IP Core 683490 | 2020.10.05

Tabelle 26. ALTECC-Encoder-Parameter

Parametername

Typ

Erforderlich

Beschreibung

WIDTH_DATAWORD

Ganzzahl Ja

Gibt die Breite der Rohdaten an. Mögliche Werte sind 2 bis 64. Wenn weggelassen, ist der Standardwert 8.

WIDTH_CODEWORD

Ganzzahl Ja

Gibt die Breite des entsprechenden Codeworts an. Gültige Werte sind 6 bis 72, ausgenommen 9, 17, 33 und 65. Wenn weggelassen, ist der Standardwert 13.

LPM_PIPELINE

Ganzzahl Nr

Gibt die Pipeline für die Schaltung an. Die Werte reichen von 0 bis 2. Wenn der Wert 0 ist, sind die Ports nicht registriert. Wenn der Wert 1 ist, werden die Ausgabeports registriert. Wenn der Wert 2 ist, werden die Eingabe- und Ausgabeports registriert. Wenn weggelassen, ist der Standardwert 0.

7.10. Decoder-Parameter

Die folgende Tabelle listet die IP-Core-Parameter des ALTECC-Decoders auf.

Tabelle 27. ALTECC-Decoderparameter

Parametername WIDTH_DATAWORD

Geben Sie ganze Zahl ein

Erforderlich

Beschreibung

Ja

Gibt die Breite der Rohdaten an. Werte sind 2 bis 64. Die

Standardwert ist 8.

WIDTH_CODEWORD

Ganze Zahl

Ja

Gibt die Breite des entsprechenden Codeworts an. Werte sind 6

bis 72, außer 9, 17, 33 und 65. Wenn weggelassen, der Standardwert

lautet 13.

LPM_PIPELINE

Ganze Zahl

NEIN

Gibt das Register der Schaltung an. Werte sind von 0 bis 2. Wenn die

Wert 0 ist, ist kein Register implementiert. Wenn der Wert 1 ist, wird die

Ausgang registriert. Wenn der Wert 2 ist, werden sowohl die Eingabe als auch die

Ausgang registriert werden. Wenn der Wert größer als 2 ist, zusätzlich

Register sind am Ausgang für die zusätzlichen implementiert

Latenzen. Wenn weggelassen, ist der Standardwert 0.

Erstellen Sie einen ‚syn_e‘-Port

Ganze Zahl

NEIN

Aktivieren Sie diesen Parameter, um einen syn_e-Port zu erstellen.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 35

683490 | 2020.10.05 Feedback senden

8. Intel FPGA-Multiplikations-Addierer-IP-Core

Abbildung 9.

Der IP-Core Intel FPGA Multiply Adder (Intel Stratix 10-, Intel Arria 10- und Intel Cyclone 10 GX-Geräte) oder ALTERA_MULT_ADD (Arria V-, Stratix V- und Cyclone V-Geräte) ermöglicht Ihnen die Implementierung eines Multiplikator-Addierers.

Die folgende Abbildung zeigt die Ports für den Intel FPGA Multiply Adder oder den IP-Core ALTERA_MULT_ADD.

Intel FPGA Multiply Adder oder ALTERA_MULT_ADD Ports

Intel FPGA Multiply Adder oder ALTERA_MULT_ADD

dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] clock0 clock1 clock2 ena0 ena1 ena2 sload_accum
accum_sload Chainin[]

scanouta[] Ergebnis[]

aclr0 aclr1

inst
Ein Multiplikator-Addierer akzeptiert Paare von Eingaben, multipliziert die Werte miteinander und addiert oder subtrahiert dann zu den Produkten aller anderen Paare.
Wenn alle Eingangsdatenbreiten 9 Bit breit oder kleiner sind, verwendet die Funktion die 9 x 9-Bit-Eingangsmultiplikatorkonfiguration im DSP-Block für Geräte, die eine 9 x 9-Konfiguration unterstützen. Wenn nicht, verwendet der DSP-Block 18 × 18-Bit-Eingangsmultiplikatoren, um Daten mit Breiten zwischen 10 Bit und 18 Bit zu verarbeiten. Wenn mehrere Intel FPGA Multiply Adder oder ALTERA_MULT_ADD IP Cores in einem Design vorkommen, werden die Funktionen auf as verteilt

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
möglichst viele verschiedene DSP-Blöcke, so dass das Routing zu diesen Blöcken flexibler ist. Weniger Multiplikatoren pro DSP-Block ermöglichen mehr Routing-Auswahlmöglichkeiten in den Block, indem Pfade zum Rest des Geräts minimiert werden.
Die Register und zusätzlichen Pipeline-Register für die folgenden Signale sind ebenfalls innerhalb des DSP-Blocks angeordnet: · Dateneingabe · Vorzeichenbehaftete oder vorzeichenlose Auswahl · Additions- oder Subtraktionsauswahl · Produkte von Multiplikatoren
Beim Ausgabeergebnis wird das erste Register in den DSP-Block gestellt. Die zusätzlichen Latenzregister werden jedoch in Logikelementen außerhalb des Blocks platziert. Die Peripherie des DSP-Blocks, einschließlich der Dateneingänge des Multiplizierers, der Steuersignaleingänge und der Ausgänge des Addierers, verwendet reguläres Routing, um mit dem Rest des Geräts zu kommunizieren. Alle Verbindungen in der Funktion verwenden ein dediziertes Routing innerhalb des DSP-Blocks. Dieses dedizierte Routing umfasst die Schieberegisterketten, wenn Sie die Option zum Verschieben der registrierten Eingangsdaten eines Multiplikators von einem Multiplikator zu einem benachbarten Multiplikator auswählen.
Weitere Informationen zu DSP-Blöcken in den Geräteserien Stratix V und Arria V finden Sie im Kapitel „DSP-Blöcke“ der jeweiligen Handbücher auf der Seite „Literatur und technische Dokumentation“.
Zugehörige Informationen AN 306: Implementieren von Multiplikatoren in FPGA-Geräten
Enthält weitere Informationen zur Implementierung von Multiplikatoren mit DSP und Speicherblöcken in Intel FPGA-Geräten.
8.1. Funktionen
Der Intel FPGA Multiply Adder oder IP-Kern ALTERA_MULT_ADD bietet die folgenden Funktionen: · Erzeugt einen Multiplikator, um Multiplikationsoperationen von zwei Komplexen durchzuführen
Zahlen Hinweis: Beim Erstellen von Multiplikatoren, die größer als die nativ unterstützte Größe sind, können/
wird eine Auswirkung auf die Leistung sein, die sich aus der Kaskadierung der DSP-Blöcke ergibt. · Unterstützt Datenbreiten von 1 256 Bits · Unterstützt vorzeichenbehaftetes und vorzeichenloses Datendarstellungsformat · Unterstützt Pipelining mit konfigurierbarer Eingabelatenz · Bietet eine Option zum dynamischen Umschalten zwischen vorzeichenbehafteter und unsignierter Datenunterstützung · Bietet eine Option zum dynamischen Umschalten zwischen Additions- und Subtraktionsoperationen · Unterstützt optionale asynchrone und synchrone Clear- und Clock-Enable-Eingangsports · Unterstützt systolischen Verzögerungsregistermodus · Unterstützt Voraddierer mit 8 Vorladekoeffizienten pro Multiplikator · Unterstützt Vorladekonstante zur Ergänzung des Akkumulator-Feedbacks

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 37

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.1. Voraddierer
Beim Voraddierer werden Additionen oder Subtraktionen durchgeführt, bevor der Multiplikator gespeist wird.
Es gibt fünf Voraddierer-Modi: · Einfacher Modus · Koeffizientenmodus · Eingabemodus · Quadratischer Modus · Konstantenmodus

Notiz:

Wenn ein Voraddierer verwendet wird (Voraddierer-Koeffizienten-/Eingabe-/Quadratmodus), müssen alle Dateneingaben in den Multiplizierer die gleiche Takteinstellung haben.

8.1.1.1. Einfacher Voraddierer-Modus

In diesem Modus werden beide Operanden von den Eingangsports abgeleitet und der Voraddierer wird nicht verwendet oder umgangen. Dies ist der Standardmodus.

Abbildung 10. Einfacher Modus des Voraddierers
a0 b0

Mult0

Ergebnis

8.1.1.2. Voraddierer-Koeffizientenmodus
In diesem Modus stammt ein Multiplikator-Operand vom Voraddierer und der andere Operand stammt vom internen Koeffizientenspeicher. Der Koeffizientenspeicher erlaubt bis zu 8 voreingestellte Konstanten. Die Koeffizientenauswahlsignale sind coefsel[0..3].
Dieser Modus wird in der folgenden Gleichung ausgedrückt.

Das Folgende zeigt den Voraddierer-Koeffizientenmodus eines Multiplizierers.

Abbildung 11. Voraddierer-Koeffizientenmodus

Predder

a0

Mult0

+/-

Ergebnis

b0

coefsel0 coef

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 38

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Voraddierer-Eingabemodus In diesem Modus wird ein Multiplikator-Operand vom Voraddierer und der andere Operand vom datac[]-Eingangsport abgeleitet. Dieser Modus wird in der folgenden Gleichung ausgedrückt.

Das Folgende zeigt den Voraddierer-Eingabemodus eines Multiplizierers.

Abbildung 12. Voraddierer-Eingabemodus
a0 b0

Mult0

+/-

Ergebnis

c0

8.1.1.4. Voraddierer-Quadratmodus Dieser Modus wird in der folgenden Gleichung ausgedrückt.

Das Folgende zeigt den Voraddierer-Quadratmodus von zwei Multiplikatoren.

Abbildung 13. Voraddierer-Quadratmodus
a0 b0

Mult0

+/-

Ergebnis

8.1.1.5. Voraddierer-Konstantmodus
In diesem Modus wird ein Multiplikator-Operand vom Eingangsport und der andere Operand vom internen Koeffizientenspeicher abgeleitet. Der Koeffizientenspeicher erlaubt bis zu 8 voreingestellte Konstanten. Die Koeffizientenauswahlsignale sind coefsel[0..3].
Dieser Modus wird in der folgenden Gleichung ausgedrückt.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 39

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Die folgende Abbildung zeigt den Pre-Adder-Konstantenmodus eines Multiplizierers.

Abbildung 14. Konstanter Modus des Voraddierers
a0

Mult0

Ergebnis

coefsel0
koef
8.1.2. Systolisches Verzögerungsregister
In einer systolischen Architektur werden die Eingangsdaten in eine Kaskade von Registern eingespeist, die als Datenpuffer dienen. Jedes Register liefert einen Eingang sample zu einem Multiplikator, wo sie mit dem jeweiligen Koeffizienten multipliziert wird. Der Kettenaddierer speichert die allmählich kombinierten Ergebnisse aus dem Multiplikator und das zuvor registrierte Ergebnis aus dem Eingabeport chainin[], um das Endergebnis zu bilden. Jedes Multiplikations-Additions-Element muss um einen einzigen Zyklus verzögert werden, damit die Ergebnisse bei der Addition angemessen synchronisiert werden. Jede aufeinanderfolgende Verzögerung wird verwendet, um sowohl den Koeffizientenspeicher als auch den Datenpuffer ihrer jeweiligen Multiplizier-Addier-Elemente zu adressieren. Zum BspampB. eine einzelne Verzögerung für das zweite Multiply-Add-Element, zwei Verzögerungen für das dritte Multiply-Add-Element und so weiter.
Abbildung 15. Systolische Register
Systolische Register

x(t)c(0)

S -1

S -1

c(1)

S -1

S -1

c(2)

S -1

S -1

c(N-1)

S -1

S -1

S -1

S-1 y(t)

x(t) repräsentiert die Ergebnisse aus einem kontinuierlichen Strom von Eingaben samples und y(t)
repräsentiert die Summierung einer Menge von Eingaben samples, und in der Zeit, mit ihren multipliziert
jeweiligen Koeffizienten. Sowohl die Eingabe- als auch die Ausgabeergebnisse fließen von links nach rechts. c(0) bis c(N-1) bezeichnen die Koeffizienten. Die systolischen Verzögerungsregister sind mit S-1 bezeichnet, wobei die 1 eine einzelne Taktverzögerung darstellt. Systolische Verzögerungsregister werden bei hinzugefügt
die Eingaben und Ausgaben für das Pipelining in einer Weise, die die Ergebnisse aus der sicherstellt
Multiplikatoroperand und die akkumulierten Summen bleiben synchron. Dieses Verarbeitungselement
wird repliziert, um eine Schaltung zu bilden, die die Filterfunktion berechnet. Diese Funktion ist
in der folgenden Gleichung ausgedrückt.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 40

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

N stellt die Anzahl der Datenzyklen dar, die in den Akkumulator eingegeben wurden, y(t) stellt die Ausgabe zum Zeitpunkt t dar, A(t) stellt die Eingabe zum Zeitpunkt t dar und B(i) sind die Koeffizienten. t und i in der Gleichung entsprechen einem bestimmten Zeitpunkt, um die Ausgabe s zu berechnenample y(t) zum Zeitpunkt t, eine Gruppe von Eingaben sampDateien zu N verschiedenen Zeitpunkten, oder A(n), A(n-1), A(n-2), … A(n-N+1) benötigt. Die Gruppe von N Eingaben samples werden mit N Koeffizienten multipliziert und summiert, um das Endergebnis y zu bilden.
Die systolische Registerarchitektur ist nur für Summe-von-2- und Summe-von-4-Modi verfügbar. Für beide systolischen Registerarchitekturmodi muss das erste Chainin-Signal auf 0 gelegt werden.
Die folgende Abbildung zeigt die Implementierung des systolischen Verzögerungsregisters von 2 Multiplikatoren.
Abbildung 16. Systolische Verzögerungsregister-Implementierung von 2 Multiplikatoren
Kettein

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

Ergebnis
Die Summe zweier Multiplikatoren wird in der folgenden Gleichung ausgedrückt.
Die folgende Abbildung zeigt die Implementierung des systolischen Verzögerungsregisters von 4 Multiplikatoren.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 41

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Abbildung 17. Systolische Verzögerungsregister-Implementierung von 4 Multiplikatoren
Kettein

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

a2

Mult2

+/-

b2

a3

Mult3

+/-

b3

Ergebnis
Die Summe von vier Multiplikatoren wird in der folgenden Gleichung ausgedrückt. Abbildung 18. Summe von 4 Multiplikatoren
Im Folgenden werden die Vorteile aufgelistettages der systolischen Registerimplementierung: · Reduziert die DSP-Ressourcennutzung · Ermöglicht eine effiziente Zuordnung im DSP-Block unter Verwendung der Kettenaddiererstruktur

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 42

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.3. Vorladekonstante
Die Vorladekonstante steuert den Akkumulatoroperanden und ergänzt die Akkumulatorrückmeldung. Der gültige LOADCONST_VALUE reicht von 0. Der konstante Wert ist gleich 64N, wobei N = LOADCONST_VALUE ist. Wenn LOADCONST_VALUE auf 2 gesetzt ist, ist der konstante Wert gleich 64. Diese Funktion kann als voreingenommenes Runden verwendet werden.
Die folgende Abbildung zeigt die Implementierung der Vorladekonstante.
Abbildung 19. Vorlastkonstante

Akkumulator-Feedback

Konstante

a0

Mult0

+/-

b0

a1

Mult1

+/b1

Ergebnis

accum_sload sload_accum

Siehe die folgenden IP-Kerne für andere Multiplikatorimplementierungen: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Doppelakkumulator
Die Doppelakkumulator-Funktion fügt ein zusätzliches Register im Akkumulator-Feedback-Pfad hinzu. Das doppelte Akkumulatorregister folgt dem Ausgangsregister, das den Takt, die Taktfreigabe und den aclr enthält. Das zusätzliche Akkumulatorregister gibt das Ergebnis mit einer Verzögerung von einem Zyklus zurück. Diese Funktion ermöglicht es Ihnen, zwei Akkumulatorkanäle mit derselben Ressourcenanzahl zu haben.
Die folgende Abbildung zeigt die Doppelakkumulator-Implementierung.

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 43

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Abbildung 20. Doppelakkumulator

Double Accu mulator Register

Akkumulator-Feedback

a0

Mult0

+/-

b0

a1

Mult1

+/b1

Ausgabeergebnis Ausgaberegister

8.2. Verilog HDL-Prototyp
Sie finden den Intel FPGA Multiply Adder oder ALTERA_MULT_ADD Verilog HDL-Prototypen file (altera_mult_add_rtl.v) in der Librariesmegafunctions-Verzeichnis.
8.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich in altera_lnsim_components.vhd in der librarysvhdl altera_lnsim-Verzeichnis.
8.4. VHDL LIBRARY_USE-Deklaration
Die VHDL LIBRARY-USE-Deklaration ist nicht erforderlich, wenn Sie die VHDL-Komponentendeklaration verwenden.
BIBLIOTHEK altera_mf; VERWENDE altera_mf.altera_mf_components.all;

8.5. Signale

In den folgenden Tabellen sind die Eingangs- und Ausgangssignale des Multiply Adder Intel FPGA IP- oder ALTERA_MULT_ADD IP-Kerns aufgeführt.

Tabelle 28. Multiplikationsaddierer Intel FPGA IP oder ALTERA_MULT_ADD Eingangssignale

Signal

Erforderlich

Beschreibung

dataa_0[]/dataa_1[]/

Ja

Datena_2[]/Datena_3[]

Dateneingabe in den Multiplikator. Eingangsport [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] breit
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 44

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Signal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] signa
signb
scanina[] accum_sload

Erforderlich Ja Nein
Nein nein Nein Nein Nein
NEIN
Nein Nein

Beschreibung
Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Dateneingabe in den Multiplikator. Eingangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] wide Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Dateneingabe in den Multiplikator. Eingangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] wide Wählen Sie INPUT für den Parameter Select preadder mode, um diese Signale zu aktivieren. Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Takteingangsport zum entsprechenden Register. Dieses Signal kann von jedem Register im IP-Kern verwendet werden. Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Asynchroner Löscheingang zum entsprechenden Register. Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Synchroner Löscheingang zum entsprechenden Register. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert X für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen
Aktivieren Sie den Signaleingang für das entsprechende Register. Das Simulationsmodell für dieses IP unterstützt unbestimmte Eingangswerte (X) für diese Signale. Wenn Sie diesen Signalen einen X-Wert zuweisen, wird der X-Wert auf die Ausgangssignale übertragen.
Gibt die numerische Darstellung des Multiplikatoreingangs A an. Wenn das Vorzeichensignal hoch ist, behandelt der Multiplikator das Signal des Multiplikatoreingangs A als vorzeichenbehaftete Zahl. Wenn das Signa-Signal niedrig ist, behandelt der Multiplikator das Multiplikator-Eingangssignal A als vorzeichenlose Zahl. Wählen Sie VARIABLE für Was ist das Darstellungsformat für den Eingangsparameter Multiplikatoren A, um dieses Signal zu aktivieren. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Gibt die numerische Darstellung des Multiplikator-Eingangssignals B an. Wenn das Signal signb hoch ist, behandelt der Multiplizierer das Eingangssignal B des Multiplizierers als vorzeichenbehaftete Zweierkomplementzahl. Wenn das Signal signb niedrig ist, behandelt der Multiplizierer das Eingangssignal B des Multiplizierers als vorzeichenlose Zahl. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Eingang für Scan-Kette A. Eingangssignal [WIDTH_A – 1, … 0] breit. Wenn der Parameter INPUT_SOURCE_A einen Wert von SCANA hat, ist das Signal scanina[] erforderlich.
Legt dynamisch fest, ob der Akkumulatorwert konstant ist. Wenn das accum_sload-Signal niedrig ist, wird der Multiplikatorausgang in den Akkumulator geladen. Verwenden Sie accum_sload und sload_accum nicht gleichzeitig.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 45

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Signal sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

Erforderlich Nr
Nein Nein
NEIN
Nein nein Nein Nein

Beschreibung
Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Legt dynamisch fest, ob der Akkumulatorwert konstant ist. Wenn das sload_accum-Signal hoch ist, dann wird der Multiplikatorausgang in den Akkumulator geladen. Verwenden Sie accum_sload und sload_accum nicht gleichzeitig. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Addierer-Ergebniseingangsbus von den vorhergehenden stage. Eingangssignal [WIDTH_CHAININ – 1, … 0] breit.
Führen Sie eine Addition oder Subtraktion an den Ausgängen des ersten Paars von Multiplikatoren durch. Geben Sie 1 in das Signal addnsub1 ein, um die Ausgänge des ersten Paars von Multiplikatoren zu addieren. Geben Sie 0 in das addnsub1-Signal ein, um die Ausgaben von dem ersten Multipliziererpaar zu subtrahieren. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Führen Sie eine Addition oder Subtraktion an den Ausgängen des ersten Paars von Multiplikatoren durch. Geben Sie 1 in das Signal addnsub3 ein, um die Ausgänge des zweiten Paars von Multiplikatoren zu addieren. Geben Sie 0 in das addnsub3-Signal ein, um die Ausgaben von dem ersten Paar von Multiplikatoren zu subtrahieren. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Koeffizienteneingangssignal[0:3] zum ersten Multiplikator. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Koeffizienteneingangssignal[0:3]zum zweiten Multiplikator. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Koeffizienteneingangssignal[0:3]zum dritten Multiplikator. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.
Koeffizient Eingangssignal [0:3] zum vierten Multiplikator. Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Eingabewert (X) für dieses Signal. Wenn Sie diesem Eingang einen X-Wert bereitstellen, wird der X-Wert an die Ausgangssignale weitergegeben.

Tabelle 29. Intel FPGA-IP-Ausgangssignale des Multiplikationsaddierers

Signal

Erforderlich

Beschreibung

Ergebnis []

Ja

Ausgangssignal des Multiplikators. Ausgangssignal [WIDTH_RESULT – 1 … 0] breit

Das Simulationsmodell für dieses IP unterstützt einen unbestimmten Ausgabewert (X). Wenn Sie den X-Wert als Eingabe bereitstellen, wird der X-Wert auf diesem Signal weitergegeben.

scannen []

NEIN

Ausgabe der Scan-Kette A. Ausgangssignal [WIDTH_A – 1..0] breit.

Wählen Sie mehr als 2 für die Anzahl der Multiplikatoren und wählen Sie Scan chain input für den Parameter What is the input A of the multiplier connected to, um dieses Signal zu aktivieren.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 46

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6. Parameter

8.6.1. Registerkarte „Allgemein“.

Tabelle 30. Registerkarte „Allgemein“.

Parameter

IP-generierter Parameter

Wert

Wie viele Multiplikatoren gibt es?

number_of_m 1 – 4 Multiplikatoren

Wie breit sollten die A width_a Eingangsbusse sein?

1 – 256

Wie breit sollten die B width_b Eingangsbusse sein?

1 – 256

Wie breit sollte der „Ergebnis“-Ausgangsbus sein?

width_result

1 – 256

Erstellen Sie für jede Uhr eine zugehörige Uhrenfreigabe

gui_associate Ein d_clock_enabl Aus e

8.6.2. Registerkarte Extra-Modi

Tabelle 31. Registerkarte Extra-Modi

Parameter

IP-generierter Parameter

Wert

Ausgangskonfiguration

Registerausgabe der Addiereinheit

gui_output_re Ein

gister

Aus

Was ist die Quelle für den Takteingang?

gui_output_re gister_clock

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_output_re gister_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_output_re gister_sclr

KEINE SCLR0 SCLR1

Addierer-Betrieb

Welche Operation sollte an den Ausgängen des ersten Multiplikatorpaars durchgeführt werden?

gui_multiplier 1_Richtung

ADD, SUB, VARIABLE

Standardwert 1
16

Beschreibung
Anzahl der zu addierenden Multiplikatoren. Mögliche Werte sind 1 bis 4. Geben Sie die Breite des dataa[]-Ports an.

16

Geben Sie die Breite des datab[]-Ports an.

32

Geben Sie die Breite des result[]-Ports an.

Aus

Wählen Sie diese Option, um eine Taktfreigabe zu erstellen

für jede Uhr.

Standardwert

Beschreibung

Aus Uhr0
KEIN KEINER

Wählen Sie diese Option, um das Ausgangsregister des Addierermoduls zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um die Taktquelle für Ausgangsregister zu aktivieren und anzugeben. Sie müssen Ausgang der Addiereinheit registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Clear-Quelle für das Addierer-Ausgangsregister an. Sie müssen Ausgang der Addiereinheit registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das Addierer-Ausgangsregister an. Sie müssen Ausgang der Addiereinheit registrieren auswählen, um diesen Parameter zu aktivieren.

HINZUFÜGEN

Wählen Sie die Additions- oder Subtraktionsoperation aus, die für die Ausgänge zwischen dem ersten und dem zweiten Multiplikator durchgeführt werden soll.
· Wählen Sie ADD, um den Additionsvorgang auszuführen.
· Wählen Sie SUB, um eine Subtraktionsoperation durchzuführen.
· Wählen Sie VARIABLE, um den Port addnsub1 für die dynamische Additions-/Subtraktionssteuerung zu verwenden.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 47

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP-generierter Parameter

Wert

Registrieren Sie den Eingang „addnsub1“.

gui_addnsub_ Ein multiplier_reg Aus ister1

Was ist die Quelle für den Takteingang?

gui_addnsub_ multiplier_register1_clock

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_addnsub_multiplier_aclr 1

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_addnsub_multiplier_sclr 1

KEINE SCLR0 SCLR1

Welche Operation sollte an den Ausgängen des zweiten Multiplikatorpaars durchgeführt werden?

gui_multiplier 3_Richtung

ADD, SUB, VARIABLE

Registrieren Sie den Eingang „addnsub3“.

gui_addnsub_ Ein multiplier_reg Aus ister3

Was ist die Quelle für den Takteingang?

gui_addnsub_ multiplier_register3_clock

Uhr0 Uhr1 Uhr2

Standardwert
Aus Uhr0 KEINE KEINE ADD
Aus Uhr0

Beschreibung
Wenn der VARIABLE-Wert ausgewählt ist: · Treiben Sie das Addnsub1-Signal auf High für
Additionsoperation. · Treiben Sie das addnsub1-Signal auf niedrig für
Subtraktionsoperation. Sie müssen mehr als zwei Multiplikatoren auswählen, um diesen Parameter zu aktivieren.
Wählen Sie diese Option aus, um das Eingangsregister für den Anschluss addnsub1 zu aktivieren. Sie müssen VARIABLE für Welche Operation an den Ausgängen des ersten Multiplikatorpaars durchgeführt werden soll auswählen, um diesen Parameter zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Eingangstaktsignal für das Register „addnsub1“ anzugeben. Sie müssen Eingang „addnsub1“ registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Löschquelle für das Addnsub1-Register an. Sie müssen Eingang „addnsub1“ registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das Addnsub1-Register an. Sie müssen Eingang „addnsub1“ registrieren auswählen, um diesen Parameter zu aktivieren.
Wählen Sie die Additions- oder Subtraktionsoperation aus, die für die Ausgänge zwischen dem dritten und vierten Multiplikator durchgeführt werden soll. · Wählen Sie ADD, um die Addition durchzuführen
Betrieb. · Wählen Sie SUB, um eine Subtraktion durchzuführen
Betrieb. · Wählen Sie VARIABLE, um addnsub1 zu verwenden
Anschluss für dynamische Additions-/Subtraktionssteuerung. Wenn der Wert VARIABLE ausgewählt ist: · Treiben Sie das Signal addnsub1 auf High für Additionsoperation. · Addnsub1-Signal für Subtraktionsoperation auf Low treiben. Sie müssen den Wert 4 für Wie viele Multiplikatoren auswählen? um diesen Parameter zu aktivieren.
Wählen Sie diese Option, um das Eingangsregister für das addnsub3-Signal zu aktivieren. Sie müssen VARIABLE für Welche Operation an den Ausgängen des zweiten Multiplikatorpaars durchgeführt werden soll auswählen, um diesen Parameter zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Eingangstaktsignal für das Register „addnsub3“ anzugeben. Sie müssen Eingang „addnsub3“ registrieren auswählen, um diesen Parameter zu aktivieren.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 48

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Was ist die Quelle für die asynchrone Clear-Eingabe?

IP-generierter Parameter

Wert

gui_addnsub_multiplier_aclr 3

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_addnsub_multiplier_sclr 3

KEINE SCLR0 SCLR1

Polarität `use_subadd' aktivieren

gui_use_subn Ein

hinzufügen

Aus

8.6.3. Registerkarte „Multiplikatoren“.

Tabelle 32. Registerkarte „Multiplikatoren“.

Parameter

IP-generierter Parameter

Wert

Was ist der

gui_represent

Darstellungsformat ation_a

für Multiplikatoren A-Eingänge?

SIGNIERT, UNSIGNED, VARIABLE

Registrieren Sie den `signa'-Eingang

gui_register_s Ein

igna

Aus

Was ist die Quelle für den Takteingang?

gui_register_s igna_clock

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_register_s igna_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_register_s igna_sclr

KEINE SCLR0 SCLR1

Was ist der

gui_represent

Darstellungsformat ation_b

für Multiplikatoren B-Eingänge?

SIGNIERT, UNSIGNED, VARIABLE

Registrieren Sie die `signb'-Eingabe

gui_register_s Ein

ignb

Aus

Standardwert NONE
KEINER

Beschreibung
Gibt die asynchrone Löschquelle für das Addnsub3-Register an. Sie müssen Eingang „addnsub3“ registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das Addnsub3-Register an. Sie müssen Eingang „addnsub3“ registrieren auswählen, um diesen Parameter zu aktivieren.

Aus

Wählen Sie diese Option, um die Funktion umzukehren

des addnsub-Eingangsports.

Treiben Sie addnsub für eine Subtraktionsoperation auf hoch.

Addnsub für Additionsoperation auf Low setzen.

Standardwert

Beschreibung

UNSIGNED Geben Sie das Darstellungsformat für den Eingang des Multiplikators A an.

Aus

Wählen Sie diese Option, um Signa zu aktivieren

registrieren.

Sie müssen den VARIABLE-Wert für Was ist das Darstellungsformat für Eingänge von Multiplikatoren A auswählen? Parameter, um diese Option zu aktivieren.

Uhr0

Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Eingangstaktsignal für das Signa-Register zu aktivieren und festzulegen.
Sie müssen „Signaleingang registrieren“ auswählen, um diesen Parameter zu aktivieren.

KEINER

Gibt die asynchrone Löschquelle für das Signa-Register an.
Sie müssen „Signaleingang registrieren“ auswählen, um diesen Parameter zu aktivieren.

KEINER

Gibt die synchrone Löschquelle für das Signa-Register an.
Sie müssen „Signaleingang registrieren“ auswählen, um diesen Parameter zu aktivieren.

UNSIGNED Geben Sie das Darstellungsformat für den Eingang des Multiplikators B an.

Aus

Wählen Sie diese Option aus, um signb zu aktivieren

registrieren.

Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 49

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP-generierter Parameter

Wert

Standardwert

Was ist die Quelle für den Takteingang?

gui_register_s ignb_clock

Uhr0 Uhr1 Uhr2

Uhr0

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_register_s ignb_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_register_s ignb_sclr

KEINE SCLR0 SCLR1

Eingangskonfiguration
Registereingang A des Multiplikators
Was ist die Quelle für den Takteingang?

gui_input_reg Ein

ister_a

Aus

gui_input_register_a_clock

Uhr0 Uhr1 Uhr2

KEIN KEINER
Aus Uhr0

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_input_register_a_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_input_register_a_sclr

KEINE SCLR0 SCLR1

Registereingang B des Multiplikators
Was ist die Quelle für den Takteingang?

gui_input_reg Ein

ister_b

Aus

gui_input_register_b_clock

Uhr0 Uhr1 Uhr2

KEINE KEINE Aus Uhr0

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_input_register_b_aclr

KEINE ACLR0 ACLR1

KEINER

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_input_register_b_sclr

KEINE SCLR0 SCLR1

KEINER

Womit ist der Eingang A des Multiplikators verbunden?

gui_multiplier Multiplikator input Multiplikator

_a_eingabe

Eingang Scan-Kette Eingang

Beschreibung
Sie müssen den VARIABLE-Wert für Was ist das Darstellungsformat für Multiplikatoren B-Eingänge auswählen? Parameter, um diese Option zu aktivieren.
Wählen Sie Clock0 , Clock1 oder Clock2 aus, um das Eingangstaktsignal für das signb-Register zu aktivieren und festzulegen. Sie müssen „signb“-Eingabe registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Löschquelle für das signb-Register an. Sie müssen „signb“-Eingabe registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das signb-Register an. Sie müssen „signb“-Eingabe registrieren auswählen, um diesen Parameter zu aktivieren.
Wählen Sie diese Option, um das Eingangsregister für den Dateneingangsbus zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Registereingangstaktsignal für den Dateneingangsbus zu aktivieren und festzulegen. Sie müssen Eingang A des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Löschquelle des Registers für den Dateneingangsbus an. Sie müssen Eingang A des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die registersynchrone Löschquelle für den Dataa-Eingangsbus an. Sie müssen Eingang A des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Wählen Sie diese Option, um das Eingangsregister für den Datab-Eingangsbus zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Registereingangstaktsignal für den Datab-Eingangsbus zu aktivieren und festzulegen. Sie müssen Eingang B des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Löschquelle des Registers für den datab-Eingangsbus an. Sie müssen Eingang B des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die registersynchrone Löschquelle für den datab-Eingangsbus an. Sie müssen Eingang B des Multiplikators registrieren auswählen, um diesen Parameter zu aktivieren.
Wählen Sie die Eingangsquelle für Eingang A des Multiplikators.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 50

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP-generierter Parameter

Wert

Scannen Sie eine Registerkonfiguration

Ausgabe der Scan-Kette registrieren

gui_scanouta Ein

_registrieren

Aus

Was ist die Quelle für den Takteingang?

gui_scanouta _register_cloc k

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_scanouta _register_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_scanouta _register_sclr

KEINE SCLR0 SCLR1

8.6.4. Preadder-Registerkarte

Tabelle 33. Preadder-Registerkarte

Parameter

IP-generierter Parameter

Wert

Preadder-Modus auswählen

preadder_mo de

EINFACH, COEF, EINGABE, QUADRAT, KONSTANTE

Standardwert

Beschreibung
Wählen Sie Multiplikatoreingang, um den Datena-Eingangsbus als Quelle für den Multiplikator zu verwenden. Wählen Sie Scan Chain Input, um den Scan-In-Eingangsbus als Quelle für den Multiplikator zu verwenden und den Scan-Out-Ausgangsbus zu aktivieren. Dieser Parameter ist verfügbar, wenn Sie 2, 3 oder 4 für What is the number of multipliers? Parameter.

Aus Uhr0 KEINE KEINE

Wählen Sie diese Option, um das Ausgangsregister für den Scanouta-Ausgangsbus zu aktivieren.
Sie müssen Scan-Ketteneingang für Womit ist der Eingang A des Multiplikators verbunden auswählen? Parameter, um diese Option zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Registereingangstaktsignal für den Scanouta-Ausgangsbus zu aktivieren und festzulegen.
Sie müssen Ausgang des Scan-Kettenparameters registrieren aktivieren, um diese Option zu aktivieren.
Gibt die asynchrone Löschquelle des Registers für den Scanouta-Ausgangsbus an.
Sie müssen Ausgang des Scan-Kettenparameters registrieren aktivieren, um diese Option zu aktivieren.
Gibt die registersynchrone Löschquelle für den Scanouta-Ausgangsbus an.
Sie müssen Ausgang des Scan-Kettenparameters registrieren auswählen, um diese Option zu aktivieren.

Standardwert
EINFACH

Beschreibung
Gibt den Betriebsmodus für das Preadder-Modul an. SIMPLE: Dieser Modus umgeht den Preadder. Dies ist der Standardmodus. COEF: Dieser Modus verwendet die Ausgabe des Voraddierers und des Coefsel-Eingangsbusses als Eingaben für den Multiplizierer. INPUT: Dieser Modus verwendet den Ausgang des Preaddierers und des Datac-Eingangsbusses als Eingänge für den Multiplizierer. SQUARE: Dieser Modus verwendet den Ausgang des Preaddierers als beide Eingänge zum Multiplikator.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 51

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP-generierter Parameter

Wert

Preadder-Richtung auswählen

gui_preadder HINZUFÜGEN,

_Richtung

Untertitel

Wie breit sollten die C width_c Eingangsbusse sein?

1 – 256

Konfiguration des Daten-C-Eingangsregisters

Dateneingang registrieren

gui_datac_inp Ein

ut_register

Aus

Was ist die Quelle für den Takteingang?

gui_datac_inp ut_register_clock

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_datac_input_register_a clr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_datac_input_register_sc lr

KEINE SCLR0 SCLR1

Koeffizienten
Wie breit sollte die Coef-Breite sein?

width_coef

1 – 27

Konfiguration des Coef-Registers

Registrieren Sie den Coefsel-Eingang

gui_coef_regi Ein

ster

Aus

Was ist die Quelle für den Takteingang?

gui_coef_registr_clock

Uhr0 Uhr1 Uhr2

Standardwert
HINZUFÜGEN
16

Beschreibung
CONSTANT: Dieser Modus verwendet einen Datena-Eingangsbus mit umgangenem Voraddierer und einen Coefsel-Eingangsbus als Eingänge zum Multiplizierer.
Gibt den Betrieb des Preadders an. Um diesen Parameter zu aktivieren, wählen Sie Folgendes für Select preadder mode: · COEF · INPUT · SQUARE oder · CONSTANT
Gibt die Anzahl der Bits für den C-Eingangsbus an. Sie müssen INPUT für Select preadder mode auswählen, um diesen Parameter zu aktivieren.

Auf Uhr0 KEINE KEINE

Wählen Sie diese Option, um das Eingangsregister für den Dateneingangsbus zu aktivieren. Sie müssen INPUT auf den Parameter Select preadder mode setzen, um diese Option zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Eingangstaktsignal für das Datac-Eingangsregister anzugeben. Sie müssen Dateneingang registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die asynchrone Löschquelle für das Datac-Eingangsregister an. Sie müssen Dateneingang registrieren auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das Datac-Eingangsregister an. Sie müssen Dateneingang registrieren auswählen, um diesen Parameter zu aktivieren.

18

Gibt die Anzahl der Bits für an

Coefsel-Eingangsbus.

Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.

Auf Uhr0

Wählen Sie diese Option, um das Eingangsregister für den Coefsel-Eingangsbus zu aktivieren. Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.
Wählen Sie „Clock0“, „Clock1“ oder „Clock2“, um das Eingangstaktsignal für das Coefsel-Eingangsregister anzugeben. Sie müssen Register the coefsel input auswählen, um diesen Parameter zu aktivieren.
Fortsetzung…

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 52

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Was ist die Quelle für die asynchrone Clear-Eingabe?

IP-generierter Parameter

Wert

gui_coef_registr_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_coef_registr_sclr

KEINE SCLR0 SCLR1

Koeffizient_0 Konfiguration

coef0_0 bis coef0_7

0x00000 0xFFFFFFF

Koeffizient_1 Konfiguration

coef1_0 bis coef1_7

0x00000 0xFFFFFFF

Koeffizient_2 Konfiguration

coef2_0 bis coef2_7

0x00000 0xFFFFFFF

Koeffizient_3 Konfiguration

coef3_0 bis coef3_7

0x00000 0xFFFFFFF

8.6.5. Registerkarte „Akkumulator“.

Tabelle 34. Akkumulator-Registerkarte

Parameter

IP-generierter Parameter

Wert

Akku aktivieren?

Akkumulator

JA NEIN

Was ist die Akkubetriebsart?

accum_directi HINZUFÜGEN,

on

Untertitel

Standardwert NONE
KEINER
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0

Beschreibung
Gibt die asynchrone Löschquelle für das Coefsel-Eingaberegister an. Sie müssen Register the coefsel input auswählen, um diesen Parameter zu aktivieren.
Gibt die synchrone Löschquelle für das Coefsel-Eingangsregister an. Sie müssen Register the coefsel input auswählen, um diesen Parameter zu aktivieren.
Gibt die Koeffizientenwerte für diesen ersten Multiplikator an. Die Anzahl der Bits muss gleich sein wie unter Wie breit soll die Coef-Breite sein? Parameter. Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.
Gibt die Koeffizientenwerte für diesen zweiten Multiplikator an. Die Anzahl der Bits muss gleich sein wie unter Wie breit soll die Coef-Breite sein? Parameter. Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.
Gibt die Koeffizientenwerte für diesen dritten Multiplikator an. Die Anzahl der Bits muss gleich sein wie unter Wie breit soll die Coef-Breite sein? Parameter. Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.
Gibt die Koeffizientenwerte für diesen vierten Multiplikator an. Die Anzahl der Bits muss gleich sein wie unter Wie breit soll die Coef-Breite sein? Parameter. Sie müssen COEF oder CONSTANT für den Preadder-Modus auswählen, um diesen Parameter zu aktivieren.

Standardwert NEIN
HINZUFÜGEN

Beschreibung
Wählen Sie JA, um den Akkumulator zu aktivieren. Sie müssen Ausgang der Addiereinheit registrieren auswählen, wenn Sie die Akkumulatorfunktion verwenden.
Gibt die Operation des Akkumulators an: · ADD für Additionsoperation · SUB für Subtraktionsoperation. Sie müssen JA für Akkumulator aktivieren? auswählen. Parameter, um diese Option zu aktivieren.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 53

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Preload Constant Aktiviert die Vorladekonstante

IP-generierter Parameter

Wert

gui_ena_prelo Ein

ad_const

Aus

Womit ist der Eingang des Akkumulationsanschlusses verbunden?

gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM

Wert für Vorspannung loadconst_val 0 – 64 auswählen

Konstante

ue

Was ist die Quelle für den Takteingang?

gui_accum_sl oad_register_clock

Uhr0 Uhr1 Uhr2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_accum_sl oad_register_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_accum_sl oad_register_sclr

KEINE SCLR0 SCLR1

Doppelakku aktivieren

gui_double_a Ein

cum

Aus

Standardwert

Beschreibung

Aus

Aktivieren Sie accum_sload oder

sload_accum-Signale und Registereingang

um den Eingang dynamisch auszuwählen

Akkumulator.

Wenn accum_sload niedrig oder sload_accum ist, wird der Multiplikatorausgang in den Akkumulator eingespeist.

Wenn accum_sload hoch ist oder sload_accum, wird eine benutzerdefinierte Vorladekonstante in den Akkumulator eingespeist.

Sie müssen JA für Akkumulator aktivieren? auswählen. Parameter, um diese Option zu aktivieren.

ACCUM_SL OAD

Gibt das Verhalten des Signals accum_sload/ sload_accum an.
ACCUM_SLOAD: Treibe accum_sload auf Low, um den Multiplikatorausgang in den Akkumulator zu laden.
SLOAD_ACCUM: Treibe sload_accum hoch, um den Multiplikatorausgang in den Akkumulator zu laden.
Sie müssen die Option Enable preload constant auswählen, um diesen Parameter zu aktivieren.

64

Geben Sie den voreingestellten konstanten Wert an.

Dieser Wert kann 2N sein, wobei N der voreingestellte konstante Wert ist.

Wenn N = 64, repräsentiert es eine konstante Null.

Sie müssen die Option Enable preload constant auswählen, um diesen Parameter zu aktivieren.

Uhr0

Wählen Sie Clock0, Clock1 oder Clock2, um das Eingangstaktsignal für das accum_sload/sload_accum-Register anzugeben.
Sie müssen die Option Enable preload constant auswählen, um diesen Parameter zu aktivieren.

KEINER

Gibt die asynchrone Löschquelle für das accum_sload/sload_accum-Register an.
Sie müssen die Option Enable preload constant auswählen, um diesen Parameter zu aktivieren.

KEINER

Gibt die synchrone Löschquelle für das accum_sload/sload_accum-Register an.
Sie müssen die Option Enable preload constant auswählen, um diesen Parameter zu aktivieren.

Aus

Aktiviert das doppelte Akkumulatorregister.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 54

Feedback senden

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6.6. Systolisch/Chainout-Registerkarte

Tabelle 35. Registerkarte „Systolischer/Chainout-Addierer“.

Parameter Chainout-Addierer aktivieren

IP-generierter Parameter

Wert

chainout_add JA,

er

NEIN

Was ist der Operationstyp des Chainout-Addierers?

chainout_add HINZUFÜGEN,

er_richtung

Untertitel

„Negieren“-Eingabe für Chainout-Addierer aktivieren?

Port_negieren

PORT_BENUTZT, PORT_UNBENUTZT

Eintrag `negieren' registrieren? negate_regist er

NICHT REGISTRIERT, UHR0, UHR1, UHR2, UHR3

Was ist die Quelle für die asynchrone Clear-Eingabe?

negieren_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

negieren_sclr

KEINE SCLR0 SCLR1

Systolische Verzögerung
Systolische Verzögerungsregister aktivieren

gui_systolisch_d Ein

elay

Aus

Was ist die Quelle für den Takteingang?

gui_systolisch_d CLOCK0,

elay_clock

UHR1,

Standardwert
NEIN

Beschreibung
Wählen Sie JA, um das Chainout-Adder-Modul zu aktivieren.

HINZUFÜGEN

Gibt die Chainout-Addierer-Operation an.
Für Subtraktionsoperationen muss SIGNED für Was ist das Darstellungsformat für Eingänge von Multiplikatoren A ausgewählt werden? und Was ist das Darstellungsformat für Eingaben von Multiplikatoren B? auf der Registerkarte „Multiplikatoren“.

PORT_UN VERWENDET

Wählen Sie PORT_USED, um das negierte Eingangssignal zu aktivieren.
Dieser Parameter ist ungültig, wenn der Chainout-Addierer deaktiviert ist.

REGISTRIERUNG ERED

Aktiviert das Eingangsregister für negierte Eingangssignale und gibt das Eingangstaktsignal für negierte Register an.
Wählen Sie UNREGISTERED, wenn das negierte Eingangsregister nicht benötigt wird
Dieser Parameter ist ungültig, wenn Sie Folgendes auswählen:
· NEIN für Verkettungsaddierer aktivieren oder
· PORT_UNUSED für „negierten“ Eingang für Chainout-Addierer aktivieren? Parameter bzw

KEINER

Gibt die asynchrone Löschquelle für das Negationsregister an.
Dieser Parameter ist ungültig, wenn Sie Folgendes auswählen:
· NEIN für Verkettungsaddierer aktivieren oder
· PORT_UNUSED für „negierten“ Eingang für Chainout-Addierer aktivieren? Parameter bzw

KEINER

Gibt die synchrone Löschquelle für das Negationsregister an.
Dieser Parameter ist ungültig, wenn Sie Folgendes auswählen:
· NEIN für Verkettungsaddierer aktivieren oder
· PORT_UNUSED für „negierten“ Eingang für Chainout-Addierer aktivieren? Parameter bzw

Aus CLOCK0

Wählen Sie diese Option, um den systolischen Modus zu aktivieren. Dieser Parameter ist verfügbar, wenn Sie 2 oder 4 für Wie viele Multiplikatoren? Parameter. Sie müssen den Registerausgang der Addiereinheit aktivieren, um die systolischen Verzögerungsregister verwenden zu können.
Gibt das Eingangstaktsignal für das systolische Verzögerungsregister an.
Fortsetzung…

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 55

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP-generierter Parameter

Wert

UHR2,

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_systolisch_d elay_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_systolisch_d elay_sclr

KEINE SCLR0 SCLR1

Standardwert
KEINER
KEINER

Beschreibung
Sie müssen Systolische Verzögerungsregister aktivieren auswählen, um diese Option zu aktivieren.
Gibt die asynchrone Löschquelle für das systolische Verzögerungsregister an. Sie müssen Systolische Verzögerungsregister aktivieren auswählen, um diese Option zu aktivieren.
Gibt die synchrone Löschquelle für das systolische Verzögerungsregister an. Sie müssen Systolische Verzögerungsregister aktivieren auswählen, um diese Option zu aktivieren.

8.6.7. Registerkarte „Pipeline“.

Tabelle 36. Registerkarte „Pipeline“.

Parameter-Pipeline-Konfiguration

IP-generierter Parameter

Wert

Möchten Sie der Eingabe ein Pipeline-Register hinzufügen?

gui_pipelining Nein, ja

Standardwert
NEIN

Bitte geben Sie den

Latenz

Anzahl der Latenzzeiten

Zyklen

Jeder Wert größer 0 als 0

Was ist die Quelle für den Takteingang?

gui_input_late ncy_clock

UHR0, UHR1, UHR2

Was ist die Quelle für die asynchrone Clear-Eingabe?

gui_input_late ncy_aclr

KEINE ACLR0 ACLR1

Was ist die Quelle für die synchrone Clear-Eingabe?

gui_input_late ncy_sclr

KEINE SCLR0 SCLR1

CLOCK0 KEINE KEINE

Beschreibung
Wählen Sie Ja, um eine zusätzliche Ebene des Pipeline-Registers für die Eingangssignale zu aktivieren. Für den Parameter Bitte geben Sie die Anzahl der Latenztaktzyklen an müssen Sie einen Wert größer 0 angeben.
Gibt die gewünschte Latenz in Taktzyklen an. Eine Ebene des Pipeline-Registers = 1 Latenz im Taktzyklus. Sie müssen YES für Do you want to add pipe register to the input? auswählen. um diese Option zu aktivieren.
Wählen Sie Clock0 , Clock1 oder Clock2 aus, um das Eingangstaktsignal des Pipeline-Registers zu aktivieren und festzulegen. Sie müssen YES für Do you want to add pipe register to the input? auswählen. um diese Option zu aktivieren.
Gibt die asynchrone Registerlöschquelle für das zusätzliche Pipelineregister an. Sie müssen YES für Do you want to add pipe register to the input? auswählen. um diese Option zu aktivieren.
Gibt die registersynchrone Löschquelle für das zusätzliche Pipelineregister an. Sie müssen YES für Do you want to add pipe register to the input? auswählen. um diese Option zu aktivieren.

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 56

Feedback senden

683490 | 2020.10.05 Feedback senden

9. ALTMEMMULT (speicherbasierter konstanter Koeffizientenmultiplikator) IP Core

Aufmerksamkeit:

Intel hat die Unterstützung dieser IP in Intel Quartus Prime Pro Edition Version 20.3 entfernt. Wenn der IP-Core in Ihrem Design auf Geräte in der Intel Quartus Prime Pro Edition abzielt, können Sie die IP durch LPM_MULT Intel FPGA IP ersetzen oder die IP neu generieren und Ihr Design mit der Intel Quartus Prime Standard Edition-Software kompilieren.

Der ALTMEMMULT-IP-Core wird verwendet, um speicherbasierte Multiplikatoren zu erstellen, indem die in Intel FPGAs (mit M512-, M4K-, M9K- und MLAB-Speicherblöcken) enthaltenen Onchip-Speicherblöcke verwendet werden. Dieser IP-Kern ist nützlich, wenn Sie nicht über ausreichende Ressourcen verfügen, um die Multiplikatoren in Logikelementen (LEs) oder dedizierten Multiplikatorressourcen zu implementieren.
Der ALTMEMMULT-IP-Kern ist eine synchrone Funktion, die einen Takt benötigt. Der ALTMEMMULT-IP-Kern implementiert einen Multiplikator mit dem kleinstmöglichen Durchsatz und der kleinsten Latenzzeit für einen gegebenen Satz von Parametern und Spezifikationen.
Die folgende Abbildung zeigt die Ports für den ALTMEMMULT-IP-Core.

Abbildung 21. ALTMEMMULT-Ports

ALTMEMMULT

data_in[] sload_data coeff_in[]

result[] result_valid load_done

sload_coeff

sclr Uhr
inst

Zugehörige Informationen Funktionen auf Seite 71

9.1. Funktionen
Der ALTMEMMULT IP-Kern bietet die folgenden Merkmale: · Erzeugt nur speicherbasierte Multiplikatoren unter Verwendung von On-Chip-Speicherblöcken, die in gefunden werden
Intel FPGAs · Unterstützt Datenbreite von 1 Bit · Unterstützt vorzeichenbehaftetes und vorzeichenloses Datendarstellungsformat · Unterstützt Pipelining mit fester Ausgangslatenz

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. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

ISO 9001: 2015 registriert

9. ALTMEMMULT (speicherbasierter Multiplikator für konstante Koeffizienten) IP Core 683490 | 2020.10.05
· Speichert mehrere Konstanten im Direktzugriffsspeicher (RAM)
· Bietet eine Option zur Auswahl des RAM-Blocktyps
· Unterstützt optionale synchrone Clear- und Load-Control-Eingangsports
9.2. Verilog HDL-Prototyp
Der folgende Verilog-HDL-Prototyp befindet sich im Verilog-Design File (.v) altera_mf.v im eda-Syntheseverzeichnis.
Modul altmemmult #( Parameter coeff_representation = „SIGNED“, Parameterefficient0 = „UNUSED“, Parameter data_representation = „SIGNED“, Parameter beabsichtigte_Gerätefamilie = „unused“, Parameter max_clock_cycles_per_result = 1, Parameter number_of_coefficients = 1, Parameter ram_block_type = „AUTO“, Parameter total_latency = 1, parameter width_c = 1, parameter width_d = 1, parameter width_r = 1, parameter width_s = 1, parameter lpm_type = „altmemmult“, parameter lpm_hint = „unused“) (input wire clock, input wire [width_c-1: 0]coeff_in, Eingangsleitung [width_d-1:0] data_in, Ausgangsleitung load_done, Ausgangsleitung [width_r-1:0] result, Ausgangsleitung result_valid, Eingangsleitung sclr, Eingangsleitung [width_s-1:0] sel, input Leitung sload_coeff, Eingabeleitung sload_data)/* Synthese syn_black_box=1 */; Endmodul
9.3. VHDL-Komponentendeklaration
Die VHDL-Komponentendeklaration befindet sich im VHDL-Design File (.vhd) altera_mf_components.vhd im Librariesvhdlaltera_mf-Verzeichnis.
Komponente altmemmult generisch ( coeff_representation:string := „SIGNED“; coeff_representation:string := „UNUSED“; data_representation:string := „SIGNED“; beabsichtigte_gerätefamilie:string := „unused“; max_clock_cycles_per_result:natural := 0; number_of_coefficients:natural := 1; ram_block_type:string := „AUTO“; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := „UNUSED“; lpm_type:string := „altmemmult“); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 1) := (others => '0'); data_in:in std_logic_vector(width_d-0 downto 1);

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 58

Feedback senden

9. ALTMEMMULT (speicherbasierter Multiplikator für konstante Koeffizienten) IP Core 683490 | 2020.10.05

load_done:out std_logic; Ergebnis: out std_logic_vector (width_r-1 bis 0); result_valid:out std_logic; sclr:in std_logik := '0'; sel:in std_logic_vector(width_s-1 downto 0) := (others => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); Endkomponente;

9.4. Häfen

Die folgenden Tabellen listen die Eingabe- und Ausgabeports für den ALTMEMMULT-IP-Core auf.

Tabelle 37. ALTMEMMULT-Eingabeports

Anschlussname

Erforderlich

Beschreibung

Uhr

Ja

Takteingang zum Multiplikator.

coeff_in[]

NEIN

Koeffizienteneingangsport für den Multiplikator. Die Größe des Eingangsports hängt vom WIDTH_C-Parameterwert ab.

Daten in[]

Ja

Dateneingangsport zum Multiplikator. Die Größe des Eingangsports hängt vom WIDTH_D-Parameterwert ab.

sclr

NEIN

Synchrone Clear-Eingabe. Wenn es nicht verwendet wird, ist der Standardwert aktiv hoch.

sel[]

NEIN

Feste Koeffizientenauswahl. Die Größe des Eingangsports hängt von WIDTH_S ab

Parameterwert.

sload_coeff

NEIN

Eingangsanschluss für synchronen Lastkoeffizienten. Ersetzt den aktuell ausgewählten Koeffizientenwert durch den in der Eingabe coeff_in angegebenen Wert.

sload_data

NEIN

Eingangsport für synchrone Ladedaten. Signal, das eine neue Multiplikationsoperation angibt und jede bestehende Multiplikationsoperation löscht. Wenn der Parameter MAX_CLOCK_CYCLES_PER_RESULT den Wert 1 hat, wird der Eingabeport sload_data ignoriert.

Tabelle 38. ALTMEMMULT-Ausgabeports

Anschlussname

Erforderlich

Beschreibung

Ergebnis[]

Ja

Multiplikator-Ausgangsport. Die Größe des Eingangsports hängt vom WIDTH_R-Parameterwert ab.

result_valid

Ja

Gibt an, wann die Ausgabe das gültige Ergebnis einer vollständigen Multiplikation ist. Wenn der Parameter MAX_CLOCK_CYCLES_PER_RESULT den Wert 1 hat, wird der Ausgabeport result_valid nicht verwendet.

laden_fertig

NEIN

Zeigt an, wann der neue Koeffizient geladen wurde. Das Signal load_done wird aktiviert, wenn ein neuer Koeffizient das Laden beendet hat. Solange das Signal load_done nicht hoch ist, kann kein anderer Koeffizientenwert in den Speicher geladen werden.

9.5. Parameter

Die folgende Tabelle listet die Parameter für den ALTMEMMULT-IP-Kern auf.

Tabelle 39.
BREITE_D BREITE_C

ALTMEMMULT-Parameter
Parametername

Typ Erforderlich

Beschreibung

Ganzzahl Ja

Gibt die Breite des data_in[]-Ports an.

Ganzzahl Ja

Gibt die Breite des Ports coeff_in[] an. weiter …

Feedback senden

Intel FPGA Integer Arithmetic IP Cores – Benutzerhandbuch 59

9. ALTMEMMULT (speicherbasierter Multiplikator für konstante Koeffizienten) IP Core 683490 | 2020.10.05

Parametername BREITE_R BREITE

Dokumente / Ressourcen

Intel FPGA Integer Arithmetic IP Cores [pdf] Benutzerhandbuch
FPGA Ganzzahlige arithmetische IP-Kerne, Ganzzahlige arithmetische IP-Kerne, Arithmetische IP-Kerne, IP-Kerne

Verweise

Hinterlasse einen Kommentar

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