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

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *