FPGA heltal aritmetiske IP-kerner
Intel FPGA Integer Arithmetic IP Cores Brugervejledning
Opdateret til Intel® Quartus® Prime Design Suite: 20.3
Onlineversion Send feedback
UG-01063
ID: 683490 Version: 2020.10.05
Indhold
Indhold
1. Intel FPGA Integer Arithmetic IP Cores……………………………………………………………………….. 5
2. LPM_COUNTER (tæller) IP-kerne……………………………………………………………………………….. 7 2.1. Funktioner………………………………………………………………………………………………………………7 2.2. Verilog HDL-prototype……………………………………………………………………………………….. 8 2.3. VHDL-komponenterklæring……………………………………………………………………………….8 2.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………… 9 2.5. Havne………………………………………………………………………………………………………………………..9 2.6. Parametre……………………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divider) Intel FPGA IP Core……………………………………………………………………….. 12 3.1. Funktioner………………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototype……………………………………………………………………………………… 12 3.3. VHDL-komponenterklæring………………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 13 3.5. Havne……………………………………………………………………………………………………………… 13 3.6. Parametre……………………………………………………………………………………………………………… 14
4. LPM_MULT (Multiplier) IP Core………………………………………………………………………………………. 16 4.1. Funktioner………………………………………………………………………………………………………. 16 4.2. Verilog HDL-prototype……………………………………………………………………………… 17 4.3. VHDL-komponenterklæring………………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 17 4.5. Signaler………………………………………………………………………………………………………… 18 4.6. Parametre for Stratix V-, Arria V-, Cyclone V- og Intel Cyclone 10 LP-enheder………………… 18 4.6.1. Fanebladet Generelt…………………………………………………………………………………………18 4.6.2. Generelt 2 Fane……………………………………………………………………………………… 19 4.6.3. Rørledningsfane……………………………………………………………………………………… 19 4.7. Parametre for Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheder……….. 20 4.7.1. Fanen Generelt…………………………………………………………………………………………20 4.7.2. Generelt 2 Fane……………………………………………………………………………………… 20 4.7.3. Rørledninger………………………………………………………………………………………………………21
5. LPM_ADD_SUB (Adder/Subtraktor)………………………………………………………………………………… 22 5.1. Funktioner………………………………………………………………………………………………………. 22 5.2. Verilog HDL-prototype……………………………………………………………………………………… 23 5.3. VHDL-komponenterklæring………………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 23 5.5. Havne……………………………………………………………………………………………………………… 23 5.6. Parametre……………………………………………………………………………………………………………… 24
6. LPM_COMPARE (Komparator)………………………………………………………………………………… 26 6.1. Funktioner………………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototype……………………………………………………………………………………… 27 6.3. VHDL-komponenterklæring………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 27 6.5. Havne……………………………………………………………………………………………………………… 27 6.6. Parametre……………………………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 2
Send feedback
Indhold
7. ALTECC (Fejlkorrektionskode: Encoder/Decoder) IP Core………………………………………… 30
7.1. ALTECC-koderfunktioner…………………………………………………………………………………..31 7.2. Verilog HDL-prototype (ALTECC_ENCODER)…………………………………………………………. 32 7.3. Verilog HDL-prototype (ALTECC_DECODER) …………………………………………………………………. 32 7.4. VHDL-komponenterklæring (ALTECC_ENCODER)…………………………………………………33 7.5. VHDL-komponenterklæring (ALTECC_DECODER)…………………………………………………33 7.6. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 33 7.7. Encoderporte……………………………………………………………………………………………………… 33 7.8. Dekoderporte………………………………………………………………………………………………………34 7.9. Encoder parametre……………………………………………………………………………………… 34 7.10. Dekoderparametre ……………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………. 36
8.1. Funktioner………………………………………………………………………………………………………. 37 8.1.1. Foradder……………………………………………………………………………………….. 38 8.1.2. Systolisk forsinkelsesregister……………………………………………………………………….. 40 8.1.3. Forbelastningskonstant……………………………………………………………………………… 43 8.1.4. Dobbelt akkumulator……………………………………………………………………………… 43
8.2. Verilog HDL-prototype……………………………………………………………………………… 44 8.3. VHDL-komponenterklæring………………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………. 44 8.5. Signaler………………………………………………………………………………………………………… 44 8.6. Parametre……………………………………………………………………………………………………………… 47
8.6.1. Fanen Generelt…………………………………………………………………………………………47 8.6.2. Fanen Ekstra tilstande………………………………………………………………………………….. 47 8.6.3. Multiplikatorfane……………………………………………………………………………………….. 49 8.6.4. Forlæserfane………………………………………………………………………………………. 51 8.6.5. Akkumulatorfane………………………………………………………………………………….. 53 8.6.6. Systolisk/Kæde-fane…………………………………………………………………………. 55 8.6.7. Rørledningsfane……………………………………………………………………………………… 56
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core………………………… 57
9.1. Funktioner………………………………………………………………………………………………………. 57 9.2. Verilog HDL-prototype……………………………………………………………………………… 58 9.3. VHDL-komponenterklæring………………………………………………………………………….. 58 9.4. Havne……………………………………………………………………………………………………………… 59 9.5. Parametre……………………………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiply-Accumulate) IP Core……………………………………………………… 61
10.1. Funktioner……………………………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototype………………………………………………………………………………………………..62 10.3. VHDL-komponenterklæring………………………………………………………………………… 63 10.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………63 10.5. Havne………………………………………………………………………………………………………. 63 10.6. Parametre………………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiply-Adder) IP Core…………………………………………………………………..69
11.1. Funktioner……………………………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototype………………………………………………………………………………………………..72 11.3. VHDL-komponenterklæring………………………………………………………………………… 72 11.4. VHDL LIBRARY_USE-erklæring………………………………………………………………………………72
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 3
Indhold
11.5. Havne………………………………………………………………………………………………………. 72 11.6. Parametre………………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (kompleks multiplikator) IP-kerne……………………………………………………… 86 12.1. Kompleks multiplikation………………………………………………………………………………………. 86 12.2. Kanonisk fremstilling………………………………………………………………………………… 87 12.3. Konventionel repræsentation …………………………………………………………………………………. 87 12.4. Funktioner……………………………………………………………………………………………………………….. 88 12.5. Verilog HDL-prototype………………………………………………………………………………………..88 12.6. VHDL-komponenterklæring………………………………………………………………………… 89 12.7. VHDL LIBRARY_USE Erklæring………………………………………………………………………………89 12.8. Signaler………………………………………………………………………………………………………. 89 12.9. Parametre………………………………………………………………………………………………………. 90
13. ALTSQRT (heltals kvadratrod) IP-kerne…………………………………………………………………………92 13.1. Funktioner……………………………………………………………………………………………………………….. 92 13.2. Verilog HDL-prototype…………………………………………………………………………………………..92 13.3. VHDL-komponenterklæring………………………………………………………………………… 93 13.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………93 13.5. Havne………………………………………………………………………………………………………. 93 13.6. Parametre………………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Parallel Adder) IP Core………………………………………………………………….. 95 14.1. Funktion……………………………………………………………………………………………………….95 14.2. Verilog HDL-prototype…………………………………………………………………………………………..95 14.3. VHDL-komponenterklæring………………………………………………………………………… 96 14.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………96 14.5. Havne………………………………………………………………………………………………………. 96 14.6. Parametre………………………………………………………………………………………………………. 97
15. Integer Aritmetic IP Cores Brugervejledning Dokumentarkiver………………………………… 98
16. Dokumentrevisionshistorik for Intel FPGA Integer Arithmetic IP Cores Brugervejledning…. 99
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 4
Send feedback
683490 | 2020.10.05 Send feedback
1. Intel FPGA Integer Arithmetic IP Cores
Du kan bruge Intel® FPGA heltals IP-kerner til at udføre matematiske operationer i dit design.
Disse funktioner tilbyder mere effektiv logiksyntese og enhedsimplementering end at kode dine egne funktioner. Du kan tilpasse IP-kernerne til at imødekomme dine designkrav.
Intel heltals aritmetiske IP-kerner er opdelt i følgende to kategorier: · Bibliotek af parameteriserede moduler (LPM) IP-kerner · Intel-specifikke (ALT) IP-kerner
Følgende tabel viser de heltals aritmetiske IP-kerner.
Tabel 1.
Liste over IP-kerner
IP-kerner
LPM IP-kerner
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Intel-specifikke (ALT) IP-kerner ALTECC
Funktion overview tæller divider multiplikator
Adder- eller subtraktionskomparator
ECC Encoder/Decoder
Understøttet enhed
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 fortsat...
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
1. Intel FPGA Integer Arithmetic IP Cores 683490 | 2020.10.05
IP Cores Intel FPGA Multiply Adder eller ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD
Funktion overview Multiplikator-Adder
Hukommelsesbaseret Constant Coefficient Multiplikator
Multiplikator-akkumulator Multiplikator-adder
Kompleks multiplikator
Heltal kvadratrod
Parallel Adder
Understøttet enhed
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
Relateret information
· Intel FPGA'er og programmerbare enheder Release Notes
· Introduktion til Intel FPGA IP Cores Giver flere oplysninger om Intel FPGA IP Cores.
· Floating-Point IP Cores User Guide Giver flere oplysninger om Intel FPGA Floating-Point IP-kerner.
· Introduktion til Intel FPGA IP-kerner Giver generel information om alle Intel FPGA IP-kerner, herunder parametrisering, generering, opgradering og simulering af IP-kerner.
· Oprettelse af versionsuafhængige IP- og Qsys-simuleringsscripts Opret simuleringsscripts, der ikke kræver manuelle opdateringer til software- eller IP-versionsopgraderinger.
· Retningslinjer for bedste praksis for projektledelse for effektiv styring og portabilitet af dit projekt og IP files.
· Integer Arithmetic IP Cores Brugervejledning Dokumentarkiver på side 98 Indeholder en liste over brugervejledninger til tidligere versioner af Integer Arithmetic IP-kernerne.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 6
Send feedback
683490 | 2020.10.05 Send feedback
2. LPM_COUNTER (tæller) IP-kerne
Figur 1.
LPM_COUNTER IP-kernen er en binær tæller, der skaber op-tællere, nedtællere og op- eller nedtællere med udgange på op til 256 bit brede.
Følgende figur viser portene til LPM_COUNTER IP-kernen.
LPM_COUNTER porte
LPM_COUNTER
ssclr belastning sset data[]
q[]
op ned
cout
aclr aload asset
clk_en cnt_en cin
inst
2.1. Funktioner
LPM_COUNTER IP-kernen tilbyder følgende funktioner: · Genererer op-, ned- og op-/nedtællere · Genererer følgende tællertyper:
— Almindelig binær – tælleren stiger fra nul eller falder fra 255
— Modulus – tælleren stiger til eller falder fra den modulværdi, der er angivet af brugeren, og gentages
· Understøtter valgfrie synkrone clear-, load- og set-inputporte · Understøtter valgfri asynkrone clear-, load- og set-inputporte · Understøtter valgfri tælleaktivering og uraktiveringsporte · Understøtter valgfri carry-in og carry-out porte
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
2. LPM_COUNTER (tæller) IP-kerne
683490 | 2020.10.05
2.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul lpm_counter (q, data, ur, 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 = "UBRUGT"; parameter lpm_avalue = "UBRUGT"; parameter lpm_svalue = "UBRUGT"; parameter lpm_pvalue = "UBRUGT"; parameter lpm_port_updown = "PORT_CONNECTIVITY"; parameter lpm_hint = "UBRUGT"; output [lpm_width-1:0] q; output cout; output [15:0] eq; input cin; input [lpm_width-1:0] data; input ur, clk_en, cnt_en, updown; input aset, aclr, aload; input sset, sclr, sload; slutmodul
2.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm bibliotek.
komponent LPM_COUNTER generisk ( LPM_WIDTH : naturlig; LPM_MODULUS : naturlig := 0; LPM_DIRECTION : streng := "UNUSED"; LPM_AVALUE : streng := "UNUSED"; LPM_SVALUE : streng := "UNUSED"; LPM_PORTITY:_CONTIN_PORT:_CONT: ; LPM_PVALUE : streng := "UNUSED"; LPM_TYPE port (DATA: i std_logic_vector(LPM_WIDTH-1 ned til 0):= (ANDRE =>
'0'); CLOCK: i std_logic; CLK_DA : i std_logic := '1'; CNT_DA : i std_logic := '1'; UPDOWN: i std_logic:= '1'; SLOAD : i std_logic := '0'; SSET : i std_logic := '0'; SCLR : i std_logic := '0'; ALOAD : i std_logic := '0'; ASET : i std_logic := '0'; ACLR : i std_logic := '0'; CIN : i std_logic := '1'; COUT : out std_logic := '0'; Q: ud std_logic_vector(LPM_WIDTH-1 ned til 0); EQ: ud std_logic_vector(15 ned til 0));
ende komponent;
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 8
Send feedback
2. LPM_COUNTER (tæller) IP Core 683490 | 2020.10.05
2.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
BIBLIOTEK lpm; BRUG lpm.lpm_components.all;
2.5. Havne
Følgende tabeller viser input- og outputportene for LPM_COUNTER IP-kernen.
Tabel 2.
LPM_COUNTER indgangsporte
Port navn
Påkrævet
Beskrivelse
data[]
Ingen
Parallel datainput til tælleren. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTH.
ur
Ja
Positiv-flank-udløst ur-input.
clk_da
Ingen
Ur aktivere input for at aktivere alle synkrone aktiviteter. Hvis den udelades, er standardværdien 1.
cnt_da
Ingen
Tæll aktivér input for at deaktivere tællingen, når den hævdes lav uden at påvirke belastning, sset eller sclr. Hvis den udelades, er standardværdien 1.
op ned
Ingen
Styrer tællingens retning. Når den hævdes høj (1), er tælleretningen op, og når den hævdes lav (0), er tælleretningen ned. Hvis parameteren LPM_DIRECTION bruges, kan updown-porten ikke tilsluttes. Hvis LPM_DIRECTION ikke bruges, er updown-porten valgfri. Hvis den udelades, er standardværdien op (1).
cin
Ingen
Bær ind til den laveste bit. For optællere er opførselen af cin-inputtet
identisk med opførselen af cnt_en-inputtet. Hvis den udelades, er standardværdien 1
(VCC).
aclr
Ingen
Asynkron klar input. Hvis både aset og aclr bruges og hævdes, tilsidesætter aclr aset. Hvis den udelades, er standardværdien 0 (deaktiveret).
asset
Ingen
Asynkron sæt input. Specificerer q[]-output som alle 1'ere eller til den værdi, der er angivet af parameteren LPM_AVALUE. Hvis både aset- og aclr-portene bruges og hævdes, tilsidesætter værdien af aclr-porten værdien af asset-porten. Hvis den udelades, er standardværdien 0, deaktiveret.
masser
Ingen
Asynkron belastningsinput, der asynkront indlæser tælleren med værdien på datainputtet. Når aload-porten bruges, skal data[]-porten tilsluttes. Hvis den udelades, er standardværdien 0, deaktiveret.
sclr
Ingen
Synkron clear input, der rydder tælleren på den næste aktive urkant. Hvis både sset- og sclr-portene bruges og hævdes, tilsidesætter værdien af sclr-porten værdien af sset-porten. Hvis den udelades, er standardværdien 0, deaktiveret.
sset
Ingen
Synkron sæt input, der sætter tælleren på den næste aktive urkant. Angiver værdien af q-output som alle 1'ere eller til den værdi, der er angivet af parameteren LPM_SVALUE. Hvis både sset- og sclr-portene bruges og hævdes,
værdien af sclr-porten tilsidesætter værdien af sset-porten. Hvis den udelades, er standardværdien 0 (deaktiveret).
belastning
Ingen
Synkron belastningsinput, der indlæser tælleren med data[] på den næste aktive urflanke. Når sload-porten bruges, skal data[]-porten tilsluttes. Hvis den udelades, er standardværdien 0 (deaktiveret).
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 9
2. LPM_COUNTER (tæller) IP Core 683490 | 2020.10.05
Tabel 3.
LPM_COUNTER udgangsporte
Port navn
Påkrævet
Beskrivelse
q[]
Ingen
Dataoutput fra tælleren. Størrelsen på udgangsporten afhænger af
LPM_WIDTH parameterværdi. Enten q[] eller mindst én af eq[15..0]-portene
skal tilsluttes.
eq[15..0]
Ingen
Counter decode output. eq[15..0]-porten er ikke tilgængelig i parametereditoren, fordi parameteren kun understøtter AHDL.
Enten q[]-porten eller eq[]-porten skal være tilsluttet. Op til c eq-porte kan bruges (0 <= c <= 15). Kun de 16 laveste tælleværdier afkodes. Når tælleværdien er c, hævdes eqc-outputtet højt (1). F.eksample, når tællingen er 0, eq0 = 1, når tællingen er 1, eq1 = 1, og når tællingen er 15, eq 15 = 1. Dekodet output for tælleværdier på 16 eller højere kræver ekstern dekodning. eq[15..0]-udgangene er asynkrone med q[]-udgangene.
cout
Ingen
Udfør port af tællerens MSB bit. Den kan bruges til at forbinde til en anden tæller for at skabe en større tæller.
2.6. Parametre
Følgende tabel viser parametrene for LPM_COUNTER IP-kernen.
Tabel 4.
LPM_COUNTER parametre
Parameternavn
Type
LPM_WIDTH
Heltal
LPM_DIRECTION
Snor
LPM_MODULUS LPM_AVALUE
Heltal
Heltal/streng
LPM_SVALUE LPM_TIP
Heltal/streng
Snor
LPM_TYPE
Snor
Påkrævet Ja Nej Nej Nej
Nej Nej
Ingen
Beskrivelse
Angiver bredden af data[]- og q[]-portene, hvis de bruges.
Værdierne er OP, NED og UBRUGT. Hvis parameteren LPM_DIRECTION bruges, kan updown-porten ikke tilsluttes. Når updown-porten ikke er tilsluttet, er LPM_DIRECTION-parameterens standardværdi OP.
Det maksimale antal plus én. Antal unikke tilstande i tællerens cyklus. Hvis belastningsværdien er større end parameteren LPM_MODULUS, er tællerens opførsel ikke specificeret.
Konstant værdi, der indlæses, når aktiv er hævdet høj. Hvis den angivne værdi er større end eller lig med , tællerens opførsel er et udefineret (X) logisk niveau, hvor er LPM_MODULUS, hvis den findes, eller 2 ^ LPM_WIDTH. Intel anbefaler, at du angiver denne værdi som et decimaltal for AHDL-designs.
Konstant værdi, der indlæses på den stigende kant af urporten, når sset-porten hævdes høj. Intel anbefaler, at du angiver denne værdi som et decimaltal for AHDL-designs.
Når du instansierer et bibliotek af parameteriserede moduler (LPM) funktion i et VHDL-design File (.vhd), skal du bruge parameteren LPM_HINT til at angive en Intel-specifik parameter. F.eksample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
Standardværdien er UBRUG.
Identificerer biblioteket af parameteriserede moduler (LPM) enhedsnavn i VHDL-design files.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 10
Send feedback
2. LPM_COUNTER (tæller) IP Core 683490 | 2020.10.05
Parameternavn INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Skriv String String
Snor
Snor
Påkrævet Nej Nr
Ingen
Ingen
Beskrivelse
Denne parameter bruges til modellering og adfærdssimulering. Denne parameter bruges til modellering og adfærdssimulering. Parametereditoren beregner værdien for denne parameter.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren CARRY_CNT_EN i VHDL-design files. Værdierne er SMART, ON, OFF og UNUSED. Aktiverer LPM_COUNTER-funktionen til at udbrede cnt_en-signalet gennem bærekæden. I nogle tilfælde kan parameterindstillingen CARRY_CNT_EN have en lille indvirkning på hastigheden, så du vil måske slå den fra. Standardværdien er SMART, som giver den bedste afvejning mellem størrelse og hastighed.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren LABWIDE_SCLR i VHDL-design files. Værdierne er TIL, FRA eller UBRUGTE. Standardværdien er ON. Giver dig mulighed for at deaktivere brugen af LABwide sclr-funktionen, der findes i forældede enhedsfamilier. Deaktivering af denne mulighed øger chancerne for fuldt ud at bruge de delvist fyldte LAB'er og kan derfor tillade højere logisk tæthed, når SCLR ikke gælder for en komplet LAB. Denne parameter er tilgængelig for bagudkompatibilitet, og Intel anbefaler, at du ikke bruger denne parameter.
Angiver brugen af updown-inputporten. Hvis den udelades, er standardværdien PORT_CONNECTIVITY. Når portværdien er sat til PORT_USED, behandles porten som brugt. Når portværdien er sat til PORT_UNUSED, behandles porten som ubrugt. Når portværdien er indstillet til PORT_CONNECTIVITY, bestemmes portforbruget ved at kontrollere portforbindelsen.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 11
683490 | 2020.10.05 Send feedback
3. LPM_DIVIDE (Divider) Intel FPGA IP Core
Figur 2.
LPM_DIVIDE Intel FPGA IP-kernen implementerer en divider til at dividere en tællerinputværdi med en nævnerindgangsværdi for at producere en kvotient og en rest.
Følgende figur viser portene til LPM_DIVIDE IP-kernen.
LPM_DIVIDE-porte
LPM_DIVIDE
tal[] denom[] ur
kvotient[] forbliver[]
clken aclr
inst
3.1. Funktioner
LPM_DIVIDE IP-kernen tilbyder følgende funktioner: · Genererer en divider, der dividerer en tællerinputværdi med en nævnerindgang
værdi for at producere en kvotient og en rest. · Understøtter databredde på 1 bit. · Understøtter signerede og usignerede datarepræsentationsformater for både tælleren
og nævnerværdier. · Understøtter område- eller hastighedsoptimering. · Giver mulighed for at angive et positivt restoutput. · Understøtter pipelining konfigurerbar output latency. · Understøtter valgfrie asynkrone clear- og uraktiverede porte.
3.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul lpm_divide (kvotient, forbliv, tal, denom, ur, clken, 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 rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
parameter lpm_hint = "UBRUGT"; input ur; input clken; input aclr; indtast [lpm_widthn-1:0] tal; input [lpm_widthd-1:0] denom; output [lpm_widthn-1:0] kvotient; output [lpm_widthd-1:0] forbliver; slutmodul
3.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm bibliotek.
komponent LPM_DIVIDE generisk (LPM_WIDTHN: naturlig; LPM_WIDTHD: naturlig;
LPM_NREPRESENTATION : string := “UNSIGNED”; LPM_DREPRESENTATION : string := “UNSIGNED”; LPM_PIPELINE : naturlig := 0; LPM_TYPE : streng := L_DIVIDE; LPM_HINT : string := “UNUSED”); port (NUMER: i std_logic_vector(LPM_WIDTHN-1 ned til 0); DENOM: i std_logic_vector(LPM_WIDTHD-1 ned til 0); ACLR: i std_logic:= '0'; CLOCK: i std_logic:= '0'; std_logic: := '1'; QUOTIENT: ud std_logic_vector(LPM_WIDTHN-1 ned til 0 REMAIN: ud std_logic_vector(LPM_WIDTHD-1 ned til 0)); ende komponent;
3.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
BIBLIOTEK lpm; BRUG lpm.lpm_components.all;
3.5. Havne
Følgende tabeller viser input- og outputportene for LPM_DIVIDE IP-kernen.
Tabel 5.
LPM_DIVIDE Indgangsporte
Port navn
Påkrævet
nummer[]
Ja
betegnelse[]
Ja
Beskrivelse
Indtastning af tællerdata. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTHN.
Indtastning af nævnerdata. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTHD.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 13
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Port Navn ur clken
aclr
Påkrævet Nej Nr
Ingen
Beskrivelse
Urindgang til pipelinet brug. For andre LPM_PIPELINE-værdier end 0 (standard), skal urporten være aktiveret.
Ur aktiverer pipelinet brug. Når clken-porten hævdes høj, finder divisionsoperationen sted. Når signalet er lavt, sker der ingen betjening. Hvis den udelades, er standardværdien 1.
Asynkron clear port bruges til enhver tid til at nulstille rørledningen til alle '0'er asynkront med urindgangen.
Tabel 6.
LPM_DIVIDE udgangsporte
Port navn
Påkrævet
Beskrivelse
kvotient[]
Ja
Dataoutput. Størrelsen på outputporten afhænger af LPM_WIDTHN
parameterværdi.
forblive[]
Ja
Dataoutput. Størrelsen på outputporten afhænger af LPM_WIDTHD
parameterværdi.
3.6. Parametre
Følgende tabel viser parametrene for LPM_DIVIDE Intel FPGA IP-kernen.
Parameternavn
Type
Påkrævet
Beskrivelse
LPM_WIDTHN
Heltal
Ja
Angiver bredden af tallet[] og
kvotient[] porte. Værdierne er 1 til 64.
LPM_WIDTHD
Heltal
Ja
Specificerer bredden af betegnelsen[] og
forblive[] porte. Værdierne er 1 til 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
String String
Ingen
Tegnrepræsentation af tællerinput.
Værdier er SIGNEREDE og USIGNEREDE. Når dette
parameter er indstillet til SIGNED, divideren
fortolker tallet[]-input som to-tegn
komplement.
Ingen
Tegnrepræsentation af nævnerens input.
Værdier er SIGNEREDE og USIGNEREDE. Når dette
parameter er indstillet til SIGNED, divideren
fortolker denom[]-inputtet som to-tegn
komplement.
LPM_TYPE
Snor
Ingen
Identificerer biblioteket af parametriserede
moduler (LPM) enhedsnavn i VHDL-design
files (.vhd).
LPM_TIP
Snor
Ingen
Når du instansierer et bibliotek af
parameteriserede moduler (LPM) fungerer i en
VHDL design File (.vhd), skal du bruge
LPM_HINT parameter til at specificere en Intel-
specifik parameter. F.eksample: LPM_HINT
= "CHAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = JA” Den
standardværdien er UBRUG.
LPM_REMAINDERPOSITIVE
Snor
Ingen
Intel-specifik parameter. Du skal bruge
LPM_HINT parameter for at specificere
LPM_REMAINDERPOSITIVE parameter i
VHDL design files. Værdier er SAND eller FALSK.
Hvis denne parameter er sat til TRUE, så
værdien af den resterende[] port skal være større
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 14
Send feedback
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Parameternavn
Type
MAXIMIZE_SPEED
Heltal
LPM_PIPELINE
Heltal
INTENDED_DEVICE_FAMILY SKIP_BITS
Streng heltal
Påkrævet nr
Nej Nej Nej
Beskrivelse
end eller lig med nul. Hvis denne parameter er sat til TRUE, så er værdien af rest[]-porten enten nul, eller værdien er det samme fortegn, enten positivt eller negativt, som værdien af numer-porten. For at reducere arealet og forbedre hastigheden anbefaler Intel at indstille denne parameter til TRUE i operationer, hvor resten skal være positiv, eller hvor resten er ligegyldig.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren MAXIMIZE_SPEED i VHDL-design files. Værdierne er [0..9]. Hvis den bruges, forsøger Intel Quartus Prime-softwaren at optimere en specifik forekomst af LPM_DIVIDE-funktionen for hastighed frem for routabilitet, og tilsidesætter indstillingen af logikindstillingen for Optimeringsteknik. Hvis MAXIMIZE_SPEED ikke bruges, bruges værdien af indstillingen Optimeringsteknik i stedet. Hvis værdien af MAXIMIZE_SPEED er 6 eller højere, optimerer compileren LPM_DIVIDE IP-kernen til højere hastighed ved at bruge bærekæder; hvis værdien er 5 eller mindre, implementerer compileren designet uden bærekæder.
Specificerer antallet af clock-cyklusser med latens, der er knyttet til kvotienten[] og resterende[] output. En værdi på nul (0) angiver, at der ikke eksisterer nogen latens, og at en rent kombinationsfunktion er instantieret. Hvis den udelades, er standardværdien 0 (ikke-pipelinet). Du kan ikke angive en værdi for parameteren LPM_PIPELINE, der er højere end LPM_WIDTHN.
Denne parameter bruges til modellering og adfærdssimulering. Parametereditoren beregner værdien for denne parameter.
Giver mulighed for mere effektiv fraktioneret bitdeling for at optimere logikken på de førende bits ved at angive antallet af førende GND til LPM_DIVIDE IP-kernen. Angiv antallet af indledende GND på kvotientudgangen til denne parameter.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 15
683490 | 2020.10.05 Send feedback
4. LPM_MULT (Multiplier) IP-kerne
Figur 3.
LPM_MULT IP-kernen implementerer en multiplikator til at multiplicere to inputdataværdier for at producere et produkt som et output.
Følgende figur viser portene til LPM_MULT IP-kernen.
LPM_Mult Ports
LPM_MULT ur dataa[] resultat[] datab[] aclr/sclr clken
inst
Relaterede informationsfunktioner på side 71
4.1. Funktioner
LPM_MULT IP-kernen tilbyder følgende funktioner: · Genererer en multiplikator, der multiplicerer to inputdataværdier · Understøtter databredde på 1 bit · Understøtter signerede og usignerede datarepræsentationsformater · Understøtter område- eller hastighedsoptimering · Understøtter pipelining med konfigurerbar output latency · Giver en mulighed for implementering i dedikeret digital signalbehandling (DSP)
blokkredsløb eller logiske elementer (LE'er) Bemærk: Når der bygges multiplikatorer, der er større end den oprindeligt understøttede størrelse, kan der/
vil være en præstationspåvirkning som følge af kaskaden af DSP-blokkene. · Understøtter valgfri asynkron clear og clock-aktiverede inputporte · Understøtter valgfri synkron clear til Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheder
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
4.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul lpm_mult (resultat, 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 = "UBRUGT"; input ur; input clken; input aclr; input [lpm_widtha-1:0] dataa; input [lpm_widthb-1:0] data; input [lpm_widths-1:0] sum; output [lpm_widthp-1:0] resultat; slutmodul
4.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm bibliotek.
komponent LPM_MULT generisk ( LPM_WIDTHA : naturlig; LPM_WIDTHB : naturlig; LPM_WIDTHS : naturlig := 1; LPM_WIDTHP : naturlig;
LPM_REPRESENTATION : string := “UNSIGNED”; LPM_PIPELINE : naturlig := 0; LPM_TYPE: streng := L_MULT; LPM_HINT : string := “UNUSED”); port (DATAA: i std_logic_vector(LPM_WIDTHA-1 ned til 0); DATAB: i std_logic_vector(LPM_WIDTHB-1 ned til 0); ACLR: i std_logic:= '0'; CLOCK: i std_logic:= '0 i'; std_logic: := '1'; SUM: in std_logic_vector(LPM_WIDTHS-1 ned til 0) := (ANDRE => '0' RESULTAT: ud std_logic_vector(LPM_WIDTHP-1 ned til 0)); ende komponent;
4.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
BIBLIOTEK lpm; BRUG lpm.lpm_components.all;
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 17
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
4.5. Signaler
Tabel 7.
LPM_MULT Indgangssignaler
Signal navn
Påkrævet
Beskrivelse
dataa[]
Ja
Data input.
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheder afhænger størrelsen af inputsignalet af Dataa-breddeparameterværdien.
For ældre og Intel Cyclone 10 LP-enheder afhænger størrelsen af inputsignalet af LPM_WIDTHA-parameterværdien.
datab[]
Ja
Data input.
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheder afhænger størrelsen af inputsignalet af parameterværdien for Databbredde.
For ældre og Intel Cyclone 10 LP-enheder afhænger størrelsen af inputsignalet
på parameterværdien LPM_WIDTHB.
ur
Ingen
Urindgang til pipelinet brug.
For ældre og Intel Cyclone 10 LP-enheder skal ursignalet være aktiveret for andre LPM_PIPELINE-værdier end 0 (standard).
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheder skal ursignalet være aktiveret, hvis Latency-værdien er en anden end 1 (standard).
clken
Ingen
Ur aktiveret til pipelinet brug. Når clken-signalet hævdes højt, vil
adder-/subtraktordrift finder sted. Når signalet er lavt, ingen betjening
forekommer. Hvis den udelades, er standardværdien 1.
aclr sclr
Ingen
Asynkront klarsignal bruges til enhver tid til at nulstille rørledningen til alle 0'er,
asynkront med ursignalet. Pipelinen initialiseres til et udefineret (X)
logisk niveau. Udgangene er en ensartet, men ikke-nul værdi.
Ingen
Synkront klarsignal bruges til enhver tid til at nulstille rørledningen til alle 0'er,
synkront med ursignalet. Pipelinen initialiseres til et udefineret (X)
logisk niveau. Udgangene er en ensartet, men ikke-nul værdi.
Tabel 8.
LPM_MULT Udgangssignaler
signal Navn
Påkrævet
Beskrivelse
resultat[]
Ja
Dataoutput.
For ældre og Intel Cyclone 10 LP-enheder afhænger størrelsen af udgangssignalet af parameterværdien LPM_WIDTHP. Hvis LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) eller (LPM_WIDTHA + LPM_WIDTHS), er kun LPM_WIDTHP MSB'erne til stede.
For Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX afhænger størrelsen af udgangssignalerne af parameteren Resultatbredde.
4.6. Parametre for Stratix V, Arria V, Cyclone V og Intel Cyclone 10 LP-enheder
4.6.1. Generelt Faneblad
Tabel 9.
Generelt Faneblad
Parameter
Værdi
Multiplikatorkonfiguration
Multiplicer 'dataa' input med 'datab' input
Standardværdi
Beskrivelse
Multiplicer 'dataa' input med 'datab' input
Vælg den ønskede konfiguration for multiplikatoren.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 18
Send feedback
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Hvor bred skal 'dataa'-inputtet være? Hvor bred skal 'datab'-inputtet være? Hvordan skal bredden af 'resultat'-output bestemmes? Begræns bredden
Værdi
Multiplicer 'dataa'-input af sig selv (squaring operation)
1 – 256 bit
Standardværdi
Beskrivelse
8 bits
Angiv bredden på dataa[]-porten.
1 – 256 bit
8 bits
Angiv bredden af dataab[]-porten.
Beregn automatisk bredden Begræns bredden
1 – 512 bit
Beregn automatisk bredden
Vælg den ønskede metode til at bestemme bredden af resultat[]-porten.
16 bits
Angiv bredden på resultat[]-porten.
Denne værdi vil kun være effektiv, hvis du vælger Begræns bredden i parameteren Type.
4.6.2. Generelt 2 Tab
Tabel 10. Generelt 2 Tab
Parameter
Værdi
Datainput
Har 'datab'-inputbussen en konstant værdi?
Nej Ja
Multiplikationstype
Hvilken type
Usigneret
multiplikation vil du have? Underskrevet
Implementering
Hvilken multiplikatorimplementering skal bruges?
Brug standardimplementeringen
Brug det dedikerede multiplikatorkredsløb (ikke tilgængelig for alle familier)
Brug logiske elementer
Standardværdi
Beskrivelse
Ingen
Vælg Ja for at angive den konstante værdi af
'datab' input bus, hvis nogen.
Usigneret
Angiv repræsentationsformatet for både dataa[] og datab[] input.
Brug standardimplementeringen
Vælg den ønskede metode til at bestemme bredden af resultat[]-porten.
4.6.3. Rørledningsfane
Tabel 11. Rørføring Tab
Parameter
Ønsker du at pipeline nr
fungere?
Ja
Værdi
Opret en 'aclr'
—
asynkron klar port
Standardværdi
Beskrivelse
Ingen
Vælg Ja for at aktivere pipeline-registret til
multiplikatorens output og angiv det ønskede
output latens i clock cyklus. Aktivering af
pipeline register tilføjer ekstra latenstid til
produktion.
Ikke markeret
Vælg denne mulighed for at aktivere aclr-porten til at bruge asynkron clear for pipeline-registret.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 19
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Opret et 'clken' ur aktiveret ur
Optimering
Hvilken type optimering ønsker du?
Værdi -
Standard hastighedsområde
Standardværdi
Beskrivelse
Ikke markeret
Angiver aktiv høj clock-aktivering for clock-porten i pipeline-registret
Misligholdelse
Angiv den ønskede optimering for IP-kernen.
Vælg Standard for at lade Intel Quartus Prime-software bestemme den bedste optimering for IP-kernen.
4.7. Parametre for Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheder
4.7.1. Generelt Faneblad
Tabel 12. Generelt Tab
Parameter
Værdi
Standardværdi
Beskrivelse
Multiplikatorkonfigurationstype
Dataportbredder
Multiplicer 'dataa' input med 'datab' input
Multiplicer 'dataa'-input af sig selv (squaring operation)
Multiplicer 'dataa' input med 'datab' input
Vælg den ønskede konfiguration for multiplikatoren.
Data en bredde
1 – 256 bit
8 bits
Angiv bredden på dataa[]-porten.
Datab bredde
1 – 256 bit
8 bits
Angiv bredden af dataab[]-porten.
Hvordan skal bredden af 'resultat'-output bestemmes?
Type
Beregn automatisk bredden
Begræns bredden
Beregn automatisk bredden
Vælg den ønskede metode til at bestemme bredden af resultat[]-porten.
Værdi
1 – 512 bit
16 bits
Angiv bredden på resultat[]-porten.
Denne værdi vil kun være effektiv, hvis du vælger Begræns bredden i parameteren Type.
Resultatbredde
1 – 512 bit
—
Viser den effektive bredde af resultat[]-porten.
4.7.2. Generelt 2 Tab
Tabel 13. Generelt 2 Tab
Parameter
Datainput
Har 'datab'-inputbussen en konstant værdi?
Nej Ja
Værdi
Standardværdi
Beskrivelse
Ingen
Vælg Ja for at angive den konstante værdi af
'datab' input bus, hvis nogen.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 20
Send feedback
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Værdi
Værdi
Enhver værdi større end 0
Multiplikationstype
Hvilken type
Usigneret
multiplikation vil du have? Underskrevet
Implementeringsstil
Hvilken multiplikatorimplementering skal bruges?
Brug standardimplementeringen
Brug det dedikerede multiplikatorkredsløb
Brug logiske elementer
Standardværdi
Beskrivelse
0
Angiv den konstante værdi af dataab[]-porten.
Usigneret
Angiv repræsentationsformatet for både dataa[] og datab[] input.
Brug standardimplementeringen
Vælg den ønskede metode til at bestemme bredden af resultat[]-porten.
4.7.3. Rørføring
Tabel 14. Rørføring Tab
Parameter
Værdi
Vil du pipeline funktionen?
Rørledning
Nej Ja
Latency Clear Signal Type
Enhver værdi større end 0.
INGEN ACLR SCLR
Opret et 'clken'-ur
—
aktivere ur
Hvilken type optimering ønsker du?
Type
Standard hastighedsområde
Standardværdi
Beskrivelse
Nr 1 INGEN
—
Vælg Ja for at aktivere pipelineregister til multiplikatorens output. Aktivering af pipelineregisteret tilføjer ekstra latens til outputtet.
Angiv den ønskede outputlatens i clock-cyklus.
Angiv typen af nulstilling for pipelineregisteret. Vælg INGEN, hvis du ikke bruger noget pipelineregister. Vælg ACLR for at bruge asynkron sletning til pipelineregisteret. Dette vil generere ACLR-port. Vælg SCLR for at bruge synkron sletning til pipelineregisteret. Dette vil generere SCLR-port.
Angiver aktiv høj clock-aktivering for clock-porten i pipeline-registret
Misligholdelse
Angiv den ønskede optimering for IP-kernen.
Vælg Standard for at lade Intel Quartus Prime-software bestemme den bedste optimering for IP-kernen.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 21
683490 | 2020.10.05 Send feedback
5. LPM_ADD_SUB (adder/subtraktor)
Figur 4.
LPM_ADD_SUB IP-kernen giver dig mulighed for at implementere en adderer eller en subtraktor for at tilføje eller subtrahere datasæt for at producere et output, der indeholder summen eller forskellen af inputværdierne.
Følgende figur viser portene til LPM_ADD_SUB IP-kernen.
LPM_ADD_SUB-porte
LPM_ADD_SUB add_sub cin
dataa[]
ur clken datab[] aclr
resultat[] overløb cout
inst
5.1. Funktioner
LPM_ADD_SUB IP-kernen tilbyder følgende funktioner: · Genererer adder, subtraktor og dynamisk konfigurerbar adder/subtraktor
funktioner. · Understøtter databredde på 1 bit. · Understøtter datarepræsentationsformat såsom signeret og usigneret. · Understøtter valgfri carry-in (udlån), asynkron clear og uraktivering
indgangsporte. · Understøtter valgfri carry-out (lån-ind) og overløb udgangsporte. · Tildeler en af inputdatabusserne til en konstant. · Understøtter pipelining med konfigurerbar output latency.
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
5. LPM_ADD_SUB (Adder/Subtraktor) 683490 | 2020.10.05
5.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul lpm_add_sub (resultat, cout, overløb, add_sub, cin, dataa, datab, ur, clken, aclr ); parameter lpm_type = "lpm_add_sub"; parameter lpm_width = 1; parameter lpm_direction = "UBRUGT"; parameter lpm_representation = "SIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UBRUGT"; input [lpm_width-1:0] dataa, datab; input add_sub, cin; input ur; input clken; input aclr; output [lpm_width-1:0] resultat; output cout, overløb; slutmodul
5.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm bibliotek.
komponent LPM_ADD_SUB generisk (LPM_WIDTH: naturlig;
LPM_DIRECTION : string := “UBRUGT”; LPM_REPRESENTATION: string := "SIGNED"; LPM_PIPELINE : naturlig := 0; LPM_TYPE : streng := L_ADD_SUB; LPM_HINT : string := “UNUSED”); port (DATAA: i std_logic_vector(LPM_WIDTH-1 ned til 0); DATAB: i std_logic_vector(LPM_WIDTH-1 ned til 0); ACLR: i std_logic:= '0'; CLOCK: i std_logic:= '0'; std_logic: := '1'; CIN : in std_logic : = ' ADD_SUB : in std_logic : = ' 1' ende komponent;
5.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
BIBLIOTEK lpm; BRUG lpm.lpm_components.all;
5.5. Havne
Følgende tabeller viser input- og outputportene for LPM_ADD_SUB IP-kernen.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 23
5. LPM_ADD_SUB (Adder/Subtraktor) 683490 | 2020.10.05
Tabel 15. LPM_ADD_SUB IP-kerneinputporte
Port navn
Påkrævet
Beskrivelse
cin
Ingen
Bær ind til den laveste bit. For additionsoperationer er standardværdien 0. For
subtraktionsoperationer, er standardværdien 1.
dataa[]
Ja
Data input. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTH.
datab[]
Ja
Data input. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTH.
add_sub
Ingen
Valgfri indgangsport for at muliggøre dynamisk skift mellem adderer og subtraktor
funktioner. Hvis parameteren LPM_DIRECTION bruges, kan add_sub ikke bruges. Hvis
udeladt, er standardværdien ADD. Intel anbefaler, at du bruger
LPM_DIRECTION parameter for at specificere driften af funktionen LPM_ADD_SUB,
i stedet for at tildele en konstant til add_sub-porten.
ur
Ingen
Input til pipelinet brug. Urporten giver urindgangen til en pipelinet
operation. For andre LPM_PIPELINE-værdier end 0 (standard), skal urporten være
aktiveret.
clken
Ingen
Ur aktiveret til pipelinet brug. Når clken-porten hævdes høj, tilføjer/
subtraktionsdrift finder sted. Når signalet er lavt, sker der ingen betjening. Hvis
udeladt, er standardværdien 1.
aclr
Ingen
Asynkron klar til brug i pipeline. Pipelinen initialiseres til et udefineret (X)
logisk niveau. aclr-porten kan bruges til enhver tid til at nulstille rørledningen til alle 0'er,
asynkront med ursignalet.
Tabel 16. LPM_ADD_SUB IP-kerneudgangsporte
Port navn
Påkrævet
Beskrivelse
resultat[]
Ja
Dataoutput. Størrelsen på outputporten afhænger af parameteren LPM_WIDTH
værdi.
cout
Ingen
Udførelse (indlån) af den mest signifikante bit (MSB). Cout-porten har en fysisk
fortolkning som udførelse (låneindlån) af MSB. Cout-porten registrerer
overløb i USIGNEREDE operationer. Cout-porten fungerer på samme måde for
SIGNEREDE og USIGNEREDE operationer.
flyde over
Ingen
Valgfri overløbsundtagelsesudgang. Overløbsporten har en fysisk fortolkning som
XOR for indførslen til MSB'en med udførelsen af MSB'en. Overløbsporten
hævder, når resultaterne overstiger den tilgængelige præcision, og bruges kun, når
LPM_REPRESENTATION parameterværdi er SIGNET.
5.6. Parametre
Følgende tabel viser LPM_ADD_SUB IP-kerneparametrene.
Tabel 17. LPM_ADD_SUB IP-kerneparametre
Parameternavn LPM_WIDTH
Indtast heltal
Påkrævet Ja
Beskrivelse
Angiver bredden af dataa[], datab[] og resultat[]-portene.
LPM_DIRECTION
Snor
Ingen
Værdier er ADD, SUB og UNUSED. Hvis den udelades, er standardværdien DEFAULT, som leder parameteren til at tage dens værdi fra add_sub-porten. Add_sub-porten kan ikke bruges, hvis LPM_DIRECTION bruges. Intel anbefaler, at du bruger parameteren LPM_DIRECTION til at angive funktionen af LPM_ADD_SUB-funktionen i stedet for at tildele en konstant til add_sub-porten.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 24
Send feedback
5. LPM_ADD_SUB (Adder/Subtraktor) 683490 | 2020.10.05
Parameternavn LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Type String Integer String String String Integer
Snor
Påkrævet Nej Nej Nej Nej Nej Nej
Ingen
Beskrivelse
Specificerer den udførte tilføjelsestype. Værdier er SIGNEREDE og USIGNEREDE. Hvis den udelades, er standardværdien SIGNED. Når denne parameter er sat til SIGNED, fortolker addereren/subtraktoren datainputtet som fortegns to's komplement.
Angiver antallet af latency clock-cyklusser, der er knyttet til output[]-output. En værdi på nul (0) indikerer, at der ikke eksisterer nogen latens, og at en rent kombinationsfunktion vil blive instansieret. Hvis den udelades, er standardværdien 0 (ikke-pipelinet).
Giver dig mulighed for at angive Intel-specifikke parametre i VHDL-design files (.vhd). Standardværdien er UBRUG.
Identificerer biblioteket af parameteriserede moduler (LPM) enhedsnavn i VHDL-design files.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren ONE_INPUT_IS_CONSTANT i VHDL-design files. Værdierne er JA, NEJ og UBRUGTE. Giver større optimering, hvis et input er konstant. Hvis den udelades, er standardværdien NEJ.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren MAXIMIZE_SPEED i VHDL-design files. Du kan angive en værdi mellem 0 og 10. Hvis den bruges, forsøger Intel Quartus Prime-softwaren at optimere en specifik forekomst af LPM_ADD_SUB-funktionen for hastighed i stedet for rutbarhed og tilsidesætter indstillingen af logikindstillingen for Optimeringsteknik. Hvis MAXIMIZE_SPEED ikke bruges, bruges værdien af indstillingen Optimeringsteknik i stedet. Hvis indstillingen for MAXIMIZE_SPEED er 6 eller højere, optimerer compileren LPM_ADD_SUB IP-kernen til højere hastighed ved brug af bærekæder; hvis indstillingen er 5 eller mindre, implementerer compileren designet uden bærekæder. Denne parameter skal kun angives for Cyclone-, Stratix- og Stratix GX-enheder, når add_sub-porten ikke bruges.
Denne parameter bruges til modellering og adfærdssimulering. Parametereditoren beregner værdien for denne parameter.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 25
683490 | 2020.10.05 Send feedback
6. LPM_COMPARE (Komparator)
Figur 5.
LPM_COMPARE IP-kernen sammenligner værdien af to sæt data for at bestemme forholdet mellem dem. I sin enkleste form kan du bruge en eksklusiv-ELLER-port til at bestemme, om to databit er ens.
Følgende figur viser portene til LPM_COMPARE IP-kernen.
LPM_COMPARE-porte
LPM_COMPARE
clken
alb
aeb
dataa[]
agb
datab[]
ageb
ur
aneb
aclr
aleb
inst
6.1. Funktioner
LPM_COMPARE IP-kernen tilbyder følgende funktioner: · Genererer en komparatorfunktion til at sammenligne to sæt data · Understøtter databredde på 1 bit · Understøtter datarepræsentationsformat såsom signeret og usigneret · Producerer følgende outputtyper:
— alb (input A er mindre end input B) — aeb (input A er lig med input B) — agb (input A er større end input B) — ageb (input A er større end eller lig med input B) — aneb ( input A er ikke lig med input B) — aleb (input A er mindre end eller lig med input B) · Understøtter valgfrie asynkrone clear- og clock-aktiverede inputporte · Tildeler datab[] input til en konstant · Understøtter pipelining med konfigurerbar output latency
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
6.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, ur, clken, aclr); parameter lpm_type = "lpm_compare"; parameter lpm_width = 1; parameter lpm_representation = "UNSIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UBRUGT"; input [lpm_width-1:0] dataa, datab; input ur; input clken; input aclr; output alb, aeb, agb, aleb, aneb, ageb; slutmodul
6.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm bibliotek.
komponent LPM_COMPARE generisk (LPM_WIDTH: naturlig;
LPM_REPRESENTATION : string := “UNSIGNED”; LPM_PIPELINE : naturlig := 0; LPM_TYPE: streng := L_COMPARE; LPM_HINT : string := “UNUSED”); port (DATAA: i std_logic_vector(LPM_WIDTH-1 ned til 0); DATAB: i std_logic_vector(LPM_WIDTH-1 ned til 0); ACLR: i std_logic:= '0'; CLOCK: i std_logic:= '0'; std_logic: := '1'; AGB : ud std_logic : ud std_logic; ende komponent;
6.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
BIBLIOTEK lpm; BRUG lpm.lpm_components.all;
6.5. Havne
Følgende tabeller viser input- og outputportene for LMP_COMPARE IP-kernen.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 27
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Tabel 18. LPM_COMPARE IP-kerneinputporte
Port navn
Påkrævet
Beskrivelse
dataa[]
Ja
Data input. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTH.
datab[]
Ja
Data input. Størrelsen på inputporten afhænger af parameterværdien LPM_WIDTH.
ur
Ingen
Urindgang til pipelinet brug. Urporten giver urindgangen til en pipelinet
operation. For andre LPM_PIPELINE-værdier end 0 (standard), skal urporten være
aktiveret.
clken
Ingen
Ur aktiveret til pipelinet brug. Når clken-porten hævdes høj, vil den
sammenligningsoperation finder sted. Når signalet er lavt, sker der ingen betjening. Hvis
udeladt, er standardværdien 1.
aclr
Ingen
Asynkron klar til brug i pipeline. Pipelinen initialiseres til en udefineret (X) logik
niveau. aclr-porten kan bruges til enhver tid til at nulstille rørledningen til alle 0'er,
asynkront med ursignalet.
Tabel 19. LPM_COMPARE IP-kerneudgangsporte
Port navn
Påkrævet
Beskrivelse
alb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A er mindre end input B.
aeb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A er lig med input B.
agb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A er større end input B.
ageb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A er større end eller lig med input
B.
aneb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A ikke er lig med input B.
aleb
Ingen
Udgangsport til komparatoren. Angivet, hvis input A er mindre end eller lig med input B.
6.6. Parametre
Følgende tabel viser parametrene for LPM_COMPARE IP-kernen.
Tabel 20. LPM_COMPARE IP-kerneparametre
Parameternavn
Type
Påkrævet
LPM_WIDTH
Heltal Ja
LPM_REPRESENTATION
Snor
Ingen
LPM_PIPELINE
Heltal nr
LPM_TIP
Snor
Ingen
Beskrivelse
Specificerer bredden af dataa[]- og dataab[]-portene.
Specificerer den udførte sammenligningstype. Værdier er SIGNEREDE og USIGNEREDE. Hvis den udelades, er standardværdien UNSIGNED. Når denne parameterværdi er sat til SIGNED, fortolker komparatoren datainputtet som fortegns to's komplement.
Angiver antallet af clock-cyklusser med latens, der er forbundet med alb-, aeb-, agb-, ageb-, alb- eller aneb-output. En værdi på nul (0) indikerer, at der ikke eksisterer nogen latens, og at en rent kombinationsfunktion vil blive instansieret. Hvis den udelades, er standardværdien 0 (ikke-pipelinet).
Giver dig mulighed for at angive Intel-specifikke parametre i VHDL-design files (.vhd). Standardværdien er UBRUG.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 28
Send feedback
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Parameternavn LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Skriv String String
Snor
Påkrævet Nej Nr
Ingen
Beskrivelse
Identificerer biblioteket af parameteriserede moduler (LPM) enhedsnavn i VHDL-design files.
Denne parameter bruges til modellering og adfærdssimulering. Parametereditoren beregner værdien for denne parameter.
Intel-specifik parameter. Du skal bruge parameteren LPM_HINT til at angive parameteren ONE_INPUT_IS_CONSTANT i VHDL-design files. Værdierne er JA, NEJ eller UBRUGTE. Giver større optimering, hvis et input er konstant. Hvis den udelades, er standardværdien NEJ.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 29
683490 | 2020.10.05 Send feedback
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core
Figur 6.
Intel leverer ALTECC IP-kernen til at implementere ECC-funktionaliteten. ECC registrerer korrupte data, der opstår på modtagersiden under datatransmission. Denne fejlkorrektionsmetode er bedst egnet til situationer, hvor fejl opstår tilfældigt snarere end i bursts.
ECC registrerer fejl gennem processen med datakodning og afkodning. F.eksample, når ECC anvendes i en transmissionsapplikation, kodes data læst fra kilden, før de sendes til modtageren. Outputtet (kodeord) fra indkoderen består af de rå data, der er tilføjet antallet af paritetsbit. Det nøjagtige antal af tilføjede paritetsbit afhænger af antallet af bits i inputdataene. Det genererede kodeord sendes derefter til destinationen.
Modtageren modtager kodeordet og afkoder det. Information opnået af dekoderen bestemmer, om en fejl detekteres. Dekoderen registrerer enkelt-bit og dobbelt-bit fejl, men kan kun rette enkelt-bit fejl i de korrupte data. Denne type ECC er single error correction double error detection (SECDED).
Du kan konfigurere encoder- og dekoderfunktioner for ALTECC IP-kernen. Datainputtet til indkoderen er kodet for at generere et kodeord, der er en kombination af datainputtet og de genererede paritetsbit. Det genererede kodeord sendes til dekodermodulet til afkodning lige før det når sin destinationsblok. Dekoderen genererer en syndromvektor for at bestemme, om der er nogen fejl i det modtagne kodeord. Dekoderen retter kun dataene, hvis enkeltbitfejlen er fra databittene. Intet signal markeres, hvis enkeltbitfejlen er fra paritetsbittene. Dekoderen har også flagsignaler til at vise status for de modtagne data og den handling, som dekoderen foretager, hvis nogen.
Følgende figurer viser portene til ALTECC IP-kernen.
ALTECC encoder porte
ALTECC_ENCODER
data[]
q[]
ur
klokken
aclr
inst
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
7. ALTECC (Fejlretningskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 7. ALTECC-dekoderporte
ALTECC_DECODER
data[] ur clocken
q[] err_detected err_corrected
err_fatal
aclr
inst
7.1. ALTECC Encoder funktioner
ALTECC-koderens IP-kerne tilbyder følgende funktioner: · Udfører datakodning ved hjælp af Hamming Coding-skemaet · Understøtter databredde på 2 bit · Understøtter signerede og usignerede datarepræsentationsformater · Understøtter pipelining med outputlatens på enten en eller to clock-cyklusser · Understøtter valgfrit asynkrone klare og uraktiverede porte
ALTECC-koderens IP-kerne tager ind og koder dataene ved hjælp af Hamming-kodningsskemaet. Hamming-kodningsskemaet udleder paritetsbittene og tilføjer dem til de originale data for at frembringe outputkodeordet. Antallet af tilføjede paritetsbit afhænger af bredden af dataene.
Følgende tabel viser antallet af paritetsbits tilføjet for forskellige databredder. Kolonnen Total Bits repræsenterer det samlede antal inputdatabits og tilføjede paritetsbits.
Tabel 21.
Antal paritetsbits og kodeord i henhold til databredde
Databredde
Antal paritetsbits
Samlede bits (kodeord)
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
Paritetsbit-afledningen bruger en lige paritetskontrol. Den yderligere 1 bit (vist i tabellen som +1) føjes til paritetsbittene som MSB for kodeordet. Dette sikrer, at kodeordet har et lige tal på 1'ere. F.eksample, hvis databredden er 4 bit, føjes 4 paritetsbit til dataene for at blive et kodeord med i alt 8 bit. Hvis 7 bits fra LSB af 8-bit kodeordet har et ulige antal 1'ere, er den 8. bit (MSB) af kodeordet 1, hvilket gør det samlede antal 1'ere i kodeordet lige.
Den følgende figur viser det genererede kodeord og arrangementet af paritetsbit og databit i en 8-bit datainput.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 31
7. ALTECC (Fejlretningskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 8.
Paritetsbits og databitarrangement i et 8-bit genereret kodeord
MSB
LSB
4 paritetsbits
4 databits
8
1
ALTECC-koderens IP-kerne accepterer kun inputbredder på 2 til 64 bit ad gangen. Inputbredder på 12 bit, 29 bit og 64 bit, som er ideelt egnet til Intel-enheder, genererer output på henholdsvis 18 bit, 36 bit og 72 bit. Du kan styre bitselektionsbegrænsningen i parametereditoren.
7.2. Verilog HDL-prototype (ALTECC_ENCODER)
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul altecc_encoder #( parameter intended_device_family = "unused", parameter lpm_pipeline = 0, parameter width_codeword = 8, parameter width_dataword = 8, parameter lpm_type = "altecc_encoder", parameter lpm_hint = "unused") (input wire aclr, input wire aclr, input wire wire clocken, input wire [width_dataword-1:0] data, output wire [width_codeword-1:0] q); slutmodul
7.3. Verilog HDL-prototype (ALTECC_DECODER)
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) lpm.v i edasynthesis bibliotek.
modul altecc_decoder #( parameter intended_device_family = "unused", parameter lpm_pipeline = 0, parameter width_codeword = 8, parameter width_dataword = 8, parameter lpm_type = "altecc_decoder", parameter lpm_hint = "unused") (input wire aclr, input wire aclr, input wire aclr wire clocken, input wire [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, outout wire err_fatal, output wire [width_dataword-1:0] q); slutmodul
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 32
Send feedback
7. ALTECC (Fejlretningskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. VHDL-komponenterklæring (ALTECC_ENCODER)
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_mf bibliotek.
component altecc_encoder generic ( intended_device_family:string:= "unused"; lpm_pipeline:natural:= 0; width_codeword:natural:= 8; width_dataword:natural:= 8; lpm_hint:string := "UNUSED:cc"; _pmen_coder ”); port(aclr:in std_logic:= '0'; clock:in std_logic:= '0'; clocken:in std_logic:= '1'; data:in std_logic_vector(width_dataword-1 ned til 0); q:out std_logic_vector(width_codeword -1 ned til 0)); ende komponent;
7.5. VHDL-komponenterklæring (ALTECC_DECODER)
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_mf bibliotek.
component altecc_decoder generic ( intended_device_family:string:= "unused"; lpm_pipeline:natural:= 0; width_codeword:natural:= 8; width_dataword:natural:= 8; lpm_hint:string:= "UNUSED:cc"; _pm_coder ”); port(aclr:in std_logic:= '0'; clock:in std_logic:= '0'; clocken:in std_logic:= '1'; data:in std_logic_vector(width_codeword-1 ned til 0); err_corrected: out std_logic; err_detected : out std_logic q:out std_logic_vector(width_dataword-1 ned til 0: out std_logic); ende komponent;
7.6. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
LIBRARY altera_mf; BRUG altera_mf.altera_mf_components.all;
7.7. Encoder porte
Følgende tabeller viser input- og outputportene for ALTECC-koderens IP-kerne.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 33
7. ALTECC (Fejlretningskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabel 22. ALTECC Encoder Input Ports
Port navn
Påkrævet
Beskrivelse
data[]
Ja
Dataindgangsport. Størrelsen på inputporten afhænger af WIDTH_DATAWORD
parameterværdi. Data[]-porten indeholder de rådata, der skal kodes.
ur
Ja
Urindgangsport, der leverer ursignalet for at synkronisere kodningsoperationen.
Urporten er påkrævet, når LPM_PIPELINE-værdien er større end 0.
klokken
Ingen
Ur aktiveret. Hvis den udelades, er standardværdien 1.
aclr
Ingen
Asynkron klar input. Det aktive høje aclr-signal kan til enhver tid bruges til
rydde registrene asynkront.
Tabel 23. ALTECC Encoder udgangsporte
Portnavn q[]
Påkrævet Ja
Beskrivelse
Udgangsport for kodet data. Størrelsen på outputporten afhænger af parameterværdien WIDTH_CODEWORD.
7.8. Dekoder porte
Følgende tabeller viser input- og outputportene for ALTECC-dekoderens IP-kerne.
Tabel 24. ALTECC-dekoderindgangsporte
Port navn
Påkrævet
Beskrivelse
data[]
Ja
Dataindgangsport. Størrelsen på inputporten afhænger af parameterværdien WIDTH_CODEWORD.
ur
Ja
Urindgangsport, der leverer ursignalet for at synkronisere kodningsoperationen. Urporten er påkrævet, når LPM_PIPELINE-værdien er større end 0.
klokken
Ingen
Ur aktiveret. Hvis den udelades, er standardværdien 1.
aclr
Ingen
Asynkron klar input. Det aktive høje aclr-signal kan til enhver tid bruges til asynkront at rydde registrene.
Tabel 25. ALTECC-dekoderudgangsporte
Portnavn q[]
Påkrævet Ja
Beskrivelse
Afkodet dataudgangsport. Størrelsen på outputporten afhænger af parameterværdien WIDTH_DATAWORD.
err_detected Ja
Flagsignal for at afspejle status for modtagne data og specificerer eventuelle fundne fejl.
err_correcte Ja d
Flagsignal for at afspejle status for modtagne data. Angiver en enkelt-bit fejl fundet og rettet. Du kan bruge dataene, fordi de allerede er blevet rettet.
err_fatal
Ja
Flagsignal for at afspejle status for modtagne data. Angiver dobbelt-bit fejl fundet, men ikke rettet. Du må ikke bruge dataene, hvis dette signal hævdes.
syn_e
Ingen
Et udgangssignal, som vil blive højt, når der detekteres en enkelt-bit fejl på pariteten
stykker.
7.9. Encoder parametre
Følgende tabel viser parametrene for ALTECC-koderens IP-kerne.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 34
Send feedback
7. ALTECC (Fejlretningskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabel 26. ALTECC Encoder-parametre
Parameternavn
Type
Påkrævet
Beskrivelse
WIDTH_DATAWORD
Heltal Ja
Angiver bredden af de rå data. Værdier er fra 2 til 64. Hvis de udelades, er standardværdien 8.
WIDTH_CODEWORD
Heltal Ja
Angiver bredden af det tilsvarende kodeord. Gyldige værdier er fra 6 til 72, eksklusive 9, 17, 33 og 65. Hvis de udelades, er standardværdien 13.
LPM_PIPELINE
Heltal nr
Specificerer rørledningen for kredsløbet. Værdier er fra 0 til 2. Hvis værdien er 0, registreres portene ikke. Hvis værdien er 1, registreres udgangsportene. Hvis værdien er 2, registreres input- og outputportene. Hvis den udelades, er standardværdien 0.
7.10. Dekoder parametre
Følgende tabel viser ALTECC-dekoderens IP-kerneparametre.
Tabel 27. ALTECC-dekoderparametre
Parameternavn WIDTH_DATAWORD
Indtast heltal
Påkrævet
Beskrivelse
Ja
Angiver bredden af de rå data. Værdierne er 2 til 64. Den
standardværdien er 8.
WIDTH_CODEWORD
Heltal
Ja
Angiver bredden af det tilsvarende kodeord. Værdierne er 6
til 72, ekskl. 9, 17, 33 og 65. Hvis den udelades, er standardværdien
er 13.
LPM_PIPELINE
Heltal
Ingen
Angiver kredsløbets register. Værdier er fra 0 til 2. Hvis
værdien er 0, intet register er implementeret. Hvis værdien er 1, vil
output er registreret. Hvis værdien er 2, vil både input og
output er registreret. Hvis værdien er større end 2, yderligere
registre implementeres ved udgangen for den yderligere
ventetider. Hvis den udelades, er standardværdien 0.
Opret en 'syn_e'-port
Heltal
Ingen
Slå denne parameter til for at oprette en syn_e-port.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 35
683490 | 2020.10.05 Send feedback
8. Intel FPGA Multiply Adder IP Core
Figur 9.
Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheder) eller ALTERA_MULT_ADD (Arria V-, Stratix V- og Cyclone V-enheder) IP-kerne giver dig mulighed for at implementere en multiplikator-adder.
Følgende figur viser portene til Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kernen.
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD-porte
Intel FPGA Multiply Adder eller 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[] resultat[]
aclr0 aclr1
inst
En multiplikator-adder accepterer par af input, multiplicerer værdierne sammen og lægger derefter til eller trækker fra produkterne af alle andre par.
Hvis alle inputdatabredderne er 9-bit brede eller mindre, bruger funktionen 9 x 9 bit inputmultiplikatorkonfigurationen i DSP-blokken til enheder, der understøtter 9 x 9-konfiguration. Hvis ikke, bruger DSP-blokken 18 × 18-bit inputmultiplikatorer til at behandle data med bredder mellem 10 bit og 18 bit. Hvis der forekommer flere Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kerner i et design, fordeles funktionerne som
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
mange forskellige DSP-blokke som muligt, så routing til disse blokke er mere fleksibel. Færre multiplikatorer pr. DSP-blok tillader flere rutevalg ind i blokken ved at minimere stier til resten af enheden.
Registrene og ekstra pipeline-registre for følgende signaler er også placeret inde i DSP-blokken: · Datainput · Signeret eller usigneret vælg · Tilføj eller subtraher vælg · Produkter af multiplikatorer
I tilfælde af udgangsresultatet placeres det første register i DSP-blokken. Imidlertid er de ekstra latensregistre placeret i logiske elementer uden for blokken. Perifer til DSP-blokken, inklusive datainput til multiplikatoren, styresignalindgange og addererens udgange, brug almindelig routing til at kommunikere med resten af enheden. Alle forbindelser i funktionen bruger dedikeret routing inde i DSP-blokken. Denne dedikerede routing inkluderer skiftregisterkæderne, når du vælger muligheden for at flytte en multiplikators registrerede inputdata fra en multiplikator til en tilstødende multiplikator.
For mere information om DSP-blokke i enhver af Stratix V- og Arria V-enhedsserierne, se kapitlet DSP-blokke i de respektive håndbøger på siden Litteratur og teknisk dokumentation.
Relateret information AN 306: Implementering af multiplikatorer i FPGA-enheder
Giver flere oplysninger om implementering af multiplikatorer ved hjælp af DSP og hukommelsesblokke i Intel FPGA-enheder.
8.1. Funktioner
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kernen tilbyder følgende funktioner: · Genererer en multiplikator til at udføre multiplikationsoperationer af to komplekse
tal Bemærk: Når man bygger multiplikatorer, der er større end den oprindeligt understøttede størrelse, kan/
vil være en præstationspåvirkning som følge af kaskaden af DSP-blokkene. · Understøtter databredder på 1 256 bit · Understøtter signerede og usignerede datarepræsentationsformater · Understøtter pipelining med konfigurerbar inputlatens · Giver mulighed for dynamisk at skifte mellem signeret og usigneret dataunderstøttelse · Giver mulighed for dynamisk at skifte mellem add- og subtrahering · Understøtter valgfri asynkrone og synkrone clear- og uraktiverede inputporte · Understøtter systolisk forsinkelsesregistertilstand · Understøtter pre-adder med 8 pre-load koefficienter pr. multiplikator · Understøtter pre-load konstant for at komplementere akkumulator feedback
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1. Foradder
Med pre-adder foretages additioner eller subtraktioner, før multiplikatoren tilføres.
Der er fem pre-adder-tilstande: · Enkel tilstand · Koefficienttilstand · Inputtilstand · Firkantet tilstand · Konstant tilstand
Note:
Når pre-adder bruges (pre-adder koefficient/input/square mode), skal alle datainput til multiplikatoren have samme urindstilling.
8.1.1.1. Pre-adder Simple Mode
I denne tilstand stammer begge operander fra inputportene, og pre-adder bruges ikke eller omgås. Dette er standardtilstanden.
Figur 10. Pre-adder Simple Mode
a0 b0
Multi0
resultat
8.1.1.2. Pre-adder Koefficient Mode
I denne tilstand stammer den ene multiplikatoroperand fra pre-adderen, og den anden operand stammer fra det interne koefficientlager. Koefficientlagringen tillader op til 8 forudindstillede konstanter. Koefficientudvælgelsessignalerne er coefsel[0..3].
Denne tilstand er udtrykt i den følgende ligning.
Det følgende viser pre-adder-koefficienttilstanden for en multiplikator.
Figur 11. Pre-adder-koefficienttilstand
Præader
a0
Multi0
+/-
resultat
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 38
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Pre-adder-inputtilstand I denne tilstand stammer en multiplikatoroperand fra pre-adderen, og den anden operand stammer fra datac[]-inputporten. Denne tilstand er udtrykt i den følgende ligning.
Det følgende viser pre-adder input-tilstanden for en multiplikator.
Figur 12. Pre-adder Input Mode
a0 b0
Multi0
+/-
resultat
c0
8.1.1.4. Pre-adder Square Mode Denne tilstand er udtrykt i følgende ligning.
Det følgende viser pre-adder-kvadrattilstanden for to multiplikatorer.
Figur 13. Pre-adder Square Mode
a0 b0
Multi0
+/-
resultat
8.1.1.5. Pre-adder Constant Mode
I denne tilstand stammer en multiplikatoroperand fra inputporten, og den anden operand stammer fra det interne koefficientlager. Koefficientlagringen tillader op til 8 forudindstillede konstanter. Koefficientudvælgelsessignalerne er coefsel[0..3].
Denne tilstand er udtrykt i den følgende ligning.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Følgende figur viser præadder-konstanttilstanden for en multiplikator.
Figur 14. Pre-adder Constant Mode
a0
Multi0
resultat
coefsel0
coef
8.1.2. Systolisk forsinkelsesregister
I en systolisk arkitektur føres inputdataene ind i en kaskade af registre, der fungerer som en databuffer. Hvert register leverer et input sample til en multiplikator, hvor den ganges med den respektive koefficient. Kædeadderen gemmer de gradvist kombinerede resultater fra multiplikatoren og det tidligere registrerede resultat fra chainin[] inputporten for at danne det endelige resultat. Hvert multiplic-add-element skal forsinkes med en enkelt cyklus, så resultaterne synkroniseres korrekt, når de lægges sammen. Hver successiv forsinkelse bruges til at adressere både koefficienthukommelsen og databufferen for deres respektive multiplikations-add-elementer. F.eksample, en enkelt forsinkelse for det andet multiplikations-add-element, to forsinkelser for det tredje multiplic-add-element, og så videre.
Figur 15. Systoliske registre
Systoliske registre
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æsenterer resultaterne fra en kontinuerlig strøm af input samples og y(t)
repræsenterer summeringen af et sæt af input samples, og med tiden ganget med deres
respektive koefficienter. Både input- og outputresultaterne flyder fra venstre mod højre. c(0) til c(N-1) angiver koefficienterne. De systoliske forsinkelsesregistre er betegnet med S-1, hvorimod 1'eren repræsenterer en enkelt klokforsinkelse. Systoliske forsinkelsesregistre tilføjes kl
input og output til pipelining på en måde, der sikrer resultaterne fra
multiplikatoroperand og de akkumulerede summer forbliver synkroniserede. Dette forarbejdningselement
replikeres for at danne et kredsløb, der beregner filtreringsfunktionen. Denne funktion er
udtrykt i følgende ligning.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 40
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
N repræsenterer antallet af cyklusser af data, der er indtastet i akkumulatoren, y(t) repræsenterer output på tidspunktet t, A(t) repræsenterer input på tidspunktet t, og B(i) er koefficienterne. t og i i ligningen svarer til et bestemt tidspunkt i tiden, så for at beregne output sample y(t) på tidspunktet t, en gruppe af input samples på N forskellige tidspunkter, eller A(n), A(n-1), A(n-2), … A(n-N+1) er påkrævet. Gruppen af N input samples ganges med N koefficienter og summeres sammen for at danne det endelige resultat y.
Den systoliske registerarkitektur er kun tilgængelig for sum-af-2 og sum-af-4 tilstande. For begge systoliske registerarkitekturtilstande skal det første chainin-signal være bundet til 0.
Den følgende figur viser den systoliske forsinkelsesregisterimplementering af 2 multiplikatorer.
Figur 16. Implementering af systolisk forsinkelsesregister af 2 multiplikatorer
kæde i
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
resultat
Summen af to multiplikatorer er udtrykt i følgende ligning.
Den følgende figur viser den systoliske forsinkelsesregisterimplementering af 4 multiplikatorer.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 17. Implementering af systolisk forsinkelsesregister af 4 multiplikatorer
kæde i
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
a2
Multi2
+/-
b2
a3
Multi3
+/-
b3
resultat
Summen af fire multiplikatorer er udtrykt i følgende ligning. Figur 18. Summen af 4 multiplikatorer
Følgende lister advantages af systolisk registerimplementering: · Reducerer DSP-ressourceforbrug · Muliggør effektiv kortlægning i DSP-blokken ved hjælp af kædeadderstrukturen
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 42
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.3. Pre-load konstant
Forspændingskonstanten styrer akkumulatoroperanden og komplementerer akkumulatorfeedbacken. Den gyldige LOADCONST_VALUE går fra 0. Den konstante værdi er lig med 64N, hvor N = LOADCONST_VALUE. Når LOADCONST_VALUE er sat til 2, er den konstante værdi lig med 64. Denne funktion kan bruges som forspændt afrunding.
Følgende figur viser implementeringen af pre-load konstant.
Figur 19. Pre-load Constant
Akkumulator feedback
konstant
a0
Multi0
+/-
b0
a1
Multi1
+/b1
resultat
accum_sload sload_accum
Se følgende IP-kerner for andre multiplikatorimplementeringer: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dobbelt akkumulator
Den dobbelte akkumulator-funktion tilføjer et ekstra register i akkumulator-feedback-vejen. Det dobbelte akkumulatorregister følger outputregisteret, som inkluderer ur, clock-aktivering og aclr. Det ekstra akkumulatorregister returnerer resultatet med en cyklusforsinkelse. Denne funktion giver dig mulighed for at have to akkumulatorkanaler med samme ressourceantal.
Følgende figur viser implementeringen af den dobbelte akkumulator.
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 20. Dobbelt akkumulator
Dobbelt akku mulatorregister
Akku mulator feedback
a0
Multi0
+/-
b0
a1
Multi1
+/b1
Output resultat Output Register
8.2. Verilog HDL prototype
Du kan finde Intel FPGA Multiply Adder eller ALTERA_MULT_ADD Verilog HDL-prototypen file (altera_mult_add_rtl.v) i biblioteksmegafunktioner bibliotek.
8.3. VHDL-komponenterklæring
VHDL-komponenterklæringen er placeret i altera_lnsim_components.vhd i biblioteksvhdl altera_lnsim bibliotek.
8.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE erklæringen er ikke påkrævet, hvis du bruger VHDL Component Declaration.
LIBRARY altera_mf; BRUG altera_mf.altera_mf_components.all;
8.5. Signaler
Følgende tabeller viser input- og outputsignalerne for Multiply Adder Intel FPGA IP eller ALTERA_MULT_ADD IP-kernen.
Tabel 28. Multiply Adder Intel FPGA IP eller ALTERA_MULT_ADD inputsignaler
Signal
Påkrævet
Beskrivelse
dataa_0[]/dataa_1[]/
Ja
dataa_2[]/dataa_3[]
Datainput til multiplikatoren. Inputport [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] bred
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 44
Send feedback
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[] ur[1:0] aclr[1:0] sclr[1:0] ena [1:0] signatur
signb
scanina[] accum_sload
Påkrævet Ja Nej
Nej Nej Nej Nej Nej
Ingen
Nej Nej
Beskrivelse
Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Datainput til multiplikatoren. Indgangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] bredt Simulationsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Datainput til multiplikatoren. Indgangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] bredt Vælg INPUT for Vælg præaddertilstandsparameter for at aktivere disse signaler. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Urindgangsport til det tilsvarende register. Dette signal kan bruges af ethvert register i IP-kernen. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Asynkron slette input til det tilsvarende register. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Synkron clear input til det tilsvarende register. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi X til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne
Aktiver signalinput til det tilsvarende register. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til disse signaler. Når du giver X-værdi til disse signaler, forplantes X-værdien på udgangssignalerne.
Specificerer den numeriske repræsentation af multiplikatorinput A. Hvis signalsignalet er højt, behandler multiplikatoren multiplikatorinput A-signalet som et tal med fortegn. Hvis fortegnssignalet er lavt, behandler multiplikatoren multiplikatorinput A-signalet som et tal uden fortegn. Vælg VARIABLE for Hvad er repræsentationsformatet for Multiplikatorer A inputparameter for at aktivere dette signal. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Specificerer den numeriske repræsentation af multiplikatorinput B-signalet. Hvis fortegnb-signalet er højt, behandler multiplikatoren multiplikatorinput B-signalet som et fortegnet tos komplementtal. Hvis fortegnb-signalet er lavt, behandler multiplikatoren multiplikatorinput B-signalet som et tal uden fortegn. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Indgang til scanningskæde A. Indgangssignal [WIDTH_A – 1, … 0] bredt. Når parameteren INPUT_SOURCE_A har værdien SCANA, kræves scanina[]-signalet.
Angiver dynamisk om akkumulatorværdien er konstant. Hvis accum_sload-signalet er lavt, indlæses multiplikatorudgangen i akkumulatoren. Brug ikke accum_sload og sload_accum samtidigt.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signal belastning_akkum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Påkrævet nr
Nej Nej
Ingen
Nej nej nej nej
Beskrivelse
Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Angiver dynamisk om akkumulatorværdien er konstant. Hvis sload_accum-signalet er højt, indlæses multiplikatorudgangen i akkumulatoren. Brug ikke accum_sload og sload_accum samtidigt. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Adder resultat input bus fra de foregående stage. Indgangssignal [WIDTH_CHAININ – 1, … 0] bredt.
Udfør addition eller subtraktion til output fra det første par multiplikatorer. Input 1 til addnsub1-signal for at tilføje output fra det første par multiplikatorer. Input 0 til addnsub1-signal for at trække output fra det første par multiplikatorer. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Udfør addition eller subtraktion til output fra det første par multiplikatorer. Input 1 til addnsub3-signal for at tilføje output fra det andet par multiplikatorer. Input 0 til addnsub3-signal for at trække output fra det første par multiplikatorer. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Koefficientindgangssignal[0:3] til den første multiplikator. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Koefficientindgangssignal[0:3]til den anden multiplikator. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Koefficientindgangssignal[0:3]til den tredje multiplikator. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Koefficientindgangssignal [0:3] til den fjerde multiplikator. Simuleringsmodellen for denne IP understøtter ubestemt inputværdi (X) til dette signal. Når du angiver X-værdi til dette input, forplantes X-værdien på udgangssignalerne.
Tabel 29. Multiply Adder Intel FPGA IP-outputsignaler
Signal
Påkrævet
Beskrivelse
resultat []
Ja
Multiplikator udgangssignal. Udgangssignal [WIDTH_RESULT – 1 … 0] bredt
Simuleringsmodellen for denne IP understøtter ubestemt outputværdi (X). Når du angiver X-værdi som input, forplantes X-værdien på dette signal.
scanouta []
Ingen
Output af scanningskæde A. Udgangssignal [WIDTH_A – 1..0] bredt.
Vælg mere end 2 for antallet af multiplikatorer, og vælg Scan kædeinput for Hvad er input A på den multiplikator, der er tilsluttet parameteren for at aktivere dette signal.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 46
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6. Parametre
8.6.1. Generelt Faneblad
Tabel 30. Generelt Tab
Parameter
IP-genereret parameter
Værdi
Hvad er antallet af multiplikatorer?
antal_m 1 – 4 ultiplikatorer
Hvor brede skal A width_a input busserne være?
1 – 256
Hvor brede skal B width_b input busserne være?
1 – 256
Hvor bred skal 'resultat'-outputbussen være?
width_result
1 – 256
Opret en tilknyttet uraktivering for hvert ur
gui_associate On d_clock_enabl Off e
8.6.2. Fanen Ekstra tilstande
Tabel 31. Ekstra tilstande Fanen
Parameter
IP-genereret parameter
Værdi
Udgangskonfiguration
Registrer output fra addererenheden
gui_output_re Til
i går
Slukket
Hvad er kilden til clock input?
gui_output_re gister_clock
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_output_re gister_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_output_re gister_sclr
INGEN SCLR0 SCLR1
Adder Operation
Hvilken operation skal udføres på udgangene af det første par multiplikatorer?
gui_multiplier 1_direction
TILFØJ, SUB, VARIABEL
Standardværdi 1
16
Beskrivelse
Antal multiplikatorer, der skal lægges sammen. Værdier er 1 op til 4. Angiv bredden på dataa[]-porten.
16
Angiv bredden af dataab[]-porten.
32
Angiv bredden på resultat[]-porten.
Slukket
Vælg denne mulighed for at aktivere ur
for hvert ur.
Standardværdi
Beskrivelse
Fra ur0
INGEN INGEN
Vælg denne mulighed for at aktivere outputregister for addermodulet.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere urkilden for outputregistre. Du skal vælge Register output for addererenheden for at aktivere denne parameter.
Specificerer den asynkrone slettekilde for adderoutputregisteret. Du skal vælge Register output for addererenheden for at aktivere denne parameter.
Specificerer den synkrone slettekilde for adderoutputregisteret. Du skal vælge Register output for addererenheden for at aktivere denne parameter.
TILFØJE
Vælg additions- eller subtraktionsoperation for at udføre for output mellem den første og anden multiplikator.
· Vælg ADD for at udføre tilføjelse.
· Vælg SUB for at udføre subtraktion.
· Vælg VARIABEL for at bruge addnsub1-porten til dynamisk additions-/subtraktionskontrol.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genereret parameter
Værdi
Registrer 'addnsub1' input
gui_addnsub_ On multiplier_reg Off ister1
Hvad er kilden til clock input?
gui_addnsub_ multiplier_reg ister1_clock
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_addnsub_ multiplier_aclr 1
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_addnsub_ multiplier_sclr 1
INGEN SCLR0 SCLR1
Hvilken operation skal udføres på udgangene af det andet par multiplikatorer?
gui_multiplier 3_direction
TILFØJ, SUB, VARIABEL
Registrer 'addnsub3' input
gui_addnsub_ On multiplier_reg Off ister3
Hvad er kilden til clock input?
gui_addnsub_ multiplier_reg ister3_clock
Ur0 Ur1 Ur2
Standardværdi
Fra ur0 INGEN INGEN TILFØJ
Fra ur0
Beskrivelse
Når VARIABEL værdi er valgt: · Drev addnsub1 signal til høj for
tilføjelsesoperation. · Drev addnsub1-signalet til lavt for
subtraktionsoperation. Du skal vælge mere end to multiplikatorer for at aktivere denne parameter.
Vælg denne mulighed for at aktivere inputregister for addnsub1-porten. Du skal vælge VARIABLE for Hvilken operation skal udføres på udgangene fra det første par multiplikatorer for at aktivere denne parameter.
Vælg Clock0 , Clock1 eller Clock2 for at angive input-ursignalet for addnsub1 register. Du skal vælge Register 'addnsub1' input for at aktivere denne parameter.
Angiver den asynkrone clear-kilde for addnsub1-registret. Du skal vælge Register 'addnsub1' input for at aktivere denne parameter.
Angiver den synkrone clear-kilde for addnsub1-registret. Du skal vælge Register 'addnsub1' input for at aktivere denne parameter.
Vælg additions- eller subtraktionsoperation for at udføre for output mellem den tredje og fjerde multiplikator. · Vælg ADD for at udføre tilføjelse
operation. · Vælg SUB for at udføre subtraktion
operation. · Vælg VARIABEL for at bruge addnsub1
port til dynamisk additions-/subtraktionskontrol. Når VARIABEL-værdien er valgt: · Drev addnsub1-signalet til højt for additionsdrift. · Drev addnsub1-signalet til lavt for subtraktionsdrift. Du skal vælge værdien 4 for Hvad er antallet af multiplikatorer? for at aktivere denne parameter.
Vælg denne mulighed for at aktivere inputregister for addnsub3-signal. Du skal vælge VARIABLE for Hvilken operation skal udføres på udgangene fra det andet par multiplikatorer for at aktivere denne parameter.
Vælg Clock0 , Clock1 eller Clock2 for at angive input-ursignalet for addnsub3 register. Du skal vælge Register 'addnsub3' input for at aktivere denne parameter.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 48
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Hvad er kilden til asynkron clear input?
IP-genereret parameter
Værdi
gui_addnsub_ multiplier_aclr 3
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_addnsub_ multiplier_sclr 3
INGEN SCLR0 SCLR1
Polaritet Aktiver `use_subadd'
gui_use_subn Til
tilføje
Slukket
8.6.3. Multiplikatorer Tab
Tabel 32. Multiplikatorer Tab
Parameter
IP-genereret parameter
Værdi
Hvad er
gui_represent
repræsentationsformat ation_a
for multiplikator A-indgange?
UNDERTEGNET, USIGNET, VARIABEL
Registrer `signa' input
gui_register_s Til
igna
Slukket
Hvad er kilden til clock input?
gui_register_s igna_clock
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_register_s igna_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_register_s igna_sclr
INGEN SCLR0 SCLR1
Hvad er
gui_represent
repræsentationsformat ation_b
for Multiplikator B-indgange?
UNDERTEGNET, USIGNET, VARIABEL
Registrer `signb' input
gui_register_s Til
ignb
Slukket
Standardværdi INGEN
INGEN
Beskrivelse
Angiver den asynkrone clear-kilde for addnsub3-registret. Du skal vælge Register 'addnsub3' input for at aktivere denne parameter.
Angiver den synkrone clear-kilde for addnsub3-registret. Du skal vælge Register 'addnsub3' input for at aktivere denne parameter.
Slukket
Vælg denne mulighed for at vende funktionen om
af addnsub-indgangsporten.
Drev addnsub til høj for subtraktionsdrift.
Drev addnsub til lav for additionsdrift.
Standardværdi
Beskrivelse
UNSIGNED Angiv repræsentationsformatet for multiplikator A-input.
Slukket
Vælg denne mulighed for at aktivere signa
register.
Du skal vælge VARIABEL værdi for Hvad er repræsentationsformatet for multiplikator A-input? parameter for at aktivere denne mulighed.
Ur 0
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere input-ursignalet for signaregister.
Du skal vælge Register `signa' input for at aktivere denne parameter.
INGEN
Specificerer den asynkrone klare kilde for signaregistret.
Du skal vælge Register `signa' input for at aktivere denne parameter.
INGEN
Angiver den synkrone klare kilde for signaregistret.
Du skal vælge Register `signa' input for at aktivere denne parameter.
UNSIGNED Angiv repræsentationsformatet for multiplikator B-input.
Slukket
Vælg denne mulighed for at aktivere signb
register.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genereret parameter
Værdi
Standardværdi
Hvad er kilden til clock input?
gui_register_s ignb_clock
Ur0 Ur1 Ur2
Ur 0
Hvad er kilden til asynkron clear input?
gui_register_s ignb_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_register_s ignb_sclr
INGEN SCLR0 SCLR1
Indgangskonfiguration
Registrer input A af multiplikatoren
Hvad er kilden til clock input?
gui_input_reg Til
ister_a
Slukket
gui_input_reg ister_a_clock
Ur0 Ur1 Ur2
INGEN INGEN
Fra ur0
Hvad er kilden til asynkron clear input?
gui_input_reg ister_a_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_input_reg ister_a_sclr
INGEN SCLR0 SCLR1
Registrer input B af multiplikatoren
Hvad er kilden til clock input?
gui_input_reg Til
ister_b
Slukket
gui_input_reg ister_b_clock
Ur0 Ur1 Ur2
INGEN INGEN Fra ur0
Hvad er kilden til asynkron clear input?
gui_input_reg ister_b_aclr
INGEN ACLR0 ACLR1
INGEN
Hvad er kilden til synkron clear input?
gui_input_reg ister_b_sclr
INGEN SCLR0 SCLR1
INGEN
Hvad er multiplikatorens input A forbundet til?
gui_multiplier Multiplikator input Multiplikator
_a_input
Scan kæde input input
Beskrivelse
Du skal vælge VARIABEL værdi for Hvad er repræsentationsformatet for Multiplikator B input? parameter for at aktivere denne mulighed.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere input-ursignalet for signb register. Du skal vælge Register `signb' input for at aktivere denne parameter.
Angiver den asynkrone klare kilde for signb-registret. Du skal vælge Register `signb' input for at aktivere denne parameter.
Angiver den synkrone klare kilde for signb-registret. Du skal vælge Register `signb' input for at aktivere denne parameter.
Vælg denne mulighed for at aktivere inputregister for data en inputbus.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere registerinput-ursignalet for data en inputbus. Du skal vælge Registrer input A på multiplikatoren for at aktivere denne parameter.
Specificerer registerets asynkrone clear-kilde for dataen en inputbussen. Du skal vælge Registrer input A på multiplikatoren for at aktivere denne parameter.
Specificerer den registersynkrone ryddekilde for dataen en inputbussen. Du skal vælge Registrer input A på multiplikatoren for at aktivere denne parameter.
Vælg denne mulighed for at aktivere inputregister for datainputbus.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere registerindgangsursignalet for datainputbussen. Du skal vælge Registrer input B på multiplikatoren for at aktivere denne parameter.
Specificerer registerets asynkrone clear-kilde for datainputbussen. Du skal vælge Registrer input B på multiplikatoren for at aktivere denne parameter.
Specificerer den registersynkrone ryddekilde for datainputbussen. Du skal vælge Registrer input B på multiplikatoren for at aktivere denne parameter.
Vælg inputkilden for multiplikatorens input A.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 50
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genereret parameter
Værdi
Scanout A Register-konfiguration
Registrer output fra scanningskæden
gui_scanouta Til
_register
Slukket
Hvad er kilden til clock input?
gui_scanouta _register_ur k
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_scanouta _register_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_scanouta _register_sclr
INGEN SCLR0 SCLR1
8.6.4. Faneblad for preadder
Tabel 33. Preadder Tab
Parameter
IP-genereret parameter
Værdi
Vælg preadder-tilstand
preadder_mo de
ENKEL, COEF, INPUT, KVADRAT, KONSTANT
Standardværdi
Beskrivelse
Vælg Multiplikatorinput for at bruge dataen en inputbus som kilden til multiplikatoren. Vælg Scan chain input for at bruge scanin input bus som kilde til multiplikatoren og aktivere scanout output bus. Denne parameter er tilgængelig, når du vælger 2, 3 eller 4 for Hvad er antallet af multiplikatorer? parameter.
Fra ur0 INGEN INGEN
Vælg denne mulighed for at aktivere udgangsregister for scanouta output bus.
Du skal vælge Scan chain input for Hvad er indgangen A på multiplikatoren tilsluttet? parameter for at aktivere denne mulighed.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere registerinput-ursignalet for scanouta-outputbus.
Du skal aktivere Registrer output for scanningskædeparameteren for at aktivere denne mulighed.
Specificerer den register asynkrone clear-kilde for scanouta-outputbussen.
Du skal aktivere Registrer output for scanningskædeparameteren for at aktivere denne mulighed.
Specificerer den registersynkrone clear-kilde for scanouta-outputbussen.
Du skal vælge Registrer output for scanningskædeparameteren for at aktivere denne mulighed.
Standardværdi
ENKEL
Beskrivelse
Angiver driftstilstanden for preadder-modulet. SIMPLE: Denne tilstand omgår preadderen. Dette er standardtilstanden. COEF: Denne tilstand bruger outputtet fra preadder- og coefsel-inputbussen som input til multiplikatoren. INPUT: Denne tilstand bruger outputtet fra preadderen og datainputbussen som input til multiplikatoren. SQUARE: Denne tilstand bruger output fra preadderen som begge input til multiplikatoren.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genereret parameter
Værdi
Vælg preader-retning
gui_preadder ADD,
_retning
SUB
Hvor brede skal C width_c input busserne være?
1 – 256
Data C Input Register Konfiguration
Registrer datainput
gui_datac_inp Til
ud_register
Slukket
Hvad er kilden til clock input?
gui_datac_inp ut_register_cl ock
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_datac_inp ut_register_a clr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_datac_inp ut_register_sc lr
INGEN SCLR0 SCLR1
Koefficienter
Hvor bred skal coef-bredden være?
width_coef
1 – 27
Coef Register Konfiguration
Registrer coefsel input
gui_coef_regi Til
ster
Slukket
Hvad er kilden til clock input?
gui_coef_regi ster_clock
Ur0 Ur1 Ur2
Standardværdi
TILFØJE
16
Beskrivelse
KONSTANT: Denne tilstand bruger data en inputbus med omgået preadder og coefsel input bus som input til multiplikatoren.
Specificerer preadderens funktion. For at aktivere denne parameter skal du vælge følgende for Vælg preadder-tilstand: · COEF · INPUT · KVADRAT eller · KONSTANT
Angiver antallet af bits for C input bus. Du skal vælge INPUT for Vælg preadder-tilstand for at aktivere denne parameter.
På ur0 INGEN INGEN
Vælg denne mulighed for at aktivere inputregister for datainputbus. Du skal indstille INPUT til Select preadder mode parameter for at aktivere denne mulighed.
Vælg Clock0 , Clock1 eller Clock2 for at angive input-ursignalet for datainputregisteret. Du skal vælge Register datac input for at aktivere denne parameter.
Specificerer den asynkrone clear-kilde for datac-inputregisteret. Du skal vælge Register datac input for at aktivere denne parameter.
Specificerer den synkrone clear-kilde for datac-inputregisteret. Du skal vælge Register datac input for at aktivere denne parameter.
18
Angiver antallet af bits for
coefsel input bus.
Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
På ur0
Vælg denne mulighed for at aktivere inputregister for coefsel input bus. Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
Vælg Clock0 , Clock1 eller Clock2 for at angive input-ursignalet for coefsel inputregister. Du skal vælge Register the coefsel input for at aktivere denne parameter.
fortsatte…
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 52
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Hvad er kilden til asynkron clear input?
IP-genereret parameter
Værdi
gui_coef_regi ster_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input
gui_coef_regi ster_sclr
INGEN SCLR0 SCLR1
Koefficient_0 Konfiguration
coef0_0 til coef0_7
0x00000 0xFFFFFFF
Koefficient_1 Konfiguration
coef1_0 til coef1_7
0x00000 0xFFFFFFF
Koefficient_2 Konfiguration
coef2_0 til coef2_7
0x00000 0xFFFFFFF
Koefficient_3 Konfiguration
coef3_0 til coef3_7
0x00000 0xFFFFFFF
8.6.5. Akkumulator Tab
Tabel 34. Akkumulator Tab
Parameter
IP-genereret parameter
Værdi
Aktiver akkumulator?
akkumulator
JA NEJ
Hvad er akkumulatordriftstypen?
accum_directi ADD,
on
SUB
Standardværdi INGEN
INGEN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Beskrivelse
Specificerer den asynkrone clear-kilde for coefsel-inputregisteret. Du skal vælge Register the coefsel input for at aktivere denne parameter.
Specificerer den synkrone clear-kilde for coefsel-inputregisteret. Du skal vælge Register the coefsel input for at aktivere denne parameter.
Angiver koefficientværdierne for denne første multiplikator. Antallet af bit skal være det samme som angivet i Hvor bred skal coef-bredden være? parameter. Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
Angiver koefficientværdierne for denne anden multiplikator. Antallet af bit skal være det samme som angivet i Hvor bred skal coef-bredden være? parameter. Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
Specificerer koefficientværdierne for denne tredje multiplikator. Antallet af bit skal være det samme som angivet i Hvor bred skal coef-bredden være? parameter. Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
Specificerer koefficientværdierne for denne fjerde multiplikator. Antallet af bit skal være det samme som angivet i Hvor bred skal coef-bredden være? parameter. Du skal vælge COEF eller CONSTANT for preadder-tilstand for at aktivere denne parameter.
Standardværdi NR
TILFØJE
Beskrivelse
Vælg JA for at aktivere akkumulatoren. Du skal vælge Registrer output af addererenhed, når du bruger akkumulatorfunktionen.
Angiver driften af akkumulatoren: · ADD for additionsoperation · SUB for subtraktionsoperation. Du skal vælge JA for Aktiver akkumulator? parameter for at aktivere denne mulighed.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Preload Constant Aktiver preload konstant
IP-genereret parameter
Værdi
gui_ena_prelo Til
ad_const
Slukket
Hvad er indgangen til akkumuleringsporten forbundet til?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Vælg værdi for preload loadconst_val 0 – 64
konstant
ue
Hvad er kilden til clock input?
gui_accum_sl oad_register_ ur
Ur0 Ur1 Ur2
Hvad er kilden til asynkron clear input?
gui_accum_sl oad_register_ aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_accum_sl oad_register_ sclr
INGEN SCLR0 SCLR1
Aktiver dobbelt akkumulator
gui_double_a Til
cum
Slukket
Standardværdi
Beskrivelse
Slukket
Aktiver accum_sload eller
sload_accum signaler og register input
for dynamisk at vælge input til
akkumulator.
Når accum_sload er lav eller sload_accum, føres multiplikatorudgangen ind i akkumulatoren.
Når accum_sload er høj eller sload_accum, føres en brugerspecificeret preload-konstant ind i akkumulatoren.
Du skal vælge JA for Aktiver akkumulator? parameter for at aktivere denne mulighed.
ACCUM_SL OAD
Specificerer adfærden af accum_sload/sload_accum signal.
ACCUM_SLOAD: Drev accum_sload lav for at indlæse multiplikatorudgangen til akkumulatoren.
SLOAD_ACCUM: Drev sload_accum høj for at indlæse multiplikatorudgangen til akkumulatoren.
Du skal vælge Enable preload constant option for at aktivere denne parameter.
64
Angiv den forudindstillede konstantværdi.
Denne værdi kan være 2N, hvor N er den forudindstillede konstantværdi.
Når N=64, repræsenterer det et konstant nul.
Du skal vælge Enable preload constant option for at aktivere denne parameter.
Ur 0
Vælg Clock0 , Clock1 eller Clock2 for at angive input-ursignalet for registeret accum_sload/sload_accum.
Du skal vælge Enable preload constant option for at aktivere denne parameter.
INGEN
Angiver den asynkrone clear-kilde for registret accum_sload/sload_accum.
Du skal vælge Enable preload constant option for at aktivere denne parameter.
INGEN
Angiver den synkrone clear-kilde for registret accum_sload/sload_accum.
Du skal vælge Enable preload constant option for at aktivere denne parameter.
Slukket
Aktiverer det dobbelte akkumulatorregister.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 54
Send feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6.6. Systolisk/Chainout Tab
Tabel 35. Systolisk/Chainout Adder Tab
Parameter Aktiver chainout adder
IP-genereret parameter
Værdi
chainout_add JA,
er
INGEN
Hvad er chainout adder-operationstypen?
chainout_add ADD,
er_retning
SUB
Aktiver "negativ" input for chainout adder?
Port_negate
PORT_USED, PORT_UNUSED
Vil du registrere "negativ" input? negate_registr er
UREGISTERET, CLOCK0, CLOCK1, CLOCK2, CLOCK3
Hvad er kilden til asynkron clear input?
negate_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
negate_sclr
INGEN SCLR0 SCLR1
Systolisk forsinkelse
Aktiver systoliske forsinkelsesregistre
gui_systolic_d Til
Elay
Slukket
Hvad er kilden til clock input?
gui_systolic_d CLOCK0,
elay_clock
UR1,
Standardværdi
INGEN
Beskrivelse
Vælg JA for at aktivere chainout adder-modul.
TILFØJE
Specificerer chainout adder-operationen.
Til subtraktionsoperation skal SIGNED vælges for Hvad er repræsentationsformatet for Multiplikator A-input? og Hvad er repræsentationsformatet for Multiplikator B input? i fanebladet Multiplikatorer.
PORT_UN BRUGT
Vælg PORT_USED for at aktivere negeret inputsignal.
Denne parameter er ugyldig, når chainout adder er deaktiveret.
UANMELDT ERED
For at aktivere indgangsregistret for negeret inputsignal og specificerer input clock-signalet for negate register.
Vælg UNREGISTERED, hvis det ikke er nødvendigt med negate input register til
Denne parameter er ugyldig, når du vælger:
· NEJ for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver 'negativ' input for chainout adder? parameter eller
INGEN
Specificerer den asynkrone klare kilde for det negative register.
Denne parameter er ugyldig, når du vælger:
· NEJ for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver 'negativ' input for chainout adder? parameter eller
INGEN
Specificerer den synkrone klare kilde for det negative register.
Denne parameter er ugyldig, når du vælger:
· NEJ for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver 'negativ' input for chainout adder? parameter eller
Fra UR0
Vælg denne mulighed for at aktivere systolisk tilstand. Denne parameter er tilgængelig, når du vælger 2 eller 4 for Hvad er antallet af multiplikatorer? parameter. Du skal aktivere registerudgangen på addererenheden for at bruge de systoliske forsinkelsesregistre.
Specificerer input-clock-signalet for systolisk forsinkelsesregister.
fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genereret parameter
Værdi
UR2,
Hvad er kilden til asynkron clear input?
gui_systolic_d elay_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_systolic_d elay_sclr
INGEN SCLR0 SCLR1
Standardværdi
INGEN
INGEN
Beskrivelse
Du skal vælge aktivér systoliske forsinkelsesregistre for at aktivere denne mulighed.
Specificerer den asynkrone slettekilde for det systoliske forsinkelsesregister. Du skal vælge aktivér systoliske forsinkelsesregistre for at aktivere denne mulighed.
Specificerer den synkrone slettekilde for det systoliske forsinkelsesregister. Du skal vælge aktivér systoliske forsinkelsesregistre for at aktivere denne mulighed.
8.6.7. Rørledningsfane
Tabel 36. Rørføring Tab
Parameter Pipelining-konfiguration
IP-genereret parameter
Værdi
Vil du tilføje pipelineregister til inputtet?
gui_pipelining Nej, ja
Standardværdi
Ingen
Angiv venligst
latenstid
antal latency ur
cyklusser
Enhver værdi større 0 end 0
Hvad er kilden til clock input?
gui_input_late ncy_clock
CLOCK0, CLOCK1, CLOCK2
Hvad er kilden til asynkron clear input?
gui_input_late ncy_aclr
INGEN ACLR0 ACLR1
Hvad er kilden til synkron clear input?
gui_input_late ncy_sclr
INGEN SCLR0 SCLR1
UR0 INGEN INGEN
Beskrivelse
Vælg Ja for at aktivere et ekstra niveau af pipelineregister til inputsignalerne. Du skal angive en værdi større end 0 for Angiv venligst parameteren for antallet af latency-urcyklusser.
Angiver den ønskede latenstid i clock-cyklusser. Et niveau af pipelineregister = 1 latens i clock-cyklus. Du skal vælge JA for Vil du tilføje pipelineregister til inputtet? for at aktivere denne mulighed.
Vælg Clock0 , Clock1 eller Clock2 for at aktivere og specificere pipelineregisterets input-ursignal. Du skal vælge JA for Vil du tilføje pipelineregister til input? for at aktivere denne mulighed.
Specificerer registrets asynkrone clear-kilde for det ekstra pipelineregister. Du skal vælge JA for Vil du tilføje pipelineregister til input? for at aktivere denne mulighed.
Specificerer den registersynkrone clear-kilde for det ekstra pipelineregister. Du skal vælge JA for Vil du tilføje pipelineregister til input? for at aktivere denne mulighed.
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 56
Send feedback
683490 | 2020.10.05 Send feedback
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core
Opmærksomhed:
Intel har fjernet understøttelsen af denne IP i Intel Quartus Prime Pro Edition version 20.3. Hvis IP-kernen i dit design er målrettet mod enheder i Intel Quartus Prime Pro Edition, kan du erstatte IP'en med LPM_MULT Intel FPGA IP eller gengenerere IP'en og kompilere dit design ved hjælp af Intel Quartus Prime Standard Edition-softwaren.
ALTMEMMULT IP-kernen bruges til at skabe hukommelsesbaserede multiplikatorer ved hjælp af de onchip-hukommelsesblokke, der findes i Intel FPGA'er (med M512, M4K, M9K og MLAB hukommelsesblokke). Denne IP-kerne er nyttig, hvis du ikke har tilstrækkelige ressourcer til at implementere multiplikatorerne i logiske elementer (LE'er) eller dedikerede multiplikatorressourcer.
ALTMEMMULT IP-kernen er en synkron funktion, der kræver et ur. ALTMEMMULT IP-kernen implementerer en multiplikator med den mindst mulige gennemløb og latenstid for et givet sæt parametre og specifikationer.
Følgende figur viser portene til ALTMEMMULT IP-kernen.
Figur 21. ALTMEMMULT-porte
ALTMEMMULT
data_in[] sload_data coeff_in[]
resultat[] resultat_gyldig load_done
sload_coeff
sclr ur
inst
Relaterede informationsfunktioner på side 71
9.1. Funktioner
ALTMEMMULT IP-kernen tilbyder følgende funktioner: · Opretter kun hukommelsesbaserede multiplikatorer ved hjælp af on-chip hukommelsesblokke fundet i
Intel FPGA'er · Understøtter databredde på 1 bits · Understøtter signerede og usignerede datarepræsentationsformater · Understøtter pipelining med fast output latency
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
ISO 9001: 2015 Registreret
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05
· Gemmer multiple konstanter i RAM (Random-Access Memory)
· Giver mulighed for at vælge RAM-bloktype
· Understøtter valgfrie synkrone klare og belastningskontrollerede inputporte
9.2. Verilog HDL prototype
Følgende Verilog HDL-prototype er placeret i Verilog Design File (.v) altera_mf.v i eda syntese bibliotek.
modul altmemmult #( parameter coeff_representation = "SIGNED", parameter coefficient0 = "UNUSED", parameter data_representation = "SIGNED", parameter intended_device_family = "unused", parameter max_clock_cycles_per_result = 1, parameter number_of_coefficients = 1, parameter ram_block", parameter = "AUTO 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 ledningsur, input wire [width_c-1: 0]coeff_in, input wire [width_d-1:0] data_in, output wire load_done, output wire [width_r-1:0] result, output wire result_valid, input wire sclr, input wire [width_s-1:0] sel, input wire sload_coeff, input wire sload_data)/* syntese syn_black_box=1 */; slutmodul
9.3. VHDL-komponenterklæring
VHDL-komponentdeklarationen er placeret i VHDL-designet File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_mf bibliotek.
komponent altmemmult generisk ( coeff_representation:string := "SIGNED"; coefficient0:string := "UBUSED"; data_representation:string := "SIGNED"; intended_device_family:string:= "unused"; max_clock_cycles_per_result1:natural_of_al_coefficient := := 1; ram_blok: := "AUTO"; "altmemmult"); port(ur:in std_logic; coeff_in:in std_logic_vector(width_c-1 ned til 1) := (andre => '0'); data_in:in std_logic_vector(width_d-0 ned til 1);
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 58
Send feedback
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05
load_done:out std_logic; result:out std_logic_vector(width_r-1 ned til 0); result_valid:out std_logic; sclr:in std_logic := '0'; sel:in std_logic_vector(width_s-1 ned til 0) := (andre => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); ende komponent;
9.4. Havne
Følgende tabeller viser input- og outputportene for ALTMEMMULT IP-kernen.
Tabel 37. ALTMEMMULT-indgangsporte
Port navn
Påkrævet
Beskrivelse
ur
Ja
Urinput til multiplikatoren.
coeff_in[]
Ingen
Koefficientindgangsport for multiplikatoren. Størrelsen af inputporten afhænger af WIDTH_C parameterværdien.
data_in[]
Ja
Datainputport til multiplikatoren. Størrelsen af inputporten afhænger af WIDTH_D parameterværdien.
sclr
Ingen
Synkron klar input. Hvis den ikke bruges, er standardværdien aktiv høj.
sel[]
Ingen
Fast koefficientvalg. Størrelsen på inputporten afhænger af WIDTH_S
parameterværdi.
sload_coeff
Ingen
Indgangsport for synkron belastningskoefficient. Erstatter den aktuelt valgte koefficientværdi med værdien angivet i coeff_in input.
sload_data
Ingen
Synkron indlæsningsport for data. Signal, der specificerer ny multiplikationsoperation og annullerer enhver eksisterende multiplikationsoperation. Hvis parameteren MAX_CLOCK_CYCLES_PER_RESULT har en værdi på 1, ignoreres sload_data-inputporten.
Tabel 38. ALTMEMMULT udgangsporte
Port navn
Påkrævet
Beskrivelse
resultat[]
Ja
Multiplikator udgangsport. Størrelsen af inputporten afhænger af WIDTH_R parameterværdien.
resultat_gyldig
Ja
Angiver, hvornår outputtet er det gyldige resultat af en komplet multiplikation. Hvis parameteren MAX_CLOCK_CYCLES_PER_RESULT har en værdi på 1, bruges output_valid outputporten ikke.
load_done
Ingen
Angiver, hvornår den nye koefficient er færdig med at indlæse. load_done-signalet hævder, når en ny koefficient er færdig med at indlæse. Medmindre load_done-signalet er højt, kan ingen anden koefficientværdi indlæses i hukommelsen.
9.5. Parametre
Følgende tabel viser parametrene for ALTMEMMULT IP-kernen.
Tabel 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parametre
Parameternavn
Type påkrævet
Beskrivelse
Heltal Ja
Angiver bredden af data_in[]-porten.
Heltal Ja
Angiver bredden af coeff_in[]-porten. fortsatte…
Send feedback
Intel FPGA Integer Arithmetic IP Cores Brugervejledning 59
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05
Parameternavn WIDTH_R WIDTH
Dokumenter/ressourcer
![]() |
intel FPGA Integer Arithmetic IP Cores [pdfBrugervejledning FPGA Integer Aritmetic IP Cores, Integer Arithmetic IP Cores, Arithmetic IP Cores, IP Cores |