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

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *