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 |