FPGA heltalsaritmetiska IP-kärnor
Intel FPGA Integer Arithmetic IP Cores Användarhandbok
Uppdaterad för Intel® Quartus® Prime Design Suite: 20.3
Onlineversion Skicka feedback
UG-01063
ID: 683490 Version: 2020.10.05
Innehåll
Innehåll
1. Intel FPGA Integer Arithmetic IP Cores……………………………………………………………………….. 5
2. LPM_COUNTER (Räknare) IP-kärna……………………………………………………………………………….. 7 2.1. Funktioner………………………………………………………………………………………………………………7 2.2. Verilog HDL-prototyp……………………………………………………………………………………….. 8 2.3. VHDL-komponentdeklaration……………………………………………………………………………….8 2.4. VHDL LIBRARY_USE Deklaration………………………………………………………………………… 9 2.5. Hamnar………………………………………………………………………………………………………………………..9 2.6. Parametrar……………………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divider) Intel FPGA IP Core……………………………………………………………………….. 12 3.1. Funktioner………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototyp……………………………………………………………………………………… 12 3.3. VHDL-komponentdeklaration………………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 13 3.5. Hamnar……………………………………………………………………………………………………………… 13 3.6. Parametrar……………………………………………………………………………………………………………… 14
4. LPM_MULT (Multiplier) IP Core………………………………………………………………………………………. 16 4.1. Funktioner………………………………………………………………………………………………. 16 4.2. Verilog HDL-prototyp……………………………………………………………………………… 17 4.3. VHDL-komponentdeklaration………………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 17 4.5. Signaler………………………………………………………………………………………………………… 18 4.6. Parametrar för Stratix V-, Arria V-, Cyclone V- och Intel Cyclone 10 LP-enheter………………… 18 4.6.1. Fliken Allmänt…………………………………………………………………………………………18 4.6.2. Allmänt 2 Tab……………………………………………………………………………………… 19 4.6.3. Rörledningsflik……………………………………………………………………………………… 19 4.7. Parametrar för Intel Stratix 10, Intel Arria 10 och Intel Cyclone 10 GX-enheter……….. 20 4.7.1. Fliken Allmänt…………………………………………………………………………………………20 4.7.2. Allmänt 2 Fliken……………………………………………………………………………………… 20 4.7.3. Rörledning………………………………………………………………………………………………………21
5. LPM_ADD_SUB (adderare/avdragare)………………………………………………………………………………… 22 5.1. Funktioner………………………………………………………………………………………………. 22 5.2. Verilog HDL-prototyp……………………………………………………………………………… 23 5.3. VHDL-komponentdeklaration………………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 23 5.5. Hamnar………………………………………………………………………………………………………………… 23 5.6. Parametrar……………………………………………………………………………………………………………… 24
6. LPM_COMPARE (jämförare)………………………………………………………………………………………… 26 6.1. Funktioner………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototyp……………………………………………………………………………… 27 6.3. VHDL-komponentdeklaration………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 27 6.5. Hamnar……………………………………………………………………………………………………………… 27 6.6. Parametrar……………………………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 2
Skicka feedback
Innehåll
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core………………………………………… 30
7.1. ALTECC kodarfunktioner…………………………………………………………………………………..31 7.2. Verilog HDL-prototyp (ALTECC_ENCODER)…………………………………………………………. 32 7.3. Verilog HDL-prototyp (ALTECC_DECODER) …………………………………………………………………. 32 7.4. VHDL-komponentdeklaration (ALTECC_ENCODER)…………………………………………………33 7.5. VHDL-komponentdeklaration (ALTECC_DECODER)…………………………………………………33 7.6. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 33 7.7. Kodarportar……………………………………………………………………………………………… 33 7.8. Avkodarportar………………………………………………………………………………………………………34 7.9. Kodarparametrar……………………………………………………………………………………… 34 7.10. Avkodarparametrar ……………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………………. 36
8.1. Funktioner………………………………………………………………………………………………. 37 8.1.1. Föradderare……………………………………………………………………………………………….. 38 8.1.2. Systoliskt fördröjningsregister……………………………………………………………………….. 40 8.1.3. Förspänningskonstant……………………………………………………………………………… 43 8.1.4. Dubbel ackumulator……………………………………………………………………………… 43
8.2. Verilog HDL-prototyp……………………………………………………………………………… 44 8.3. VHDL-komponentdeklaration………………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………. 44 8.5. Signaler………………………………………………………………………………………………………… 44 8.6. Parametrar……………………………………………………………………………………………………………… 47
8.6.1. Fliken Allmänt…………………………………………………………………………………………47 8.6.2. Fliken Extra lägen………………………………………………………………………………….. 47 8.6.3. Multiplikatorfliken……………………………………………………………………………………………….. 49 8.6.4. Preadder-fliken………………………………………………………………………………………………. 51 8.6.5. Akkumulatorfliken………………………………………………………………………………….. 53 8.6.6. Systolisk/Chainout-flik………………………………………………………………………………. 55 8.6.7. Rörledningsflik……………………………………………………………………………………… 56
9. ALTMEMMULT (minnesbaserad konstantkoefficientmultiplikator) IP-kärna………………………… 57
9.1. Funktioner………………………………………………………………………………………………. 57 9.2. Verilog HDL-prototyp……………………………………………………………………………… 58 9.3. VHDL-komponentdeklaration………………………………………………………………………….. 58 9.4. Hamnar……………………………………………………………………………………………………………… 59 9.5. Parametrar……………………………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiplicera-ackumulera) IP-kärna……………………………………………………… 61
10.1. Funktioner……………………………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototyp………………………………………………………………………………………………..62 10.3. VHDL-komponentdeklaration………………………………………………………………………… 63 10.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………63 10.5. Hamnar…………………………………………………………………………………………………. 63 10.6. Parametrar………………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiply-Adder) IP Core…………………………………………………………………..69
11.1. Funktioner……………………………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototyp………………………………………………………………………………………………..72 11.3. VHDL-komponentdeklaration………………………………………………………………………… 72 11.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………72
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 3
Innehåll
11.5. Hamnar…………………………………………………………………………………………………. 72 11.6. Parametrar………………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (komplex multiplikator) IP-kärna……………………………………………………… 86 12.1. Komplex multiplikation………………………………………………………………………………………. 86 12.2. Kanonisk representation………………………………………………………………………… 87 12.3. Konventionell representation…………………………………………………………………………………. 87 12.4. Funktioner……………………………………………………………………………………………………………….. 88 12.5. Verilog HDL-prototyp………………………………………………………………………………………..88 12.6. VHDL-komponentdeklaration………………………………………………………………………… 89 12.7. VHDL LIBRARY_USE-deklaration………………………………………………………………………………89 12.8. Signaler………………………………………………………………………………………………………. 89 12.9. Parametrar………………………………………………………………………………………………………. 90
13. ALTSQRT (heltalskvadratrot) IP-kärna…………………………………………………………………………92 13.1. Funktioner……………………………………………………………………………………………………………….. 92 13.2. Verilog HDL-prototyp………………………………………………………………………………………………..92 13.3. VHDL-komponentdeklaration………………………………………………………………………… 93 13.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………93 13.5. Hamnar…………………………………………………………………………………………………. 93 13.6. Parametrar………………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Parallell Adder) IP Core………………………………………………………………….. 95 14.1. Funktion……………………………………………………………………………………………………….95 14.2. Verilog HDL-prototyp………………………………………………………………………………………………..95 14.3. VHDL-komponentdeklaration………………………………………………………………………… 96 14.4. VHDL LIBRARY_USE-deklaration………………………………………………………………………………96 14.5. Hamnar…………………………………………………………………………………………………. 96 14.6. Parametrar………………………………………………………………………………………………………. 97
15. Integer Aritmetic IP Cores Användarhandbok Dokumentarkiv………………………………… 98
16. Dokumentrevisionshistorik för Intel FPGA Integer Arithmetic IP Cores Användarhandbok…. 99
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 4
Skicka feedback
683490 | 2020.10.05 Skicka feedback
1. Intel FPGA Integer Arithmetic IP-kärnor
Du kan använda Intel® FPGA heltals IP-kärnor för att utföra matematiska operationer i din design.
Dessa funktioner erbjuder mer effektiv logiksyntes och enhetsimplementering än att koda dina egna funktioner. Du kan anpassa IP-kärnorna för att tillgodose dina designkrav.
Intel heltalsarithmetiska IP-kärnor är indelade i följande två kategorier: · Bibliotek med parameteriserade moduler (LPM) IP-kärnor · Intel-specifika (ALT) IP-kärnor
Följande tabell listar de aritmetiska heltals-IP-kärnorna.
Tabell 1.
Lista över IP-kärnor
IP-kärnor
LPM IP-kärnor
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Intel-specifika (ALT) IP-kärnor ALTECC
Funktionen överview Counter Divider Multiplikator
Adder- eller subtraktionskomparator
ECC-kodare/avkodare
Enhet som stöds
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 fortsättning...
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
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
Funktionen överview Multiplikator-adderare
Minnesbaserad multiplikator för konstant koefficient
Multiplikator-ackumulator Multiplikator-adder
Komplex multiplikator
Heltals kvadratrot
Parallell adderare
Enhet som stöds
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
Relaterad information
· Releaseinformation för Intel FPGA:er och programmerbara enheter
· Introduktion till Intel FPGA IP Cores Ger mer information om Intel FPGA IP Cores.
· Användarhandbok för flytande punkt IP-kärnor Ger mer information om Intel FPGA Floating-Point IP-kärnor.
· Introduktion till Intel FPGA IP-kärnor Ger allmän information om alla Intel FPGA IP-kärnor, inklusive parametrisering, generering, uppgradering och simulering av IP-kärnor.
· Skapa versionsoberoende IP- och Qsys-simuleringsskript Skapa simuleringsskript som inte kräver manuella uppdateringar för programvaru- eller IP-versionsuppgraderingar.
· Riktlinjer för bästa praxis för projektledning för effektiv hantering och portabilitet av ditt projekt och IP files.
· Integer Arithmetic IP Cores Användarhandbok Dokumentarkiv på sidan 98 Ger en lista över användarguider för tidigare versioner av Integer Arithmetic IP-kärnorna.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 6
Skicka feedback
683490 | 2020.10.05 Skicka feedback
2. LPM_COUNTER (räknare) IP-kärna
Figur 1.
LPM_COUNTER IP-kärnan är en binär räknare som skapar uppräknare, nedräknare och upp- eller nedräknare med utgångar på upp till 256 bitar breda.
Följande bild visar portarna för LPM_COUNTER IP-kärnan.
LPM_COUNTER portar
LPM_COUNTER
ssclr belastning sset data[]
q[]
upp ner
cout
aclr aload asset
clk_en cnt_en cin
inst
2.1. Funktioner
LPM_COUNTER IP-kärnan erbjuder följande funktioner: · Genererar upp-, ner- och upp-/nedräknare · Genererar följande räknartyper:
— Vanligt binärt – räknaren ökar från noll eller minskar från 255
— Modulus – räknaren ökar till eller minskar från det modulvärde som anges av användaren och upprepas
· Stöder valfria synkrona tömnings-, laddnings- och ingångsportar · Stöder valfria asynkrona tömnings-, laddnings- och ställingångsportar · Stöder valfria portar för räkneaktivering och klockaktivering · Stöder valfria in- och utmatningsportar
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
2. LPM_COUNTER (räknare) IP-kärna
683490 | 2020.10.05
2.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_counter (q, data, klocka, 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 = “OANVÄND”; parameter lpm_avalue = “OANVÄND”; parameter lpm_svalue = “OANVÄND”; parameter lpm_pvalue = “OANVÄND”; parameter lpm_port_updown = “PORT_CONNECTIVITY”; parameter lpm_hint = “OANVÄND”; output [lpm_width-1:0] q; utgångscout; utgång [15:0] ekv; ingång cin; mata in [lpm_width-1:0] data; input clock, clk_en, cnt_en, updown; input aset, aclr, aload; ingång sset, sclr, belastning; slutmodul
2.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
komponent LPM_COUNTER generisk ( LPM_WIDTH : naturlig; LPM_MODULUS : naturlig := 0; LPM_DIRECTION : sträng := “UNUSED”; LPM_AVALUE : sträng := “UNUSED”; LPM_SVALUE : sträng := “UNUSED”; LPM_PORTITY: CONUSED_ ; LPM_PVALUE : string := “UNUSED”; LPM_TYPE : string := L_COUNTER; LPM_HINT : string := “UNUSED”); port (DATA: i std_logic_vector(LPM_WIDTH-1 ner till 0):= (ANDRA =>
'0'); KLOCKA: i std_logic; CLK_SV : i std_logic := '1'; CNT_SV : 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 ner till 0); EQ: ut std_logic_vector(15 ner till 0));
slutkomponent;
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 8
Skicka feedback
2. LPM_COUNTER (Räknare) IP-kärna 683490 | 2020.10.05
2.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
BIBLIOTEK lpm; ANVÄND lpm.lpm_components.all;
2.5. Hamnar
Följande tabeller visar in- och utportarna för LPM_COUNTER IP-kärnan.
Tabell 2.
LPM_COUNTER ingångsportar
Portnamn
Nödvändig
Beskrivning
data[]
Inga
Parallell datainmatning till räknaren. Storleken på ingångsporten beror på parametervärdet LPM_WIDTH.
klocka
Ja
Positiv flankutlöst klockingång.
clk_en
Inga
Klockaktivering ingång för att aktivera alla synkrona aktiviteter. Om det utelämnas är standardvärdet 1.
cnt_en
Inga
Count aktivera ingång för att inaktivera räkningen när den hävdas låg utan att påverka belastning, sset eller sclr. Om det utelämnas är standardvärdet 1.
upp ner
Inga
Styr riktningen för räkningen. När det hävdas högt (1) är räkneriktningen uppåt, och när det hävdas lågt (0) är räkneriktningen nedåt. Om parametern LPM_DIRECTION används kan updown-porten inte anslutas. Om LPM_DIRECTION inte används är upp-ned-porten valfri. Om det utelämnas är standardvärdet upp (1).
cin
Inga
Bär in till den låga biten. För uppräknare är beteendet hos cin-ingången
identisk med beteendet för ingången cnt_en. Om det utelämnas är standardvärdet 1
(VCC).
aclr
Inga
Asynkron klar ingång. Om både aset och aclr används och hävdas, åsidosätter aclr asset. Om det utelämnas är standardvärdet 0 (avaktiverad).
tillgång
Inga
Asynkron set-ingång. Anger q[]-utgångarna som alla 1:or, eller till värdet som anges av parametern LPM_AVALUE. Om både aset- och aclr-portarna används och hävdas, åsidosätter värdet på aclr-porten värdet på asset-porten. Om det utelämnas är standardvärdet 0, inaktiverat.
massor
Inga
Asynkron lastingång som asynkront laddar räknaren med värdet på dataingången. När aload-porten används måste data[]-porten vara ansluten. Om det utelämnas är standardvärdet 0, inaktiverat.
sclr
Inga
Synkron raderingsingång som nollställer räknaren på nästa aktiva klockflank. Om både sset- och sclr-portarna används och hävdas, åsidosätter värdet på sclr-porten värdet på sset-porten. Om det utelämnas är standardvärdet 0, inaktiverat.
SSET
Inga
Synkron inställningsingång som ställer in räknaren på nästa aktiva klockflank. Anger värdet för q-utgångarna som alla 1:or, eller till värdet som anges av parametern LPM_SVALUE. Om både sset- och sclr-portarna används och hävdas,
värdet på sclr-porten åsidosätter värdet på sset-porten. Om det utelämnas är standardvärdet 0 (avaktiverad).
last
Inga
Synkron belastningsingång som laddar räknaren med data[] på nästa aktiva klockflank. När belastningsporten används måste data[]-porten vara ansluten. Om det utelämnas är standardvärdet 0 (avaktiverad).
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 9
2. LPM_COUNTER (Räknare) IP-kärna 683490 | 2020.10.05
Tabell 3.
LPM_COUNTER utgångsportar
Portnamn
Nödvändig
Beskrivning
q[]
Inga
Datautmatning från räknaren. Storleken på utgångsporten beror på
LPM_WIDTH parametervärde. Antingen q[] eller åtminstone en av eq[15..0]-portarna
måste anslutas.
ekv[15..0]
Inga
Räknaravkodningsutgång. Porten eq[15..0] är inte tillgänglig i parametereditorn eftersom parametern endast stöder AHDL.
Antingen q[]-porten eller eq[]-porten måste vara ansluten. Upp till c eq-portar kan användas (0 <= c <= 15). Endast de 16 lägsta räknevärdena avkodas. När räknevärdet är c, hävdas eqc-utgången hög (1). Till exempelample, när räkningen är 0, eq0 = 1, när räkningen är 1, eq1 = 1, och när räkningen är 15, eq 15 = 1. Avkodad utdata för räknevärden på 16 eller högre kräver extern avkodning. eq[15..0]-utgångarna är asynkrona med q[]-utgången.
cout
Inga
Utför port av räknarens MSB-bit. Den kan användas för att ansluta till en annan disk för att skapa en större disk.
2.6. parametrar
Följande tabell listar parametrarna för LPM_COUNTER IP-kärnan.
Tabell 4.
LPM_COUNTER parametrar
Parameternamn
Typ
LPM_WIDTH
Heltal
LPM_DIRECTION
Sträng
LPM_MODULUS LPM_AVALUE
Heltal
Heltal/sträng
LPM_SVALUE LPM_HINT
Heltal/sträng
Sträng
LPM_TYPE
Sträng
Obligatoriskt Ja Nej Nej Nej
Nej Nej
Inga
Beskrivning
Anger bredden på data[]- och q[]-portarna, om de används.
Värdena är UPP, NER och ANVÄND. Om parametern LPM_DIRECTION används kan updown-porten inte anslutas. När updown-porten inte är ansluten är LPM_DIRECTION-parameterns standardvärde UPP.
Maximalt antal plus en. Antal unika tillstånd i räknarens cykel. Om belastningsvärdet är större än parametern LPM_MODULUS specificeras inte räknarens beteende.
Konstant värde som laddas när tillgången hävdas hög. Om det angivna värdet är större än eller lika med , är räknarens beteende en odefinierad (X) logisk nivå, där är LPM_MODULUS, om det finns, eller 2 ^ LPM_WIDTH. Intel rekommenderar att du anger detta värde som ett decimaltal för AHDL-designer.
Konstant värde som laddas på den stigande kanten av klockporten när sset-porten hävdas hög. Intel rekommenderar att du anger detta värde som ett decimaltal för AHDL-designer.
När du instansierar ett bibliotek med parameteriserade moduler (LPM) fungerar i en VHDL-design File (.vhd), måste du använda parametern LPM_HINT för att ange en Intel-specifik parameter. Till exempelample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
Standardvärdet är UNUSED.
Identifierar biblioteket av parameteriserade moduler (LPM) entitetsnamn i VHDL-design files.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 10
Skicka feedback
2. LPM_COUNTER (Räknare) IP-kärna 683490 | 2020.10.05
Parameternamn INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Skriv String String
Sträng
Sträng
Krävs Nej Nej
Inga
Inga
Beskrivning
Denna parameter används för modellering och beteendesimuleringsändamål. Denna parameter används för modellering och beteendesimuleringsändamål. Parametereditorn beräknar värdet för denna parameter.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern CARRY_CNT_EN i VHDL-design files. Värdena är SMART, PÅ, AV och ANVÄND. Aktiverar funktionen LPM_COUNTER för att sprida cnt_en-signalen genom bärkedjan. I vissa fall kan parameterinställningen CARRY_CNT_EN ha en liten inverkan på hastigheten, så du kanske vill stänga av den. Standardvärdet är SMART, vilket ger den bästa avvägningen mellan storlek och hastighet.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern LABWIDE_SCLR i VHDL-design files. Värden är PÅ, AV eller ANVÄND. Standardvärdet är PÅ. Låter dig inaktivera användningen av LABwide sclr-funktionen som finns i föråldrade enhetsfamiljer. Om du stänger av det här alternativet ökar chanserna att helt använda de delvis fyllda LAB:erna och kan därför tillåta högre logikdensitet när SCLR inte gäller för ett komplett LAB. Den här parametern är tillgänglig för bakåtkompatibilitet och Intel rekommenderar att du inte använder den här parametern.
Anger användningen av updown-ingångsporten. Om det utelämnas är standardvärdet PORT_CONNECTIVITY. När portvärdet är inställt på PORT_USED, behandlas porten som använd. När portvärdet är satt till PORT_UNUSED, behandlas porten som oanvänd. När portvärdet är inställt på PORT_CONNECTIVITY bestäms portanvändningen genom att kontrollera portanslutningen.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 11
683490 | 2020.10.05 Skicka feedback
3. LPM_DIVIDE (Divider) Intel FPGA IP Core
Figur 2.
LPM_DIVIDE Intel FPGA IP-kärnan implementerar en delare för att dividera ett täljarinmatningsvärde med ett nämnarinmatningsvärde för att producera en kvot och en rest.
Följande bild visar portarna för LPM_DIVIDE IP-kärnan.
LPM_DIVIDE-portar
LPM_DIVIDE
numer[] denom[] klocka
kvot[] kvar[]
clken aclr
inst
3.1. Funktioner
LPM_DIVIDE IP-kärnan erbjuder följande funktioner: · Genererar en delare som delar ett täljarinmatningsvärde med en nämnarinmatning
värde för att producera en kvot och en rest. · Stöder databredd på 1 bitar. · Stöder signerade och osignerade datarepresentationsformat för både täljaren
och nämnarvärden. · Stöder områdes- eller hastighetsoptimering. · Ger en möjlighet att ange en positiv återstodsutgång. · Stöder pipelining konfigurerbar output latens. · Stöder valfria asynkrona klar- och klockaktiverade portar.
3.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_divide (kvot, förbli, numer, denom, klocka, 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. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
parameter lpm_hint = “OANVÄND”; ingångsklocka; ingång clken; ingång aclr; mata in [lpm_widthn-1:0] nummer; input [lpm_widthd-1:0] denom; output [lpm_widthn-1:0] kvot; output [lpm_widthd-1:0] kvar; slutmodul
3.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen 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 : sträng := L_DIVIDE; LPM_HINT : string := “OANVÄND”); port (NUMER: i std_logic_vector(LPM_WIDTHN-1 ner till 0); DENOM: i std_logic_vector(LPM_WIDTHD-1 ner till 0); ACLR: i std_logic:= '0'; KLOCKA: i std_logic:= '0 i'; std_logic: := '1'; QUOTIENT: ut std_logic_vector(LPM_WIDTHN-1 ner till 0); REMAIN: ut std_logic_vector(LPM_WIDTHD-1 ner till 0)); slutkomponent;
3.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
BIBLIOTEK lpm; ANVÄND lpm.lpm_components.all;
3.5. Hamnar
Följande tabeller visar in- och utportarna för LPM_DIVIDE IP-kärnan.
Tabell 5.
LPM_DIVIDE Ingångsportar
Portnamn
Nödvändig
nummer[]
Ja
benämning[]
Ja
Beskrivning
Inmatning av täljardata. Storleken på ingångsporten beror på parametervärdet LPM_WIDTHN.
Inmatning av nämnardata. Storleken på ingångsporten beror på parametervärdet LPM_WIDTHD.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 13
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Port Namn klocka clken
aclr
Krävs Nej Nej
Inga
Beskrivning
Klockingång för pipelined användning. För andra LPM_PIPELINE-värden än 0 (standard) måste klockporten vara aktiverad.
Klocka möjliggör pipelined användning. När clken-porten hävdas hög, äger divisionsoperationen rum. När signalen är låg sker ingen funktion. Om det utelämnas är standardvärdet 1.
Asynkron raderingsport används när som helst för att återställa pipelinen till alla nollor asynkront med klockingången.
Tabell 6.
LPM_DIVIDE utgångsportar
Portnamn
Nödvändig
Beskrivning
kvot[]
Ja
Datautgång. Storleken på utgångsporten beror på LPM_WIDTHN
parametervärde.
förbli[]
Ja
Datautgång. Storleken på utgångsporten beror på LPM_WIDTHD
parametervärde.
3.6. parametrar
Följande tabell listar parametrarna för LPM_DIVIDE Intel FPGA IP-kärna.
Parameternamn
Typ
Nödvändig
Beskrivning
LPM_WIDTHN
Heltal
Ja
Anger bredden på siffran[] och
kvot[] portar. Värdena är 1 till 64.
LPM_WIDTHD
Heltal
Ja
Anger bredden på valören[] och
förbli[] portar. Värdena är 1 till 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
String String
Inga
Teckenrepresentation av täljarinmatningen.
Värden är SIGNERADE och OSIGNERADE. När det här
parametern är inställd på SIGNED, avdelaren
tolkar siffran[] inmatad som tvåtecken
komplement.
Inga
Teckenrepresentation av nämnarinmatningen.
Värden är SIGNERADE och OSIGNERADE. När det här
parametern är inställd på SIGNED, avdelaren
tolkar denom[]-ingången som två-tecken
komplement.
LPM_TYPE
Sträng
Inga
Identifierar biblioteket av parametriserade
modules (LPM) enhetsnamn i VHDL-design
files (.vhd).
LPM_HINT
Sträng
Inga
När du instansierar ett bibliotek av
parameteriserade moduler (LPM) fungerar i en
VHDL design File (.vhd), måste du använda
LPM_HINT-parameter för att specificera en Intel-
specifik parameter. Till exempelample: LPM_HINT
= "CHAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = JA” Den
standardvärdet är UNUSED.
LPM_REMAINDERPOSITIVE
Sträng
Inga
Intel-specifik parameter. Du måste använda
LPM_HINT parameter för att specificera
LPM_REMAINDERPOSITIVE parameter in
VHDL design files. Värden är TRUE eller FALSE.
Om denna parameter är inställd på TRUE, då
värdet på rest[]-porten måste vara större
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 14
Skicka feedback
3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05
Parameternamn
Typ
MAXIMIZE_SPEED
Heltal
LPM_PIPELINE
Heltal
INTENDED_DEVICE_FAMILY SKIP_BITS
Sträng heltal
Obligatoriskt nr
Nej Nej Nej
Beskrivning
än eller lika med noll. Om den här parametern är satt till TRUE är värdet på rest[]-porten antingen noll, eller så är värdet samma tecken, antingen positivt eller negativt, som värdet på sifferporten. För att minska ytan och förbättra hastigheten rekommenderar Intel att denna parameter ställs in på TRUE i operationer där resten måste vara positiv eller där resten är oviktigt.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern MAXIMIZE_SPEED i VHDL-design files. Värdena är [0..9]. Om den används försöker Intel Quartus Prime-programvaran att optimera en specifik instans av LPM_DIVIDE-funktionen för hastighet snarare än routbarhet, och åsidosätter inställningen för logikalternativet Optimeringsteknik. Om MAXIMIZE_SPEED inte används används istället värdet för alternativet Optimeringsteknik. Om värdet på MAXIMIZE_SPEED är 6 eller högre, optimerar kompilatorn LPM_DIVIDE IP-kärnan för högre hastighet genom att använda bärkedjor; om värdet är 5 eller mindre implementerar kompilatorn designen utan bärkedjor.
Anger antalet klockcykler av latens som är associerade med kvoten[] och rest[]-utgångarna. Ett värde på noll (0) indikerar att det inte finns någon latens och att en rent kombinationsfunktion instansieras. Om det utelämnas är standardvärdet 0 (icke-pipelined). Du kan inte ange ett värde för parametern LPM_PIPELINE som är högre än LPM_WIDTHN.
Denna parameter används för modellering och beteendesimuleringsändamål. Parametereditorn beräknar värdet för denna parameter.
Tillåter effektivare bråkbitsdelning för att optimera logiken på de ledande bitarna genom att tillhandahålla antalet ledande GND till LPM_DIVIDE IP-kärnan. Ange antalet inledande GND på kvotutgången till denna parameter.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 15
683490 | 2020.10.05 Skicka feedback
4. LPM_MULT (Multiplier) IP-kärna
Figur 3.
LPM_MULT IP-kärnan implementerar en multiplikator för att multiplicera två indatavärden för att producera en produkt som en utdata.
Följande bild visar portarna för LPM_MULT IP-kärnan.
LPM_Mult Ports
LPM_MULT klockdataa[] resultat[] datab[] aclr/sclr clken
inst
Relaterade informationsfunktioner på sidan 71
4.1. Funktioner
LPM_MULT IP-kärnan erbjuder följande funktioner: · Genererar en multiplikator som multiplicerar två indatavärden · Stöder databredd på 1 bitar · Stöder signerade och osignerade datarepresentationsformat · Stöder områdes- eller hastighetsoptimering · Stöder pipelining med konfigurerbar utdatalatens · Ger en alternativ för implementering i dedikerad digital signalbehandling (DSP)
blockkretsar eller logiska element (LE) Obs: När man bygger multiplikatorer som är större än den inbyggda stödda storleken kan/
kommer att vara en prestandapåverkan till följd av kaskadbildningen av DSP-blocken. · Stöder valfria asynkrona clear och klockaktiverade ingångsportar · Stöder valfri synchronous clear för Intel Stratix 10, Intel Arria 10 och Intel Cyclone 10 GX-enheter
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
4.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
module lpm_mult (resultat, dataa, datab, summa, klocka, 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 = “OANVÄND”; ingångsklocka; ingång clken; ingång aclr; input [lpm_widtha-1:0] dataa; indata [lpm_widthb-1:0]; in [lpm_widths-1:0] summa; output [lpm_widthp-1:0] resultat; slutmodul
4.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen 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: sträng := L_MULT; LPM_HINT : string := “OANVÄND”); port ( DATAA: i std_logic_vector(LPM_WIDTHA-1 ner till 0); DATAB: i std_logic_vector(LPM_WIDTHB-1 ner till 0); ACLR: i std_logic:= '0'; KLOCKA: i std_logic:= '0 i'; std_logic: i std_logic := '1'; SUMMA: in std_logic_vector(LPM_WIDTHS-1 ner till 0) := (ANDRA => '0'); RESULTAT: ut std_logic_vector(LPM_WIDTHP-1 ner till 0)); slutkomponent;
4.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
BIBLIOTEK lpm; ANVÄND lpm.lpm_components.all;
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 17
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
4.5. Signaler
Tabell 7.
LPM_MULT Ingångssignaler
Signalnamn
Nödvändig
Beskrivning
dataa[]
Ja
Dataingång.
För Intel Stratix 10-, Intel Arria 10- och Intel Cyclone 10 GX-enheter beror storleken på insignalen på Dataa width-parametervärdet.
För äldre enheter och Intel Cyclone 10 LP-enheter beror storleken på insignalen på parametervärdet LPM_WIDTHA.
datab[]
Ja
Dataingång.
För Intel Stratix 10-, Intel Arria 10- och Intel Cyclone 10 GX-enheter beror storleken på insignalen på parametervärdet för Datab width.
För äldre enheter och Intel Cyclone 10 LP-enheter beror storleken på insignalen
på parametervärdet LPM_WIDTHB.
klocka
Inga
Klockingång för pipelined användning.
För äldre enheter och Intel Cyclone 10 LP-enheter måste klocksignalen vara aktiverad för andra LPM_PIPELINE-värden än 0 (standard).
För Intel Stratix 10-, Intel Arria 10- och Intel Cyclone 10 GX-enheter måste klocksignalen vara aktiverad om Latency-värdet är annat än 1 (standard).
clken
Inga
Klockaktivering för användning i pipeline. När clken-signalen hävdas hög,
adderings-/subtraktionsdrift sker. När signalen är låg, ingen funktion
inträffar. Om det utelämnas är standardvärdet 1.
aclr sclr
Inga
Asynkron raderingssignal används när som helst för att återställa pipelinen till alla nollor,
asynkront med klocksignalen. Pipelinen initieras till ett odefinierat (X)
logisk nivå. Utgångarna är ett konsekvent, men icke-noll värde.
Inga
Synkron klarsignal används när som helst för att återställa pipelinen till alla nollor,
synkront med klocksignalen. Pipelinen initieras till ett odefinierat (X)
logisk nivå. Utgångarna är ett konsekvent, men icke-noll värde.
Tabell 8.
LPM_MULT Utsignaler
signal Namn
Nödvändig
Beskrivning
resultat[]
Ja
Datautgång.
För äldre enheter och Intel Cyclone 10 LP-enheter beror storleken på utsignalen på parametervärdet LPM_WIDTHP. Om LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) eller (LPM_WIDTHA + LPM_WIDTHS), är endast LPM_WIDTHP MSB närvarande.
För Intel Stratix 10, Intel Arria 10 och Intel Cyclone 10 GX beror storleken på utsignalerna på parametern Resultatbredd.
4.6. Parametrar för Stratix V-, Arria V-, Cyclone V- och Intel Cyclone 10 LP-enheter
4.6.1. Fliken Allmänt
Tabell 9.
Fliken Allmänt
Parameter
Värde
Multiplikatorkonfiguration
Multiplicera 'dataa'-inmatning med 'datab'-ingång
Standardvärde
Beskrivning
Multiplicera 'dataa'-inmatning med 'datab'-ingång
Välj önskad konfiguration för multiplikatorn.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 18
Skicka feedback
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Hur bred ska "dataa"-inmatningen vara? Hur bred ska "datab"-ingången vara? Hur ska bredden på "resultat"-utgången bestämmas? Begränsa bredden
Värde
Multiplicera "dataa"-inmatning av sig själv (kvadreringsoperation)
1 – 256 bitar
Standardvärde
Beskrivning
8 bitar
Ange bredden på dataa[]-porten.
1 – 256 bitar
8 bitar
Ange bredden på datab[]-porten.
Beräkna bredden automatiskt Begränsa bredden
1 – 512 bitar
Beräkna bredden automatiskt
Välj önskad metod för att bestämma bredden på resultat[]-porten.
16 bitar
Ange bredden på resultat[]-porten.
Detta värde kommer endast att vara effektivt om du väljer Begränsa bredden i parametern Typ.
4.6.2. Allmänt 2 Tab
Tabell 10. Allmänt 2 Tab
Parameter
Värde
Datainmatning
Har 'datab' ingångsbussen ett konstant värde?
Nej Ja
Multiplikationstyp
Vilken typ av
Osignerad
multiplikation vill du ha? Signerad
Genomförande
Vilken multiplikatorimplementering ska användas?
Använd standardimplementeringen
Använd den dedikerade multiplikatorkretsen (ej tillgängligt för alla familjer)
Använd logiska element
Standardvärde
Beskrivning
Inga
Välj Ja för att ange det konstanta värdet för
'datab' ingångsbuss, om någon.
Osignerad
Ange representationsformatet för både dataa[] och datab[]-ingångar.
Använd standardimplementationen
Välj önskad metod för att bestämma bredden på resultat[]-porten.
4.6.3. Rörledningsflik
Tabell 11. Rörledning Tab
Parameter
Vill du pipeline nr
fungera?
Ja
Värde
Skapa en "aclr"
—
asynkron klar port
Standardvärde
Beskrivning
Inga
Välj Ja för att aktivera pipelineregistret till
multiplikatorns utdata och ange önskad
utgångslatens i klockcykeln. Aktivera
pipeline-registret lägger till extra latens till
produktion.
Okontrollerad
Välj det här alternativet för att aktivera aclr-porten att använda asynkron radering för pipelineregistret.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 19
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Skapa en "clken" klocka aktiverad klocka
Optimering
Vilken typ av optimering vill du ha?
Värde -
Standardhastighetsområde
Standardvärde
Beskrivning
Okontrollerad
Anger aktiv hög klockaktivering för klockporten i pipelineregistret
Standard
Ange önskad optimering för IP-kärnan.
Välj Standard för att låta Intel Quartus Prime-programvara bestämma den bästa optimeringen för IP-kärnan.
4.7. Parametrar för Intel Stratix 10, Intel Arria 10 och Intel Cyclone 10 GX-enheter
4.7.1. Fliken Allmänt
Tabell 12. Allmänt Tab
Parameter
Värde
Standardvärde
Beskrivning
Multiplikatorkonfigurationstyp
Dataportbredder
Multiplicera 'dataa'-inmatning med 'datab'-ingång
Multiplicera "dataa"-inmatning av sig själv (kvadreringsoperation)
Multiplicera 'dataa'-inmatning med 'datab'-ingång
Välj önskad konfiguration för multiplikatorn.
Data en bredd
1 – 256 bitar
8 bitar
Ange bredden på dataa[]-porten.
Datab bredd
1 – 256 bitar
8 bitar
Ange bredden på datab[]-porten.
Hur ska bredden på "resultat"-utgången bestämmas?
Typ
Beräkna bredden automatiskt
Begränsa bredden
Beräkna bredden automatiskt
Välj önskad metod för att bestämma bredden på resultat[]-porten.
Värde
1 – 512 bitar
16 bitar
Ange bredden på resultat[]-porten.
Detta värde kommer endast att vara effektivt om du väljer Begränsa bredden i parametern Typ.
Resultatets bredd
1 – 512 bitar
—
Visar den effektiva bredden på resultat[]-porten.
4.7.2. Allmänt 2 Tab
Tabell 13. Allmänt 2 Tab
Parameter
Datainmatning
Har 'datab' ingångsbussen ett konstant värde?
Nej Ja
Värde
Standardvärde
Beskrivning
Inga
Välj Ja för att ange det konstanta värdet för
'datab' ingångsbuss, om någon.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 20
Skicka feedback
4. LPM_MULT (Multiplier) IP Core 683490 | 2020.10.05
Parameter
Värde
Värde
Alla värden som är större än 0
Multiplikationstyp
Vilken typ av
Osignerad
multiplikation vill du ha? Signerad
Implementeringsstil
Vilken multiplikatorimplementering ska användas?
Använd standardimplementeringen
Använd den dedikerade multiplikatorkretsen
Använd logiska element
Standardvärde
Beskrivning
0
Ange det konstanta värdet för datab[]-porten.
Osignerad
Ange representationsformatet för både dataa[] och datab[]-ingångar.
Använd standardimplementationen
Välj önskad metod för att bestämma bredden på resultat[]-porten.
4.7.3. Rörledning
Tabell 14. Rörledning Tab
Parameter
Värde
Vill du pipeline funktionen?
Rörledning
Nej Ja
Rensa signaltyp för latens
Alla värden som är större än 0.
INGEN ACLR SCLR
Skapa en "clken"-klocka
—
aktivera klockan
Vilken typ av optimering vill du ha?
Typ
Standardhastighetsområde
Standardvärde
Beskrivning
Nr 1 INGEN
—
Välj Ja för att aktivera pipelineregister till multiplikatorns utgång. Aktivering av pipelineregistret lägger till extra latens till utgången.
Ange önskad utmatningslatens i klockcykeln.
Ange typ av återställning för pipelineregistret. Välj INGEN om du inte använder något pipelineregister. Välj ACLR för att använda asynkron radering för pipelineregistret. Detta kommer att generera ACLR-port. Välj SCLR för att använda synkron rensning för pipelineregistret. Detta kommer att generera SCLR-port.
Anger aktiv hög klockaktivering för klockporten i pipelineregistret
Standard
Ange önskad optimering för IP-kärnan.
Välj Standard för att låta Intel Quartus Prime-programvara bestämma den bästa optimeringen för IP-kärnan.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 21
683490 | 2020.10.05 Skicka feedback
5. LPM_ADD_SUB (adderare/subtraherare)
Figur 4.
LPM_ADD_SUB IP-kärnan låter dig implementera en adderare eller en subtraherare för att addera eller subtrahera uppsättningar data för att producera en utdata som innehåller summan eller skillnaden av ingångsvärdena.
Följande bild visar portarna för LPM_ADD_SUB IP-kärnan.
LPM_ADD_SUB-portar
LPM_ADD_SUB add_sub cin
dataa[]
klocka clken datab[] aclr
result[] overflow cout
inst
5.1. Funktioner
LPM_ADD_SUB IP-kärnan erbjuder följande funktioner: · Genererar adderare, subtraherare och dynamiskt konfigurerbar adderare/subtraktor
funktioner. · Stöder databredd på 1 bitar. · Stöder datarepresentation format som signerade och osignerade. · Stöder valfri inlämning (utlåning), asynkron clearing och klockaktivering
ingångsportar. · Stöder valfria utmatningsportar (inlåning) och överloppsutgångar. · Tilldelar endera av indatabussarna till en konstant. · Stöder pipelining med konfigurerbar utgångsfördröjning.
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
5.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_add_sub (resultat, cout, overflow, add_sub, cin, dataa, datab, klocka, clken, aclr ); parameter lpm_type = "lpm_add_sub"; parameter lpm_width = 1; parameter lpm_direction = “OANVÄND”; parameter lpm_representation = "SIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = “OANVÄND”; input [lpm_width-1:0] dataa, datab; input add_sub, cin; ingångsklocka; ingång clken; ingång aclr; output [lpm_width-1:0] resultat; utgång cout, bräddavlopp; slutmodul
5.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen File (.vhd) LPM_PACK.vhd i biblioteksvhdllpm-katalogen.
komponent LPM_ADD_SUB generisk (LPM_WIDTH: naturlig;
LPM_DIRECTION : string := “OANVÄND”; LPM_REPRESENTATION: string := “SIGNED”; LPM_PIPELINE : naturlig := 0; LPM_TYPE : sträng := L_ADD_SUB; LPM_HINT : string := “OANVÄND”); port (DATAA: i std_logic_vector(LPM_WIDTH-1 ner till 0); DATAB: i std_logic_vector(LPM_WIDTH-1 ner till 0); ACLR: i std_logic:= '0'; KLOCKA: 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 ner till 0); COUT: ut std_logic; OVERFLOW: ut std_logic); slutkomponent;
5.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
BIBLIOTEK lpm; ANVÄND lpm.lpm_components.all;
5.5. Hamnar
Följande tabeller visar in- och utportarna för LPM_ADD_SUB IP-kärnan.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 23
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
Tabell 15. LPM_ADD_SUB IP Core-ingångsportar
Portnamn
Nödvändig
Beskrivning
cin
Inga
Bär in till den låga biten. För additionsoperationer är standardvärdet 0. För
subtraktionsoperationer är standardvärdet 1.
dataa[]
Ja
Dataingång. Storleken på ingångsporten beror på parametervärdet LPM_WIDTH.
datab[]
Ja
Dataingång. Storleken på ingångsporten beror på parametervärdet LPM_WIDTH.
add_sub
Inga
Valfri ingångsport för att möjliggöra dynamisk växling mellan adderare och subtraherare
funktioner. Om parametern LPM_DIRECTION används kan add_sub inte användas. Om
utelämnat, är standardvärdet ADD. Intel rekommenderar att du använder
LPM_DIRECTION-parameter för att specificera funktionen för LPM_ADD_SUB-funktionen,
istället för att tilldela en konstant till add_sub-porten.
klocka
Inga
Indata för användning i pipeline. Klockporten tillhandahåller klockingången för en pipeline
drift. För andra LPM_PIPELINE-värden än 0 (standard) måste klockporten vara
aktiverat.
clken
Inga
Klockaktivering för användning i pipeline. När clken-porten hävdas hög, adderar/
subtraktionsdrift äger rum. När signalen är låg sker ingen funktion. Om
utelämnat är standardvärdet 1.
aclr
Inga
Asynkron klar för användning i pipeline. Pipelinen initieras till ett odefinierat (X)
logisk nivå. aclr-porten kan användas när som helst för att återställa pipelinen till alla nollor,
asynkront med klocksignalen.
Tabell 16. LPM_ADD_SUB IP-kärnutgångsportar
Portnamn
Nödvändig
Beskrivning
resultat[]
Ja
Datautgång. Storleken på utgångsporten beror på parametern LPM_WIDTH
värde.
cout
Inga
Utförande (inlåning) av den mest signifikanta biten (MSB). Cout-porten har en fysisk
tolkning som utförande (inlåning) av MSB. Cout-porten detekterar
spill i OSIGNERADE operationer. Cout-porten fungerar på samma sätt för
SIGNERADE och OSIGNERADE operationer.
svämma över
Inga
Valfri bräddavvikelseutgång. Spillporten har en fysisk tolkning som
XOR för inlämningen till MSB med utförandet av MSB. Överloppsporten
hävdar när resultaten överstiger den tillgängliga precisionen och används endast när
LPM_REPRESENTATION-parametervärdet är SIGNAT.
5.6. parametrar
Följande tabell listar LPM_ADD_SUB IP-kärnparametrarna.
Tabell 17. LPM_ADD_SUB IP-kärnparametrar
Parameternamn LPM_WIDTH
Skriv heltal
Obligatoriskt Ja
Beskrivning
Anger bredden på portarna dataa[], datab[] och resultat[].
LPM_DIRECTION
Sträng
Inga
Värden är ADD, SUB och UNUSED. Om det utelämnas är standardvärdet DEFAULT, vilket styr parametern att ta sitt värde från add_sub-porten. Add_sub-porten kan inte användas om LPM_DIRECTION används. Intel rekommenderar att du använder parametern LPM_DIRECTION för att specificera funktionen för LPM_ADD_SUB-funktionen, istället för att tilldela en konstant till add_sub-porten.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 24
Skicka feedback
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
Parameternamn LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Typ String Integer String String String Integer
Sträng
Obligatoriskt Nej Nej Nej Nej Nej Nej
Inga
Beskrivning
Anger vilken typ av tillägg som utförs. Värden är SIGNERADE och OSIGNERADE. Om det utelämnas är standardvärdet SIGNED. När denna parameter är inställd på SIGNED tolkar adderaren/subtraheraren datainmatningen som komplement med tecken två.
Anger antalet latens-klockcykler som är associerade med resultatet[]-utgången. Ett värde på noll (0) indikerar att det inte finns någon latens och att en rent kombinationsfunktion kommer att instansieras. Om det utelämnas är standardvärdet 0 (icke-pipelined).
Låter dig ange Intel-specifika parametrar i VHDL-design files (.vhd). Standardvärdet är UNUSED.
Identifierar biblioteket av parameteriserade moduler (LPM) entitetsnamn i VHDL-design files.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern ONE_INPUT_IS_CONSTANT i VHDL-design files. Värdena är JA, NEJ och ANVÄND. Ger större optimering om en ingång är konstant. Om det utelämnas är standardvärdet NEJ.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern MAXIMIZE_SPEED i VHDL-design files. Du kan ange ett värde mellan 0 och 10. Om den används försöker Intel Quartus Prime-programvaran att optimera en specifik instans av funktionen LPM_ADD_SUB för hastighet snarare än routbarhet, och åsidosätter inställningen för logikalternativet Optimeringsteknik. Om MAXIMIZE_SPEED inte används används istället värdet för alternativet Optimeringsteknik. Om inställningen för MAXIMIZE_SPEED är 6 eller högre, optimerar kompilatorn LPM_ADD_SUB IP-kärnan för högre hastighet med hjälp av bärkedjor; om inställningen är 5 eller lägre implementerar kompilatorn designen utan bärkedjor. Denna parameter måste endast anges för Cyclone-, Stratix- och Stratix GX-enheter när add_sub-porten inte används.
Denna parameter används för modellering och beteendesimuleringsändamål. Parametereditorn beräknar värdet för denna parameter.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 25
683490 | 2020.10.05 Skicka feedback
6. LPM_COMPARE (jämförare)
Figur 5.
LPM_COMPARE IP-kärnan jämför värdet av två uppsättningar data för att bestämma förhållandet mellan dem. I sin enklaste form kan du använda en exklusiv-ELLER-grind för att avgöra om två databitar är lika.
Följande bild visar portarna för LPM_COMPARE IP-kärnan.
LPM_COMPARE-portar
LPM_COMPARE
clken
alba
aeb
dataa[]
agb
datab[]
ageb
klocka
eller
aclr
aleb
inst
6.1. Funktioner
LPM_COMPARE IP-kärnan erbjuder följande funktioner: · Genererar en komparatorfunktion för att jämföra två uppsättningar data · Stöder databredd på 1 bitar · Stöder datarepresentationsformat såsom signerat och osignerat · Producerar följande utdatatyper:
— alb (ingång A är mindre än ingång B) — aeb (ingång A är lika med ingång B) — agb (ingång A är större än ingång B) — ageb (ingång A är större än eller lika med ingång B) — aneb ( ingång A är inte lika med ingång B) — aleb (ingång A är mindre än eller lika med ingång B) · Stöder valfria asynkrona ingångsportar för radering och klockaktivering · Tilldelar datab[]-ingången till en konstant · Stöder pipelining med konfigurerbar utgångslatens
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
6. LPM_COMPARE (jämförare) 683490 | 2020.10.05
6.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
modul lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, klocka, clken, aclr); parameter lpm_type = "lpm_compare"; parameter lpm_width = 1; parameter lpm_representation = “UNSIGNED”; parameter lpm_pipeline = 0; parameter lpm_hint = “OANVÄND”; input [lpm_width-1:0] dataa, datab; ingångsklocka; ingång clken; ingång aclr; utgång alb, aeb, agb, aleb, aneb, ageb; slutmodul
6.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen 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: sträng := L_COMPARE; LPM_HINT : string := “OANVÄND”); port (DATAA: i std_logic_vector(LPM_WIDTH-1 ner till 0); DATAB: i std_logic_vector(LPM_WIDTH-1 ner till 0); ACLR: i std_logic:= '0'; KLOCKA: 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); slutkomponent;
6.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
BIBLIOTEK lpm; ANVÄND lpm.lpm_components.all;
6.5. Hamnar
Följande tabeller visar in- och utportarna för LMP_COMPARE IP-kärnan.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 27
6. LPM_COMPARE (jämförare) 683490 | 2020.10.05
Tabell 18. LPM_COMPARE IP-kärningsportar
Portnamn
Nödvändig
Beskrivning
dataa[]
Ja
Dataingång. Storleken på ingångsporten beror på parametervärdet LPM_WIDTH.
datab[]
Ja
Dataingång. Storleken på ingångsporten beror på parametervärdet LPM_WIDTH.
klocka
Inga
Klockingång för pipelined användning. Klockporten tillhandahåller klockingången för en pipeline
drift. För andra LPM_PIPELINE-värden än 0 (standard) måste klockporten vara
aktiverat.
clken
Inga
Klockaktivering för användning i pipeline. När clken-porten hävdas hög,
jämförelseoperation äger rum. När signalen är låg sker ingen funktion. Om
utelämnat är standardvärdet 1.
aclr
Inga
Asynkron klar för användning i pipeline. Pipelinen initieras till en odefinierad (X) logik
nivå. aclr-porten kan användas när som helst för att återställa pipelinen till alla nollor,
asynkront med klocksignalen.
Tabell 19. LPM_COMPARE IP-kärnutgångsportar
Portnamn
Nödvändig
Beskrivning
alba
Inga
Utgångsport för komparatorn. Påstås om ingång A är mindre än ingång B.
aeb
Inga
Utgångsport för komparatorn. Påstås om ingång A är lika med ingång B.
agb
Inga
Utgångsport för komparatorn. Påstås om ingång A är större än ingång B.
ageb
Inga
Utgångsport för komparatorn. Säkerställs om ingång A är större än eller lika med ingång
B.
eller
Inga
Utgångsport för komparatorn. Påstås om ingång A inte är lika med ingång B.
aleb
Inga
Utgångsport för komparatorn. Påstås om ingång A är mindre än eller lika med ingång B.
6.6. parametrar
Följande tabell listar parametrarna för LPM_COMPARE IP-kärnan.
Tabell 20. LPM_COMPARE IP-kärnparametrar
Parameternamn
Typ
Nödvändig
LPM_WIDTH
Heltal Ja
LPM_REPRESENTATION
Sträng
Inga
LPM_PIPELINE
Heltal nr
LPM_HINT
Sträng
Inga
Beskrivning
Anger bredden på dataa[]- och datab[]-portarna.
Anger vilken typ av jämförelse som utförs. Värden är SIGNERADE och OSIGNERADE. Om det utelämnas är standardvärdet UNSIGNED. När detta parametervärde är satt till SIGNED tolkar komparatorn datainmatningen som komplement med tecken två.
Anger antalet klockcykler av latens som är associerade med alb-, aeb-, agb-, ageb-, aleb- eller aneb-utgången. Ett värde på noll (0) indikerar att det inte finns någon latens och att en rent kombinationsfunktion kommer att instansieras. Om det utelämnas är standardvärdet 0 (icke-pipelined).
Låter dig ange Intel-specifika parametrar i VHDL-design files (.vhd). Standardvärdet är UNUSED.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 28
Skicka feedback
6. LPM_COMPARE (jämförare) 683490 | 2020.10.05
Parameternamn LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Skriv String String
Sträng
Krävs Nej Nej
Inga
Beskrivning
Identifierar biblioteket av parameteriserade moduler (LPM) entitetsnamn i VHDL-design files.
Denna parameter används för modellering och beteendesimuleringsändamål. Parametereditorn beräknar värdet för denna parameter.
Intel-specifik parameter. Du måste använda parametern LPM_HINT för att ange parametern ONE_INPUT_IS_CONSTANT i VHDL-design files. Värdena är JA, NEJ eller ANVÄND. Ger större optimering om en ingång är konstant. Om det utelämnas är standardvärdet NEJ.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 29
683490 | 2020.10.05 Skicka feedback
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core
Figur 6.
Intel tillhandahåller ALTECC IP-kärnan för att implementera ECC-funktionaliteten. ECC upptäcker korrupta data som uppstår på mottagarsidan under dataöverföring. Denna felkorrigeringsmetod är bäst lämpad för situationer där fel uppstår slumpmässigt snarare än i skurar.
ECC upptäcker fel genom processen för datakodning och avkodning. Till exempelample, när ECC appliceras i en överföringstillämpning, kodas data som läses från källan innan de skickas till mottagaren. Utdata (kodord) från kodaren består av rådata som läggs till antalet paritetsbitar. Det exakta antalet paritetsbitar som läggs till beror på antalet bitar i indata. Det genererade kodordet sänds sedan till destinationen.
Mottagaren tar emot kodordet och avkodar det. Information som erhålls av avkodaren bestämmer om ett fel detekteras. Avkodaren upptäcker enkelbits- och dubbelbitsfel, men kan bara åtgärda enkelbitsfel i den korrupta datan. Denna typ av ECC är enkelfelskorrigering dubbelfelsdetektering (SECDED).
Du kan konfigurera kodnings- och avkodarfunktioner för ALTECC IP-kärnan. Datainmatningen till kodaren kodas för att generera ett kodord som är en kombination av datainmatningen och de genererade paritetsbitarna. Det genererade kodordet sänds till avkodarmodulen för avkodning precis innan det når dess destinationsblock. Avkodaren genererar en syndromvektor för att bestämma om det finns något fel i det mottagna kodordet. Avkodaren korrigerar data endast om enbitsfelet kommer från databitarna. Ingen signal flaggas om enkelbitsfelet kommer från paritetsbitarna. Avkodaren har också flaggsignaler för att visa statusen för mottagen data och den åtgärd som vidtas av avkodaren, om någon.
Följande bilder visar portarna för ALTECC IP-kärnan.
ALTECC kodarportar
ALTECC_ENCODER
data[]
q[]
klocka
clocken
aclr
inst
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 7. ALTECC-avkodarportar
ALTECC_DEKODER
data[] klocka clocken
q[] err_detected err_corrected
err_fatal
aclr
inst
7.1. ALTECC kodarfunktioner
ALTECC-kodarens IP-kärna erbjuder följande funktioner: · Utför datakodning med Hamming-kodningsschemat · Stöder databredd på 2 bitar · Stöder signerade och osignerade datarepresentationsformat · Stödjer pipelining med utgångslatens på antingen en eller två klockcykler · Stöder valfritt asynkrona klara och klockaktiverade portar
ALTECC-kodarens IP-kärna tar in och kodar data med Hamming-kodningsschemat. Hamming-kodningsschemat härleder paritetsbitarna och lägger till dem till originaldata för att producera det utgående kodordet. Antalet paritetsbitar som läggs till beror på databredden.
Följande tabell listar antalet paritetsbitar som lagts till för olika databreddsintervall. Kolumnen Totala bitar representerar det totala antalet indatabitar och bifogade paritetsbitar.
Tabell 21.
Antal paritetsbitar och kodord enligt databredd
Databredd
Antal paritetsbitar
Totalt antal bitar (kodord)
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
Paritetsbithärledningen använder en jämn paritetskontroll. Den ytterligare 1 biten (visad i tabellen som +1) läggs till paritetsbitarna som MSB för kodordet. Detta säkerställer att kodordet har ett jämnt antal 1:or. Till exempelample, om databredden är 4 bitar, läggs 4 paritetsbitar till data för att bli ett kodord med totalt 8 bitar. Om 7 bitar från LSB för 8-bitars kodord har ett udda antal 1:or, är den 8:e biten (MSB) i kodordet 1 vilket gör det totala antalet 1:or i kodordet jämna.
Följande figur visar det genererade kodordet och arrangemanget av paritetsbitarna och databitarna i en 8-bitars dataingång.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 31
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figur 8.
Paritetsbitar och databitarrangemang i ett 8-bitars genererat kodord
MSB
LSB
4 paritetsbitar
4 databitar
8
1
ALTECC-kodarens IP-kärna accepterar endast ingångsbredder på 2 till 64 bitar på en gång. Ingångsbredder på 12 bitar, 29 bitar och 64 bitar, som är idealiska för Intel-enheter, genererar utdata på 18 bitar, 36 bitar respektive 72 bitar. Du kan styra bitvalsbegränsningen i parametereditorn.
7.2. Verilog HDL-prototyp (ALTECC_ENCODER)
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) lpm.v i edasynthesis katalog.
module 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”) (ingångslednings-klocka, ingångskabel, ingångskabel wire clocken, input wire [width_dataword-1:0] data, output wire [width_codeword-1:0] q); slutmodul
7.3. Verilog HDL-prototyp (ALTECC_DECODER)
Följande Verilog HDL-prototyp finns 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”) (ingångstrådsklocka, ingångskabel, ingångskabel wire clocken, input wire [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, outout wire err_fatal, output wire [width_dataword-1:0] q); slutmodul
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 32
Skicka feedback
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. VHDL-komponentdeklaration (ALTECC_ENCODER)
VHDL-komponentdeklarationen finns i VHDL-designen File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_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: _pm_coder ”); port(aclr:in std_logic:= '0'; klocka:in std_logic:= '0'; clocken:in std_logic:= '1'; data:in std_logic_vector(width_dataword-1 ner till 0); q:out std_logic_vector(width_codeword -1 ner till 0)); slutkomponent;
7.5. VHDL-komponentdeklaration (ALTECC_DECODER)
VHDL-komponentdeklarationen finns i VHDL-designen File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_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: _cc:dercoder ”); port(aclr:in std_logic:= '0'; klocka:in std_logic:= '0'; clocken:in std_logic:= '1'; data:in std_logic_vector(width_codeword-1 ner till 0); err_corrected: out std_logic; err_detected : out std_logic; q:out std_logic_vector(width_dataword-1 ner till 0); syn_e: out std_logic); slutkomponent;
7.6. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
LIBRARY altera_mf; ANVÄND altera_mf.altera_mf_components.all;
7.7. Kodarportar
Följande tabeller visar in- och utportarna för ALTECC-kodarens IP-kärna.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 33
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabell 22. ALTECC Encoder Input Ports
Portnamn
Nödvändig
Beskrivning
data[]
Ja
Dataingångsport. Storleken på ingångsporten beror på WIDTH_DATAWORD
parametervärde. Data[]-porten innehåller rådata som ska kodas.
klocka
Ja
Klockingångsport som tillhandahåller klocksignalen för att synkronisera kodningsoperationen.
Klockporten krävs när LPM_PIPELINE-värdet är större än 0.
clocken
Inga
Klockaktivering. Om det utelämnas är standardvärdet 1.
aclr
Inga
Asynkron klar ingång. Den aktiva höga aclr-signalen kan användas när som helst för att
rensa registren asynkront.
Tabell 23. ALTECC Encoder Output Ports
Portnamn q[]
Obligatoriskt Ja
Beskrivning
Utgångsport för kodad data. Storleken på utporten beror på parametervärdet WIDTH_CODEWORD.
7.8. Avkodarportar
Följande tabeller listar in- och utportarna för ALTECC-avkodarens IP-kärna.
Tabell 24. ALTECC-dekoderingångsportar
Portnamn
Nödvändig
Beskrivning
data[]
Ja
Dataingångsport. Storleken på ingångsporten beror på parametervärdet WIDTH_CODEWORD.
klocka
Ja
Klockingångsport som tillhandahåller klocksignalen för att synkronisera kodningsoperationen. Klockporten krävs när LPM_PIPELINE-värdet är större än 0.
clocken
Inga
Klockaktivering. Om det utelämnas är standardvärdet 1.
aclr
Inga
Asynkron klar ingång. Den aktiva höga aclr-signalen kan användas när som helst för att asynkront rensa registren.
Tabell 25. ALTECC-avkodarutgångar
Portnamn q[]
Obligatoriskt Ja
Beskrivning
Avkodad datautgångsport. Storleken på utporten beror på parametervärdet WIDTH_DATAWORD.
err_detected Ja
Flaggasignal för att återspegla statusen för mottagna data och specificera eventuella fel som hittats.
err_correcte Ja d
Flaggasignal för att återspegla status för mottagna data. Betecknar enbitsfel hittat och korrigerat. Du kan använda uppgifterna eftersom de redan har korrigerats.
err_fatal
Ja
Flaggasignal för att återspegla status för mottagna data. Anger ett dubbelbitsfel hittat men inte korrigerat. Du får inte använda data om denna signal hävdas.
syn_e
Inga
En utsignal som kommer att bli hög närhelst ett enbitsfel detekteras på pariteten
bitar.
7.9. Kodarparametrar
Följande tabell listar parametrarna för ALTECC-kodarens IP-kärna.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 34
Skicka feedback
7. ALTECC (Error Correction Code: Encoder/Decoder) IP Core 683490 | 2020.10.05
Tabell 26. ALTECC-kodarparametrar
Parameternamn
Typ
Nödvändig
Beskrivning
WIDTH_DATAWORD
Heltal Ja
Anger bredden på rådata. Värdena är från 2 till 64. Om det utelämnas är standardvärdet 8.
WIDTH_CODEWORD
Heltal Ja
Anger bredden på motsvarande kodord. Giltiga värden är från 6 till 72, exklusive 9, 17, 33 och 65. Om de utelämnas är standardvärdet 13.
LPM_PIPELINE
Heltal nr
Anger rörledningen för kretsen. Värdena är från 0 till 2. Om värdet är 0 registreras inte portarna. Om värdet är 1, registreras utgångsportarna. Om värdet är 2, registreras ingångs- och utgångsportarna. Om det utelämnas är standardvärdet 0.
7.10. Avkodarparametrar
Följande tabell listar ALTECC-avkodarens IP-kärnparametrar.
Tabell 27. ALTECC-avkodarparametrar
Parameternamn WIDTH_DATAWORD
Skriv heltal
Nödvändig
Beskrivning
Ja
Anger bredden på rådata. Värdena är 2 till 64. Den
standardvärdet är 8.
WIDTH_CODEWORD
Heltal
Ja
Anger bredden på motsvarande kodord. Värdena är 6
till 72, exklusive 9, 17, 33 och 65. Om det utelämnas, är standardvärdet
är 13.
LPM_PIPELINE
Heltal
Inga
Specificerar kretsens register. Värden är från 0 till 2. Om
värdet är 0, inget register är implementerat. Om värdet är 1, är
utgång registreras. Om värdet är 2, både ingången och
utgång registreras. Om värdet är större än 2, ytterligare
register implementeras vid utgången för den extra
latenser. Om det utelämnas är standardvärdet 0.
Skapa en "syn_e"-port
Heltal
Inga
Aktivera denna parameter för att skapa en syn_e-port.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 35
683490 | 2020.10.05 Skicka feedback
8. Intel FPGA Multiply Adder IP Core
Figur 9.
Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10 och Intel Cyclone 10 GX-enheter) eller ALTERA_MULT_ADD (Arria V-, Stratix V- och Cyclone V-enheter) IP-kärna låter dig implementera en multiplikator-adderare.
Följande bild visar portarna för Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kärna.
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD-portar
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD
dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] klocka0 klocka1 klocka2 ena0 ena1 ena2 sload_accum
accum_sload chainin[]
scanouta[] resultat[]
aclr0 aclr1
inst
En multiplikator-adderare accepterar par av indata, multiplicerar värdena tillsammans och adderar sedan till eller subtraherar från produkterna från alla andra par.
Om alla indatabredder är 9-bitars breda eller mindre, använder funktionen 9 x 9-bitars multiplikatorkonfigurationen i DSP-blocket för enheter som stöder 9 x 9-konfiguration. Om inte, använder DSP-blocket 18 × 18-bitars ingångsmultiplikatorer för att bearbeta data med bredder mellan 10 bitar och 18 bitar. Om flera Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kärnor förekommer i en design, distribueras funktionerna till som
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
många olika DSP-block som möjligt så att routing till dessa block är mer flexibel. Färre multiplikatorer per DSP-block tillåter fler routingval in i blocket genom att minimera vägarna till resten av enheten.
Registren och extra pipelineregister för följande signaler placeras också inuti DSP-blocket: · Datainmatning · Signerad eller osignerad välj · Addera eller subtrahera välj · Produkter av multiplikatorer
I fallet med utgångsresultatet placeras det första registret i DSP-blocket. De extra latensregistren placeras emellertid i logiska element utanför blocket. Perifer till DSP-blocket, inklusive dataingångar till multiplikatorn, styrsignalingångar och adderarens utgångar, använder vanlig routing för att kommunicera med resten av enheten. Alla anslutningar i funktionen använder dedikerad routing inuti DSP-blocket. Denna dedikerade routing inkluderar skiftregisterkedjorna när du väljer alternativet att flytta en multiplikators registrerade indata från en multiplikator till en intilliggande multiplikator.
För mer information om DSP-block i någon av Stratix V- och Arria V-enhetsserierna, se kapitlet DSP Blocks i respektive handböcker på sidan Litteratur och teknisk dokumentation.
Relaterad information AN 306: Implementering av multiplikatorer i FPGA-enheter
Ger mer information om att implementera multiplikatorer med DSP och minnesblock i Intel FPGA-enheter.
8.1. Funktioner
Intel FPGA Multiply Adder eller ALTERA_MULT_ADD IP-kärna erbjuder följande funktioner: · Genererar en multiplikator för att utföra multiplikationsoperationer av två komplexa
siffror Obs: När du bygger multiplikatorer som är större än den inbyggda stödda storleken kan/
kommer att vara en prestandapåverkan till följd av kaskadbildningen av DSP-blocken. · Stöder databredder på 1 256 bitar · Stöder signerade och osignerade datarepresentationsformat · Stöder pipelining med konfigurerbar ingångslatens · Ger ett alternativ för att dynamiskt växla mellan signerad och osignerad datasupport · Ger en möjlighet att dynamiskt växla mellan addera och subtrahera operation · Stöder valfria asynkrona och synkrona klara och klockaktiverade ingångsportar · Stöder systoliskt fördröjningsregisterläge · Stöder föradderare med 8 förbelastningskoefficienter per multiplikator · Stöder förspänningskonstant för att komplettera ackumulatorfeedback
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1. Föradderare
Med föradderare görs tillägg eller subtraktioner innan multiplikatorn matas in.
Det finns fem föradderlägen: · Enkelt läge · Koefficientläge · Inmatningsläge · Kvadratisk läge · Konstant läge
Notera:
När pre-adder används (pre-adder koefficient/ingång/kvadratläge) måste alla dataingångar till multiplikatorn ha samma klockinställning.
8.1.1.1. För-adder Enkelt läge
I det här läget kommer båda operanderna från ingångsportarna och pre-addern används inte eller förbigås. Detta är standardläget.
Figur 10. Enkelt läge för adderare
a0 b0
Mult0
resultat
8.1.1.2. Föradderkoefficientläge
I detta läge härrör en multiplikatoroperand från föradderaren och den andra operanden härrör från det interna koefficientminnet. Koefficientlagringen tillåter upp till 8 förinställda konstanter. Koefficientvalssignalerna är coefsel[0..3].
Detta läge uttrycks i följande ekvation.
Följande visar preadderkoefficientläget för en multiplikator.
Figur 11. Föradderkoefficientläge
Preadder
a0
Mult0
+/-
resultat
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 38
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Pre-adder-inmatningsläge I det här läget härrör en multiplikatoroperand från pre-adderaren och den andra operanden härrör från datac[]-ingångsporten. Detta läge uttrycks i följande ekvation.
Följande visar pre-adderinmatningsläget för en multiplikator.
Figur 12. Pre-adder Input Mode
a0 b0
Mult0
+/-
resultat
c0
8.1.1.4. Pre-adder Square Mode Detta läge uttrycks i följande ekvation.
Följande visar preadderkvadratläget för två multiplikatorer.
Figur 13. Fyrkantigt läge för pre-adder
a0 b0
Mult0
+/-
resultat
8.1.1.5. Pre-adder Constant Mode
I detta läge härrör en multiplikatoroperand från ingångsporten och den andra operanden härrör från det interna koefficientminnet. Koefficientlagringen tillåter upp till 8 förinställda konstanter. Koefficientvalssignalerna är coefsel[0..3].
Detta läge uttrycks i följande ekvation.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Följande figur visar konstantläget för en multiplikator före adderaren.
Figur 14. Pre-adder Constant Mode
a0
Mult0
resultat
coefsel0
coef
8.1.2. Systoliskt fördröjningsregister
I en systolisk arkitektur matas indata in i en kaskad av register som fungerar som en databuffert. Varje register levererar en ingång sample till en multiplikator där den multipliceras med respektive koefficient. Kedjeadderaren lagrar de gradvis kombinerade resultaten från multiplikatorn och det tidigare registrerade resultatet från chainin[]-ingångsporten för att bilda det slutliga resultatet. Varje multiplicera-add-element måste fördröjas med en enda cykel så att resultaten synkroniseras på lämpligt sätt när de adderas. Varje successiv fördröjning används för att adressera både koefficientminnet och databufferten för deras respektive multiplicera-adderingselement. Till exempelample, en enkel fördröjning för det andra multiplicera adderingselementet, två fördröjningar för det tredje multiplicera adderingselementet, och så vidare.
Figur 15. Systoliska register
Systoliska register
x(t) c(0)
S -1
S -1
c(1)
S -1
S -1
c(2)
S -1
S -1
c(N-1)
S -1
S -1
S -1
S -1 y(t)
x(t) representerar resultaten från en kontinuerlig ström av insignal samples och y(t)
representerar summeringen av en uppsättning indata samples, och med tiden multiplicerat med deras
respektive koefficienter. Både ingångs- och utmatningsresultaten flyter från vänster till höger. c(0) till c(N-1) anger koefficienterna. De systoliska fördröjningsregistren betecknas med S-1, medan 1:an representerar en enda klockfördröjning. Systoliska fördröjningsregister läggs till kl
ingångarna och utgångarna för pipelining på ett sätt som säkerställer resultaten från
multiplikatoroperand och de ackumulerade summorna förblir synkroniserade. Detta bearbetningselement
replikeras för att bilda en krets som beräknar filtreringsfunktionen. Denna funktion är
uttrycks i följande ekvation.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 40
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
N representerar antalet cykler av data som har matats in i ackumulatorn, y(t) representerar utsignalen vid tidpunkten t, A(t) representerar ingången vid tidpunkten t, och B(i) är koefficienterna. t och i i ekvationen motsvarar ett visst ögonblick i tiden, så för att beräkna utsignalen sample y(t) vid tidpunkten t, en grupp av indata samples vid N olika tidpunkter, eller A(n), A(n-1), A(n-2), … A(n-N+1) krävs. Gruppen av N indata samples multipliceras med N-koefficienter och summeras för att bilda slutresultatet y.
Den systoliska registerarkitekturen är endast tillgänglig för lägena summa-av-2 och summa-av-4. För båda systoliska registerarkitekturlägena måste den första kedjesignalen vara bunden till 0.
Följande figur visar implementeringen av det systoliska fördröjningsregistret av 2 multiplikatorer.
Figur 16. Implementering av systoliskt fördröjningsregister av 2 multiplikatorer
kedjan
a0
Mult0
+/-
b0
a1
Mult1
+/-
b1
resultat
Summan av två multiplikatorer uttrycks i följande ekvation.
Följande figur visar implementeringen av det systoliska fördröjningsregistret av 4 multiplikatorer.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 17. Implementering av systoliskt fördröjningsregister av 4 multiplikatorer
kedjan
a0
Mult0
+/-
b0
a1
Mult1
+/-
b1
a2
Mult2
+/-
b2
a3
Mult3
+/-
b3
resultat
Summan av fyra multiplikatorer uttrycks i följande ekvation. Figur 18. Summan av 4 multiplikatorer
Följande listar advantagSystoliska registerimplementering: · Minskar DSP-resursanvändning · Möjliggör effektiv mappning i DSP-blocket med hjälp av kedjeadderarstrukturen
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 42
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.3. Förladdningskonstant
Förspänningskonstanten styr ackumulatoroperanden och kompletterar ackumulatorfeedbacken. Det giltiga LOADCONST_VALUE sträcker sig från 0. Det konstanta värdet är lika med 64N, där N = LOADCONST_VALUE. När LOADCONST_VALUE är satt till 2 är det konstanta värdet lika med 64. Denna funktion kan användas som förspänd avrundning.
Följande bild visar implementeringen av förspänningskonstant.
Figur 19. Förspänningskonstant
Ackumulatorfeedback
konstant
a0
Mult0
+/-
b0
a1
Mult1
+/b1
resultat
accum_sload sload_accum
Se följande IP-kärnor för andra multiplikatorimplementeringar: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dubbel ackumulator
Dubbelackumulatorfunktionen lägger till ett extra register i ackumulatorns återkopplingsväg. Dubbelackumulatorregistret följer utgångsregistret, som inkluderar klockan, klockaktivering och aclr. Det extra ackumulatorregistret returnerar resultatet med en en-cykels fördröjning. Denna funktion gör att du kan ha två ackumulatorkanaler med samma resursantal.
Följande figur visar implementeringen av den dubbla ackumulatorn.
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figur 20. Dubbel ackumulator
Dubbel ackumulatorregister
Acku mulatorfeedback
a0
Mult0
+/-
b0
a1
Mult1
+/b1
Utgångsresultat Utgångsregister
8.2. Verilog HDL-prototyp
Du kan hitta Intel FPGA Multiply Adder eller ALTERA_MULT_ADD Verilog HDL-prototyp file (altera_mult_add_rtl.v) i biblioteksmegafunktionskatalogen.
8.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i altera_lnsim_components.vhd i librariesvhdl altera_lnsim katalog.
8.4. VHDL LIBRARY_USE-deklaration
VHDL LIBRARY-USE-deklarationen krävs inte om du använder VHDL-komponentdeklarationen.
LIBRARY altera_mf; ANVÄND altera_mf.altera_mf_components.all;
8.5. Signaler
Följande tabeller listar in- och utsignalerna för Multiply Adder Intel FPGA IP eller ALTERA_MULT_ADD IP-kärna.
Tabell 28. Multiply Adder Intel FPGA IP eller ALTERA_MULT_ADD ingångssignaler
Signal
Nödvändig
Beskrivning
dataa_0[]/dataa_1[]/
Ja
dataa_2[]/dataa_3[]
Datainmatning till multiplikatorn. Ingångsport [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] bred
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 44
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] klocka[1:0] aclr[1:0] sclr[1:0] ena[1:0] signa
signb
scanina[] accum_sload
Obligatoriskt Ja Nej
Nej nej nej nej nej
Inga
Nej Nej
Beskrivning
Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Datainmatning till multiplikatorn. Insignal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] bred Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Datainmatning till multiplikatorn. Ingångssignal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] bred Välj INPUT för Välj parameter för preadderläge för att aktivera dessa signaler. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Klockingångsport till motsvarande register. Denna signal kan användas av vilket register som helst i IP-kärnan. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Asynkron raderingsingång till motsvarande register. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Synkron raderingsingång till motsvarande register. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde X till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna
Aktivera signalinmatning till motsvarande register. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till dessa signaler. När du tillhandahåller X-värde till dessa signaler, sprids X-värdet på utsignalerna.
Specificerar den numeriska representationen av multiplikatoringången A. Om signalsignalen är hög, behandlar multiplikatorn multiplikatorinsignalen A som ett teckental. Om signalsignalen är låg, behandlar multiplikatorn multiplikatorinsignalen A som ett tal utan tecken. Välj VARIABLE för Vilket är representationsformatet för multiplikatorer A ingångsparameter för att aktivera denna signal. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Specificerar den numeriska representationen av multiplikatorinsignalen B. Om teckenb-signalen är hög, behandlar multiplikatorn multiplikatorinsignalen B-signalen som ett komplementnummer med två tecken. Om teckenb-signalen är låg, behandlar multiplikatorn multiplikatorinsignalen B som ett tal utan tecken. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Ingång för skanningskedja A. Ingångssignal [WIDTH_A – 1, … 0] bred. När parametern INPUT_SOURCE_A har värdet SCANA, krävs scanina[]-signalen.
Anger dynamiskt om ackumulatorvärdet är konstant. Om accum_sload-signalen är låg laddas multiplikatorutgången in i ackumulatorn. Använd inte accum_sload och sload_accum samtidigt.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signal sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Obligatoriskt nr
Nej Nej
Inga
Nej nej nej nej
Beskrivning
Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Anger dynamiskt om ackumulatorvärdet är konstant. Om sload_accum-signalen är hög, laddas multiplikatorns utsignal in i ackumulatorn. Använd inte accum_sload och sload_accum samtidigt. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Adder resultat input buss från föregående stage. Ingångssignal [WIDTH_CHAININ – 1, … 0] bred.
Utför addition eller subtraktion till utdata från det första multiplikatorparet. Ingång 1 till addnsub1-signal för att addera utsignalerna från det första multiplikatorparet. Ingång 0 till addnsub1-signal för att subtrahera utsignalerna från det första multiplikatorparet. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Utför addition eller subtraktion till utdata från det första multiplikatorparet. Ingång 1 till addnsub3-signal för att addera utsignalerna från det andra multiplikatorparet. Ingång 0 till addnsub3-signal för att subtrahera utsignalerna från det första multiplikatorparet. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Koefficientinsignal[0:3] till den första multiplikatorn. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Koefficientingångssignal[0:3] till den andra multiplikatorn. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Koefficientingångssignal[0:3] till den tredje multiplikatorn. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Koefficientingångssignal [0:3] till den fjärde multiplikatorn. Simuleringsmodellen för denna IP stöder obestämt ingångsvärde (X) till denna signal. När du anger X-värde till denna ingång, sprids X-värdet på utsignalerna.
Tabell 29. Multiply Adder Intel FPGA IP-utgångssignaler
Signal
Nödvändig
Beskrivning
resultat []
Ja
Multiplikatorns utsignal. Utsignal [WIDTH_RESULT – 1 … 0] bred
Simuleringsmodellen för denna IP stöder obestämt utvärde (X). När du anger X-värdet som ingång, sprids X-värdet på denna signal.
scanouta []
Inga
Utsignal från skanningskedja A. Utsignal [WIDTH_A – 1..0] bred.
Välj fler än 2 för antalet multiplikatorer och välj Scan chain input för Vad är ingången A för den multiplikator som är ansluten till parametern för att aktivera denna signal.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 46
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6. parametrar
8.6.1. Fliken Allmänt
Tabell 30. Allmänt Tab
Parameter
IP-genererad parameter
Värde
Vad är antalet multiplikatorer?
antal_m 1 – 4 multiplikatorer
Hur breda ska ingångsbussarna A width_a vara?
1 – 256 XNUMX
Hur breda ska B width_b ingångsbussarna vara?
1 – 256 XNUMX
Hur bred ska "resultat"-utgångsbussen vara?
width_result
1 – 256 XNUMX
Skapa en associerad klockaktivering för varje klocka
gui_associate På d_clock_enabl Av e
8.6.2. Fliken Extra lägen
Tabell 31. Extra lägen Tab
Parameter
IP-genererad parameter
Värde
Utgångar Konfiguration
Registrera utdata från adderaren
gui_output_re På
igår
Av
Vad är källan för klockingång?
gui_output_re gister_clock
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_output_re gister_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_output_re gister_sclr
INGEN SCLR0 SCLR1
Adderdrift
Vilken operation ska utföras på utgångar från det första multiplikatorparet?
gui_multiplier 1_direction
ADD, SUB, VARIABLE
Standardvärde 1
16
Beskrivning
Antal multiplikatorer som ska adderas. Värdena är 1 upp till 4. Ange bredden på dataa[]-porten.
16
Ange bredden på datab[]-porten.
32
Ange bredden på resultat[]-porten.
Av
Välj det här alternativet för att skapa klockaktivering
för varje klocka.
Standardvärde
Beskrivning
Av klocka0
INGEN INGEN
Välj det här alternativet för att aktivera utgångsregister för adderaremodulen.
Välj Clock0 , Clock1 eller Clock2 för att aktivera och ange klockkällan för utdataregister. Du måste välja Registrera utdata från adderaren för att aktivera denna parameter.
Anger den asynkrona rensningskällan för adderns utdataregister. Du måste välja Registrera utdata från adderaren för att aktivera denna parameter.
Anger den synkrona rensningskällan för adderarens utdataregister. Du måste välja Registrera utdata från adderaren för att aktivera denna parameter.
TILLÄGGA
Välj addition eller subtraktion som ska utföras för utsignalerna mellan den första och andra multiplikatorn.
· Välj LÄGG TILL för att utföra tilläggsåtgärder.
· Välj SUB för att utföra subtraktion.
· Välj VARIABLE för att använda addnsub1-porten för dynamisk additions-/subtraktionskontroll.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genererad parameter
Värde
Registrera 'addnsub1'-ingång
gui_addnsub_ På multiplier_reg Av ister1
Vad är källan för klockingång?
gui_addnsub_ multiplier_reg ister1_clock
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_addnsub_ multiplier_aclr 1
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_addnsub_ multiplier_sclr 1
INGEN SCLR0 SCLR1
Vilken operation ska utföras på utgångar från det andra multiplikatorparet?
gui_multiplier 3_direction
ADD, SUB, VARIABLE
Registrera 'addnsub3'-ingång
gui_addnsub_ På multiplier_reg Av ister3
Vad är källan för klockingång?
gui_addnsub_ multiplier_reg ister3_clock
Klocka0 Klocka1 Klocka2
Standardvärde
Av klocka0 INGEN INGEN LÄGG TILL
Av klocka0
Beskrivning
När VARIABEL-värdet är valt: · Kör addnsub1-signalen till hög för
tilläggsoperation. · Kör addnsub1-signalen till låg för
subtraktionsoperation. Du måste välja fler än två multiplikatorer för att aktivera denna parameter.
Välj det här alternativet för att aktivera ingångsregister för addnsub1-porten. Du måste välja VARIABLE för Vilken operation som ska utföras på utgångar från det första multiplikatorparet för att aktivera denna parameter.
Välj Clock0 , Clock1 eller Clock2 för att ange ingångsklocksignalen för addnsub1-registret. Du måste välja Register 'addnsub1'-ingång för att aktivera denna parameter.
Anger den asynkrona rensningskällan för addnsub1-registret. Du måste välja Register 'addnsub1'-ingång för att aktivera denna parameter.
Anger den synkrona rensningskällan för addnsub1-registret. Du måste välja Register 'addnsub1'-ingång för att aktivera denna parameter.
Välj addition eller subtraktion som ska utföras för utsignalerna mellan den tredje och fjärde multiplikatorn. · Välj LÄGG TILL för att utföra tillägg
drift. · Välj SUB för att utföra subtraktion
drift. · Välj VARIABLE för att använda addnsub1
port för dynamisk addition/subtraktionskontroll. När VARIABEL-värdet är valt: · Kör addnsub1-signalen till hög för additionsdrift. · Kör addnsub1-signalen till låg för subtraktionsdrift. Du måste välja värdet 4 för Vad är antalet multiplikatorer? för att aktivera denna parameter.
Välj det här alternativet för att aktivera ingångsregister för addnsub3-signal. Du måste välja VARIABLE för Vilken operation som ska utföras på utgångar från det andra multiplikatorparet för att aktivera denna parameter.
Välj Clock0 , Clock1 eller Clock2 för att ange ingångsklocksignalen för addnsub3-registret. Du måste välja Register 'addnsub3'-ingång för att aktivera denna parameter.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 48
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Vad är källan för asynkron clear input?
IP-genererad parameter
Värde
gui_addnsub_ multiplier_aclr 3
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_addnsub_ multiplier_sclr 3
INGEN SCLR0 SCLR1
Polaritet Aktivera `use_subadd'
gui_use_subn På
tillägga
Av
8.6.3. Multiplikatorer Tab
Tabell 32. Multiplikatorer Tab
Parameter
IP-genererad parameter
Värde
Vad är
gui_represent
representationsformat ation_a
för multiplikator A-ingångar?
SIGNERAD, OSIGNERAD, VARIABEL
Registrera "signa"-ingång
gui_register_s På
igna
Av
Vad är källan för klockingång?
gui_register_s igna_clock
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_register_s igna_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_register_s igna_sclr
INGEN SCLR0 SCLR1
Vad är
gui_represent
representationsformat ation_b
för Multiplikator B-ingångar?
SIGNERAD, OSIGNERAD, VARIABEL
Registrera `signb'-ingång
gui_register_s På
ignb
Av
Standardvärde INGEN
INGEN
Beskrivning
Anger den asynkrona rensningskällan för addnsub3-registret. Du måste välja Register 'addnsub3'-ingång för att aktivera denna parameter.
Anger den synkrona rensningskällan för addnsub3-registret. Du måste välja Register 'addnsub3'-ingång för att aktivera denna parameter.
Av
Välj det här alternativet för att vända på funktionen
av addnsub-ingångsporten.
Kör addnsub till hög för subtraktionsdrift.
Kör addnsub till låg för additionsdrift.
Standardvärde
Beskrivning
UNSIGNED Specificera representationsformatet för multiplikator A-ingången.
Av
Välj det här alternativet för att aktivera signering
register.
Du måste välja VARIABEL värde för Vilket är representationsformatet för multiplikator A-ingångar? parameter för att aktivera detta alternativ.
Klocka 0
Välj Clock0 , Clock1 eller Clock2 för att aktivera och ange ingångsklocksignalen för signaregister.
Du måste välja Register `signa'-ingång för att aktivera denna parameter.
INGEN
Anger den asynkrona klara källan för signaregistret.
Du måste välja Register `signa'-ingång för att aktivera denna parameter.
INGEN
Anger den synkrona klara källan för signaregistret.
Du måste välja Register `signa'-ingång för att aktivera denna parameter.
OSIGNAD Ange representationsformatet för multiplikator B-ingången.
Av
Välj det här alternativet för att aktivera signb
register.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genererad parameter
Värde
Standardvärde
Vad är källan för klockingång?
gui_register_s ignb_clock
Klocka0 Klocka1 Klocka2
Klocka 0
Vad är källan för asynkron clear input?
gui_register_s ignb_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_register_s ignb_sclr
INGEN SCLR0 SCLR1
Ingångskonfiguration
Registrera multiplikatorns ingång A
Vad är källan för klockingång?
gui_input_reg På
ister_a
Av
gui_input_reg ister_a_clock
Klocka0 Klocka1 Klocka2
INGEN INGEN
Av klocka0
Vad är källan för asynkron clear input?
gui_input_reg ister_a_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_input_reg ister_a_sclr
INGEN SCLR0 SCLR1
Registrera multiplikatorns ingång B
Vad är källan för klockingång?
gui_input_reg På
ister_b
Av
gui_input_reg ister_b_clock
Klocka0 Klocka1 Klocka2
INGEN INGEN Av klockan0
Vad är källan för asynkron clear input?
gui_input_reg ister_b_aclr
INGEN ACLR0 ACLR1
INGEN
Vad är källan för synkron clear input?
gui_input_reg ister_b_sclr
INGEN SCLR0 SCLR1
INGEN
Vilken är multiplikatorns ingång A kopplad till?
gui_multiplier Multiplikatoringång Multiplikator
_a_ingång
Skanna kedjans ingång
Beskrivning
Du måste välja VARIABEL värde för Vilket är representationsformatet för multiplikator B-ingångar? parameter för att aktivera detta alternativ.
Välj Klocka0 , Klocka1 eller Klocka2 för att aktivera och specificera ingångsklocksignalen för teckenregistret. Du måste välja Register `signb'-ingång för att aktivera denna parameter.
Anger den asynkrona klara källan för signb-registret. Du måste välja Register `signb'-ingång för att aktivera denna parameter.
Anger den synkrona klara källan för signb-registret. Du måste välja Register `signb'-ingång för att aktivera denna parameter.
Välj detta alternativ för att aktivera ingångsregister för data en ingångsbuss.
Välj Clock0 , Clock1 eller Clock2 för att aktivera och specificera registeringångsklocksignalen för data en ingångsbuss. Du måste välja Registeringång A för multiplikatorn för att aktivera denna parameter.
Anger registrets asynkrona rensningskälla för dataingångsbussen. Du måste välja Registeringång A för multiplikatorn för att aktivera denna parameter.
Specificerar den registersynkrona rensningskällan för dataingångsbussen. Du måste välja Registeringång A för multiplikatorn för att aktivera denna parameter.
Välj det här alternativet för att aktivera ingångsregister för databussen.
Välj Clock0 , Clock1 eller Clock2 för att aktivera och specificera registeringångsklocksignalen för databussen. Du måste välja Registeringång B för multiplikatorn för att aktivera denna parameter.
Specificerar registrets asynkrona rensningskälla för databussen. Du måste välja Registeringång B för multiplikatorn för att aktivera denna parameter.
Anger den registersynkrona rensningskällan för databussen. Du måste välja Registeringång B för multiplikatorn för att aktivera denna parameter.
Välj ingångskälla för multiplikatorns ingång A.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 50
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genererad parameter
Värde
Scanout A Register Configuration
Registrera utdata från skanningskedjan
gui_scanouta På
_register
Av
Vad är källan för klockingång?
gui_scanouta _register_klocka k
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_scanouta _register_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_scanouta _register_sclr
INGEN SCLR0 SCLR1
8.6.4. Preadder Tab
Tabell 33. Preadder Tab
Parameter
IP-genererad parameter
Värde
Välj preader-läge
preadder_mo de
ENKEL, COEF, INPUT, KVADRAT, KONSTANT
Standardvärde
Beskrivning
Välj Multiplikatoringång för att använda data en ingångsbuss som källa till multiplikatorn. Välj Scan chain input för att använda skanningsingångsbussen som källa till multiplikatorn och aktivera skanningsutgångsbussen. Denna parameter är tillgänglig när du väljer 2, 3 eller 4 för Vad är antalet multiplikatorer? parameter.
Av klocka0 INGEN INGEN
Välj det här alternativet för att aktivera utgångsregister för scanouta-utgångsbussen.
Du måste välja Scan chain input för Vad är ingång A på multiplikatorn ansluten till? parameter för att aktivera detta alternativ.
Välj Clock0 , Clock1 eller Clock2 för att aktivera och specificera registeringångsklocksignalen för scanouta-utgångsbussen.
Du måste aktivera registerutdata för parametern skanningskedja för att aktivera det här alternativet.
Specificerar registrets asynkrona rensningskälla för scanouta-utgångsbussen.
Du måste aktivera registerutdata för parametern skanningskedja för att aktivera det här alternativet.
Specificerar registrets synkrona rensningskälla för scanouta-utgångsbussen.
Du måste välja Registrera utdata för skanningskedjans parameter för att aktivera det här alternativet.
Standardvärde
ENKEL
Beskrivning
Anger driftläge för preadder-modulen. ENKEL: Detta läge förbikopplar preaddern. Detta är standardläget. COEF: Detta läge använder utsignalen från preaddern och coefsel-ingångsbussen som ingångar till multiplikatorn. INPUT: Det här läget använder utgången från preaddern och datac-ingångsbussen som ingångar till multiplikatorn. SQUARE: Detta läge använder utsignalen från preaddern som båda ingångarna till multiplikatorn.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genererad parameter
Värde
Välj preader-riktning
gui_preadder ADD,
_riktning
SUB
Hur breda ska C width_c ingångsbussarna vara?
1 – 256 XNUMX
Data C Input Register Configuration
Registrera datainmatning
gui_datac_inp På
ut_register
Av
Vad är källan för klockingång?
gui_datac_inp ut_register_cl ock
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_datac_inp ut_register_a clr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_datac_inp ut_register_sc lr
INGEN SCLR0 SCLR1
Koefficienter
Hur bred ska koefbredden vara?
width_coef
1 – 27 XNUMX
Coef Register Configuration
Registrera coefsel-inmatningen
gui_coef_regi På
ster
Av
Vad är källan för klockingång?
gui_coef_regi ster_clock
Klocka0 Klocka1 Klocka2
Standardvärde
TILLÄGGA
16
Beskrivning
KONSTANT: Detta läge använder data en ingångsbuss med förbikopplad preadder och coefsel-ingångsbuss som ingångar till multiplikatorn.
Specificerar preadderns funktion. För att aktivera denna parameter, välj följande för Välj preadder-läge: · COEF · INPUT · SQUARE eller · CONSTANT
Anger antalet bitar för C-ingångsbuss. Du måste välja INPUT för Välj preadder-läge för att aktivera denna parameter.
På Klocka0 INGEN INGEN
Välj det här alternativet för att aktivera ingångsregister för datac-ingångsbuss. Du måste ställa in INPUT på Select preadder mode parameter för att aktivera detta alternativ.
Välj Clock0 , Clock1 eller Clock2 för att ange ingångsklocksignalen för dataregistret. Du måste välja Register datac input för att aktivera denna parameter.
Anger den asynkrona rensningskällan för datac-ingångsregistret. Du måste välja Register datac input för att aktivera denna parameter.
Anger den synkrona rensningskällan för datac-ingångsregistret. Du måste välja Register datac input för att aktivera denna parameter.
18
Anger antalet bitar för
coefsel ingångsbuss.
Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
På klockan 0
Välj detta alternativ för att aktivera ingångsregister för coefselingångsbuss. Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
Välj Clock0 , Clock1 eller Clock2 för att ange ingångsklocksignalen för koefselingångsregistret. Du måste välja Register the coefsel input för att aktivera denna parameter.
fortsatt…
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 52
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Vad är källan för asynkron clear input?
IP-genererad parameter
Värde
gui_coef_regi ster_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input
gui_coef_regi ster_sclr
INGEN SCLR0 SCLR1
Koefficient_0 Konfiguration
coef0_0 till coef0_7
0x00000 0xFFFFFFF
Koefficient_1 Konfiguration
coef1_0 till coef1_7
0x00000 0xFFFFFFF
Koefficient_2 Konfiguration
coef2_0 till coef2_7
0x00000 0xFFFFFFF
Koefficient_3 Konfiguration
coef3_0 till coef3_7
0x00000 0xFFFFFFF
8.6.5. Akkumulator Tab
Tabell 34. Ackumulator Tab
Parameter
IP-genererad parameter
Värde
Aktivera ackumulator?
ackumulator
JA NEJ
Vad är ackumulatordriftstypen?
accum_directi ADD,
on
SUB
Standardvärde INGEN
INGEN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Beskrivning
Specificerar den asynkrona rensningskällan för coefselingångsregistret. Du måste välja Register the coefsel input för att aktivera denna parameter.
Specificerar den synkrona rensningskällan för coefsel-ingångsregistret. Du måste välja Register the coefsel input för att aktivera denna parameter.
Anger koefficientvärdena för denna första multiplikator. Antalet bitar måste vara detsamma som anges i Hur bred ska koefbredden vara? parameter. Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
Anger koefficientvärdena för denna andra multiplikator. Antalet bitar måste vara detsamma som anges i Hur bred ska koefbredden vara? parameter. Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
Anger koefficientvärdena för denna tredje multiplikator. Antalet bitar måste vara detsamma som anges i Hur bred ska koefbredden vara? parameter. Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
Anger koefficientvärdena för denna fjärde multiplikator. Antalet bitar måste vara detsamma som anges i Hur bred ska koefbredden vara? parameter. Du måste välja COEF eller CONSTANT för preadder-läge för att aktivera denna parameter.
Standardvärde NO
TILLÄGGA
Beskrivning
Välj JA för att aktivera ackumulatorn. Du måste välja Registrera utdata från adderaren när du använder ackumulatorfunktionen.
Specificerar driften av ackumulatorn: · ADD för additionsoperation · SUB för subtraktionsoperation. Du måste välja JA för Aktivera ackumulator? parameter för att aktivera detta alternativ.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Preload Constant Aktivera preload konstant
IP-genererad parameter
Värde
gui_ena_prelo På
ad_const
Av
Vad är ingången till ackumuleringsporten ansluten till?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Välj värde för preload loadconst_val 0 – 64
konstant
ue
Vad är källan för klockingång?
gui_accum_sl oad_register_ klocka
Klocka0 Klocka1 Klocka2
Vad är källan för asynkron clear input?
gui_accum_sl oad_register_ aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_accum_sl oad_register_ sclr
INGEN SCLR0 SCLR1
Aktivera dubbel ackumulator
gui_double_a På
cum
Av
Standardvärde
Beskrivning
Av
Aktivera accum_sload eller
sload_accum-signaler och registeringång
för att dynamiskt välja ingången till
ackumulator.
När ackum_sload är låg eller sload_accum matas multiplikatorns utsignal till ackumulatorn.
När ackum_sload är hög eller sload_accum matas en användarspecificerad förbelastningskonstant in i ackumulatorn.
Du måste välja JA för Aktivera ackumulator? parameter för att aktivera detta alternativ.
ACCUM_SL OAD
Anger beteendet för signalen accum_sload/sload_accum.
ACCUM_SLOAD: Kör accum_sload låg för att ladda multiplikatorns utsignal till ackumulatorn.
SLOAD_ACCUM: Kör sload_accum hög för att ladda multiplikatorutgången till ackumulatorn.
Du måste välja alternativet Aktivera förladdningskonstant för att aktivera denna parameter.
64
Ange det förinställda konstantvärdet.
Detta värde kan vara 2N där N är det förinställda konstantvärdet.
När N=64 representerar det en konstant noll.
Du måste välja alternativet Aktivera förladdningskonstant för att aktivera denna parameter.
Klocka 0
Välj Clock0 , Clock1 eller Clock2 för att ange ingångsklocksignalen för registret accum_sload/sload_accum.
Du måste välja alternativet Aktivera förladdningskonstant för att aktivera denna parameter.
INGEN
Anger den asynkrona rensningskällan för registret accum_sload/sload_accum.
Du måste välja alternativet Aktivera förladdningskonstant för att aktivera denna parameter.
INGEN
Anger den synkrona rensningskällan för registret accum_sload/sload_accum.
Du måste välja alternativet Aktivera förladdningskonstant för att aktivera denna parameter.
Av
Aktiverar dubbelackumulatorregistret.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 54
Skicka feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6.6. Systolisk/Chainout Tab
Tabell 35. Systolisk/Chainout Adder Tab
Parameter Aktivera chainout adderare
IP-genererad parameter
Värde
chainout_add JA,
er
INGA
Vad är drifttypen för chainout adder?
chainout_add ADD,
er_riktning
SUB
Aktivera "negera" ingång för chainout adder?
Port_negate
PORT_USED, PORT_UNUSED
Registrera "negera"-ingång? negate_register er
OREGISTERAD, CLOCK0, CLOCK1, CLOCK2, CLOCK3
Vad är källan för asynkron clear input?
negate_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
negate_sclr
INGEN SCLR0 SCLR1
Systolisk fördröjning
Aktivera systoliska fördröjningsregister
gui_systolic_d På
elay
Av
Vad är källan för klockingång?
gui_systolic_d CLOCK0,
elay_clock
KLOCKA 1,
Standardvärde
INGA
Beskrivning
Välj JA för att aktivera chainout adder-modul.
TILLÄGGA
Specificerar chainout adder-operationen.
För subtraktionsoperation måste SIGNED väljas för Vilket är representationsformatet för multiplikator A-ingångar? och Vilket är representationsformatet för Multiplikator B-ingångar? på fliken Multiplikatorer.
PORT_UN ANVÄND
Välj PORT_USED för att aktivera negera insignal.
Denna parameter är ogiltig när chainout adder är inaktiverad.
AVREGIST ERED
För att aktivera ingångsregistret för negate insignal och specificera ingångsklocksignalen för negate register.
Välj OREGISTERED om det negera ingångsregistret till inte behövs
Denna parameter är ogiltig när du väljer:
· NO för Aktivera chainout adder eller
· PORT_UNUSED för Aktivera "negera" ingång för chainout adder? parameter eller
INGEN
Anger den asynkrona rensningskällan för negatregistret.
Denna parameter är ogiltig när du väljer:
· NO för Aktivera chainout adder eller
· PORT_UNUSED för Aktivera "negera" ingång för chainout adder? parameter eller
INGEN
Anger den synkrona rensningskällan för det negativa registret.
Denna parameter är ogiltig när du väljer:
· NO för Aktivera chainout adder eller
· PORT_UNUSED för Aktivera "negera" ingång för chainout adder? parameter eller
Av KLOCKA0
Välj det här alternativet för att aktivera systoliskt läge. Den här parametern är tillgänglig när du väljer 2 eller 4 för Vad är antalet multiplikatorer? parameter. Du måste aktivera registerutgången på adderaren för att använda de systoliska fördröjningsregistren.
Specificerar ingångsklocksignalen för systoliskt fördröjningsregister.
fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-genererad parameter
Värde
KLOCKA 2,
Vad är källan för asynkron clear input?
gui_systolic_d elay_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_systolic_d elay_sclr
INGEN SCLR0 SCLR1
Standardvärde
INGEN
INGEN
Beskrivning
Du måste välja aktivera systoliska fördröjningsregister för att aktivera det här alternativet.
Anger den asynkrona rensningskällan för det systoliska fördröjningsregistret. Du måste välja aktivera systoliska fördröjningsregister för att aktivera det här alternativet.
Anger den synkrona rensningskällan för det systoliska fördröjningsregistret. Du måste välja aktivera systoliska fördröjningsregister för att aktivera det här alternativet.
8.6.7. Rörledningsflik
Tabell 36. Rörledning Tab
Parameter Pipelining Configuration
IP-genererad parameter
Värde
Vill du lägga till pipelineregister till ingången?
gui_pipelining Nej, ja
Standardvärde
Inga
Vänligen ange
latens
antal latensklockor
cykler
Alla värden som är större än 0
Vad är källan för klockingång?
gui_input_late ncy_clock
CLOCK0, CLOCK1, CLOCK2
Vad är källan för asynkron clear input?
gui_input_late ncy_aclr
INGEN ACLR0 ACLR1
Vad är källan för synkron clear input?
gui_input_late ncy_sclr
INGEN SCLR0 SCLR1
KLOCKA INGEN INGEN
Beskrivning
Välj Ja för att aktivera en ytterligare nivå av pipelineregister till ingångssignalerna. Du måste ange ett värde som är större än 0 för Vänligen ange parametern antalet latens-klockcykler.
Anger önskad latens i klockcykler. En nivå av pipelineregister = 1 latens i klockcykeln. Du måste välja JA för Vill du lägga till pipelineregister till ingången? för att aktivera det här alternativet.
Välj Clock0 , Clock1 eller Clock2 för att aktivera och specificera pipelineregistrets ingångsklocksignal. Du måste välja JA för Vill du lägga till pipelineregister till ingången? för att aktivera det här alternativet.
Anger registrets asynkrona rensningskälla för det extra pipelineregistret. Du måste välja JA för Vill du lägga till pipelineregister till ingången? för att aktivera det här alternativet.
Anger registrets synkrona rensningskälla för det extra pipelineregistret. Du måste välja JA för Vill du lägga till pipelineregister till ingången? för att aktivera det här alternativet.
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 56
Skicka feedback
683490 | 2020.10.05 Skicka feedback
9. ALTMEMMULT (minnesbaserad konstantkoefficientmultiplikator) IP-kärna
Uppmärksamhet:
Intel har tagit bort stödet för denna IP i Intel Quartus Prime Pro Edition version 20.3. Om IP-kärnan i din design är inriktad på enheter i Intel Quartus Prime Pro Edition kan du ersätta IP:n med LPM_MULT Intel FPGA IP eller återskapa IP:n och kompilera din design med programvaran Intel Quartus Prime Standard Edition.
ALTMEMMULT IP-kärnan används för att skapa minnesbaserade multiplikatorer med användning av onchip-minnesblock som finns i Intel FPGA:er (med M512, M4K, M9K och MLAB minnesblock). Denna IP-kärna är användbar om du inte har tillräckliga resurser för att implementera multiplikatorerna i logiska element (LEs) eller dedikerade multiplikatorresurser.
ALTMEMMULT IP-kärnan är en synkron funktion som kräver en klocka. ALTMEMMULT IP-kärnan implementerar en multiplikator med minsta möjliga genomströmning och latens för en given uppsättning parametrar och specifikationer.
Följande bild visar portarna för ALTMEMMULT IP-kärnan.
Figur 21. ALTMEMMULT-portar
ALTMEMMULT
data_in[] sload_data coeff_in[]
result[] result_valid load_done
sload_coeff
sclr klocka
inst
Relaterade informationsfunktioner på sidan 71
9.1. Funktioner
ALTMEMMULT IP-kärnan erbjuder följande funktioner: · Skapar endast minnesbaserade multiplikatorer med hjälp av on-chip-minnesblock som finns i
Intel FPGAs · Stöder databredd på 1 bitar · Stöder signerade och osignerade datarepresentationsformat · Stöder pipelining med fast utdatalatens
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
ISO 9001: 2015 Registrerad
9. ALTMEMMULT (Minnesbaserad konstantkoefficientmultiplikator) IP-kärna 683490 | 2020.10.05
· Lagrar multipelkonstanter i RAM (Random-Access Memory)
· Ger ett alternativ för att välja typ av RAM-block
· Stöder valfria synkrona klara och lastkontrollerande ingångsportar
9.2. Verilog HDL-prototyp
Följande Verilog HDL-prototyp finns i Verilog Design File (.v) altera_mf.v i eda synteskatalog.
module altmemmult #( parameter coeff_representation = "SIGNED", parameter coefficient0 = "NOUSED", 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”) (ingång trådklocka, ingångstråd [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)/* syntes syn_black_box=1 */; slutmodul
9.3. VHDL-komponentdeklaration
VHDL-komponentdeklarationen finns i VHDL-designen File (.vhd) altera_mf_components.vhd i biblioteksvhdlaltera_mf katalog.
component altmemmult generic ( coeff_representation:string := “SIGNED”; coefficient0:string := “UNUSED”; data_representation:string := “SIGNED”; intended_device_family:string := “unused”; max_clock_cycles_per_result:natural_of_al := := 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 := “OANVÄND”; lpm_type:sträng := "altmemmult"); port(klocka:in std_logic; coeff_in:in std_logic_vector(width_c-1 ner till 1) := (andra => '0'); data_in:in std_logic_vector(width_d-0 ner till 1);
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 58
Skicka feedback
9. ALTMEMMULT (Minnesbaserad konstantkoefficientmultiplikator) IP-kärna 683490 | 2020.10.05
load_done:out std_logic; result:out std_logic_vector(width_r-1 ner till 0); result_valid:out std_logic; sclr:in std_logic := '0'; sel:in std_logic_vector(width_s-1 ner till 0) := (andra => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); slutkomponent;
9.4. Hamnar
Följande tabeller visar in- och utportarna för ALTMEMMULT IP-kärnan.
Tabell 37. ALTMEMMULT Ingångsportar
Portnamn
Nödvändig
Beskrivning
klocka
Ja
Klockinmatning till multiplikatorn.
coeff_in[]
Inga
Koefficientingångsport för multiplikatorn. Storleken på ingångsporten beror på parametervärdet WIDTH_C.
data_in[]
Ja
Dataingångsport till multiplikatorn. Storleken på ingångsporten beror på parametervärdet WIDTH_D.
sclr
Inga
Synkron klar ingång. Om det inte används är standardvärdet aktivt högt.
sel[]
Inga
Val av fast koefficient. Storleken på ingångsporten beror på WIDTH_S
parametervärde.
sload_coeff
Inga
Ingångsport för synkron belastningskoefficient. Ersätter det aktuella valda koefficientvärdet med värdet som anges i coeff_in-ingången.
sload_data
Inga
Ingångsport för synkron belastningsdata. Signal som specificerar ny multiplikationsoperation och avbryter alla befintliga multiplikationsoperationer. Om parametern MAX_CLOCK_CYCLES_PER_RESULT har ett värde på 1, ignoreras sload_data-ingångsporten.
Tabell 38. ALTMEMMULT utgångsportar
Portnamn
Nödvändig
Beskrivning
resultat[]
Ja
Multiplikatorutgångsport. Storleken på ingångsporten beror på parametervärdet WIDTH_R.
resultat_giltigt
Ja
Indikerar när utdata är det giltiga resultatet av en fullständig multiplikation. Om parametern MAX_CLOCK_CYCLES_PER_RESULT har värdet 1, används inte resultat_giltig utgångsport.
ladda_klar
Inga
Indikerar när den nya koefficienten har laddats färdigt. load_done-signalen bekräftar när en ny koefficient har laddats färdigt. Om inte load_done-signalen är hög kan inget annat koefficientvärde laddas in i minnet.
9.5. parametrar
Följande tabell listar parametrarna för ALTMEMMULT IP-kärnan.
Tabell 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parametrar
Parameternamn
Typ krävs
Beskrivning
Heltal Ja
Anger bredden på data_in[]-porten.
Heltal Ja
Anger bredden på porten coeff_in[]. fortsatt…
Skicka feedback
Intel FPGA Integer Arithmetic IP Cores Användarhandbok 59
9. ALTMEMMULT (Minnesbaserad konstantkoefficientmultiplikator) IP-kärna 683490 | 2020.10.05
Parameternamn WIDTH_R WIDTH
Dokument/resurser
![]() |
Intel FPGA Integer Aritmetic IP-kärnor [pdf] Användarhandbok FPGA heltals aritmetiska IP-kärnor, heltalsaritmetiska IP-kärnor, aritmetiska IP-kärnor, IP-kärnor |