FPGA heltalls aritmetiske IP-kjerner
Intel FPGA Integer Arithmetic IP Cores brukerveiledning
Oppdatert for Intel® Quartus® Prime Design Suite: 20.3
Online versjon Send tilbakemelding
UG-01063
ID: 683490 Versjon: 2020.10.05
Innhold
Innhold
1. Intel FPGA Integer Aritmetic IP-kjerner……………………………………………………………………….. 5
2. LPM_COUNTER (Teller) IP-kjerne……………………………………………………………………………….. 7 2.1. Funksjoner………………………………………………………………………………………………………………7 2.2. Verilog HDL-prototype……………………………………………………………………………………….. 8 2.3. VHDL-komponenterklæring……………………………………………………………………………….8 2.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………… 9 2.5. Havner………………………………………………………………………………………………………………………..9 2.6. Parametre……………………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divider) Intel FPGA IP Core……………………………………………………………………….. 12 3.1. Egenskaper………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototype……………………………………………………………………………………… 12 3.3. VHDL-komponenterklæring………………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE-erklæring………………………………………………………………………………. 13 3.5. Havner……………………………………………………………………………………………………………… 13 3.6. Parametre……………………………………………………………………………………………………………… 14
4. LPM_MULT (multiplikator) IP-kjerne………………………………………………………………………………………. 16 4.1. Egenskaper………………………………………………………………………………………………. 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-enheter………………… 18 4.6.1. Generelt-fanen…………………………………………………………………………………………18 4.6.2. Generelt 2 Fane……………………………………………………………………………………… 19 4.6.3. Rørledningsfane……………………………………………………………………………………… 19 4.7. Parametere for Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheter……….. 20 4.7.1. Generelt-fanen…………………………………………………………………………………………20 4.7.2. Generelt 2 Fane……………………………………………………………………………………… 20 4.7.3. Rørføring………………………………………………………………………………………………………21
5. LPM_ADD_SUB (Adder/Subtraktør)………………………………………………………………………………… 22 5.1. Egenskaper………………………………………………………………………………………………. 22 5.2. Verilog HDL-prototype……………………………………………………………………………………… 23 5.3. VHDL-komponenterklæring………………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE-erklæring………………………………………………………………………………. 23 5.5. Havner……………………………………………………………………………………………………………… 23 5.6. Parametere……………………………………………………………………………………………………………… 24
6. LPM_COMPARE (Komparator) ………………………………………………………………………………………… 26 6.1. Egenskaper………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototype……………………………………………………………………………………… 27 6.3. VHDL-komponenterklæring………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE-erklæring………………………………………………………………………………. 27 6.5. Havner……………………………………………………………………………………………………………… 27 6.6. Parametre……………………………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 2
Send tilbakemelding
Innhold
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core………………………………………… 30
7.1. ALTECC-koderfunksjoner…………………………………………………………………………………..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. Enkoderporter……………………………………………………………………………………………………… 33 7.8. Dekoderporter………………………………………………………………………………………………………34 7.9. Koderparametere……………………………………………………………………………………… 34 7.10. Dekoderparametre ……………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………………. 36
8.1. Egenskaper………………………………………………………………………………………………. 37 8.1.1. Pre-adder……………………………………………………………………………………………….. 38 8.1.2. Systolisk forsinkelsesregister……………………………………………………………………….. 40 8.1.3. Forbelastningskonstant……………………………………………………………………………… 43 8.1.4. Dobbel 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. Parametere……………………………………………………………………………………………………………… 47
8.6.1. Generelt-fanen…………………………………………………………………………………………47 8.6.2. Kategorien Ekstra modus………………………………………………………………………………….. 47 8.6.3. Multiplikatorfane……………………………………………………………………………………….. 49 8.6.4. Preadder-fane………………………………………………………………………………………. 51 8.6.5. Akkumulatorfane………………………………………………………………………………….. 53 8.6.6. Systolisk/kjedeuttak…………………………………………………………………………………. 55 8.6.7. Rørledningsflik……………………………………………………………………………………… 56
9. ALTMEMMULT (minnebasert konstant koeffisientmultiplikator) IP-kjerne………………………… 57
9.1. Egenskaper………………………………………………………………………………………………. 57 9.2. Verilog HDL-prototype……………………………………………………………………………………… 58 9.3. VHDL-komponenterklæring………………………………………………………………………….. 58 9.4. Havner……………………………………………………………………………………………………………… 59 9.5. Parametre……………………………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiply-Accumulate) IP Core……………………………………………………… 61
10.1. Funksjoner……………………………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototype………………………………………………………………………………………………..62 10.3. VHDL-komponenterklæring………………………………………………………………………… 63 10.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………63 10.5. Havner………………………………………………………………………………………………………………. 63 10.6. Parametre………………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiply-Adder) IP-kjerne…………………………………………………………………..69
11.1. Funksjoner……………………………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototype………………………………………………………………………………………………..72 11.3. VHDL-komponenterklæring………………………………………………………………………… 72 11.4. VHDL LIBRARY_USE-erklæring………………………………………………………………………………72
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 3
Innhold
11.5. Havner………………………………………………………………………………………………………………. 72 11.6. Parametre………………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (kompleks multiplikator) IP-kjerne……………………………………………………… 86 12.1. Kompleks multiplikasjon………………………………………………………………………………………………. 86 12.2. Kanonisk representasjon………………………………………………………………………………… 87 12.3. Konvensjonell representasjon …………………………………………………………………………………. 87 12.4. Funksjoner……………………………………………………………………………………………………………….. 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 (heltalls kvadratrot) IP-kjerne…………………………………………………………………………92 13.1. Funksjoner……………………………………………………………………………………………………………….. 92 13.2. Verilog HDL-prototype………………………………………………………………………………………..92 13.3. VHDL-komponenterklæring………………………………………………………………………… 93 13.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………93 13.5. Havner………………………………………………………………………………………………………………. 93 13.6. Parametre………………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Parallell Adder) IP-kjerne………………………………………………………………….. 95 14.1. Funksjon……………………………………………………………………………………………………….95 14.2. Verilog HDL-prototype…………………………………………………………………………………………..95 14.3. VHDL-komponenterklæring………………………………………………………………………… 96 14.4. VHDL LIBRARY_USE Erklæring………………………………………………………………………………96 14.5. Havner………………………………………………………………………………………………………………. 96 14.6. Parametre………………………………………………………………………………………………………. 97
15. Integer Aritmetic IP Cores User Guide Document Archives………………………………… 98
16. Dokumentrevisjonshistorikk for Intel FPGA Integer Arithmetic IP Cores Brukerveiledning…. 99
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 4
Send tilbakemelding
683490 | 2020.10.05 Send tilbakemelding
1. Intel FPGA Integer Aritmetic IP-kjerner
Du kan bruke Intel® FPGA heltalls IP-kjerner til å utføre matematiske operasjoner i designet.
Disse funksjonene tilbyr mer effektiv logikksyntese og enhetsimplementering enn å kode dine egne funksjoner. Du kan tilpasse IP-kjernene for å imøtekomme dine designkrav.
Intel heltalls aritmetiske IP-kjerner er delt inn i følgende to kategorier: · Bibliotek med parameteriserte moduler (LPM) IP-kjerner · Intel-spesifikke (ALT) IP-kjerner
Tabellen nedenfor viser heltalls aritmetiske IP-kjerner.
Tabell 1.
Liste over IP-kjerner
IP-kjerner
LPM IP-kjerner
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Intel-spesifikke (ALT) IP-kjerner ALTECC
Funksjon overview Counter Divider Multiplikator
Adder- eller subtraktorkomparator
ECC-koder/dekoder
Støttet enhet
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 fortsatte...
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
1. Intel FPGA Integer Aritmetic 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
Funksjon overview Multiplikator-adder
Minnebasert konstant koeffisientmultiplikator
Multiplikator-akkumulator Multiplikator-adder
Kompleks multiplikator
Heltall kvadratrot
Parallell hugger
Støttet enhet
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
Relatert informasjon
· Versjonsmerknader for Intel FPGAer og programmerbare enheter
· Introduksjon til Intel FPGA IP-kjerner Gir mer informasjon om Intel FPGA IP-kjerner.
· Floating-Point IP Cores User Guide Gir mer informasjon om Intel FPGA Floating-Point IP-kjerner.
· Introduksjon til Intel FPGA IP-kjerner Gir generell informasjon om alle Intel FPGA IP-kjerner, inkludert parameterisering, generering, oppgradering og simulering av IP-kjerner.
· Lage versjonsuavhengige IP- og Qsys-simuleringsskript Lag simuleringsskript som ikke krever manuelle oppdateringer for programvare- eller IP-versjonsoppgraderinger.
· Retningslinjer for beste praksis for prosjektledelse for effektiv administrasjon og portabilitet av ditt prosjekt og IP files.
· Integer Arithmetic IP Cores User Guide Document Archives på side 98 Gir en liste over brukerveiledninger for tidligere versjoner av Integer Arithmetic IP-kjernene.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 6
Send tilbakemelding
683490 | 2020.10.05 Send tilbakemelding
2. LPM_COUNTER (Teller) IP-kjerne
Figur 1.
LPM_COUNTER IP-kjernen er en binær teller som lager opptellere, nedtellere og opp- eller nedtellere med utganger på opptil 256 bits brede.
Følgende figur viser portene for LPM_COUNTER IP-kjernen.
LPM_COUNTER porter
LPM_COUNTER
ssclr belastning sset data[]
q[]
opp ned
cout
aclr aload asset
clk_en cnt_en cin
inst
2.1. Funksjoner
LPM_COUNTER IP-kjernen tilbyr følgende funksjoner: · Genererer opp-, ned- og opp-/nedtellere · Genererer følgende tellertyper:
— Vanlig binær – telleren øker fra null eller minker fra 255
— Modulus – telleren øker til eller reduseres fra modulverdien spesifisert av brukeren og gjentas
· Støtter valgfrie synkrone clear-, load- og set-inngangsporter.
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
2. LPM_COUNTER (Teller) IP-kjerne
683490 | 2020.10.05
2.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_counter (q, data, klokke, 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 = "UBRUKT"; parameter lpm_avalue = "UBRUKT"; parameter lpm_svalue = "UBRUKT"; parameter lpm_pvalue = "UBRUKT"; parameter lpm_port_updown = "PORT_CONNECTIVITY"; parameter lpm_hint = "UBRUKT"; utgang [lpm_width-1:0] q; utgang cout; utgang [15:0] ekv; input cin; input [lpm_width-1:0] data; input clock, clk_en, cnt_en, updown; input asset, aclr, aload; input sset, sclr, belastning; endemodul
2.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
komponent LPM_COUNTER generisk ( LPM_WIDTH : naturlig; LPM_MODULUS : naturlig := 0; LPM_DIRECTION : streng := «UNUSED»; LPM_AVALUE : streng := «UNUSED»; LPM_SVALUE : streng := «UNUSED»; LPM_PORT:CONT_PORT:_CONT. ; LPM_PVALUE : string := “UNUSED”; LPM_TYPE : string := L_COUNTER; LPM_HINT : string := “UNUSED”); port (DATA: i std_logic_vector(LPM_WIDTH-1 ned til 0):= (ANDRE =>
'0'); KLOKKE: i std_logic; CLK_EN : i std_logic := '1'; CNT_EN : 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 : ut std_logic := '0'; Q: ut std_logic_vector(LPM_WIDTH-1 ned til 0); EQ: ut std_logic_vector(15 ned til 0));
sluttkomponent;
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 8
Send tilbakemelding
2. LPM_COUNTER (teller) IP-kjerne 683490 | 2020.10.05
2.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK lpm; BRUK lpm.lpm_components.all;
2.5. Porter
Følgende tabeller viser inngangs- og utgangsportene for LPM_COUNTER IP-kjernen.
Tabell 2.
LPM_COUNTER Inngangsporter
Portnavn
Obligatorisk
Beskrivelse
data[]
Ingen
Parallell datainngang til telleren. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTH.
klokke
Ja
Positiv kant-utløst klokkeinngang.
clk_no
Ingen
Klokkeaktiver input for å aktivere alle synkrone aktiviteter. Hvis den utelates, er standardverdien 1.
cnt_no
Ingen
Count aktiver inngang for å deaktivere tellingen når den er påstått lav uten å påvirke belastning, sset eller sclr. Hvis den utelates, er standardverdien 1.
opp ned
Ingen
Styrer retningen på tellingen. Når hevdet høy (1), er telleretningen opp, og når hevdet lav (0), er telleretningen ned. Hvis parameteren LPM_DIRECTION brukes, kan ikke opp-ned-porten kobles til. Hvis LPM_DIRECTION ikke brukes, er opp-ned-porten valgfri. Hvis den utelates, er standardverdien opp (1).
cin
Ingen
Bær inn til lavordensbiten. For opptellere er oppførselen til cin-inngangen
identisk med oppførselen til cnt_en-inngangen. Hvis den utelates, er standardverdien 1
(VCC).
aclr
Ingen
Asynkron klar inngang. Hvis både aset og aclr brukes og hevdes, overstyrer aclr asset. Hvis den utelates, er standardverdien 0 (deaktivert).
aset
Ingen
Asynkron sett inngang. Spesifiserer q[]-utgangene som alle 1-er, eller til verdien spesifisert av LPM_AVALUE-parameteren. Hvis både asset- og aclr-portene brukes og hevdes, overstyrer verdien av aclr-porten verdien til asset-porten. Hvis utelatt, er standardverdien 0, deaktivert.
mye
Ingen
Asynkron belastningsinngang som asynkront laster telleren med verdien på datainngangen. Når aload-porten brukes, må data[]-porten kobles til. Hvis utelatt, er standardverdien 0, deaktivert.
sclr
Ingen
Synkron klarinngang som sletter telleren på neste aktive klokkekant. Hvis både sset- og sclr-portene brukes og hevdes, overstyrer verdien til sclr-porten verdien til sset-porten. Hvis utelatt, er standardverdien 0, deaktivert.
sett
Ingen
Synkron sett inngang som setter telleren på neste aktive klokkekant. Spesifiserer verdien av q-utgangene som alle 1-er, eller til verdien spesifisert av LPM_SVALUE-parameteren. Hvis både sset- og sclr-portene brukes og hevdes,
verdien til sclr-porten overstyrer verdien til sset-porten. Hvis den utelates, er standardverdien 0 (deaktivert).
belastning
Ingen
Synkron belastningsinngang som laster telleren med data[] på neste aktive klokkekant. Når belastningsporten brukes, må data[]-porten kobles til. Hvis den utelates, er standardverdien 0 (deaktivert).
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 9
2. LPM_COUNTER (teller) IP-kjerne 683490 | 2020.10.05
Tabell 3.
LPM_COUNTER utgangsporter
Portnavn
Obligatorisk
Beskrivelse
q[]
Ingen
Datautgang fra telleren. Størrelsen på utgangsporten avhenger av
LPM_WIDTH parameterverdi. Enten q[] eller minst én av eq[15..0]-portene
må være koblet til.
eq[15..0]
Ingen
Utgang for tellerdekode. eq[15..0]-porten er ikke tilgjengelig i parametereditoren fordi parameteren kun støtter AHDL.
Enten q[]-porten eller eq[]-porten må være tilkoblet. Opp til c eq-porter kan brukes (0 <= c <= 15). Bare de 16 laveste telleverdiene dekodes. Når telleverdien er c, hevdes eqc-utgangen høy (1). For eksample, når tellingen er 0, eq0 = 1, når tellingen er 1, eq1 = 1, og når tellingen er 15, eq 15 = 1. Dekodet utgang for telleverdier på 16 eller høyere krever ekstern dekoding. eq[15..0]-utgangene er asynkrone med q[]-utgangen.
cout
Ingen
Utfør port av tellerens MSB-bit. Den kan brukes til å koble til en annen teller for å lage en større teller.
2.6. parametere
Tabellen nedenfor viser parameterne for LPM_COUNTER IP-kjernen.
Tabell 4.
LPM_COUNTER parametere
Parameternavn
Type
LPM_WIDTH
Heltall
LPM_DIRECTION
String
LPM_MODULUS LPM_AVALUE
Heltall
Heltall/ streng
LPM_SVALUE LPM_HINT
Heltall/ streng
String
LPM_TYPE
String
Påkrevd Ja Nei Nei Nei
Nei Nei
Ingen
Beskrivelse
Angir bredden på data[]- og q[]-portene, hvis de brukes.
Verdiene er OPP, NED og UBRUKT. Hvis parameteren LPM_DIRECTION brukes, kan ikke opp-ned-porten kobles til. Når opp-ned-porten ikke er tilkoblet, er standardverdien for LPM_DIRECTION-parameteren OPP.
Maksimalt antall pluss én. Antall unike tilstander i tellerens syklus. Hvis belastningsverdien er større enn parameteren LPM_MODULUS, spesifiseres ikke tellerens oppførsel.
Konstant verdi som lastes når eiendelen hevdes høy. Hvis verdien som er spesifisert er større enn eller lik , er oppførselen til telleren et udefinert (X) logisk nivå, hvor er LPM_MODULUS, hvis den finnes, eller 2 ^ LPM_WIDTH. Intel anbefaler at du angir denne verdien som et desimaltall for AHDL-design.
Konstant verdi som lastes på den stigende kanten av klokkeporten når sset-porten er hevdet høy. Intel anbefaler at du angir denne verdien som et desimaltall for AHDL-design.
Når du instansierer et bibliotek med parameteriserte moduler (LPM) fungerer i en VHDL-design File (.vhd), må du bruke parameteren LPM_HINT for å spesifisere en Intel-spesifikk parameter. For eksample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
Standardverdien er UNUSED.
Identifiserer biblioteket av parameteriserte moduler (LPM) enhetsnavn i VHDL-design files.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 10
Send tilbakemelding
2. LPM_COUNTER (teller) IP-kjerne 683490 | 2020.10.05
Parameternavn INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Skriv inn strengstreng
String
String
Påkrevd Nei Nr
Ingen
Ingen
Beskrivelse
Denne parameteren brukes til modellering og atferdssimulering. Denne parameteren brukes til modellering og atferdssimulering. Parametereditoren beregner verdien for denne parameteren.
Intel-spesifikk parameter. Du må bruke LPM_HINT-parameteren for å spesifisere CARRY_CNT_EN-parameteren i VHDL-design files. Verdiene er SMART, PÅ, AV og UBRUKT. Aktiverer LPM_COUNTER-funksjonen for å spre cnt_en-signalet gjennom bærekjeden. I noen tilfeller kan parameterinnstillingen CARRY_CNT_EN ha en liten innvirkning på hastigheten, så det kan være lurt å slå den av. Standardverdien er SMART, som gir den beste avveiningen mellom størrelse og hastighet.
Intel-spesifikk parameter. Du må bruke LPM_HINT-parameteren for å spesifisere LABWIDE_SCLR-parameteren i VHDL-design files. Verdiene er PÅ, AV eller UBRUKTE. Standardverdien er PÅ. Lar deg deaktivere bruken av LABwide sclr-funksjonen som finnes i foreldede enhetsfamilier. Å slå av dette alternativet øker sjansene for å fullt ut bruke de delvis fylte LAB-ene, og kan dermed tillate høyere logikktetthet når SCLR ikke gjelder for en komplett LAB. Denne parameteren er tilgjengelig for bakoverkompatibilitet, og Intel anbefaler at du ikke bruker denne parameteren.
Spesifiserer bruken av opp-ned-inngangsporten. Hvis den utelates, er standardverdien PORT_CONNECTIVITY. Når portverdien er satt til PORT_USED, behandles porten som brukt. Når portverdien er satt til PORT_UNUSED, behandles porten som ubrukt. Når portverdien er satt til PORT_CONNECTIVITY, bestemmes portbruken ved å sjekke porttilkoblingen.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 11
683490 | 2020.10.05 Send tilbakemelding
3. LPM_DIVIDE (Divider) Intel FPGA IP Core
Figur 2.
LPM_DIVIDE Intel FPGA IP-kjernen implementerer en deler for å dele en tellerinndataverdi med en nevnerinndataverdi for å produsere en kvotient og en rest.
Følgende figur viser portene for LPM_DIVIDE IP-kjernen.
LPM_DIVIDE-porter
LPM_DIVIDE
tall[] denom[] klokke
kvotient[] forbli[]
clken aclr
inst
3.1. Funksjoner
LPM_DIVIDE IP-kjernen tilbyr følgende funksjoner: · Genererer en deler som deler en tellerinndataverdi med en nevnerinngang
verdi for å produsere en kvotient og en rest. · Støtter databredde på 1 biter. · Støtter signerte og usignerte datarepresentasjonsformater for både telleren
og nevnerverdier. · Støtter område- eller hastighetsoptimalisering. · Gir et alternativ for å spesifisere en positiv restutgang. · Støtter pipelining konfigurerbar output latency. · Støtter valgfrie asynkrone klare og klokkeaktiverte porter.
3.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_divide (kvotient, forbli, tall, denom, klokke, 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 rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
parameter lpm_hint = "UBRUKT"; input klokke; input clken; input aclr; skriv inn [lpm_widthn-1:0] tall; input [lpm_widthd-1:0] denom; utgang [lpm_widthn-1:0] kvotient; utgang [lpm_widthd-1:0] forblir; endemodul
3.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
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'; KLOKKE: i std_logic:= '0'; std_logic: := '1'; QUOTIENT: ut std_logic_vector(LPM_WIDTHN-1 ned til 0); REMAIN: ut std_logic_vector(LPM_WIDTHD-1 ned til 0)); sluttkomponent;
3.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK lpm; BRUK lpm.lpm_components.all;
3.5. Porter
Følgende tabeller viser inngangs- og utgangsportene for LPM_DIVIDE IP-kjernen.
Tabell 5.
LPM_DIVIDE Inngangsporter
Portnavn
Obligatorisk
nummer[]
Ja
betegnelse[]
Ja
Beskrivelse
Inndata fra teller. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTHN.
Inndata for nevneren. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTHD.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 13
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Port Navn klokke clken
aclr
Påkrevd Nei Nr
Ingen
Beskrivelse
Klokkeinngang for bruk i pipeline. For andre LPM_PIPELINE-verdier enn 0 (standard), må klokkeporten være aktivert.
Klokke aktiver pipelined bruk. Når clken-porten er hevdet høy, finner delingsoperasjonen sted. Når signalet er lavt, skjer ingen operasjon. Hvis den utelates, er standardverdien 1.
Asynkron klarport brukes til enhver tid for å tilbakestille rørledningen til alle '0'er asynkront med klokkeinngangen.
Tabell 6.
LPM_DIVIDE utgangsporter
Portnavn
Obligatorisk
Beskrivelse
kvotient[]
Ja
Datautgang. Størrelsen på utgangsporten avhenger av LPM_WIDTHN
parameterverdi.
forbli[]
Ja
Datautgang. Størrelsen på utgangsporten avhenger av LPM_WIDTHD
parameterverdi.
3.6. parametere
Tabellen nedenfor viser parameterne for LPM_DIVIDE Intel FPGA IP-kjernen.
Parameternavn
Type
Obligatorisk
Beskrivelse
LPM_WIDTHN
Heltall
Ja
Angir breddene på tallet[] og
kvotient[] porter. Verdiene er 1 til 64.
LPM_WIDTHD
Heltall
Ja
Spesifiserer bredden på betegnelsen[] og
forbli[] porter. Verdiene er 1 til 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
String String
Ingen
Tegnrepresentasjon av tellerinndata.
Verdier er SIGNERT og USIGNERT. Når dette
parameteren er satt til SIGNED, skillelinjen
tolker tall[]-inngangen som to-tegn
komplement.
Ingen
Tegnrepresentasjon av nevnerens inngang.
Verdier er SIGNERT og USIGNERT. Når dette
parameteren er satt til SIGNED, skillelinjen
tolker denom[]-inngangen som to-tegn
komplement.
LPM_TYPE
String
Ingen
Identifiserer biblioteket til parameteriserte
moduler (LPM) enhetsnavn i VHDL-design
files (.vhd).
LPM_HINT
String
Ingen
Når du instansierer et bibliotek av
parameteriserte moduler (LPM) fungerer i en
VHDL-design File (.vhd), må du bruke
LPM_HINT-parameter for å spesifisere en Intel-
spesifikk parameter. For eksample: LPM_HINT
= "CHAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = JA” Den
standardverdien er UNUSED.
LPM_REMAINDERPOSITIVE
String
Ingen
Intel-spesifikk parameter. Du må bruke
LPM_HINT parameter for å spesifisere
LPM_REMAINDERPOSITIVE parameter inn
VHDL-design files. Verdiene er TRUE eller FALSE.
Hvis denne parameteren er satt til TRUE, vil den
verdien av rest[]-porten må være større
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 14
Send tilbakemelding
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Parameternavn
Type
MAXIMIZE_SPEED
Heltall
LPM_PIPELINE
Heltall
INTENDED_DEVICE_FAMILY SKIP_BITS
String heltall
Påkrevd nr
Nei Nei Nei
Beskrivelse
enn eller lik null. Hvis denne parameteren er satt til TRUE, er verdien for rest[]-porten enten null, eller verdien er det samme tegnet, enten positivt eller negativt, som verdien til tallporten. For å redusere arealet og forbedre hastigheten, anbefaler Intel å sette denne parameteren til TRUE i operasjoner der resten må være positiv eller hvor resten er uviktig.
Intel-spesifikk parameter. Du må bruke LPM_HINT-parameteren for å spesifisere MAXIMIZE_SPEED-parameteren i VHDL-design files. Verdiene er [0..9]. Hvis den brukes, prøver Intel Quartus Prime-programvaren å optimalisere en spesifikk forekomst av LPM_DIVIDE-funksjonen for hastighet i stedet for ruterbarhet, og overstyrer innstillingen for logikkalternativet for optimaliseringsteknikk. Hvis MAXIMIZE_SPEED er ubrukt, brukes verdien av alternativet Optimaliseringsteknikk i stedet. Hvis verdien av MAXIMIZE_SPEED er 6 eller høyere, optimaliserer kompilatoren LPM_DIVIDE IP-kjernen for høyere hastighet ved å bruke bærekjeder; hvis verdien er 5 eller mindre, implementerer kompilatoren designet uten bærekjeder.
Spesifiserer antall klokkesykluser med latens assosiert med kvotienten[] og rest[]-utgangene. En verdi på null (0) indikerer at ingen latens eksisterer, og at en ren kombinasjonsfunksjon er instansiert. Hvis den utelates, er standardverdien 0 (ikke-pipelined). Du kan ikke angi en verdi for LPM_PIPELINE-parameteren som er høyere enn LPM_WIDTHN.
Denne parameteren brukes til modellering og atferdssimulering. Parametereditoren beregner verdien for denne parameteren.
Tillater mer effektiv brøkbitdeling for å optimalisere logikken på de ledende bitene ved å gi antallet ledende GND til LPM_DIVIDE IP-kjernen. Spesifiser antall ledende GND på kvotientutgangen til denne parameteren.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 15
683490 | 2020.10.05 Send tilbakemelding
4. LPM_MULT (multiplikator) IP-kjerne
Figur 3.
LPM_MULT IP-kjernen implementerer en multiplikator for å multiplisere to inngangsdataverdier for å produsere et produkt som en utgang.
Følgende figur viser portene for LPM_MULT IP-kjernen.
LPM_Multporter
LPM_MULT klokkedataa[] resultat[] data[] aclr/sclr clken
inst
Relaterte informasjonsfunksjoner på side 71
4.1. Funksjoner
LPM_MULT IP-kjernen tilbyr følgende funksjoner: · Genererer en multiplikator som multipliserer to inngangsdataverdier · Støtter databredde på 1 biter · Støtter signerte og usignerte datarepresentasjonsformater · Støtter område- eller hastighetsoptimalisering · Støtter pipelining med konfigurerbar utdatalatens · Gir en mulighet for implementering i dedikert digital signalbehandling (DSP)
blokkkretser eller logiske elementer (LE-er) Merk: Når du bygger multiplikatorer som er større enn den opprinnelig støttede størrelsen, kan/
vil være en ytelsespåvirkning som følge av kaskaden av DSP-blokkene. · Støtter valgfrie asynkron clear og klokkeaktiverte inngangsporter · Støtter valgfri synkron clear for Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheter
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
4. LPM_MULT (Multiplier) IP-kjerne 683490 | 2020.10.05
4.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_mult (resultat, dataa, datab, sum, klokke, 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 = "UBRUKT"; input klokke; input clken; input aclr; input [lpm_widtha-1:0] dataa; input [lpm_widthb-1:0] data; skriv inn [lpm_widths-1:0] sum; output [lpm_widthp-1:0] resultat; endemodul
4.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
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'; KLOKKE: i std_logic:= '0 i'; std_logic: := '1'; SUM : i std_logic_vector(LPM_WIDTHS-1 ned til 0) := (ANDRE => '0'); RESULTAT: ut std_logic_vector(LPM_WIDTHP-1 ned til 0)); sluttkomponent;
4.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK lpm; BRUK lpm.lpm_components.all;
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 17
4. LPM_MULT (Multiplier) IP-kjerne 683490 | 2020.10.05
4.5. Signaler
Tabell 7.
LPM_MULT Inngangssignaler
Signalnavn
Obligatorisk
Beskrivelse
dataa[]
Ja
Datainput.
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheter avhenger størrelsen på inngangssignalet av Dataa-breddeparameterverdien.
For eldre enheter og Intel Cyclone 10 LP-enheter avhenger størrelsen på inngangssignalet av parameterverdien LPM_WIDTHA.
data[]
Ja
Datainput.
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheter avhenger størrelsen på inngangssignalet av parameterverdien for databredde.
For eldre enheter og Intel Cyclone 10 LP-enheter avhenger størrelsen på inngangssignalet
på parameterverdien LPM_WIDTHB.
klokke
Ingen
Klokkeinngang for bruk i pipeline.
For eldre enheter og Intel Cyclone 10 LP-enheter må klokkesignalet være aktivert for andre LPM_PIPELINE-verdier enn 0 (standard).
For Intel Stratix 10-, Intel Arria 10- og Intel Cyclone 10 GX-enheter må klokkesignalet være aktivert hvis latensverdien er en annen enn 1 (standard).
clken
Ingen
Klokkeaktivert for bruk i pipeline. Når clken-signalet er hevdet høyt, vil
addisjons-/subtraktordrift finner sted. Når signalet er lavt, ingen operasjon
inntreffer. Hvis den utelates, er standardverdien 1.
aclr sclr
Ingen
Asynkront klarsignal brukes til enhver tid for å tilbakestille rørledningen til alle 0-er,
asynkront med klokkesignalet. Rørledningen initialiseres til en udefinert (X)
logisk nivå. Utgangene er en konsistent, men ikke-null verdi.
Ingen
Synkront klarsignal brukes til enhver tid for å tilbakestille rørledningen til alle 0-er,
synkront med klokkesignalet. Rørledningen initialiseres til en udefinert (X)
logisk nivå. Utgangene er en konsistent, men ikke-null verdi.
Tabell 8.
LPM_MULT Utgangssignaler
signal Navn
Obligatorisk
Beskrivelse
resultat[]
Ja
Datautgang.
For eldre enheter og Intel Cyclone 10 LP-enheter avhenger størrelsen på utgangssignalet av parameterverdien LPM_WIDTHP. Hvis LPM_WIDTHP < maks (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) eller (LPM_WIDTHA + LPM_WIDTHS), er bare LPM_WIDTHP MSB-ene til stede.
For Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX avhenger størrelsen på utgangssignalene av parameteren Resultatbredde.
4.6. Parametre for Stratix V-, Arria V-, Cyclone V- og Intel Cyclone 10 LP-enheter
4.6.1. Generelt-fanen
Tabell 9.
Generelt-fanen
Parameter
Verdi
Multiplikatorkonfigurasjon
Multipliser 'dataa'-inndata med 'datab'-inndata
Standardverdi
Beskrivelse
Multipliser 'dataa'-inndata med 'datab'-inndata
Velg ønsket konfigurasjon for multiplikatoren.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 18
Send tilbakemelding
4. LPM_MULT (Multiplier) IP-kjerne 683490 | 2020.10.05
Parameter
Hvor bred skal "dataa"-inngangen være? Hvor bred skal 'datab'-inngangen være? Hvordan skal bredden på "resultat"-utgangen bestemmes? Begrens bredden
Verdi
Multipliser 'dataa'-inndata av seg selv (kvadreringsoperasjon)
1 – 256 biter
Standardverdi
Beskrivelse
8 biter
Spesifiser bredden på dataa[]-porten.
1 – 256 biter
8 biter
Spesifiser bredden på dataab[]-porten.
Beregn automatisk bredden Begrens bredden
1 – 512 biter
Beregn automatisk bredden
Velg ønsket metode for å bestemme bredden på resultat[]-porten.
16 biter
Spesifiser bredden på resultat[]-porten.
Denne verdien vil bare være effektiv hvis du velger Begrens bredden i Type-parameteren.
4.6.2. Generelt 2 Tab
Tabell 10. Generelt 2 Tab
Parameter
Verdi
Datainngang
Har 'datab' inngangsbussen en konstant verdi?
Nei Ja
Multiplikasjonstype
Hvilken type
Usignert
multiplikasjon vil du ha? Signert
Implementering
Hvilken multiplikatorimplementering bør brukes?
Bruk standardimplementeringen
Bruk de dedikerte multiplikatorkretsene (ikke tilgjengelig for alle familier)
Bruk logiske elementer
Standardverdi
Beskrivelse
Ingen
Velg Ja for å angi den konstante verdien av
`datab' inngangsbuss, hvis noen.
Usignert
Spesifiser representasjonsformatet for både dataa[]- og data[]-inndata.
Bruk standardimplementeringen
Velg ønsket metode for å bestemme bredden på resultat[]-porten.
4.6.3. Rørledning Tab
Tabell 11. Rørføring Tab
Parameter
Ønsker du å rørlegge nr
funksjon?
Ja
Verdi
Opprett en 'aclr'
—
asynkron klar port
Standardverdi
Beskrivelse
Ingen
Velg Ja for å aktivere pipeline register til
multiplikatorens utgang og spesifiser ønsket
utgangslatens i klokkesyklus. Aktivering av
pipeline register legger til ekstra latens til
produksjon.
Ikke avmerket
Velg dette alternativet for å aktivere aclr-porten til å bruke asynkron sletting for rørledningsregisteret.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 19
4. LPM_MULT (Multiplier) IP-kjerne 683490 | 2020.10.05
Parameter
Lag en "clken"-klokkeaktivert klokke
Optimalisering
Hvilken type optimalisering ønsker du?
Verdi -
Standard hastighetsområde
Standardverdi
Beskrivelse
Ikke avmerket
Spesifiserer aktiv høy klokkeaktivering for klokkeporten til rørledningsregisteret
Misligholde
Spesifiser ønsket optimalisering for IP-kjernen.
Velg Standard for å la Intel Quartus Prime-programvare finne den beste optimaliseringen for IP-kjernen.
4.7. Parametere for Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheter
4.7.1. Generelt-fanen
Tabell 12. Generelt Tab
Parameter
Verdi
Standardverdi
Beskrivelse
Multiplikatorkonfigurasjonstype
Dataportbredder
Multipliser 'dataa'-inndata med 'datab'-inndata
Multipliser 'dataa'-inndata av seg selv (kvadreringsoperasjon)
Multipliser 'dataa'-inndata med 'datab'-inndata
Velg ønsket konfigurasjon for multiplikatoren.
Data en bredde
1 – 256 biter
8 biter
Spesifiser bredden på dataa[]-porten.
Datab bredde
1 – 256 biter
8 biter
Spesifiser bredden på dataab[]-porten.
Hvordan skal bredden på "resultat"-utgangen bestemmes?
Type
Beregn automatisk bredden
Begrens bredden
Beregn automatisk bredden
Velg ønsket metode for å bestemme bredden på resultat[]-porten.
Verdi
1 – 512 biter
16 biter
Spesifiser bredden på resultat[]-porten.
Denne verdien vil bare være effektiv hvis du velger Begrens bredden i Type-parameteren.
Resultatbredde
1 – 512 biter
—
Viser den effektive bredden til resultat[]-porten.
4.7.2. Generelt 2 Tab
Tabell 13. Generelt 2 Tab
Parameter
Datainngang
Har 'datab' inngangsbussen en konstant verdi?
Nei Ja
Verdi
Standardverdi
Beskrivelse
Ingen
Velg Ja for å angi den konstante verdien av
`datab' inngangsbuss, hvis noen.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 20
Send tilbakemelding
4. LPM_MULT (Multiplier) IP-kjerne 683490 | 2020.10.05
Parameter
Verdi
Verdi
Enhver verdi større enn 0
Multiplikasjonstype
Hvilken type
Usignert
multiplikasjon vil du ha? Signert
Implementeringsstil
Hvilken multiplikatorimplementering bør brukes?
Bruk standardimplementeringen
Bruk de dedikerte multiplikatorkretsene
Bruk logiske elementer
Standardverdi
Beskrivelse
0
Spesifiser den konstante verdien for dataab[]-porten.
Usignert
Spesifiser representasjonsformatet for både dataa[]- og data[]-inndata.
Bruk standardimplementeringen
Velg ønsket metode for å bestemme bredden på resultat[]-porten.
4.7.3. Rørlegging
Tabell 14. Rørføring Tab
Parameter
Verdi
Ønsker du å pipeline funksjonen?
Rørledning
Nei Ja
Latency Clear Signal Type
Enhver verdi større enn 0.
INGEN ACLR SCLR
Lag en 'clken'-klokke
—
aktivere klokke
Hvilken type optimalisering ønsker du?
Type
Standard hastighetsområde
Standardverdi
Beskrivelse
Nei 1 INGEN
—
Velg Ja for å aktivere pipelineregister til multiplikatorens utgang. Aktivering av rørledningsregisteret gir ekstra latens til utgangen.
Spesifiser ønsket utgangslatens i klokkesyklus.
Spesifiser type tilbakestilling for rørledningsregisteret. Velg INGEN hvis du ikke bruker noe rørledningsregister. Velg ACLR for å bruke asynkron sletting for rørledningsregisteret. Dette vil generere ACLR-port. Velg SCLR for å bruke synkron sletting for rørledningsregisteret. Dette vil generere SCLR-port.
Spesifiserer aktiv høy klokkeaktivering for klokkeporten til rørledningsregisteret
Misligholde
Spesifiser ønsket optimalisering for IP-kjernen.
Velg Standard for å la Intel Quartus Prime-programvare finne den beste optimaliseringen for IP-kjernen.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 21
683490 | 2020.10.05 Send tilbakemelding
5. LPM_ADD_SUB (adder/subtraktor)
Figur 4.
LPM_ADD_SUB IP-kjernen lar deg implementere en adderer eller en subtraktor for å legge til eller subtrahere sett med data for å produsere en utgang som inneholder summen eller differansen av inngangsverdiene.
Følgende figur viser portene for LPM_ADD_SUB IP-kjernen.
LPM_ADD_SUB-porter
LPM_ADD_SUB add_sub cin
dataa[]
klokke clken datab[] aclr
result[] overflow cout
inst
5.1. Funksjoner
LPM_ADD_SUB IP-kjernen tilbyr følgende funksjoner: · Genererer adderer, subtraktor og dynamisk konfigurerbar adderer/subtraktor
funksjoner. · Støtter databredde på 1 biter. · Støtter datarepresentasjonsformat som signert og usignert. · Støtter valgfri innlevering (utlån), asynkron klar og klokkeaktivering
inngangsporter. · Støtter valgfrie utgangsporter (innlåning) og overløp. · Tilordner en av inngangsdatabussene til en konstant. · Støtter pipelining med konfigurerbar utdatalatens.
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
5. LPM_ADD_SUB (Adder/Subtraktor) 683490 | 2020.10.05
5.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_add_sub (resultat, cout, overflow, add_sub, cin, dataa, datab, klokke, clken, aclr ); parameter lpm_type = "lpm_add_sub"; parameter lpm_width = 1; parameter lpm_direction = "UBRUKT"; parameter lpm_representation = "SIGNERT"; parameter lpm_pipeline = 0; parameter lpm_hint = "UBRUKT"; input [lpm_width-1:0] dataa, datab; input add_sub, cin; input klokke; input clken; input aclr; output [lpm_width-1:0] resultat; utgang cout, overløp; endemodul
5.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
komponent LPM_ADD_SUB generisk (LPM_WIDTH: naturlig;
LPM_DIRECTION : string := “UBRUKT”; LPM_REPRESENTATION: string := “SIGNERT”; 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'; KLOKKE: i std_logic:= '0'; std_logic: := '1'; CIN: i std_logic:= 'Z'; ADD_SUB: i std_logic:= '1'; RESULTAT: ut std_logic_vector(LPM_WIDTH-1 ned til 0); COUT: ut std_logic; OVERFLØM: ut std_logic); sluttkomponent;
5.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK lpm; BRUK lpm.lpm_components.all;
5.5. Porter
Følgende tabeller viser inngangs- og utgangsportene for LPM_ADD_SUB IP-kjernen.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 23
5. LPM_ADD_SUB (Adder/Subtraktor) 683490 | 2020.10.05
Tabell 15. LPM_ADD_SUB IP-kjerneinngangsporter
Portnavn
Obligatorisk
Beskrivelse
cin
Ingen
Bær inn til lavordensbiten. For addisjonsoperasjoner er standardverdien 0. For
subtraksjonsoperasjoner, er standardverdien 1.
dataa[]
Ja
Datainput. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTH.
data[]
Ja
Datainput. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTH.
add_sub
Ingen
Valgfri inngangsport for å aktivere dynamisk veksling mellom adderer og subtraktor
funksjoner. Hvis parameteren LPM_DIRECTION brukes, kan ikke add_sub brukes. Hvis
utelatt, er standardverdien ADD. Intel anbefaler at du bruker
LPM_DIRECTION-parameter for å spesifisere operasjonen til LPM_ADD_SUB-funksjonen,
i stedet for å tilordne en konstant til add_sub-porten.
klokke
Ingen
Inndata for bruk i pipeline. Klokkeporten gir klokkeinngangen for en rørledning
operasjon. For andre LPM_PIPELINE-verdier enn 0 (standard), må klokkeporten være
aktivert.
clken
Ingen
Klokkeaktivert for bruk i pipeline. Når clken-porten er hevdet høy, adderer/
subtraktordrift finner sted. Når signalet er lavt, skjer ingen operasjon. Hvis
utelatt, er standardverdien 1.
aclr
Ingen
Asynkron klar for bruk i pipeline. Rørledningen initialiseres til en udefinert (X)
logisk nivå. aclr-porten kan brukes når som helst for å tilbakestille rørledningen til alle 0-er,
asynkront med klokkesignalet.
Tabell 16. LPM_ADD_SUB IP-kjerneutgangsporter
Portnavn
Obligatorisk
Beskrivelse
resultat[]
Ja
Datautgang. Størrelsen på utgangsporten avhenger av parameteren LPM_WIDTH
verdi.
cout
Ingen
Gjennomføring (lån inn) av den mest signifikante biten (MSB). Cout-porten har en fysisk
tolkning som utførelse (innlån) av MSB. Cout-porten oppdager
overløp i USIGNERT operasjoner. Cout-porten fungerer på samme måte for
SIGNERT og USIGNERT operasjoner.
flyte
Ingen
Valgfri overløpsunntaksutgang. Overløpsporten har en fysisk tolkning som
XOR for innlevering til MSB med utføring av MSB. Overløpsporten
hevder når resultatene overstiger tilgjengelig presisjon, og brukes bare når
LPM_REPRESENTATION-parameterverdien er SIGNERT.
5.6. parametere
Følgende tabell viser LPM_ADD_SUB IP-kjerneparametere.
Tabell 17. LPM_ADD_SUB IP-kjerneparametere
Parameternavn LPM_WIDTH
Skriv heltall
Påkrevd Ja
Beskrivelse
Spesifiserer breddene på dataa[], data[]- og resultat[]-portene.
LPM_DIRECTION
String
Ingen
Verdiene er ADD, SUB og UNUSED. Hvis den utelates, er standardverdien DEFAULT, som leder parameteren til å ta verdien fra add_sub-porten. Add_sub-porten kan ikke brukes hvis LPM_DIRECTION brukes. Intel anbefaler at du bruker parameteren LPM_DIRECTION for å spesifisere operasjonen til LPM_ADD_SUB-funksjonen, i stedet for å tilordne en konstant til add_sub-porten.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 24
Send tilbakemelding
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
String
Påkrevd Nei Nei Nei Nei Nei Nei Nei
Ingen
Beskrivelse
Spesifiserer typen tillegg som utføres. Verdier er SIGNERT og USIGNERT. Hvis den utelates, er standardverdien SIGNERT. Når denne parameteren er satt til SIGNED, tolker addereren/subtrahereren datainngangen som fortegnet tos komplement.
Spesifiserer antall latensklokkesykluser knyttet til resultat[]-utgangen. En verdi på null (0) indikerer at ingen latens eksisterer, og at en ren kombinasjonsfunksjon vil bli instansiert. Hvis den utelates, er standardverdien 0 (ikke-pipelined).
Lar deg spesifisere Intel-spesifikke parametere i VHDL-design files (.vhd). Standardverdien er UNUSED.
Identifiserer biblioteket av parameteriserte moduler (LPM) enhetsnavn i VHDL-design files.
Intel-spesifikk parameter. Du må bruke parameteren LPM_HINT for å spesifisere parameteren ONE_INPUT_IS_CONSTANT i VHDL-design files. Verdiene er JA, NEI og UBRUKT. Gir større optimalisering hvis en inngang er konstant. Hvis den utelates, er standardverdien NEI.
Intel-spesifikk parameter. Du må bruke LPM_HINT-parameteren for å spesifisere MAXIMIZE_SPEED-parameteren i VHDL-design files. Du kan spesifisere en verdi mellom 0 og 10. Hvis den brukes, prøver Intel Quartus Prime-programvaren å optimalisere en spesifikk forekomst av LPM_ADD_SUB-funksjonen for hastighet i stedet for ruterbarhet, og overstyrer innstillingen for logikkalternativet for optimaliseringsteknikk. Hvis MAXIMIZE_SPEED er ubrukt, brukes verdien av alternativet Optimaliseringsteknikk i stedet. Hvis innstillingen for MAXIMIZE_SPEED er 6 eller høyere, optimaliserer kompilatoren LPM_ADD_SUB IP-kjernen for høyere hastighet ved bruk av bærekjeder; hvis innstillingen er 5 eller mindre, implementerer kompilatoren designet uten bærekjeder. Denne parameteren må spesifiseres for Cyclone-, Stratix- og Stratix GX-enheter bare når add_sub-porten ikke brukes.
Denne parameteren brukes til modellering og atferdssimulering. Parametereditoren beregner verdien for denne parameteren.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 25
683490 | 2020.10.05 Send tilbakemelding
6. LPM_COMPARE (komparator)
Figur 5.
LPM_COMPARE IP-kjernen sammenligner verdien av to sett med data for å bestemme forholdet mellom dem. I sin enkleste form kan du bruke en eksklusiv-ELLER-port for å finne ut om to databiter er like.
Følgende figur viser portene for LPM_COMPARE IP-kjernen.
LPM_COMPARE-porter
LPM_COMPARE
clken
alb
aeb
dataa[]
agb
data[]
ageb
klokke
aneb
aclr
aleb
inst
6.1. Funksjoner
LPM_COMPARE IP-kjernen tilbyr følgende funksjoner: · Genererer en komparatorfunksjon for å sammenligne to sett med data · Støtter databredde på 1 biter · Støtter datarepresentasjonsformat som signert og usignert · Produserer følgende utdatatyper:
— alb (inngang A er mindre enn inngang B) — aeb (inngang A er lik inngang B) — agb (inngang A er større enn inngang B) — ageb (inngang A er større enn eller lik inngang B) — aneb ( inngang A er ikke lik inngang B) — aleb (inngang A er mindre enn eller lik inngang B) · Støtter valgfrie asynkrone klar- og klokkeaktiverte inngangsporter · Tildeler data[]-inngangen til en konstant · Støtter pipelining med konfigurerbar utgangslatens
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
6.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, klokke, clken, aclr ); parameter lpm_type = "lpm_compare"; parameter lpm_width = 1; parameter lpm_representation = "UNSIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UBRUKT"; input [lpm_width-1:0] dataa, datab; input klokke; input clken; input aclr; utgang alb, aeb, agb, aleb, aneb, ageb; endemodul
6.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
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'; KLOKKE: i std_logic:= '0'; std_logic: := '1'; AGB: ut std_logic; AGEB: ut std_logic; AEB: ut std_logic; ANEB: ut std_logic; ALB: ut std_logic; ALEB: ut std_logic); sluttkomponent;
6.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK lpm; BRUK lpm.lpm_components.all;
6.5. Porter
Følgende tabeller viser inngangs- og utgangsportene for LMP_COMPARE IP-kjernen.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 27
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Tabell 18. LPM_COMPARE IP-kjerneinngangsporter
Portnavn
Obligatorisk
Beskrivelse
dataa[]
Ja
Datainput. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTH.
data[]
Ja
Datainput. Størrelsen på inngangsporten avhenger av parameterverdien LPM_WIDTH.
klokke
Ingen
Klokkeinngang for bruk i pipeline. Klokkeporten gir klokkeinngangen for en rørledning
operasjon. For andre LPM_PIPELINE-verdier enn 0 (standard), må klokkeporten være
aktivert.
clken
Ingen
Klokkeaktivert for bruk i pipeline. Når clken-porten er hevdet høy, vil
sammenligningsoperasjon finner sted. Når signalet er lavt, skjer ingen operasjon. Hvis
utelatt, er standardverdien 1.
aclr
Ingen
Asynkron klar for bruk i pipeline. Rørledningen initialiseres til en udefinert (X) logikk
nivå. aclr-porten kan brukes når som helst for å tilbakestille rørledningen til alle 0-er,
asynkront med klokkesignalet.
Tabell 19. LPM_COMPARE IP-kjerneutgangsporter
Portnavn
Obligatorisk
Beskrivelse
alb
Ingen
Utgangsport for komparatoren. Påstås hvis inngang A er mindre enn inngang B.
aeb
Ingen
Utgangsport for komparatoren. Påstås hvis inngang A er lik inngang B.
agb
Ingen
Utgangsport for komparatoren. Påstås hvis inngang A er større enn inngang B.
ageb
Ingen
Utgangsport for komparatoren. Påstås hvis inngang A er større enn eller lik inngang
B.
aneb
Ingen
Utgangsport for komparatoren. Påstått hvis inngang A ikke er lik inngang B.
aleb
Ingen
Utgangsport for komparatoren. Angitt hvis inngang A er mindre enn eller lik inngang B.
6.6. parametere
Tabellen nedenfor viser parameterne for LPM_COMPARE IP-kjernen.
Tabell 20. LPM_COMPARE IP-kjerneparametere
Parameternavn
Type
Obligatorisk
LPM_WIDTH
Heltall Ja
LPM_REPRESENTATION
String
Ingen
LPM_PIPELINE
Heltall nr
LPM_HINT
String
Ingen
Beskrivelse
Angir bredden på dataa[]- og dataab[]-portene.
Spesifiserer typen sammenligning som utføres. Verdier er SIGNERT og USIGNERT. Hvis den utelates, er standardverdien USIGNERT. Når denne parameterverdien er satt til SIGNED, tolker komparatoren datainngangen som fortegnet tos komplement.
Spesifiserer antall klokkesykluser med latens assosiert med alb, aeb, agb, ageb, alb eller aneb-utdata. En verdi på null (0) indikerer at ingen latens eksisterer, og at en ren kombinasjonsfunksjon vil bli instansiert. Hvis den utelates, er standardverdien 0 (ikke-pipelined).
Lar deg spesifisere Intel-spesifikke parametere i VHDL-design files (.vhd). Standardverdien er UNUSED.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 28
Send tilbakemelding
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Parameternavn LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Skriv inn strengstreng
String
Påkrevd Nei Nr
Ingen
Beskrivelse
Identifiserer biblioteket av parameteriserte moduler (LPM) enhetsnavn i VHDL-design files.
Denne parameteren brukes til modellering og atferdssimulering. Parametereditoren beregner verdien for denne parameteren.
Intel-spesifikk parameter. Du må bruke parameteren LPM_HINT for å spesifisere parameteren ONE_INPUT_IS_CONSTANT i VHDL-design files. Verdiene er JA, NEI eller UBRUKT. Gir større optimalisering hvis en input er konstant. Hvis den utelates, er standardverdien NEI.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 29
683490 | 2020.10.05 Send tilbakemelding
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP-kjerne
Figur 6.
Intel leverer ALTECC IP-kjernen for å implementere ECC-funksjonaliteten. ECC oppdager korrupte data som oppstår på mottakersiden under dataoverføring. Denne feilrettingsmetoden er best egnet for situasjoner der feil oppstår tilfeldig i stedet for i serier.
ECC oppdager feil gjennom prosessen med datakoding og dekoding. For eksample, når ECC brukes i en overføringsapplikasjon, blir data som leses fra kilden kodet før de sendes til mottakeren. Utgangen (kodeord) fra koderen består av rådataene vedlagt antall paritetsbiter. Det nøyaktige antallet paritetsbiter som legges til avhenger av antall biter i inngangsdataene. Det genererte kodeordet blir så overført til destinasjonen.
Mottakeren mottar kodeordet og dekoder det. Informasjon innhentet av dekoderen bestemmer om en feil oppdages. Dekoderen oppdager enkeltbits- og dobbelbitsfeil, men kan bare fikse enkeltbitsfeil i de ødelagte dataene. Denne typen ECC er single error correction double error detection (SECDED).
Du kan konfigurere koder- og dekoderfunksjonene til ALTECC IP-kjernen. Datainngangen til koderen er kodet for å generere et kodeord som er en kombinasjon av datainngangen og de genererte paritetsbitene. Det genererte kodeordet blir overført til dekodermodulen for dekoding like før det når sin destinasjonsblokk. Dekoderen genererer en syndromvektor for å bestemme om det er noen feil i det mottatte kodeordet. Dekoderen korrigerer dataene bare hvis enkeltbitsfeilen er fra databitene. Ingen signal blir flagget hvis enkeltbitsfeilen er fra paritetsbitene. Dekoderen har også flaggsignaler for å vise statusen til de mottatte dataene og handlingen som dekoderen tar, hvis noen.
Følgende figurer viser portene for ALTECC IP-kjernen.
ALTECC-koderporter
ALTECC_ENCODER
data[]
q[]
klokke
klokke
aclr
inst
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 7. ALTECC-dekoderporter
ALTECC_DEKODER
data[] klokke klokke
q[] err_detected err_corrected
err_fatal
aclr
inst
7.1. ALTECC-koderfunksjoner
IP-kjernen for ALTECC-koderen tilbyr følgende funksjoner: · Utfører datakoding ved hjelp av Hamming-kodingsskjemaet · Støtter databredde på 2 biter · Støtter signerte og usignerte datarepresentasjonsformater · Støtter pipelining med utdatalatens på enten én eller to klokkesykluser · Støtter valgfritt asynkrone klare og klokkeaktiverte porter
ALTECC-koderens IP-kjerne tar inn og koder dataene ved hjelp av Hamming-kodingsskjemaet. Hamming-kodingsskjemaet utleder paritetsbitene og legger dem til de originale dataene for å produsere utgangskodeordet. Antallet paritetsbiter som legges til avhenger av bredden på dataene.
Følgende tabell viser antall paritetsbiter som er lagt til for forskjellige databredder. Kolonnen Totale biter representerer det totale antallet inndatabiter og tilføyde paritetsbiter.
Tabell 21.
Antall paritetsbiter og kodeord i henhold til databredde
Databredde
Antall paritetsbiter
Totale biter (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
Paritetsbitavledningen bruker en jevn paritetskontroll. Den ekstra 1 biten (vist i tabellen som +1) legges til paritetsbitene som MSB for kodeordet. Dette sikrer at kodeordet har et partall på 1-er. For eksample, hvis databredden er 4 biter, legges 4 paritetsbiter til dataene for å bli et kodeord med totalt 8 biter. Hvis 7 biter fra LSB til 8-bits kodeord har et oddetall på 1-er, er den åttende biten (MSB) i kodeordet 8, noe som gjør det totale antallet 1-ere i kodeordet partall.
Den følgende figuren viser det genererte kodeordet og arrangementet av paritetsbitene og databitene i en 8-bits datainngang.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 31
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 8.
Paritetsbiter og databitarrangement i et 8-bit generert kodeord
MSB
LSB
4 paritetsbiter
4 databiter
8
1
ALTECC-koderens IP-kjerne aksepterer kun inngangsbredder på 2 til 64 biter om gangen. Inngangsbredder på 12 biter, 29 biter og 64 biter, som er ideelt egnet for Intel-enheter, genererer utganger på henholdsvis 18 biter, 36 biter og 72 biter. Du kan kontrollere bitseleksjonsbegrensningen i parametereditoren.
7.2. Verilog HDL-prototype (ALTECC_ENCODER)
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
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") (inngang wire aclr, input wire aclr, input wire aclr wire clocken, input wire [width_dataword-1:0] data, output wire [width_codeword-1:0] q); endemodul
7.3. Verilog HDL-prototype (ALTECC_DECODER)
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) lpm.v i edasynthesis katalog.
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") (inngang 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); endemodul
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 32
Send tilbakemelding
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. VHDL-komponenterklæring (ALTECC_ENCODER)
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) altera_mf_components.vhd i librariesvhdlaltera_mf katalog.
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 "); port(aclr:in std_logic:= '0'; klokke: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)); sluttkomponent;
7.5. VHDL-komponenterklæring (ALTECC_DECODER)
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) altera_mf_components.vhd i librariesvhdlaltera_mf katalog.
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”; _pm_coder "); port(aclr:in std_logic:= '0'; klokke: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 : ut std_logic; q:out std_logic_vector(width_dataword-1 ned til 0); syn_e: out std_logic); sluttkomponent;
7.6. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK altera_mf; BRUK altera_mf.altera_mf_components.all;
7.7. Koderporter
Følgende tabeller viser inngangs- og utgangsportene for ALTECC-koderens IP-kjerner.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 33
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabell 22. ALTECC-koderinngangsporter
Portnavn
Obligatorisk
Beskrivelse
data[]
Ja
Datainngangsport. Størrelsen på inngangsporten avhenger av WIDTH_DATAWORD
parameterverdi. Data[]-porten inneholder rådataene som skal kodes.
klokke
Ja
Klokkeinngangsport som gir klokkesignalet for å synkronisere kodingsoperasjonen.
Klokkeporten er nødvendig når LPM_PIPELINE-verdien er større enn 0.
klokke
Ingen
Klokkeaktivert. Hvis den utelates, er standardverdien 1.
aclr
Ingen
Asynkron klar inngang. Det aktive høye aclr-signalet kan brukes når som helst for å
tømme registrene asynkront.
Tabell 23. ALTECC-koderutgangsporter
Portnavn q[]
Påkrevd Ja
Beskrivelse
Utgangsport for kodet data. Størrelsen på utgangsporten avhenger av parameterverdien WIDTH_CODEWORD.
7.8. Dekoderporter
Følgende tabeller viser inngangs- og utgangsportene for ALTECC-dekoderens IP-kjerne.
Tabell 24. ALTECC-dekoderinngangsporter
Portnavn
Obligatorisk
Beskrivelse
data[]
Ja
Datainngangsport. Størrelsen på inngangsporten avhenger av parameterverdien WIDTH_CODEWORD.
klokke
Ja
Klokkeinngangsport som gir klokkesignalet for å synkronisere kodingsoperasjonen. Klokkeporten er nødvendig når LPM_PIPELINE-verdien er større enn 0.
klokke
Ingen
Klokkeaktivert. Hvis den utelates, er standardverdien 1.
aclr
Ingen
Asynkron klar inngang. Det aktive høye aclr-signalet kan brukes når som helst for asynkront å tømme registrene.
Tabell 25. ALTECC-dekoderutgangsporter
Portnavn q[]
Påkrevd Ja
Beskrivelse
Utgangsport for dekodet data. Størrelsen på utgangsporten avhenger av parameterverdien WIDTH_DATAWORD.
err_detected Ja
Flaggsignal for å gjenspeile statusen til mottatte data og spesifisere eventuelle feil funnet.
err_correcte Ja d
Flaggsignal for å gjenspeile statusen til mottatte data. Angir enkeltbitsfeil funnet og rettet. Du kan bruke dataene fordi de allerede er korrigert.
err_fatal
Ja
Flaggsignal for å gjenspeile statusen til mottatte data. Angir dobbeltbitfeil funnet, men ikke rettet. Du må ikke bruke dataene hvis dette signalet er hevdet.
syn_e
Ingen
Et utgangssignal som vil gå høyt hver gang en enkeltbits feil oppdages på pariteten
biter.
7.9. Koderparametere
Tabellen nedenfor viser parameterne for ALTECC-koderens IP-kjerner.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 34
Send tilbakemelding
7. ALTECC (Feilrettingskode: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabell 26. ALTECC Encoder Parameters
Parameternavn
Type
Obligatorisk
Beskrivelse
WIDTH_DATAWORD
Heltall Ja
Angir bredden på rådataene. Verdiene er fra 2 til 64. Hvis den utelates, er standardverdien 8.
WIDTH_CODEWORD
Heltall Ja
Angir bredden på det tilsvarende kodeordet. Gyldige verdier er fra 6 til 72, unntatt 9, 17, 33 og 65. Hvis de utelates, er standardverdien 13.
LPM_PIPELINE
Heltall nr
Spesifiserer rørledningen for kretsen. Verdiene er fra 0 til 2. Hvis verdien er 0, blir ikke portene registrert. Hvis verdien er 1, blir utgangsportene registrert. Hvis verdien er 2, registreres inngangs- og utgangsportene. Hvis den utelates, er standardverdien 0.
7.10. Dekoderparametere
Følgende tabell viser ALTECC-dekoderens IP-kjerneparametere.
Tabell 27. ALTECC-dekoderparametere
Parameternavn WIDTH_DATAWORD
Skriv heltall
Obligatorisk
Beskrivelse
Ja
Angir bredden på rådataene. Verdiene er 2 til 64. The
standardverdien er 8.
WIDTH_CODEWORD
Heltall
Ja
Angir bredden på det tilsvarende kodeordet. Verdiene er 6
til 72, unntatt 9, 17, 33 og 65. Hvis utelatt, standardverdien
er 13.
LPM_PIPELINE
Heltall
Ingen
Spesifiserer registeret til kretsen. Verdiene er fra 0 til 2. Hvis
verdien er 0, ingen register er implementert. Hvis verdien er 1, vil
utgang er registrert. Hvis verdien er 2, vil både inngangen og
utgang er registrert. Hvis verdien er større enn 2, tillegg
registre implementeres ved utgangen for tillegget
ventetider. Hvis den utelates, er standardverdien 0.
Opprett en 'syn_e'-port
Heltall
Ingen
Slå på denne parameteren for å opprette en syn_e-port.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 35
683490 | 2020.10.05 Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core
Figur 9.
Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10 og Intel Cyclone 10 GX-enheter) eller ALTERA_MULT_ADD (Arria V-, Stratix V- og Cyclone V-enheter) IP-kjernen lar deg implementere en multiplikator-adder.
Følgende figur viser portene for Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kjerne.
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD-porter
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD
dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] klokke0 klokke1 klokke2 ena0 ena1 ena2 sload_accum
accum_sload chainin[]
scanouta[] resultat[]
aclr0 aclr1
inst
En multiplikator-adder aksepterer par med innganger, multipliserer verdiene sammen og legger deretter til eller trekker fra produktene til alle andre par.
Hvis alle inngangsdatabreddene er 9-biters brede eller mindre, bruker funksjonen 9 x 9-biters inngangsmultiplikatorkonfigurasjon i DSP-blokken for enheter som støtter 9 x 9-konfigurasjon. Hvis ikke, bruker DSP-blokken 18 × 18-bits inngangsmultiplikatorer for å behandle data med bredder mellom 10 biter og 18 biter. Hvis flere Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kjerner forekommer i en design, distribueres funksjonene til som
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
mange forskjellige DSP-blokker som mulig slik at ruting til disse blokkene er mer fleksibel. Færre multiplikatorer per DSP-blokk tillater flere rutevalg inn i blokken ved å minimere banene til resten av enheten.
Registrene og ekstra rørledningsregistre for følgende signaler er også plassert inne i DSP-blokken: · Datainngang · Signert eller usignert velg · Legg til eller subtraher velg · Produkter av multiplikatorer
Når det gjelder utgangsresultatet, plasseres det første registeret i DSP-blokken. Imidlertid er de ekstra latensregistrene plassert i logiske elementer utenfor blokken. Perifer til DSP-blokken, inkludert datainnganger til multiplikatoren, kontrollsignalinnganger og utganger til addereren, bruker vanlig ruting for å kommunisere med resten av enheten. Alle tilkoblinger i funksjonen bruker dedikert ruting inne i DSP-blokken. Denne dedikerte rutingen inkluderer skiftregisterkjedene når du velger alternativet for å skifte en multiplikators registrerte inngangsdata fra en multiplikator til en tilstøtende multiplikator.
For mer informasjon om DSP-blokker i noen av Stratix V- og Arria V-enhetsseriene, se kapittelet DSP Blocks i de respektive håndbøkene på siden Litteratur og teknisk dokumentasjon.
Relatert informasjon AN 306: Implementering av multiplikatorer i FPGA-enheter
Gir mer informasjon om implementering av multiplikatorer ved bruk av DSP og minneblokker i Intel FPGA-enheter.
8.1. Funksjoner
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kjernen tilbyr følgende funksjoner: · Genererer en multiplikator for å utføre multiplikasjonsoperasjoner av to komplekse
tall Merk: Når du bygger multiplikatorer som er større enn den opprinnelig støttede størrelsen, kan/
vil være en ytelsespåvirkning som følge av kaskaden av DSP-blokkene. · Støtter databredder på 1 256 biter · Støtter signerte og usignerte datarepresentasjonsformater · Støtter pipelining med konfigurerbar inngangsforsinkelse · Gir et alternativ for dynamisk å bytte mellom signerte og usignerte datastøtte · Gir et alternativ for dynamisk å bytte mellom add- og subtrahering · Støtter valgfri asynkron og synkron klar- og klokkeaktiverte inngangsporter · Støtter systolisk forsinkelsesregistermodus · Støtter pre-adder med 8 pre-load koeffisienter per multiplikator · Støtter pre-load konstant for å komplementere akkumulatortilbakemelding
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1. Pre-adder
Med pre-adder gjøres addisjoner eller subtraksjoner før multiplikatoren mates.
Det er fem pre-adder-moduser: · Enkel modus · Koeffisientmodus · Inndatamodus · Firkantmodus · Konstant modus
Note:
Når pre-adder brukes (pre-adder koeffisient/inngang/kvadratmodus), må alle datainnganger til multiplikatoren ha samme klokkeinnstilling.
8.1.1.1. Enkel modus for forhåndsadder
I denne modusen stammer begge operandene fra inngangsportene og pre-adder blir ikke brukt eller forbigått. Dette er standardmodusen.
Figur 10. Enkel modus for forhåndsadder
a0 b0
Multi0
resultat
8.1.1.2. Pre-adder koeffisientmodus
I denne modusen avledes en multiplikatoroperand fra pre-adderen, og den andre operanden kommer fra den interne koeffisientlagringen. Koeffisientlagringen tillater opptil 8 forhåndsinnstilte konstanter. Koeffisientvalgsignalene er coefsel[0..3].
Denne modusen er uttrykt i følgende ligning.
Følgende viser pre-adder koeffisientmodusen til en multiplikator.
Figur 11. Pre-adder koeffisientmodus
Preadder
a0
Multi0
+/-
resultat
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 38
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Pre-adder-inngangsmodus I denne modusen stammer en multiplikatoroperand fra pre-adderen, og den andre operanden stammer fra datac[]-inngangsporten. Denne modusen er uttrykt i følgende ligning.
Følgende viser pre-adder-inndatamodusen til en multiplikator.
Figur 12. Pre-adder Input Mode
a0 b0
Multi0
+/-
resultat
c0
8.1.1.4. Pre-adder Square Mode Denne modusen uttrykkes i følgende ligning.
Følgende viser pre-adder-kvadratmodus for to multiplikatorer.
Figur 13. Pre-adder Square Mode
a0 b0
Multi0
+/-
resultat
8.1.1.5. Pre-adder Constant Mode
I denne modusen stammer en multiplikatoroperand fra inngangsporten, og den andre operanden kommer fra den interne koeffisientlagringen. Koeffisientlagringen tillater opptil 8 forhåndsinnstilte konstanter. Koeffisientvalgsignalene er coefsel[0..3].
Denne modusen er uttrykt i følgende ligning.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Følgende figur viser pre-adder konstant modus for en multiplikator.
Figur 14. Pre-adder Constant Mode
a0
Multi0
resultat
coefsel0
coef
8.1.2. Systolisk forsinkelsesregister
I en systolisk arkitektur mates inndataene inn i en kaskade av registre som fungerer som en databuffer. Hvert register leverer en inngang sample til en multiplikator hvor den multipliseres med den respektive koeffisienten. Kjedeaddereren lagrer de gradvis kombinerte resultatene fra multiplikatoren og det tidligere registrerte resultatet fra chainin[] inngangsporten for å danne det endelige resultatet. Hvert multipliser-add-element må forsinkes med en enkelt syklus slik at resultatene synkroniseres på riktig måte når de legges sammen. Hver påfølgende forsinkelse brukes til å adressere både koeffisientminnet og databufferen til deres respektive multiplikasjonsadderingselementer. For eksample, en enkelt forsinkelse for det andre multiplisere add-elementet, to forsinkelser for det tredje multiplisere-legge-elementet, 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) representerer resultatene fra en kontinuerlig strøm av input samples og y(t)
representerer summeringen av et sett med input samples, og med tiden multiplisert med deres
respektive koeffisienter. Både input- og outputresultatene flyter fra venstre til høyre. c(0) til c(N-1) angir koeffisientene. De systoliske forsinkelsesregistrene er betegnet med S-1, mens 1-en representerer en enkelt klokkeforsinkelse. Systoliske forsinkelsesregistre legges til kl
inngangene og utgangene for pipelining på en måte som sikrer resultatene fra
multiplikatoroperand og de akkumulerte summene forblir synkroniserte. Dette behandlingselementet
er replikert for å danne en krets som beregner filtreringsfunksjonen. Denne funksjonen er
uttrykt i følgende ligning.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 40
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
N representerer antall sykluser med data som er lagt inn i akkumulatoren, y(t) representerer utgangen på tidspunktet t, A(t) representerer inngangen på tidspunktet t, og B(i) er koeffisientene. t og i i ligningen tilsvarer et bestemt øyeblikk i tid, så for å beregne utgangen sample y(t) på tidspunktet t, en gruppe av inndata samples på N forskjellige tidspunkter, eller A(n), A(n-1), A(n-2), … A(n-N+1) kreves. Gruppen av N inngangeramples multipliseres med N koeffisienter og summeres sammen for å danne det endelige resultatet y.
Den systoliske registerarkitekturen er kun tilgjengelig for sum-av-2 og sum-av-4 moduser. For begge systoliske registerarkitekturmoduser må det første kjedesignalet være knyttet til 0.
Følgende figur viser den systoliske forsinkelsesregisterimplementeringen av 2 multiplikatorer.
Figur 16. Implementering av systolisk forsinkelsesregister av 2 multiplikatorer
kjetting
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
resultat
Summen av to multiplikatorer uttrykkes i følgende ligning.
Følgende figur viser den systoliske forsinkelsesregisterimplementeringen av 4 multiplikatorer.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 17. Implementering av systolisk forsinkelsesregister av 4 multiplikatorer
kjetting
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
a2
Multi2
+/-
b2
a3
Multi3
+/-
b3
resultat
Summen av fire multiplikatorer uttrykkes i følgende ligning. Figur 18. Sum av 4 multiplikatorer
Følgende lister opp advantage-er for systolisk registerimplementering: · Reduserer DSP-ressursbruk · Muliggjør effektiv kartlegging i DSP-blokken ved å bruke kjedeadderstrukturen
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 42
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.3. Pre-load konstant
Forbelastningskonstanten kontrollerer akkumulatoroperanden og utfyller akkumulatortilbakemeldinger. Den gyldige LOADCONST_VALUE varierer fra 0. Den konstante verdien er lik 64N, hvor N = LOADCONST_VALUE. Når LOADCONST_VALUE er satt til 2, er konstantverdien lik 64. Denne funksjonen kan brukes som skjev avrunding.
Følgende figur viser pre-load konstant implementering.
Figur 19. Pre-load Constant
Akkumulator tilbakemelding
konstant
a0
Multi0
+/-
b0
a1
Multi1
+/b1
resultat
accum_sload sload_accum
Se følgende IP-kjerner for andre multiplikatorimplementeringer: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dobbel akkumulator
Dobbeltakkumulatorfunksjonen legger til et ekstra register i akkumulatortilbakemeldingsbanen. Det doble akkumulatorregisteret følger utgangsregisteret, som inkluderer klokken, klokkeaktivering og aclr. Det ekstra akkumulatorregisteret returnerer resultatet med en forsinkelse på én syklus. Denne funksjonen lar deg ha to akkumulatorkanaler med samme ressursantall.
Følgende figur viser implementeringen av dobbel akkumulator.
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 20. Dobbel akkumulator
Doble Accu mulator Register
Akku mulator tilbakemelding
a0
Multi0
+/-
b0
a1
Multi1
+/b1
Utgangsresultat Utgangsregister
8.2. Verilog HDL-prototype
Du kan finne Intel FPGA Multiply Adder eller ALTERA_MULT_ADD Verilog HDL prototype file (altera_mult_add_rtl.v) i librariesmegafunctions-katalogen.
8.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i altera_lnsim_components.vhd i librariesvhdl altera_lnsim katalog.
8.4. VHDL LIBRARY_USE-erklæring
VHDL LIBRARY-USE-erklæringen er ikke nødvendig hvis du bruker VHDL-komponenterklæringen.
BIBLIOTEK altera_mf; BRUK altera_mf.altera_mf_components.all;
8.5. Signaler
Følgende tabeller viser inngangs- og utgangssignalene til Multiply Adder Intel FPGA IP- eller ALTERA_MULT_ADD IP-kjernen.
Tabell 28. Multiply Adder Intel FPGA IP eller ALTERA_MULT_ADD inngangssignaler
Signal
Obligatorisk
Beskrivelse
dataa_0[]/dataa_1[]/
Ja
dataa_2[]/dataa_3[]
Datainngang til multiplikatoren. Inngangsport [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] bred
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 44
Send tilbakemelding
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[] klokke[1:0] aclr[1:0] sclr[1:0] ena [1:0] signa
signb
scanina[] accum_sload
Påkrevd Ja Nei
Nei nei nei nei nei
Ingen
Nei Nei
Beskrivelse
Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Datainngang til multiplikatoren. Inngangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] bredt Simuleringsmodellen for denne IP støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Datainngang til multiplikatoren. Inngangssignal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] bredt Velg INPUT for parameteren Velg forhåndsaddermodus for å aktivere disse signalene. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Klokkeinngangsport til det tilsvarende registeret. Dette signalet kan brukes av ethvert register i IP-kjernen. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Asynkron sletteinngang til tilsvarende register. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Synkron klarinngang til tilsvarende register. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi X til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene
Aktiver signalinngang til det tilsvarende registeret. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til disse signalene. Når du gir X-verdi til disse signalene, forplantes X-verdien på utgangssignalene.
Spesifiserer den numeriske representasjonen av multiplikatorinngang A. Hvis signalsignalet er høyt, behandler multiplikatoren multiplikatorinngang A-signalet som et fortegnet tall. Hvis signalet er lavt, behandler multiplikatoren multiplikatorinngangssignalet A som et tall uten fortegn. Velg VARIABLE for Hva er representasjonsformatet for Multiplikator A-inngangsparameter for å aktivere dette signalet. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Spesifiserer den numeriske representasjonen av multiplikatorinngangssignalet B. Hvis fortegnb-signalet er høyt, behandler multiplikatoren multiplikatorinngang B-signalet som et fortegnet tos komplementnummer. Hvis fortegnssignalet er lavt, behandler multiplikatoren multiplikatorinngangssignalet B som et tall uten fortegn. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Inngang for skannekjede A. Inngangssignal [WIDTH_A – 1, … 0] bredt. Når INPUT_SOURCE_A-parameteren har verdien SCANA, kreves scanina[]-signalet.
Spesifiserer dynamisk om akkumulatorverdien er konstant. Hvis accum_sload-signalet er lavt, blir multiplikatorutgangen lastet inn i akkumulatoren. Ikke bruk accum_sload og sload_accum samtidig.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signalbelastning_akkum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Påkrevd nr
Nei Nei
Ingen
Nei nei nei nei
Beskrivelse
Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Spesifiserer dynamisk om akkumulatorverdien er konstant. Hvis sload_accum-signalet er høyt, blir multiplikatorutgangen lastet inn i akkumulatoren. Ikke bruk accum_sload og sload_accum samtidig. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Adder resultat input buss fra de foregående stage. Inngangssignal [WIDTH_CHAININ – 1, … 0] bredt.
Utfør addisjon eller subtraksjon til utdataene fra det første multiplikatorparet. Inngang 1 til addnsub1-signal for å legge til utgangene fra det første multiplikatorparet. Inngang 0 til addnsub1-signal for å subtrahere utgangene fra det første multiplikatorparet. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Utfør addisjon eller subtraksjon til utdataene fra det første multiplikatorparet. Inngang 1 til addnsub3-signal for å legge til utgangene fra det andre multiplikatorparet. Inngang 0 til addnsub3-signal for å subtrahere utgangene fra det første multiplikatorparet. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Koeffisientinngangssignal[0:3] til den første multiplikatoren. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Koeffisientinngangssignal[0:3] til den andre multiplikatoren. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Koeffisientinngangssignal[0:3] til den tredje multiplikatoren. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Koeffisientinngangssignal [0:3] til den fjerde multiplikatoren. Simuleringsmodellen for denne IP-en støtter ubestemt inngangsverdi (X) til dette signalet. Når du gir X-verdi til denne inngangen, forplantes X-verdien på utgangssignalene.
Tabell 29. Multiply Adder Intel FPGA IP-utgangssignaler
Signal
Obligatorisk
Beskrivelse
resultat []
Ja
Multiplikator utgangssignal. Utgangssignal [WIDTH_RESULT – 1 … 0] bredt
Simuleringsmodellen for denne IP-en støtter ubestemt utgangsverdi (X). Når du oppgir X-verdi som inngang, forplantes X-verdien på dette signalet.
scanouta []
Ingen
Utgang fra skannekjede A. Utgangssignal [WIDTH_A – 1..0] bredt.
Velg mer enn 2 for antall multiplikatorer og velg Skann kjedeinngang for Hva er inngangen A til multiplikatoren koblet til parameteren for å aktivere dette signalet.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 46
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6. parametere
8.6.1. Generelt-fanen
Tabell 30. Generelt Tab
Parameter
IP generert parameter
Verdi
Hva er antallet multiplikatorer?
antall_m 1 – 4 ultiplikatorer
Hvor brede skal A width_a-inngangsbussene være?
1 – 256
Hvor brede skal B width_b inngangsbussene være?
1 – 256
Hvor bred skal "resultat"-utgangsbussen være?
width_result
1 – 256
Opprett en tilknyttet klokkeaktivering for hver klokke
gui_associate På d_clock_enabl Av e
8.6.2. Kategorien Ekstra moduser
Tabell 31. Kategorien Ekstra Modi
Parameter
IP generert parameter
Verdi
Konfigurasjon av utganger
Registrer utdata fra addererenheten
gui_output_re På
i går
Av
Hva er kilden for klokkeinngang?
gui_output_re gister_clock
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_output_re gister_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_output_re gister_sclr
INGEN SCLR0 SCLR1
Adderoperasjon
Hvilken operasjon skal utføres på utgangene til det første multiplikatorparet?
gui_multiplikator 1_retning
ADD, SUB, VARIABLE
Standardverdi 1
16
Beskrivelse
Antall multiplikatorer som skal legges sammen. Verdiene er 1 til 4. Spesifiser bredden på dataa[]-porten.
16
Spesifiser bredden på dataab[]-porten.
32
Spesifiser bredden på resultat[]-porten.
Av
Velg dette alternativet for å opprette klokkeaktivering
for hver klokke.
Standardverdi
Beskrivelse
Av klokken 0
INGEN INGEN
Velg dette alternativet for å aktivere utgangsregister for adderermodulen.
Velg Klokke0 , Klokke1 eller Klokke2 for å aktivere og spesifisere klokkekilden for utgangsregistre. Du må velge Registrer utgang for adderingsenheten for å aktivere denne parameteren.
Spesifiserer den asynkrone slettekilden for adderutgangsregisteret. Du må velge Registrer utgang for adderingsenheten for å aktivere denne parameteren.
Spesifiserer den synkrone slettekilden for adderutgangsregisteret. Du må velge Registrer utgang for adderingsenheten for å aktivere denne parameteren.
LEGGE TIL
Velg addisjons- eller subtraksjonsoperasjon som skal utføres for utgangene mellom den første og andre multiplikatoren.
· Velg ADD for å utføre tilleggsoperasjon.
· Velg SUB for å utføre subtraksjonsoperasjoner.
· Velg VARIABLE for å bruke addnsub1-porten for dynamisk addisjons-/subtraksjonskontroll.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP generert parameter
Verdi
Registrer 'addnsub1'-inngang
gui_addnsub_ On multiplier_reg Off ister1
Hva er kilden for klokkeinngang?
gui_addnsub_ multiplier_reg ister1_clock
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_addnsub_ multiplier_aclr 1
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_addnsub_ multiplier_sclr 1
INGEN SCLR0 SCLR1
Hvilken operasjon skal utføres på utgangene til det andre multiplikatorparet?
gui_multiplikator 3_retning
ADD, SUB, VARIABLE
Registrer 'addnsub3'-inngang
gui_addnsub_ On multiplier_reg Off ister3
Hva er kilden for klokkeinngang?
gui_addnsub_ multiplier_reg ister3_clock
Klokke0 Klokke1 Klokke2
Standardverdi
Av Klokke0 INGEN INGEN LEGG TIL
Av klokken 0
Beskrivelse
Når VARIABEL-verdien er valgt: · Kjør addnsub1-signalet til høyt for
tilleggsoperasjon. · Kjør addnsub1-signalet til lavt for
subtraksjonsoperasjon. Du må velge mer enn to multiplikatorer for å aktivere denne parameteren.
Velg dette alternativet for å aktivere inngangsregister for addnsub1-port. Du må velge VARIABLE for hvilken operasjon som skal utføres på utgangene til det første multiplikatorparet for å aktivere denne parameteren.
Velg Klokke0, Klokke1 eller Klokke2 for å spesifisere inngangsklokkesignalet for addnsub1-registeret. Du må velge Register 'addnsub1'-inngang for å aktivere denne parameteren.
Spesifiserer den asynkrone slettekilden for addnsub1-registeret. Du må velge Register 'addnsub1'-inngang for å aktivere denne parameteren.
Spesifiserer den synkrone slettekilden for addnsub1-registeret. Du må velge Register 'addnsub1'-inngang for å aktivere denne parameteren.
Velg addisjons- eller subtraksjonsoperasjon som skal utføres for utgangene mellom den tredje og fjerde multiplikatoren. · Velg ADD for å utføre tillegg
operasjon. · Velg SUB for å utføre subtraksjon
operasjon. · Velg VARIABLE for å bruke addnsub1
port for dynamisk addisjons-/subtraksjonskontroll. Når VARIABEL-verdien er valgt: · Drive addnsub1-signalet til høyt for addisjonsdrift. · Kjør addnsub1-signalet til lavt for subtraksjonsdrift. Du må velge verdien 4 for Hva er antall multiplikatorer? for å aktivere denne parameteren.
Velg dette alternativet for å aktivere inngangsregister for addnsub3-signal. Du må velge VARIABLE for hvilken operasjon som skal utføres på utgangene til det andre multiplikatorparet for å aktivere denne parameteren.
Velg Clock0 , Clock1 eller Clock2 for å spesifisere inngangsklokkesignalet for addnsub3-registeret. Du må velge Register 'addnsub3'-inngang for å aktivere denne parameteren.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 48
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Hva er kilden for asynkron klar input?
IP generert parameter
Verdi
gui_addnsub_ multiplier_aclr 3
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_addnsub_ multiplier_sclr 3
INGEN SCLR0 SCLR1
Polaritet Aktiver `use_subadd'
gui_use_subn På
legge til
Av
8.6.3. Multiplikatorer Tab
Tabell 32. Multiplikatorer Tab
Parameter
IP generert parameter
Verdi
Hva er
gui_represent
representasjonsformat ation_a
for multiplikator A-innganger?
SIGNERT, USIGNERT, VARIABEL
Registrer `signa'-inngang
gui_register_s På
igna
Av
Hva er kilden for klokkeinngang?
gui_register_s igna_clock
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_register_s igna_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_register_s igna_sclr
INGEN SCLR0 SCLR1
Hva er
gui_represent
representasjonsformat ation_b
for multiplikator B-innganger?
SIGNERT, USIGNERT, VARIABEL
Registrer `signb'-inngang
gui_register_s På
ignb
Av
Standardverdi INGEN
INGEN
Beskrivelse
Spesifiserer den asynkrone slettekilden for addnsub3-registeret. Du må velge Register 'addnsub3'-inngang for å aktivere denne parameteren.
Spesifiserer den synkrone slettekilden for addnsub3-registeret. Du må velge Register 'addnsub3'-inngang for å aktivere denne parameteren.
Av
Velg dette alternativet for å reversere funksjonen
av addnsub-inngangsporten.
Kjør addnsub til høy for subtraksjonsoperasjon.
Kjør addnsub til lav for tilleggsoperasjon.
Standardverdi
Beskrivelse
USIGNERT Spesifiser representasjonsformatet for multiplikator A-inngangen.
Av
Velg dette alternativet for å aktivere signering
register.
Du må velge VARIABEL verdi for Hva er representasjonsformatet for multiplikator A-innganger? parameter for å aktivere dette alternativet.
Klokke 0
Velg Clock0 , Clock1 eller Clock2 for å aktivere og spesifisere inngangsklokkesignalet for signaregister.
Du må velge Register `signa'-inngang for å aktivere denne parameteren.
INGEN
Spesifiserer den asynkrone klare kilden for signaregisteret.
Du må velge Register `signa'-inngang for å aktivere denne parameteren.
INGEN
Spesifiserer den synkrone klare kilden for signaregisteret.
Du må velge Register `signa'-inngang for å aktivere denne parameteren.
USIGNERT Spesifiser representasjonsformatet for multiplikator B-inngangen.
Av
Velg dette alternativet for å aktivere signb
register.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP generert parameter
Verdi
Standardverdi
Hva er kilden for klokkeinngang?
gui_register_s ignb_clock
Klokke0 Klokke1 Klokke2
Klokke 0
Hva er kilden for asynkron klar input?
gui_register_s ignb_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_register_s ignb_sclr
INGEN SCLR0 SCLR1
Inngangskonfigurasjon
Registrer inngang A til multiplikatoren
Hva er kilden for klokkeinngang?
gui_input_reg På
ister_a
Av
gui_input_reg ister_a_clock
Klokke0 Klokke1 Klokke2
INGEN INGEN
Av klokken 0
Hva er kilden for asynkron klar input?
gui_input_reg ister_a_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_input_reg ister_a_sclr
INGEN SCLR0 SCLR1
Registrer inngang B til multiplikatoren
Hva er kilden for klokkeinngang?
gui_input_reg På
ister_b
Av
gui_input_reg ister_b_clock
Klokke0 Klokke1 Klokke2
INGEN INGEN Av klokke0
Hva er kilden for asynkron klar input?
gui_input_reg ister_b_aclr
INGEN ACLR0 ACLR1
INGEN
Hva er kilden for synkron klar input?
gui_input_reg ister_b_sclr
INGEN SCLR0 SCLR1
INGEN
Hva er inngangen A til multiplikatoren koblet til?
gui_multiplier Multiplikator input Multiplikator
_a_inngang
Skann kjedeinngang
Beskrivelse
Du må velge VARIABEL verdi for Hva er representasjonsformatet for Multiplikator B-innganger? parameter for å aktivere dette alternativet.
Velg Klokke0 , Klokke1 eller Klokke2 for å aktivere og spesifisere inngangsklokkesignalet for skiltregister. Du må velge Register `signb'-inngang for å aktivere denne parameteren.
Spesifiserer den asynkrone klare kilden for signb-registeret. Du må velge Register `signb'-inngang for å aktivere denne parameteren.
Spesifiserer den synkrone klare kilden for signb-registeret. Du må velge Register `signb'-inngang for å aktivere denne parameteren.
Velg dette alternativet for å aktivere inngangsregister for data en inngangsbuss.
Velg Klokke0 , Klokke1 eller Klokke2 for å aktivere og spesifisere registerinngangsklokkesignalet for data en inngangsbuss. Du må velge Registrer inngang A til multiplikatoren for å aktivere denne parameteren.
Spesifiserer den asynkrone registerkilden for datainndatabussen. Du må velge Registrer inngang A til multiplikatoren for å aktivere denne parameteren.
Spesifiserer den synkrone tømmekilden for registeret for datainngangsbussen. Du må velge Registrer inngang A til multiplikatoren for å aktivere denne parameteren.
Velg dette alternativet for å aktivere inngangsregister for datainngangsbuss.
Velg Klokke0, Klokke1 eller Klokke2 for å aktivere og spesifisere registerinngangsklokkesignalet for datainngangsbussen. Du må velge Registrer inngang B til multiplikatoren for å aktivere denne parameteren.
Spesifiserer den asynkrone registerkilden for datainndatabussen. Du må velge Registrer inngang B til multiplikatoren for å aktivere denne parameteren.
Spesifiserer den synkrone tømmekilden for registeret for datainngangsbussen. Du må velge Registrer inngang B til multiplikatoren for å aktivere denne parameteren.
Velg inngangskilden for inngang A til multiplikatoren.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 50
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP generert parameter
Verdi
Scanout A Register Configuration
Registrer utdata fra skannekjeden
gui_scanouta På
_register
Av
Hva er kilden for klokkeinngang?
gui_scanouta _register_clock k
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_scanouta _register_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_scanouta _register_sclr
INGEN SCLR0 SCLR1
8.6.4. Preadder-fanen
Tabell 33. Preadder Tab
Parameter
IP generert parameter
Verdi
Velg preadder-modus
preadder_mo de
ENKEL, COEF, INNPUT, KVADRAT, KONSTANT
Standardverdi
Beskrivelse
Velg Multiplikatorinngang for å bruke dataen en inngangsbuss som kilde til multiplikatoren. Velg Skann kjedeinngang for å bruke skanningsinngangsbussen som kilden til multiplikatoren og aktivere skanningsutgangsbussen. Denne parameteren er tilgjengelig når du velger 2, 3 eller 4 for Hva er antallet multiplikatorer? parameter.
Av klokke0 INGEN INGEN
Velg dette alternativet for å aktivere utgangsregister for scanouta utgangsbuss.
Du må velge Scan chain input for Hva er inngangen A på multiplikatoren koblet til? parameter for å aktivere dette alternativet.
Velg Klokke0 , Klokke1 eller Klokke2 for å aktivere og spesifisere registerinngangsklokkesignalet for scanouta-utgangsbussen.
Du må slå på Registrer utgang for skannekjedeparameteren for å aktivere dette alternativet.
Spesifiserer den asynkrone registerkilden for scanouta-utgangsbussen.
Du må slå på Registrer utgang for skannekjedeparameteren for å aktivere dette alternativet.
Spesifiserer registersynkron clearing-kilde for scanouta-utgangsbussen.
Du må velge Registrer utdata for skannekjedeparameteren for å aktivere dette alternativet.
Standardverdi
ENKEL
Beskrivelse
Spesifiserer driftsmodus for preadder-modulen. ENKEL: Denne modusen omgår preadderen. Dette er standardmodusen. COEF: Denne modusen bruker utgangen fra preadder- og coefsel-inngangsbussen som innganger til multiplikatoren. INPUT: Denne modusen bruker utgangen fra preadderen og datainngangsbussen som innganger til multiplikatoren. SQUARE: Denne modusen bruker utgangen fra preadderen som begge inngangene til multiplikatoren.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP generert parameter
Verdi
Velg preader-retning
gui_preadder ADD,
_retning
SUB
Hvor brede skal C width_c-inngangsbussene være?
1 – 256
Data C Input Register Configuration
Registrer datainngang
gui_datac_inp På
ut_register
Av
Hva er kilden for klokkeinngang?
gui_datac_inp ut_register_cl ock
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_datac_inp ut_register_a clr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_datac_inp ut_register_sc lr
INGEN SCLR0 SCLR1
Koeffisienter
Hvor bred skal coef-bredden være?
width_coef
1 – 27
Coef Register Konfigurasjon
Registrer coefsel-inngangen
gui_coef_regi På
ster
Av
Hva er kilden for klokkeinngang?
gui_coef_regi ster_clock
Klokke0 Klokke1 Klokke2
Standardverdi
LEGGE TIL
16
Beskrivelse
KONSTANT: Denne modusen bruker data en inngangsbuss med forbikoblet preadder og coefsel inngangsbuss som innganger til multiplikatoren.
Spesifiserer operasjonen til preadderen. For å aktivere denne parameteren, velg følgende for Velg preadder-modus: · COEF · INPUT · SQUARE eller · CONSTANT
Angir antall biter for C-inngangsbuss. Du må velge INPUT for Select preadder-modus for å aktivere denne parameteren.
På Klokke0 INGEN INGEN
Velg dette alternativet for å aktivere inngangsregister for datainngangsbuss. Du må sette INPUT til Select preadder mode parameter for å aktivere dette alternativet.
Velg Klokke0 , Klokke1 eller Klokke2 for å spesifisere inngangsklokkesignalet for datainngangsregisteret. Du må velge Registrer datainngang for å aktivere denne parameteren.
Spesifiserer den asynkrone slettekilden for datainndataregisteret. Du må velge Registrer datainngang for å aktivere denne parameteren.
Spesifiserer den synkrone slettekilden for datainndataregisteret. Du må velge Registrer datainngang for å aktivere denne parameteren.
18
Angir antall biter for
coefsel inngangsbuss.
Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
På Klokke0
Velg dette alternativet for å aktivere inngangsregister for coefsel inngangsbuss. Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
Velg Klokke0 , Klokke1 eller Klokke2 for å spesifisere inngangsklokkesignalet for koefselinngangsregisteret. Du må velge Registrer coefsel-inngangen for å aktivere denne parameteren.
fortsatte...
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 52
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Hva er kilden for asynkron klar input?
IP generert parameter
Verdi
gui_coef_regi ster_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input
gui_coef_regi ster_sclr
INGEN SCLR0 SCLR1
Koeffisient_0-konfigurasjon
coef0_0 til coef0_7
0x00000 0xFFFFFFF
Koeffisient_1-konfigurasjon
coef1_0 til coef1_7
0x00000 0xFFFFFFF
Koeffisient_2-konfigurasjon
coef2_0 til coef2_7
0x00000 0xFFFFFFF
Koeffisient_3-konfigurasjon
coef3_0 til coef3_7
0x00000 0xFFFFFFF
8.6.5. Akkumulator Tab
Tabell 34. Akkumulator Tab
Parameter
IP generert parameter
Verdi
Vil du aktivere akkumulator?
akkumulator
JA NEI
Hva er akkumulatordriftstypen?
accum_directi ADD,
on
SUB
Standardverdi INGEN
INGEN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Beskrivelse
Spesifiserer den asynkrone clear-kilden for coefsel-inndataregisteret. Du må velge Registrer coefsel-inngangen for å aktivere denne parameteren.
Spesifiserer den synkrone clear-kilden for coefsel-inndataregisteret. Du må velge Registrer coefsel-inngangen for å aktivere denne parameteren.
Spesifiserer koeffisientverdiene for denne første multiplikatoren. Antall bits skal være det samme som spesifisert i Hvor bred skal koefbredden være? parameter. Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
Spesifiserer koeffisientverdiene for denne andre multiplikatoren. Antall bits skal være det samme som spesifisert i Hvor bred skal koefbredden være? parameter. Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
Spesifiserer koeffisientverdiene for denne tredje multiplikatoren. Antall bits skal være det samme som spesifisert i Hvor bred skal koefbredden være? parameter. Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
Spesifiserer koeffisientverdiene for denne fjerde multiplikatoren. Antall bits skal være det samme som spesifisert i Hvor bred skal koefbredden være? parameter. Du må velge COEF eller CONSTANT for preadder-modus for å aktivere denne parameteren.
Standardverdi NO
LEGGE TIL
Beskrivelse
Velg JA for å aktivere akkumulatoren. Du må velge Register output of adder unit når du bruker akkumulatorfunksjonen.
Spesifiserer operasjonen til akkumulatoren: · ADD for addisjonsoperasjon · SUB for subtraksjonsoperasjon. Du må velge JA for Aktiver akkumulator? parameter for å aktivere dette alternativet.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Preload Constant Aktiver preload konstant
IP generert parameter
Verdi
gui_ena_prelo På
ad_const
Av
Hva er inngangen til akkumuleringsporten koblet til?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Velg verdi for preload loadconst_val 0 – 64
konstant
ue
Hva er kilden for klokkeinngang?
gui_accum_sl oad_register_ klokke
Klokke0 Klokke1 Klokke2
Hva er kilden for asynkron klar input?
gui_accum_sl oad_register_ aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_accum_sl oad_register_ sclr
INGEN SCLR0 SCLR1
Aktiver dobbel akkumulator
gui_double_a På
cum
Av
Standardverdi
Beskrivelse
Av
Aktiver accum_sload eller
sload_accum-signaler og registerinngang
for å dynamisk velge inngangen til
akkumulator.
Når accum_sload er lav eller sload_accum, mates multiplikatorutgangen inn i akkumulatoren.
Når accum_sload er høy eller sload_accum, mates en brukerspesifisert forhåndsbelastningskonstant inn i akkumulatoren.
Du må velge JA for Aktiver akkumulator? parameter for å aktivere dette alternativet.
ACCUM_SL OAD
Spesifiserer oppførselen til accum_sload/sload_accum-signalet.
ACCUM_SLOAD: Drive accum_sload lav for å laste multiplikatorutgangen til akkumulatoren.
SLOAD_ACCUM: Kjør sload_accum høy for å laste multiplikatorutgangen til akkumulatoren.
Du må velge alternativet Aktiver forhåndsinnlastingskonstant for å aktivere denne parameteren.
64
Spesifiser den forhåndsinnstilte konstantverdien.
Denne verdien kan være 2N hvor N er den forhåndsinnstilte konstantverdien.
Når N=64, representerer det en konstant null.
Du må velge alternativet Aktiver forhåndsinnlastingskonstant for å aktivere denne parameteren.
Klokke 0
Velg Clock0 , Clock1 eller Clock2 for å spesifisere inngangsklokkesignalet for registeret accum_sload/sload_accum.
Du må velge alternativet Aktiver forhåndsinnlastingskonstant for å aktivere denne parameteren.
INGEN
Spesifiserer den asynkrone slettekilden for registeret accum_sload/sload_accum.
Du må velge alternativet Aktiver forhåndsinnlastingskonstant for å aktivere denne parameteren.
INGEN
Spesifiserer den synkrone slettekilden for registeret accum_sload/sload_accum.
Du må velge alternativet Aktiver forhåndsinnlastingskonstant for å aktivere denne parameteren.
Av
Aktiverer dobbeltakkumulatorregisteret.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 54
Send tilbakemelding
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6.6. Systolisk/kjedeuttak
Tabell 35. Systolisk/Chainout Adder Tab
Parameter Aktiver chainout adder
IP generert parameter
Verdi
chainout_add JA,
er
INGEN
Hva er operasjonstypen chainout adder?
chainout_add ADD,
er_retning
SUB
Vil du aktivere "neger"-inngang for chainout adder?
Port_negate
PORT_USED, PORT_UNUSED
Vil du registrere "nekte"-inndata? negate_register er
UREGISTERT, KLOKKE0, KLOKKE1, KLOKKE2, KLOKKE3
Hva er kilden for asynkron klar input?
negate_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
negate_sclr
INGEN SCLR0 SCLR1
Systolisk forsinkelse
Aktiver systoliske forsinkelsesregistre
gui_systolic_d På
Elay
Av
Hva er kilden for klokkeinngang?
gui_systolic_d CLOCK0,
elay_clock
KLOKKE1,
Standardverdi
INGEN
Beskrivelse
Velg JA for å aktivere chainout adder-modul.
LEGGE TIL
Spesifiserer operasjonen for chainout adder.
For subtraksjonsoperasjon må SIGNED velges for Hva er representasjonsformatet for multiplikator A-innganger? og Hva er representasjonsformatet for multiplikator B-innganger? i Multiplikatorer-fanen.
PORT_UN BRUKT
Velg PORT_USED for å aktivere negert inngangssignal.
Denne parameteren er ugyldig når chainout adder er deaktivert.
UREGISTER ER
For å aktivere inngangsregisteret for negert inngangssignal og spesifisere inngangsklokkesignalet for negert register.
Velg UNREGISTERED hvis det ikke er nødvendig med nege input register til
Denne parameteren er ugyldig når du velger:
· NEI for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver "neger"-inngang for chainout adder? parameter eller
INGEN
Spesifiserer den asynkrone klare kilden for det negative registeret.
Denne parameteren er ugyldig når du velger:
· NEI for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver "neger"-inngang for chainout adder? parameter eller
INGEN
Spesifiserer den synkrone klare kilden for det negative registeret.
Denne parameteren er ugyldig når du velger:
· NEI for Aktiver chainout adder eller
· PORT_UNUSED for Aktiver "neger"-inngang for chainout adder? parameter eller
Av KLOKKE0
Velg dette alternativet for å aktivere systolisk modus. Denne parameteren er tilgjengelig når du velger 2 eller 4 for Hva er antallet multiplikatorer? parameter. Du må aktivere registerutgangen til adderenheten for å bruke de systoliske forsinkelsesregistrene.
Spesifiserer inngangsklokkesignalet for systolisk forsinkelsesregister.
fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP generert parameter
Verdi
KLOKKE2,
Hva er kilden for asynkron klar input?
gui_systolic_d elay_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_systolic_d elay_sclr
INGEN SCLR0 SCLR1
Standardverdi
INGEN
INGEN
Beskrivelse
Du må velge aktiver systoliske forsinkelsesregistre for å aktivere dette alternativet.
Spesifiserer den asynkrone slettekilden for det systoliske forsinkelsesregisteret. Du må velge aktiver systoliske forsinkelsesregistre for å aktivere dette alternativet.
Spesifiserer den synkrone slettekilden for det systoliske forsinkelsesregisteret. Du må velge aktiver systoliske forsinkelsesregistre for å aktivere dette alternativet.
8.6.7. Rørledning Tab
Tabell 36. Rørføring Tab
Parameter Rørledningskonfigurasjon
IP generert parameter
Verdi
Vil du legge til rørledningsregister til inngangen?
gui_pipelining Nei, ja
Standardverdi
Ingen
Vennligst spesifiser
ventetid
antall latensklokker
sykluser
Enhver verdi større enn 0
Hva er kilden for klokkeinngang?
gui_input_late ncy_clock
CLOCK0, CLOCK1, CLOCK2
Hva er kilden for asynkron klar input?
gui_input_late ncy_aclr
INGEN ACLR0 ACLR1
Hva er kilden for synkron klar input?
gui_input_late ncy_sclr
INGEN SCLR0 SCLR1
KLOKKE0 INGEN INGEN
Beskrivelse
Velg Ja for å aktivere et ekstra nivå av rørledningsregister til inngangssignalene. Du må spesifisere en verdi som er større enn 0 for Vennligst spesifiser parameteren antall latensklokkesykluser.
Spesifiserer ønsket ventetid i klokkesykluser. Ett nivå av rørledningsregister = 1 latens i klokkesyklus. Du må velge JA for Vil du legge til rørledningsregister til inngangen? for å aktivere dette alternativet.
Velg Klokke0 , Klokke1 eller Klokke2 for å aktivere og spesifisere inngangsklokkesignalet for rørledningsregisteret. Du må velge JA for Vil du legge til rørledningsregister til inngangen? for å aktivere dette alternativet.
Spesifiserer den asynkrone registerkilden for det ekstra rørledningsregisteret. Du må velge JA for Vil du legge til rørledningsregister til inngangen? for å aktivere dette alternativet.
Spesifiserer den synkrone tømmekilden for registeret for det ekstra rørledningsregisteret. Du må velge JA for Vil du legge til rørledningsregister til inngangen? for å aktivere dette alternativet.
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 56
Send tilbakemelding
683490 | 2020.10.05 Send tilbakemelding
9. ALTMEMMULT (minnebasert konstant koeffisientmultiplikator) IP-kjerne
Oppmerksomhet:
Intel har fjernet støtten for denne IP-en i Intel Quartus Prime Pro Edition versjon 20.3. Hvis IP-kjernen i designet er rettet mot enheter i Intel Quartus Prime Pro Edition, kan du erstatte IP-en med LPM_MULT Intel FPGA IP eller generere IP-en på nytt og kompilere designet ved hjelp av programvaren Intel Quartus Prime Standard Edition.
ALTMEMMULT IP-kjernen brukes til å lage minnebaserte multiplikatorer ved å bruke onchip-minneblokkene som finnes i Intel FPGA-er (med M512, M4K, M9K og MLAB minneblokker). Denne IP-kjernen er nyttig hvis du ikke har tilstrekkelige ressurser til å implementere multiplikatorene i logiske elementer (LEs) eller dedikerte multiplikatorressurser.
ALTMEMMULT IP-kjernen er en synkron funksjon som krever en klokke. ALTMEMMULT IP-kjernen implementerer en multiplikator med minst mulig gjennomstrømning og latens for et gitt sett med parametere og spesifikasjoner.
Følgende figur viser portene for ALTMEMMULT IP-kjernen.
Figur 21. ALTMEMMULT-porter
ALTMEMMULT
data_in[] sload_data coeff_in[]
resultat[] resultat_gyldig lastet_ferdig
sload_coeff
sclr klokke
inst
Relaterte informasjonsfunksjoner på side 71
9.1. Funksjoner
ALTMEMMULT IP-kjernen tilbyr følgende funksjoner: · Oppretter kun minnebaserte multiplikatorer ved å bruke minneblokker på brikken som finnes i
Intel FPGAer · Støtter databredde på 1 biter · Støtter signerte og usignerte datarepresentasjonsformater · Støtter pipelining med fast utdatalatens
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
ISO 9001: 2015 Registrert
9. ALTMEMMULT (Minnebasert Constant Coefficient Multiplier) IP-kjerne 683490 | 2020.10.05
· Lagrer multipler konstanter i tilfeldig tilgangsminne (RAM)
· Gir et alternativ for å velge RAM-blokktype
· Støtter valgfrie synkrone klare og lastkontrollerende inngangsporter
9.2. Verilog HDL-prototype
Følgende Verilog HDL-prototype er plassert i Verilog Design File (.v) altera_mf.v i eda syntesekatalog.
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") (inngangsklokke, inngangsledning [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 */; endemodul
9.3. VHDL-komponenterklæring
VHDL-komponentdeklarasjonen er plassert i VHDL-designet File (.vhd) altera_mf_components.vhd i librariesvhdlaltera_mf katalog.
komponent altmemmult generisk ( coeff_representation:string := «SIGNED»; koeffisient0:string:= «UNUSED»; data_representation:string := «SIGNED»; intended_device_family:string:= «unused»; max_clock_cycles_per_result1;natural_of_al_coefficient := := 1; ram_block_type:string := “AUTO”; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := “UNUSED”; lpm_type:string := "altmemmult"); port(klokke:in std_logic; coeff_in:in std_logic_vector(width_c-1 ned til 0) := (andre => '0'); data_in:in std_logic_vector(width_d-1 ned til 0);
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 58
Send tilbakemelding
9. ALTMEMMULT (Minnebasert Constant Coefficient Multiplier) IP-kjerne 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'); sluttkomponent;
9.4. Porter
Følgende tabeller viser inngangs- og utgangsportene for ALTMEMMULT IP-kjernen.
Tabell 37. ALTMEMMULT inngangsporter
Portnavn
Obligatorisk
Beskrivelse
klokke
Ja
Klokkeinngang til multiplikatoren.
coeff_in[]
Ingen
Koeffisientinngangsport for multiplikatoren. Størrelsen på inngangsporten avhenger av parameterverdien WIDTH_C.
data_in[]
Ja
Datainngangsport til multiplikatoren. Størrelsen på inngangsporten avhenger av parameterverdien WIDTH_D.
sclr
Ingen
Synkron klar inngang. Hvis den ikke brukes, er standardverdien aktiv høy.
sel[]
Ingen
Fast koeffisientvalg. Størrelsen på inngangsporten avhenger av WIDTH_S
parameterverdi.
sload_coeff
Ingen
Inngangsport for synkron belastningskoeffisient. Erstatter gjeldende valgte koeffisientverdi med verdien spesifisert i coeff_in-inngangen.
sload_data
Ingen
Inngangsport for synkron belastningsdata. Signal som spesifiserer ny multiplikasjonsoperasjon og kansellerer enhver eksisterende multiplikasjonsoperasjon. Hvis parameteren MAX_CLOCK_CYCLES_PER_RESULT har en verdi på 1, ignoreres sload_data inngangsporten.
Tabell 38. ALTMEMMULT utgangsporter
Portnavn
Obligatorisk
Beskrivelse
resultat[]
Ja
Multiplikator utgangsport. Størrelsen på inngangsporten avhenger av parameterverdien WIDTH_R.
resultat_gyldig
Ja
Indikerer når utgangen er det gyldige resultatet av en fullstendig multiplikasjon. Hvis parameteren MAX_CLOCK_CYCLES_PER_RESULT har en verdi på 1, brukes ikke resultat_gyldig utgangsport.
last_ferdig
Ingen
Indikerer når den nye koeffisienten er ferdig lastet. load_done-signalet hevder når en ny koeffisient er ferdig lastet. Med mindre load_done-signalet er høyt, kan ingen annen koeffisientverdi lastes inn i minnet.
9.5. parametere
Tabellen nedenfor viser parameterne for ALTMEMMULT IP-kjernen.
Tabell 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parametere
Parameternavn
Type påkrevd
Beskrivelse
Heltall Ja
Angir bredden på data_in[]-porten.
Heltall Ja
Angir bredden på coeff_in[]-porten. fortsatte...
Send tilbakemelding
Intel FPGA Integer Arithmetic IP Cores brukerveiledning 59
9. ALTMEMMULT (Minnebasert Constant Coefficient Multiplier) IP-kjerne 683490 | 2020.10.05
Parameternavn WIDTH_R WIDTH
Dokumenter / Ressurser
![]() |
intel FPGA Integer Aritmetic IP-kjerner [pdfBrukerhåndbok FPGA heltalls aritmetiske IP-kjerner, heltallsaritmetiske IP-kjerner, aritmetiske IP-kjerner, IP-kjerner |