FPGA geheel getal rekenkundige IP-kernen
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding
Bijgewerkt voor Intel® Quartus® Prime Design Suite: 20.3
Online versie Feedback verzenden
UG-01063
ID: 683490 Versie: 2020.10.05
Inhoud
Inhoud
1. Intel FPGA geheel getal rekenkundige IP-kernen.......................................................................................................... 5
2. LPM_COUNTER (teller) IP-kern.......................................................................................................................... 7 2.1. Kenmerken.................................................................................................7 2.2. Verilog HDL-prototype.......................................................................................................... 8 2.3. VHDL-bestanddeelverklaring.............................................................8 2.4. VHDL LIBRARY_USE Verklaring…………………………………………………………………… 9 2.5. Havens……................................................................................................................................................................9 2.6. Parameters……................................................................................................................................ 10
3. LPM_DIVIDE (Divider) Intel FPGA IP Core…………………………………………………….. 12 3.1. Functies………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototype.......................................................................................................... 12 3.3. VHDL-bestanddeelverklaring…………………………………………………………….. 13 3.4. VHDL LIBRARY_USE-verklaring……………………………………………………………. 13 3.5. Havens…………………………………………………………………………………………… 13 3.6. Parameters……................................................................................................................................ 14
4. LPM_MULT (vermenigvuldiger) IP-kern……………………………………………………………………. 16 4.1. Functies………………………………………………………………………………………………. 16 4.2. Verilog HDL-prototype.......................................................................................................... 17 4.3. VHDL-bestanddeelverklaring…………………………………………………………….. 17 4.4. VHDL LIBRARY_USE-verklaring……………………………………………………………. 17 4.5. Signalen................................................................................................................................. 18 4.6. Parameters voor Stratix V-, Arria V-, Cyclone V- en Intel Cyclone 10 LP-apparaten…………… 18 4.6.1. Tabblad Algemeen……………………………………………………………………………18 4.6.2. Algemeen 2 Tabblad…………………………………………………………………… 19 4.6.3. Tabblad Pipelining.......................................................................................................... 19 4.7. Parameters voor Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX-apparaten.............. 20 4.7.1. Tabblad Algemeen……………………………………………………………………………20 4.7.2. Algemeen 2 Tabblad…………………………………………………………………… 20 4.7.3. Pijpleidingen..........................................................................................................................21
5. LPM_ADD_SUB (opteller/aftrekker)…………………………………………………………… 22 5.1. Functies………………………………………………………………………………………………. 22 5.2. Verilog HDL-prototype............................................................................................................. 23 5.3. VHDL-bestanddeelverklaring…………………………………………………………….. 23 5.4. VHDL LIBRARY_USE-verklaring……………………………………………………………. 23 5.5. Havens…………………………………………………………………………………………… 23 5.6. Parameters……................................................................................................................................ 24
6. LPM_COMPARE (vergelijker)…………………………………………………………………………… 26 6.1. Functies………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototype............................................................................................................. 27 6.3. VHDL-bestanddeelverklaring…………………………………………………………….. 27 6.4. VHDL LIBRARY_USE-verklaring……………………………………………………………. 27 6.5. Havens…………………………………………………………………………………………… 27 6.6. Parameters……................................................................................................................................ 28
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 2
Feedback verzenden
Inhoud
7. ALTECC (Foutcorrectiecode: Encoder/Decoder) IP Core…………………………………… 30
7.1. Functies van ALTCC-encoder……………………………………………………………………..31 7.2. Verilog HDL-prototype (ALTECC_ENCODER)……………………………………………………. 32 7.3. Verilog HDL-prototype (ALTECC_DECODER)……………………………………………………. 32 7.4. VHDL-componentverklaring (ALTECC_ENCODER)……………………………………………33 7.5. VHDL-componentdeclaratie (ALTECC_DECODER)……………………………………………33 7.6. VHDL LIBRARY_USE-verklaring……………………………………………………………. 33 7.7. Encoderpoorten…………………………………………………………………………………… 33 7.8. Decoderpoorten……................................................................................................................34 7.9. Encoderparameters…………………………………………………………………………… 34 7.10. Decoderparameters …………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP-kern……………………………………………………………………. 36
8.1. Functies………………………………………………………………………………………………. 37 8.1.1. Pre-adder................................................................................................................. 38 8.1.2. Register systolische vertraging…………………………………………………………….. 40 8.1.3. Voorbelastingsconstante……................................................................................................................ 43 8.1.4. Dubbele accumulator............................................................................................. 43
8.2. Verilog HDL-prototype............................................................................................................. 44 8.3. VHDL-bestanddeelverklaring…………………………………………………………….. 44 8.4. VHDL LIBRARY_USE-verklaring……………………………………………………………. 44 8.5. Signalen................................................................................................................................. 44 8.6. Parameters……................................................................................................................................ 47
8.6.1. Tabblad Algemeen…………………………………………………………………… 47 8.6.2. Tabblad Extra Modi…………………………………………………………………….. 47 8.6.3. Tabblad Vermenigvuldigers…………………………………………………………………….. 49 8.6.4. Tabblad Preadder.......................................................................................................... 51 8.6.5. Tabblad Accumulator…………………………………………………………………….. 53 8.6.6. Tabblad Systolisch/Chainout .............................................................................................................. 55 8.6.7. Tabblad Pipelining............................................................................................. 56
9. ALTMEMMULT (op geheugen gebaseerde constante coëfficiëntvermenigvuldiger) IP Core…………………… 57
9.1. Functies………………………………………………………………………………………………. 57 9.2. Verilog HDL-prototype............................................................................................................. 58 9.3. VHDL-bestanddeelverklaring…………………………………………………………….. 58 9.4. Havens…………………………………………………………………………………………… 59 9.5. Parameters……................................................................................................................................ 59
10. ALTMULT_ACCUM (vermenigvuldig-accumuleer) IP-kern.......................................................................... 61
10.1. Kenmerken…………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototype……………………………………………………………………..62 10.3. VHDL-bestanddeelverklaring…………………………………………………………… 63 10.4. VHDL LIBRARY_USE Verklaring……………………………………………………………63 10.5. Havens................................................................................................................. 63 10.6. Parameters.......................................................................................................................... 64
11. ALTMULT_ADD (vermenigvuldig-opteller) IP-kern……………………………………………………..69
11.1. Kenmerken…………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototype……………………………………………………………………..72 11.3. VHDL-bestanddeelverklaring…………………………………………………………… 72 11.4. VHDL LIBRARY_USE-verklaring……………………………………………………………72
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 3
Inhoud
11.5. Havens................................................................................................................. 72 11.6. Parameters.......................................................................................................................... 73
12. ALTMULT_COMPLEX (complexe vermenigvuldiger) IP-kern.......................................................................... 86 12.1. Complexe vermenigvuldiging............................................................................. 86 12.2. Canonieke representatie…………………………………………………………………… 87 12.3. Conventionele representatie................................................................................................. 87 12.4. Kenmerken…………………………………………………………………………………………….. 88 12.5. Verilog HDL-prototype……………………………………………………………………..88 12.6. VHDL-bestanddeelverklaring…………………………………………………………… 89 12.7. VHDL LIBRARY_USE-verklaring……………………………………………………………89 12.8. Signalen.......................................................................................................................... 89 12.9. Parameters.......................................................................................................................... 90
13. ALTSQRT (geheel vierkantswortel) IP-kern……………………………………………………………92 13.1. Kenmerken…………………………………………………………………………………………….. 92 13.2. Verilog HDL-prototype……………………………………………………………………..92 13.3. VHDL-componentverklaring…………………………………………………………… 93 13.4. VHDL LIBRARY_USE Verklaring……………………………………………………………93 13.5. Havens................................................................................................................. 93 13.6. Parameters.......................................................................................................................... 94
14. PARALLEL_ADD (Parallelle opteller) IP Core…………………………………………………….. 95 14.1. Kenmerk …………………………………………………………………………………….95 14.2. Verilog HDL-prototype……………………………………………………………………..95 14.3. VHDL-bestanddeelverklaring…………………………………………………………… 96 14.4. VHDL LIBRARY_USE Verklaring……………………………………………………………96 14.5. Havens................................................................................................................. 96 14.6. Parameters.......................................................................................................................... 97
15. Gebruikershandleiding voor gehele rekenkundige IP-kernen Documentarchieven…………………………… 98
16. Documentrevisiegeschiedenis voor Intel FPGA Integer Arithmetic IP Cores Gebruikershandleiding…. 99
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 4
Feedback verzenden
683490 | 2020.10.05 Feedback verzenden
1. Intel FPGA integer rekenkundige IP-kernen
U kunt de Intel® FPGA integer IP-kernen gebruiken om wiskundige bewerkingen in uw ontwerp uit te voeren.
Deze functies bieden een efficiëntere logische synthese en apparaatimplementatie dan het coderen van uw eigen functies. U kunt de IP-kernen aanpassen aan uw ontwerpvereisten.
Intel rekenkundige IP-kernen met gehele getallen zijn onderverdeeld in de volgende twee categorieën: · Bibliotheek met geparametriseerde modules (LPM) IP-kernen · Intel-specifieke (ALT) IP-kernen
De volgende tabel bevat de rekenkundige IP-kernen met gehele getallen.
Tabel 1.
Lijst met IP-kernen
IP-kernen
LPM IP-kernen
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Intel-specifieke (ALT) IP-kernen ALTECC
Functie voorbijview Tellerverdelervermenigvuldiger
Opteller of aftrekker Comparator
ECC-encoder/decoder
Ondersteund apparaat
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel Cycloon 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cycloon IV E, Cycloon IV GX,
Cycloon 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, Cycloon IV E, Cycloon IV GX,
Cycloon 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, Cycloon IV E, Cycloon IV GX, Cycloon V, Intel Cycloon 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Cycloon IV E, Cycloon IV GX, Cycloon V, Intel Cycloon 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cycloon IV E, Cycloon IV GX,
Cycloon V, Intel Cycloon 10 LP, Intel Cycloon 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V vervolg…
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
1. Intel FPGA geheel getal rekenkundige IP-kernen 683490 | 2020.10.05
IP-kernen Intel FPGA Multiply Adder of ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD
Functie voorbijview Vermenigvuldiger-opteller
Op geheugen gebaseerde constante coëfficiëntvermenigvuldiger
Vermenigvuldiger-accumulator Vermenigvuldiger-opteller
Complexe vermenigvuldiger
Geheel vierkantswortel
Parallelle opteller
Ondersteund apparaat
Arria V, Stratix V, Cycloon V, Intel Stratix 10, Intel Arria 10, Intel Cycloon
10GX
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
Cycloon 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Cycloon IV E, Cycloon IV GX, Intel Cycloon 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Cycloon IV E, Cycloon IV GX, Intel Cycloon 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, Cycloon IV E, Cycloon IV GX, Cycloon V, Intel
Cycloon 10 GX, Intel Cycloon 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cycloon IV E, Cycloon IV GX,
Cycloon V, Intel Cycloon 10 LP, Intel Cycloon 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cycloon IV E, Cycloon IV GX,
Cycloon V, Intel Cycloon 10 LP, Intel Cycloon 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Gerelateerde informatie
· Releaseopmerkingen over Intel FPGA's en programmeerbare apparaten
· Inleiding tot Intel FPGA IP Cores Biedt meer informatie over Intel FPGA IP Cores.
· Gebruikershandleiding voor Floating-Point IP-kernen Biedt meer informatie over Intel FPGA Floating-Point IP-kernen.
· Inleiding tot Intel FPGA IP-cores Biedt algemene informatie over alle Intel FPGA IP-cores, inclusief het parametriseren, genereren, upgraden en simuleren van IP-cores.
· Versie-onafhankelijke IP- en Qsys-simulatiescripts maken Maak simulatiescripts die geen handmatige updates voor software- of IP-versie-upgrades vereisen.
· Projectmanagement Best Practices-richtlijnen voor efficiënt beheer en overdraagbaarheid van uw project en IP files.
· Gebruikershandleiding voor Integer Arithmetic IP-kernen Documentarchieven op pagina 98 Biedt een lijst met gebruikershandleidingen voor eerdere versies van de Integer Arithmetic IP-kernen.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 6
Feedback verzenden
683490 | 2020.10.05 Feedback verzenden
2. LPM_COUNTER (teller) IP-kern
Figuur 1.
De LPM_COUNTER IP-kern is een binaire teller die optellers, aftellers en op- of aftellers creëert met uitgangen tot 256 bits breed.
De volgende afbeelding toont de poorten voor de LPM_COUNTER IP-kern.
LPM_COUNTER Poorten
LPM_COUNTER
ssclr sset-gegevens laden[]
Q[]
op neer
boer
aclr laad aset
clk_nl cnt_nl cin
inst
2.1. Kenmerken
De LPM_COUNTER IP-kern biedt de volgende functies: · Genereert op-, af- en op/af-tellers · Genereert de volgende tellertypen:
— Gewoon binair: de teller loopt op vanaf nul of neemt af vanaf 255
— Modulus: de teller wordt verhoogd of verlaagd vanaf de door de gebruiker opgegeven moduluswaarde en wordt herhaald
· Ondersteunt optionele synchrone clear-, load- en set-invoerpoorten · Ondersteunt optionele asynchrone clear-, load- en set-invoerpoorten · Ondersteunt optionele count enable- en clock enable-invoerpoorten · Ondersteunt optionele carry-in- en carry-out-poorten
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
2. LPM_COUNTER (teller) IP-kern
683490 | 2020.10.05
2.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module lpm_counter (q, data, klok, 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 = “ONGEBRUIKT”; parameter lpm_avalue = “ONGEBRUIKT”; parameter lpm_svalue = “ONGEBRUIKT”; parameter lpm_pvalue = “ONGEBRUIKT”; parameter lpm_port_updown = “POORT_CONNECTIVITEIT”; parameter lpm_hint = “ONGEBRUIKT”; uitvoer [lpm_width-1:0] q; uitgang; uitgang [15:0] eq; invoer cin; voer [lpm_width-1:0] gegevens in; invoerklok, clk_en, cnt_en, omhoog; invoer aset, aclr, aload; invoer sset, sclr, sload; eindmodule
2.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) LPM_PACK.vhd in de bibliothekenvhdllpm map.
component LPM_COUNTER generiek ( LPM_WIDTH : natuurlijk; LPM_MODULUS : natuurlijk := 0; LPM_DIRECTION : string := “UNUSED”; LPM_AVALUE : string := “UNUSED”; LPM_SVALUE : string := “UNUSED”; LPM_PORT_UPDOWN : string := “PORT_CONNECTIVITY” ; LPM_PVALUE: string:= “ONGEBRUIKT”; LPM_TYPE: string:= L_COUNTER; LPM_HINT: string:= “ONGEBRUIKT”); poort (DATA: in std_logic_vector(LPM_WIDTH-1 tot 0):= (OTHERS =>
'0'); KLOK: in std_logic; CLK_EN: in std_logic := '1'; CNT_EN: in std_logic := '1'; UPDOWN: in std_logic:= '1'; SLOAD: in std_logic:= '0'; SSET: in std_logic:= '0'; SCLR: in std_logic:= '0'; ALOAD: in std_logic:= '0'; ASET: in std_logic:= '0'; ACLR: in std_logic:= '0'; CIN: in std_logic:= '1'; COUT: uit std_logic:= '0'; Q: uit std_logic_vector(LPM_WIDTH-1 tot 0); EQ: out std_logic_vector(15 tot 0));
eindcomponent;
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 8
Feedback verzenden
2. LPM_COUNTER (teller) IP Core 683490 | 2020.10.05
2.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK lpm; GEBRUIK lpm.lpm_components.all;
2.5. Havens
In de volgende tabellen worden de invoer- en uitvoerpoorten voor de LPM_COUNTER IP-kern vermeld.
Tabel 2.
LPM_COUNTER Invoerpoorten
Havennaam
Vereist
Beschrijving
gegevens[]
Nee
Parallelle gegevensinvoer naar de teller. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTH.
klok
Ja
Klokingang met positieve flank.
clk_nl
Nee
Klokinvoer om alle synchrone activiteiten in te schakelen. Als u dit weglaat, is de standaardwaarde 1.
cnt_nl
Nee
Invoer voor telling inschakelen om de telling uit te schakelen wanneer deze laag wordt beweerd, zonder dat dit invloed heeft op sload, sset of sclr. Als u dit weglaat, is de standaardwaarde 1.
op neer
Nee
Regelt de richting van de telling. Wanneer hoog (1) wordt beweerd, is de telrichting omhoog, en wanneer laag (0) wordt beweerd, is de telrichting omlaag. Als de parameter LPM_DIRECTION wordt gebruikt, kan de updown-poort niet worden aangesloten. Als LPM_DIRECTION niet wordt gebruikt, is de updown-poort optioneel. Als u dit weglaat, is de standaardwaarde hoger (1).
kan
Nee
Doorgaan naar het lage-orde bit. Voor optellers is het gedrag van de cin-ingang:
identiek aan het gedrag van de cnt_en-invoer. Als u dit weglaat, is de standaardwaarde 1
(VCC-nummer).
aclr
Nee
Asynchrone duidelijke invoer. Als zowel aset als aclr worden gebruikt en bevestigd, overschrijft aclr aset. Als u dit weglaat, is de standaardwaarde 0 (uitgeschakeld).
een bezit
Nee
Asynchrone ingestelde invoer. Specificeert de q[]-uitvoer als allemaal 1s, of met de waarde die is opgegeven door de parameter LPM_AVALUE. Als zowel de aset- als de aclr-poort worden gebruikt en bevestigd, overschrijft de waarde van de aclr-poort de waarde van de aset-poort. Indien weggelaten, is de standaardwaarde 0, uitgeschakeld.
een lading
Nee
Asynchrone laadinvoer die de teller asynchroon laadt met de waarde op de data-invoer. Wanneer de aload-poort wordt gebruikt, moet de data[]-poort zijn aangesloten. Indien weggelaten, is de standaardwaarde 0, uitgeschakeld.
sclr
Nee
Synchrone clear-ingang die de teller op de volgende actieve klokflank wist. Als zowel de sset- als de sclr-poort worden gebruikt en bevestigd, overschrijft de waarde van de sclr-poort de waarde van de sset-poort. Indien weggelaten, is de standaardwaarde 0, uitgeschakeld.
set
Nee
Synchrone set-ingang die de teller op de volgende actieve klokflank zet. Specificeert de waarde van de q-uitgangen als allemaal 1-en, of als de waarde die is opgegeven door de parameter LPM_SVALUE. Als zowel de sset- als de sclr-poorten worden gebruikt en bevestigd,
de waarde van de sclr-poort overschrijft de waarde van de sset-poort. Als u dit weglaat, is de standaardwaarde 0 (uitgeschakeld).
slokken
Nee
Synchrone laadingang die de teller laadt met data[] op de volgende actieve klokflank. Wanneer de sload-poort wordt gebruikt, moet de data[]-poort worden aangesloten. Als u dit weglaat, is de standaardwaarde 0 (uitgeschakeld).
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 9
2. LPM_COUNTER (teller) IP Core 683490 | 2020.10.05
Tabel 3.
LPM_COUNTER Uitvoerpoorten
Havennaam
Vereist
Beschrijving
Q[]
Nee
Gegevensuitvoer van de teller. De grootte van de uitgangspoort is afhankelijk van de
Parameterwaarde LPM_WIDTH. Ofwel q[] of ten minste één van de eq[15..0]-poorten
moet zijn aangesloten.
eq[15..0]
Nee
Tellerdecodeeruitgang. De eq[15..0]-poort is niet toegankelijk in de parametereditor omdat de parameter alleen AHDL ondersteunt.
De q[]-poort of de eq[]-poort moet zijn aangesloten. Er kunnen maximaal c eq-poorten worden gebruikt (0 <= c <= 15). Alleen de 16 laagste telwaarden worden gedecodeerd. Wanneer de telwaarde c is, wordt de eqc-uitvoer hoog verklaard (1). Bijvoorbeeldample, als de telling 0 is, eq0 = 1, als de telling 1 is, eq1 = 1, en als de telling 15 is, eq 15 = 1. Gedecodeerde uitvoer voor telwaarden van 16 of hoger vereist externe decodering. De eq[15..0]-uitgangen zijn asynchroon met de q[]-uitgang.
boer
Nee
Carry-out-poort van de MSB-bit van de teller. Het kan worden gebruikt om verbinding te maken met een andere balie om een grotere balie te creëren.
2.6. parameters
De volgende tabel bevat de parameters voor de LPM_COUNTER IP-kern.
Tabel 4.
LPM_COUNTER-parameters
Parameternaam
Type
LPM_WIDTH
Geheel getal
LPM_DIRECTION
Snaar
LPM_MODULUS LPM_AVALUE
Geheel getal
Geheel getal/tekenreeks
LPM_SVALUE LPM_HINT
Geheel getal/tekenreeks
Snaar
LPM_TYPE
Snaar
Verplicht Ja Nee Nee Nee
Nee Nee
Nee
Beschrijving
Specificeert de breedte van de data[]- en q[]-poorten, als deze worden gebruikt.
Waarden zijn UP, DOWN en UNUSED. Als de parameter LPM_DIRECTION wordt gebruikt, kan de updown-poort niet worden aangesloten. Wanneer de updown-poort niet is aangesloten, is de standaardwaarde van de parameter LPM_DIRECTION UP.
Het maximale aantal, plus één. Aantal unieke toestanden in de cyclus van de teller. Als de belastingswaarde groter is dan de parameter LPM_MODULUS, wordt het gedrag van de teller niet gespecificeerd.
Constante waarde die wordt geladen wanneer een set hoog wordt beweerd. Als de opgegeven waarde groter is dan of gelijk is aan , het gedrag van de teller is een ongedefinieerd (X) logisch niveau, waarbij is LPM_MODULUS, indien aanwezig, of 2 ^ LPM_WIDTH. Intel raadt u aan deze waarde op te geven als een decimaal getal voor AHDL-ontwerpen.
Constante waarde die wordt geladen op de stijgende flank van de klokpoort wanneer de sset-poort hoog wordt beweerd. Intel raadt u aan deze waarde op te geven als een decimaal getal voor AHDL-ontwerpen.
Wanneer u een bibliotheek met geparametriseerde modules (LPM)-functie instantiëert in een VHDL-ontwerp File (.vhd), moet u de parameter LPM_HINT gebruiken om een Intel-specifieke parameter op te geven. Bijvoorbeeldampbestand: LPM_HINT = “CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = JA”
De standaardwaarde is ONGEBRUIKT.
Identificeert de entiteitsnaam van de bibliotheek met geparametriseerde modules (LPM) in VHDL-ontwerp files.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 10
Feedback verzenden
2. LPM_COUNTER (teller) IP Core 683490 | 2020.10.05
Parameternaam INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Typ Tekenreeks Tekenreeks
Snaar
Snaar
Vereist Nee Nee
Nee
Nee
Beschrijving
Deze parameter wordt gebruikt voor modellering en gedragssimulatiedoeleinden. Deze parameter wordt gebruikt voor modellering en gedragssimulatiedoeleinden. De parametereditor berekent de waarde voor deze parameter.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter CARRY_CNT_EN in VHDL-ontwerp op te geven fileS. Waarden zijn SMART, ON, OFF en UNUSED. Schakelt de functie LPM_COUNTER in om het cnt_en-signaal door de carry-keten te verspreiden. In sommige gevallen kan de CARRY_CNT_EN parameterinstelling een kleine invloed hebben op de snelheid, dus misschien wilt u deze uitschakelen. De standaardwaarde is SMART, wat de beste balans biedt tussen grootte en snelheid.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter LABWIDE_SCLR in VHDL-ontwerp op te geven fileS. Waarden zijn AAN, UIT of ONGEBRUIKT. De standaardwaarde is AAN. Hiermee kunt u het gebruik van de LABwide sclr-functie uitschakelen die aanwezig is in verouderde apparaatfamilies. Als u deze optie uitschakelt, vergroot u de kans dat de gedeeltelijk gevulde LAB's volledig worden gebruikt, en kan dus een hogere logische dichtheid mogelijk zijn wanneer SCLR niet van toepassing is op een volledig LAB. Deze parameter is beschikbaar voor achterwaartse compatibiliteit en Intel raadt u aan deze parameter niet te gebruiken.
Specificeert het gebruik van de updown-invoerpoort. Indien weggelaten is de standaardwaarde PORT_CONNECTIVITY. Wanneer de poortwaarde is ingesteld op PORT_USED, wordt de poort behandeld als gebruikt. Wanneer de poortwaarde is ingesteld op PORT_UNUSED, wordt de poort als ongebruikt beschouwd. Wanneer de poortwaarde is ingesteld op PORT_CONNECTIVITY, wordt het poortgebruik bepaald door de poortconnectiviteit te controleren.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 11
683490 | 2020.10.05 Feedback verzenden
3. LPM_DIVIDE (verdeler) Intel FPGA IP Core
Figuur 2.
De LPM_DIVIDE Intel FPGA IP-kern implementeert een deler om een tellerinvoerwaarde te delen door een noemerinvoerwaarde om een quotiënt en een rest te produceren.
De volgende afbeelding toont de poorten voor de LPM_DIVIDE IP-kern.
LPM_DIVIDE-poorten
LPM_DIVIDE
numer[] denom[] klok
quotiënt[] blijven[]
klken acr
inst
3.1. Kenmerken
De LPM_DIVIDE IP-kern biedt de volgende functies: · Genereert een deler die een tellerinvoerwaarde deelt door een noemerinvoer
waarde om een quotiënt en een rest te produceren. · Ondersteunt een databreedte van 1 bits. · Ondersteunt ondertekende en niet-ondertekende gegevensweergaveformaten voor zowel de teller
en noemerwaarden. · Ondersteunt oppervlakte- of snelheidsoptimalisatie. · Biedt een optie om een positieve restuitvoer op te geven. · Ondersteunt configureerbare uitvoerlatentie door pipelining. · Ondersteunt optionele asynchrone clear- en clock-enable-poorten.
3.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module lpm_divide (quotiënt, blijven, numer, denom, klok, clken, aclr); parameter lpm_type = “lpm_divide”; parameter lpm_widthn = 1; parameter lpm_widthd = 1; parameter lpm_nrepresentation = “NIET ONDERTEKEND”; parameter lpm_drepresentation = “NIET ONDERTEKEND”; parameter lpm_remainderpositive = “TRUE”; parameter lpm_pipeline = 0;
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
3. LPM_DIVIDE (verdeler) Intel FPGA IP Core 683490 | 2020.10.05
parameter lpm_hint = “ONGEBRUIKT”; ingangsklok; invoer clken; invoer aclr; voer [lpm_widthn-1:0] getal in; invoer [lpm_widthd-1:0] denom; uitvoer [lpm_widthn-1:0] quotiënt; uitvoer [lpm_widthd-1:0] blijft; eindmodule
3.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) LPM_PACK.vhd in de bibliothekenvhdllpm map.
component LPM_DIVIDE generiek (LPM_WIDTHN: natuurlijk; LPM_WIDTHD: natuurlijk;
LPM_NREPRESENTATION: string:= “NIET ONDERTEKEND”; LPM_DREPRESENTATION: string:= “NIET ONDERTEKEND”; LPM_PIPELINE: natuurlijk:= 0; LPM_TYPE: tekenreeks:= L_DIVIDE; LPM_HINT: string:= “ONGEBRUIKT”); poort (NUMER: in std_logic_vector(LPM_WIDTHN-1 tot 0); DENOM: in std_logic_vector(LPM_WIDTHD-1 tot 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; QUOTIENT: uit std_logic_vector(LPM_WIDTHN-1 naar beneden naar 0)); eindcomponent;
3.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK lpm; GEBRUIK lpm.lpm_components.all;
3.5. Havens
De volgende tabellen vermelden de invoer- en uitvoerpoorten voor de LPM_DIVIDE IP-kern.
Tabel 5.
LPM_DIVIDE Invoerpoorten
Havennaam
Vereist
nummer[]
Ja
denominatie[]
Ja
Beschrijving
Tellergegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTHN.
Noemergegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTHD.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 13
3. LPM_DIVIDE (verdeler) Intel FPGA IP Core 683490 | 2020.10.05
Poortnaam klok clken
aclr
Vereist Nee Nee
Nee
Beschrijving
Klokinvoer voor pijplijngebruik. Voor andere LPM_PIPELINE-waarden dan 0 (standaard) moet de klokpoort zijn ingeschakeld.
Klok maakt pijplijngebruik mogelijk. Wanneer de clken-poort hoog wordt gesteld, vindt de delingsoperatie plaats. Wanneer het signaal laag is, vindt er geen werking plaats. Als u dit weglaat, is de standaardwaarde 1.
Asynchrone clear-poort die op elk moment kan worden gebruikt om de pijplijn asynchroon met de klokingang opnieuw in te stellen op alle '0's.
Tabel 6.
LPM_DIVIDE Uitvoerpoorten
Havennaam
Vereist
Beschrijving
quotiënt[]
Ja
Gegevensuitvoer. De grootte van de uitvoerpoort is afhankelijk van de LPM_WIDTHN
parameterwaarde.
blijven[]
Ja
Gegevensuitvoer. De grootte van de uitvoerpoort is afhankelijk van de LPM_WIDTHD
parameterwaarde.
3.6. parameters
De volgende tabel bevat de parameters voor de LPM_DIVIDE Intel FPGA IP-kern.
Parameternaam
Type
Vereist
Beschrijving
LPM_WIDTHN
Geheel getal
Ja
Specificeert de breedte van het getal[] en
quotiënt[] poorten. Waarden zijn 1 tot 64.
LPM_WIDHD
Geheel getal
Ja
Specificeert de breedte van de denom[] en
blijven [] poorten. Waarden zijn 1 tot 64.
LPM_NREPRESENTATIE LPM_DREPRESENTATIE
Tekenreeks Tekenreeks
Nee
Tekenweergave van de tellerinvoer.
Waarden zijn SIGNED en UNSIGNED. Wanneer dit
parameter is ingesteld op SIGNED, de deler
interpreteert de numer[]-invoer als twee-tekens
aanvulling.
Nee
Tekenweergave van de noemerinvoer.
Waarden zijn SIGNED en UNSIGNED. Wanneer dit
parameter is ingesteld op SIGNED, de deler
interpreteert de invoer denom[] als ondertekende tweeën
aanvulling.
LPM_TYPE
Snaar
Nee
Identificeert de bibliotheek met geparametriseerde
modules (LPM) entiteitsnaam in VHDL-ontwerp
files (.vhd).
LPM_HINT
Snaar
Nee
Wanneer u een bibliotheek van
geparametriseerde modules (LPM) functioneren in a
VHDL-ontwerp File (.vhd), moet u de
LPM_HINT-parameter om een Intel-
specifieke parameter. Bijvoorbeeldampbestand: LPM_HINT
= “KETEN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = JA” De
de standaardwaarde is ONGEBRUIKT.
LPM_REMAINDERPOSITIVE
Snaar
Nee
Intel-specifieke parameter. Je moet gebruik maken van de
LPM_HINT-parameter om de
LPM_REMAINDERPOSITIVE-parameter in
VHDL-ontwerp fileS. Waarden zijn WAAR of ONWAAR.
Als deze parameter is ingesteld op TRUE, wordt de
waarde van de rest[]-poort moet groter zijn
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 14
Feedback verzenden
3. LPM_DIVIDE (verdeler) Intel FPGA IP Core 683490 | 2020.10.05
Parameternaam
Type
MAXIMIZE_SNELHEID
Geheel getal
LPM_PIPELINE
Geheel getal
INTENDED_DEVICE_FAMILY SKIP_BITS
Tekenreeks geheel getal
Vereist nr
Nee Nee Nee
Beschrijving
dan of gelijk aan nul. Als deze parameter is ingesteld op TRUE, is de waarde van de rest[]-poort nul, of is de waarde hetzelfde teken, positief of negatief, als de waarde van de numerieke poort. Om de oppervlakte te verkleinen en de snelheid te verbeteren, raadt Intel aan deze parameter op TRUE in te stellen bij bewerkingen waarbij de rest positief moet zijn of waarbij de rest onbelangrijk is.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter MAXIMIZE_SPEED op te geven in het VHDL-ontwerp fileS. Waarden zijn [0..9]. Indien gebruikt, probeert de Intel Quartus Prime-software een specifiek exemplaar van de LPM_DIVIDE-functie te optimaliseren voor snelheid in plaats van routeerbaarheid, en overschrijft het de instelling van de logica-optie Optimization Technique. Als MAXIMIZE_SPEED ongebruikt is, wordt in plaats daarvan de waarde van de Optimization Technique-optie gebruikt. Als de waarde van MAXIMIZE_SPEED 6 of hoger is, optimaliseert de compiler de LPM_DIVIDE IP-kern voor hogere snelheid door gebruik te maken van carry-chains; als de waarde 5 of minder is, implementeert de compiler het ontwerp zonder carry-ketens.
Specificeert het aantal klokcycli van latentie geassocieerd met de quotiënt[] en rest[] uitgangen. Een waarde nul (0) geeft aan dat er geen latentie bestaat en dat er een puur combinatorische functie wordt geïnstantieerd. Als u dit weglaat, is de standaardwaarde 0 (niet-gepipelined). U kunt geen waarde opgeven voor de parameter LPM_PIPELINE die hoger is dan LPM_WIDTHN.
Deze parameter wordt gebruikt voor modellering en gedragssimulatiedoeleinden. De parametereditor berekent de waarde voor deze parameter.
Maakt een efficiëntere fractionele bitverdeling mogelijk om de logica op de leidende bits te optimaliseren door het aantal leidende GND aan de LPM_DIVIDE IP-kern te leveren. Specificeer het aantal leidende GND op de quotiëntuitvoer voor deze parameter.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 15
683490 | 2020.10.05 Feedback verzenden
4. LPM_MULT (vermenigvuldiger) IP-kern
Figuur 3.
De LPM_MULT IP-kern implementeert een vermenigvuldiger om twee invoergegevenswaarden te vermenigvuldigen om een product als uitvoer te produceren.
De volgende afbeelding toont de poorten voor de LPM_MULT IP-kern.
LPM_Mult-poorten
LPM_MULT klokdataa[] resultaat[] datab[] aclr/sclr clken
inst
Gerelateerde informatie Functies op pagina 71
4.1. Kenmerken
De LPM_MULT IP-kern biedt de volgende functies: · Genereert een vermenigvuldiger die twee invoergegevenswaarden vermenigvuldigt · Ondersteunt een gegevensbreedte van 1 bits · Ondersteunt ondertekende en niet-ondertekende gegevensweergaveformaten · Ondersteunt oppervlakte- of snelheidsoptimalisatie · Ondersteunt pipelining met configureerbare uitvoerlatentie · Biedt een optie voor implementatie in speciale digitale signaalverwerking (DSP)
blokcircuits of logische elementen (LE's) Opmerking: bij het bouwen van vermenigvuldigers die groter zijn dan de standaard ondersteunde grootte, kunnen/
zal een prestatie-impact zijn als gevolg van de cascadering van de DSP-blokken. · Ondersteunt optionele asynchrone clear- en clock-enable-invoerpoorten · Ondersteunt optionele synchroon clear voor Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
4. LPM_MULT (vermenigvuldiger) IP-kern 683490 | 2020.10.05
4.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module lpm_mult (resultaat, dataa, datab, som, klok, 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 = “NIET ONDERTEKEND”; parameter lpm_pipeline = 0; parameter lpm_hint = “ONGEBRUIKT”; ingangsklok; invoer clken; invoer aclr; invoer [lpm_widtha-1:0] gegevensa; voer [lpm_widthb-1:0] datab in; voer [lpm_widths-1:0] som in; uitvoer [lpm_widthp-1:0] resultaat; eindmodule
4.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) LPM_PACK.vhd in de bibliothekenvhdllpm map.
component LPM_MULT generiek ( LPM_WIDTHA: natuurlijk; LPM_WIDTHB: natuurlijk; LPM_WIDTHS: natuurlijk:= 1; LPM_WIDTHP: natuurlijk;
LPM_REPRESENTATION: string:= “NIET ONDERTEKEND”; LPM_PIPELINE: natuurlijk:= 0; LPM_TYPE: tekenreeks:= L_MULT; LPM_HINT: string:= “ONGEBRUIKT”); poort (DATAA: in std_logic_vector(LPM_WIDTHA-1 tot 0); DATAB: in std_logic_vector(LPM_WIDTHB-1 tot 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; SOM: in std_logic_vector(LPM_WIDTHS-1 tot 0) := (ANDEREN => '0' RESULTAAT: uit std_logic_vector(LPM_WIDTHP-1 tot 0)); eindcomponent;
4.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK lpm; GEBRUIK lpm.lpm_components.all;
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 17
4. LPM_MULT (vermenigvuldiger) IP-kern 683490 | 2020.10.05
4.5. Signalen
Tabel 7.
LPM_MULT Ingangssignalen
Signaalnaam
Vereist
Beschrijving
gegevens[]
Ja
Gegevensinvoer.
Voor Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten hangt de grootte van het ingangssignaal af van de Dataa-breedteparameterwaarde.
Voor oudere apparaten en Intel Cyclone 10 LP-apparaten hangt de grootte van het ingangssignaal af van de parameterwaarde LPM_WIDTHA.
gegevensbestand[]
Ja
Gegevensinvoer.
Voor Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten hangt de grootte van het ingangssignaal af van de waarde van de Datab-breedteparameter.
Voor oudere en Intel Cyclone 10 LP-apparaten is de grootte van het ingangssignaal afhankelijk
op de parameterwaarde LPM_WIDTHB.
klok
Nee
Klokinvoer voor pijplijngebruik.
Voor oudere apparaten en Intel Cyclone 10 LP-apparaten moet het kloksignaal zijn ingeschakeld voor andere LPM_PIPELINE-waarden dan 0 (standaard).
Voor Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten moet het kloksignaal worden ingeschakeld als de latentiewaarde anders is dan 1 (standaard).
klken
Nee
Klok inschakelen voor pijplijngebruik. Wanneer het clken-signaal hoog wordt beweerd, wordt de
Er vindt een optel-/aftrekkerbewerking plaats. Wanneer het signaal laag is, geen werking
komt voor. Als u dit weglaat, is de standaardwaarde 1.
aclr sclr
Nee
Asynchroon clear-signaal dat op elk moment kan worden gebruikt om de pijplijn opnieuw in te stellen op nul,
asynchroon met het kloksignaal. De pijplijn wordt geïnitialiseerd naar een ongedefinieerde (X)
logisch niveau. De uitvoer is consistent, maar niet nul.
Nee
Synchronisch helder signaal dat op elk moment kan worden gebruikt om de pijplijn opnieuw op nul te zetten,
synchroon met het kloksignaal. De pijplijn wordt geïnitialiseerd naar een ongedefinieerde (X)
logisch niveau. De uitvoer is consistent, maar niet nul.
Tabel 8.
LPM_MULT Uitgangssignalen
signaal Naam
Vereist
Beschrijving
resultaat[]
Ja
Gegevensuitvoer.
Voor oudere apparaten en Intel Cyclone 10 LP-apparaten hangt de grootte van het uitgangssignaal af van de parameterwaarde LPM_WIDTHP. Als LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) of (LPM_WIDTHA + LPM_WIDTHS), zijn alleen de LPM_WIDTHP MSB's aanwezig.
Voor Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX hangt de grootte van de uitgangssignalen af van de parameter Resultaatbreedte.
4.6. Parameters voor Stratix V-, Arria V-, Cyclone V- en Intel Cyclone 10 LP-apparaten
4.6.1. Algemeen tabblad
Tabel 9.
Tabblad Algemeen
Parameter
Waarde
Vermenigvuldigerconfiguratie
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Standaardwaarde
Beschrijving
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Selecteer de gewenste configuratie voor de vermenigvuldiger.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 18
Feedback verzenden
4. LPM_MULT (vermenigvuldiger) IP-kern 683490 | 2020.10.05
Parameter
Hoe breed moet de 'dataa'-invoer zijn? Hoe breed moet de 'datab'-invoer zijn? Hoe moet de breedte van de 'resultaat'-uitvoer worden bepaald? Beperk de breedte
Waarde
Vermenigvuldig 'dataa'-invoer met zichzelf (kwadraatbewerking)
1 – 256 bits
Standaardwaarde
Beschrijving
8-bits
Specificeer de breedte van de dataa[]-poort.
1 – 256 bits
8-bits
Specificeer de breedte van de datab[]-poort.
Bereken automatisch de breedte. Beperk de breedte
1 – 512 bits
Bereken automatisch de breedte
Selecteer de gewenste methode om de breedte van de result[]-poort te bepalen.
16-bits
Specificeer de breedte van de result[]-poort.
Deze waarde is alleen effectief als u Beperk de breedte selecteert in de parameter Type.
4.6.2. Algemeen 2 Tab
Tabel 10. Algemeen 2 Tab
Parameter
Waarde
Datab-invoer
Heeft de 'datab'-invoerbus een constante waarde?
Nee Ja
Vermenigvuldigingstype
Welk type
Niet ondertekend
vermenigvuldigen wil je? Ondertekend
Uitvoering
Welke vermenigvuldigingsimplementatie moet worden gebruikt?
Gebruik de standaardimplementatie
Gebruik het speciale vermenigvuldigingscircuit (niet beschikbaar voor alle gezinnen)
Gebruik logische elementen
Standaardwaarde
Beschrijving
Nee
Selecteer Ja om de constante waarde van de op te geven
`datab'-invoerbus, indien aanwezig.
Niet ondertekend
Geef het representatieformaat op voor zowel dataa[]- als datab[]-invoer.
Gebruik de standaardimplementatie
Selecteer de gewenste methode om de breedte van de result[]-poort te bepalen.
4.6.3. Tabblad Pipelining
Tabel 11. Tabblad Pipelining
Parameter
Wilt u de nr
functie?
Ja
Waarde
Maak een 'aclr' aan
—
asynchrone duidelijke poort
Standaardwaarde
Beschrijving
Nee
Selecteer Ja om pijplijnregistratie in te schakelen voor de
de uitvoer van de vermenigvuldiger en specificeer het gewenste
uitgangslatentie in klokcyclus. Het inschakelen van de
pijplijnregister voegt extra latentie toe aan de
uitvoer.
Ongecontroleerd
Selecteer deze optie om ervoor te zorgen dat de aclr-poort asynchroon wissen gebruikt voor het pijplijnregister.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 19
4. LPM_MULT (vermenigvuldiger) IP-kern 683490 | 2020.10.05
Parameter
Maak een 'clken'-klok-inschakelklok
Optimalisatie
Welk type optimalisatie wilt u?
Waarde -
Standaard snelheidsgebied
Standaardwaarde
Beschrijving
Ongecontroleerd
Specificeert actieve hoge klokinschakeling voor de klokpoort van het pijplijnregister
Standaard
Geef de gewenste optimalisatie voor de IP-kern op.
Selecteer Standaard om Intel Quartus Prime-software de beste optimalisatie voor de IP-kern te laten bepalen.
4.7. Parameters voor Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten
4.7.1. Algemeen tabblad
Tabel 12. Tabblad Algemeen
Parameter
Waarde
Standaardwaarde
Beschrijving
Configuratietype vermenigvuldiger
Datapoortbreedtes
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Vermenigvuldig 'dataa'-invoer met zichzelf (kwadraatbewerking)
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Selecteer de gewenste configuratie voor de vermenigvuldiger.
Gegevensbreedte
1 – 256 bits
8-bits
Specificeer de breedte van de dataa[]-poort.
Datab-breedte
1 – 256 bits
8-bits
Specificeer de breedte van de datab[]-poort.
Hoe moet de breedte van de 'resultaat'-uitvoer worden bepaald?
Type
Bereken automatisch de breedte
Beperk de breedte
Bereken automatisch de breedte
Selecteer de gewenste methode om de breedte van de result[]-poort te bepalen.
Waarde
1 – 512 bits
16-bits
Specificeer de breedte van de result[]-poort.
Deze waarde is alleen effectief als u Beperk de breedte selecteert in de parameter Type.
Resultaat breedte
1 – 512 bits
—
Toont de effectieve breedte van de result[]-poort.
4.7.2. Algemeen 2 Tab
Tabel 13. Algemeen 2 Tab
Parameter
Datab-invoer
Heeft de 'datab'-invoerbus een constante waarde?
Nee Ja
Waarde
Standaardwaarde
Beschrijving
Nee
Selecteer Ja om de constante waarde van de op te geven
`datab'-invoerbus, indien aanwezig.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 20
Feedback verzenden
4. LPM_MULT (vermenigvuldiger) IP-kern 683490 | 2020.10.05
Parameter
Waarde
Waarde
Elke waarde groter dan 0
Vermenigvuldigingstype
Welk type
Niet ondertekend
vermenigvuldigen wil je? Ondertekend
Implementatiestijl
Welke vermenigvuldigingsimplementatie moet worden gebruikt?
Gebruik de standaardimplementatie
Gebruik het speciale vermenigvuldigingscircuit
Gebruik logische elementen
Standaardwaarde
Beschrijving
0
Specificeer de constante waarde van datab[]-poort.
Niet ondertekend
Geef het representatieformaat op voor zowel dataa[]- als datab[]-invoer.
Gebruik de standaardimplementatie
Selecteer de gewenste methode om de breedte van de result[]-poort te bepalen.
4.7.3. Pijpleidingen
Tabel 14. Tabblad Pipelining
Parameter
Waarde
Wilt u de functie pijplijnen?
Pijpleiding
Nee Ja
Latentie Duidelijk signaaltype
Elke waarde groter dan 0.
GEEN ACLR SCLR
Maak een 'clken'-klok
—
klok inschakelen
Welk type optimalisatie wilt u?
Type
Standaard snelheidsgebied
Standaardwaarde
Beschrijving
Nee 1 GEEN
—
Selecteer Ja om pijplijnregistratie in te schakelen voor de uitvoer van de vermenigvuldiger. Het inschakelen van het pijplijnregister voegt extra latentie toe aan de uitvoer.
Specificeer de gewenste uitvoerlatentie in de klokcyclus.
Geef het type reset op voor het pijplijnregister. Selecteer GEEN als u geen pijplijnregister gebruikt. Selecteer ACLR om asynchroon wissen te gebruiken voor het pijplijnregister. Hierdoor wordt een ACLR-poort gegenereerd. Selecteer SCLR om synchroon wissen te gebruiken voor het pijplijnregister. Hierdoor wordt een SCLR-poort gegenereerd.
Specificeert actieve hoge klokinschakeling voor de klokpoort van het pijplijnregister
Standaard
Geef de gewenste optimalisatie voor de IP-kern op.
Selecteer Standaard om Intel Quartus Prime-software de beste optimalisatie voor de IP-kern te laten bepalen.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 21
683490 | 2020.10.05 Feedback verzenden
5. LPM_ADD_SUB (opteller/aftrekker)
Figuur 4.
Met de LPM_ADD_SUB IP-kern kunt u een opteller of een aftrekker implementeren om sets gegevens op te tellen of af te trekken om een uitvoer te produceren die de som of het verschil van de invoerwaarden bevat.
De volgende afbeelding toont de poorten voor de LPM_ADD_SUB IP-kern.
LPM_ADD_SUB-poorten
LPM_ADD_SUB add_sub cin
gegevens[]
klok clken datab[] aclr
resultaat[] overloop cout
inst
5.1. Kenmerken
De LPM_ADD_SUB IP-kern biedt de volgende functies: · Genereert opteller, aftrekker en dynamisch configureerbare opteller/aftrekker
functies. · Ondersteunt een databreedte van 1 bits. · Ondersteunt gegevensweergaveformaten zoals ondertekend en niet-ondertekend. · Ondersteunt optionele carry-in (lenen-uit), asynchroon wissen en klokinschakeling
invoerpoorten. · Ondersteunt optionele carry-out (lenen-in) en overflow-uitvoerpoorten. · Wijst een van de ingangsdatabussen toe aan een constante. · Ondersteunt pipelining met configureerbare uitvoerlatentie.
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
5. LPM_ADD_SUB (optellen/aftrekken) 683490 | 2020.10.05
5.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module lpm_add_sub (resultaat, cout, overflow,add_sub, cin, dataa, datab, clock, clken, aclr); parameter lpm_type = “lpm_add_sub”; parameter lpm_width = 1; parameter lpm_direction = “ONGEBRUIKT”; parameter lpm_representation = “ONDERTEKEND”; parameter lpm_pipeline = 0; parameter lpm_hint = “ONGEBRUIKT”; invoer [lpm_width-1:0] dataa, datab; voer add_sub, cin in; ingangsklok; invoer clken; invoer aclr; uitvoer [lpm_width-1:0] resultaat; uitgang cout, overloop; eindmodule
5.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) LPM_PACK.vhd in de bibliothekenvhdllpm map.
component LPM_ADD_SUB generiek (LPM_WIDTH: natuurlijk;
LPM_DIRECTION: string:= “ONGEBRUIKT”; LPM_REPRESENTATION: string := “ONDERTEKEND”; LPM_PIPELINE: natuurlijk:= 0; LPM_TYPE: tekenreeks:= L_ADD_SUB; LPM_HINT: string:= “ONGEBRUIKT”); poort (DATAA: in std_logic_vector(LPM_WIDTH-1 tot 0); DATAB: in std_logic_vector(LPM_WIDTH-1 tot 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; CIN: in std_logic:= 'Z'; in std_logic:= '1'; uit std_logic_vector(LPM_WIDTH-1 naar 0); eindcomponent;
5.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK lpm; GEBRUIK lpm.lpm_components.all;
5.5. Havens
De volgende tabellen vermelden de invoer- en uitvoerpoorten voor de LPM_ADD_SUB IP-kern.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 23
5. LPM_ADD_SUB (optellen/aftrekken) 683490 | 2020.10.05
Tabel 15. LPM_ADD_SUB IP-kerninvoerpoorten
Havennaam
Vereist
Beschrijving
kan
Nee
Doorgaan naar het lage-orde bit. Voor optelbewerkingen is de standaardwaarde 0. For
aftrekkingsbewerkingen is de standaardwaarde 1.
gegevens[]
Ja
Gegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTH.
gegevensbestand[]
Ja
Gegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTH.
voeg_sub toe
Nee
Optionele ingangspoort om dynamisch schakelen tussen opteller en aftrekker mogelijk te maken
functies. Als de parameter LPM_DIRECTION wordt gebruikt, kan add_sub niet worden gebruikt. Als
weggelaten, is de standaardwaarde ADD. Intel raadt u aan de
LPM_DIRECTION-parameter om de werking van de LPM_ADD_SUB-functie op te geven,
in plaats van een constante toe te wijzen aan de add_sub-poort.
klok
Nee
Invoer voor pijplijngebruik. De klokpoort levert de klokinvoer voor een pijplijn
operatie. Voor andere LPM_PIPELINE-waarden dan 0 (standaard) moet de klokpoort zijn
ingeschakeld.
klken
Nee
Klok inschakelen voor pijplijngebruik. Wanneer de clken-poort hoog wordt beweerd, wordt de opteller/
Er vindt een aftrekbewerking plaats. Wanneer het signaal laag is, vindt er geen werking plaats. Als
weggelaten, de standaardwaarde is 1.
aclr
Nee
Asynchroon wissen voor pijplijngebruik. De pijplijn wordt geïnitialiseerd naar een ongedefinieerde (X)
logisch niveau. De aclr-poort kan op elk moment worden gebruikt om de pijplijn opnieuw in te stellen op nullen,
asynchroon met het kloksignaal.
Tabel 16. LPM_ADD_SUB IP-kernuitvoerpoorten
Havennaam
Vereist
Beschrijving
resultaat[]
Ja
Gegevensuitvoer. De grootte van de uitvoerpoort is afhankelijk van de parameter LPM_WIDTH
waarde.
boer
Nee
Uitvoering (inlenen) van het meest significante bit (MSB). De cout-poort heeft een fysieke
interpretatie als de carry-out (lening-in) van de MSB. De cout-poort detecteert
overflow bij UNSIGNED-bewerkingen. De cout-poort werkt op dezelfde manier voor
SIGNED en UNSIGNED-bewerkingen.
overloop
Nee
Optionele overloopuitzonderingsuitgang. De overlooppoort heeft een fysieke interpretatie als
de XOR van de carry-in naar de MSB met de carry-out van de MSB. De overlooppoort
beweert wanneer de resultaten de beschikbare precisie overschrijden, en wordt alleen gebruikt wanneer de
De parameterwaarde LPM_REPRESENTATION is SIGNED.
5.6. parameters
De volgende tabel bevat de LPM_ADD_SUB IP-kernparameters.
Tabel 17. LPM_ADD_SUB IP-kernparameters
Parameternaam LPM_WIDTH
Typ geheel getal
Vereist Ja
Beschrijving
Specificeert de breedte van de dataa[]-, datab[]- en result[]-poorten.
LPM_DIRECTION
Snaar
Nee
Waarden zijn ADD, SUB en UNUSED. Als u dit weglaat, is de standaardwaarde DEFAULT, waardoor de parameter de waarde van de add_sub-poort overneemt. De add_sub-poort kan niet worden gebruikt als LPM_DIRECTION wordt gebruikt. Intel raadt u aan de parameter LPM_DIRECTION te gebruiken om de werking van de functie LPM_ADD_SUB te specificeren, in plaats van een constante toe te wijzen aan de add_sub-poort.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 24
Feedback verzenden
5. LPM_ADD_SUB (optellen/aftrekken) 683490 | 2020.10.05
Parameternaam LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Type Tekenreeks Geheel getal Tekenreeks Tekenreeks Geheel getal
Snaar
Verplicht Nee Nee Nee Nee Nee Nee
Nee
Beschrijving
Specificeert het type toevoeging dat wordt uitgevoerd. Waarden zijn SIGNED en UNSIGNED. Als u dit weglaat, is de standaardwaarde SIGNED. Wanneer deze parameter is ingesteld op SIGNED, interpreteert de opteller/aftrekker de gegevensinvoer als ondertekend twee-complement.
Specificeert het aantal latentieklokcycli dat is gekoppeld aan de result[]-uitvoer. Een waarde nul (0) geeft aan dat er geen latentie bestaat en dat een puur combinatorische functie zal worden geïnstantieerd. Als u dit weglaat, is de standaardwaarde 0 (niet-gepipelined).
Hiermee kunt u Intel-specifieke parameters opgeven in VHDL-ontwerp files (.vhd). De standaardwaarde is ONGEBRUIKT.
Identificeert de entiteitsnaam van de bibliotheek met geparametriseerde modules (LPM) in VHDL-ontwerp files.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter ONE_INPUT_IS_CONSTANT in VHDL-ontwerp op te geven fileS. Waarden zijn JA, NEE en ONGEBRUIKT. Biedt een grotere optimalisatie als één invoer constant is. Als u dit weglaat, is de standaardwaarde NEE.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter MAXIMIZE_SPEED op te geven in het VHDL-ontwerp fileS. U kunt een waarde opgeven tussen 0 en 10. Indien gebruikt, probeert de Intel Quartus Prime-software een specifiek exemplaar van de LPM_ADD_SUB-functie te optimaliseren op snelheid in plaats van op routeerbaarheid, en wordt de instelling van de logica-optie Optimization Technique overschreven. Als MAXIMIZE_SPEED ongebruikt is, wordt in plaats daarvan de waarde van de Optimization Technique-optie gebruikt. Als de instelling voor MAXIMIZE_SPEED 6 of hoger is, optimaliseert de compiler de LPM_ADD_SUB IP-kern voor hogere snelheid met behulp van carry-chains; als de instelling 5 of minder is, implementeert de compiler het ontwerp zonder draagkettingen. Deze parameter moet alleen worden opgegeven voor Cyclone-, Stratix- en Stratix GX-apparaten wanneer de add_sub-poort niet wordt gebruikt.
Deze parameter wordt gebruikt voor modellering en gedragssimulatiedoeleinden. De parametereditor berekent de waarde voor deze parameter.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 25
683490 | 2020.10.05 Feedback verzenden
6. LPM_COMPARE (vergelijker)
Figuur 5.
De LPM_COMPARE IP-kern vergelijkt de waarde van twee gegevenssets om de relatie daartussen te bepalen. In de eenvoudigste vorm kunt u een exclusieve OF-poort gebruiken om te bepalen of twee gegevensbits gelijk zijn.
De volgende afbeelding toont de poorten voor de LPM_COMPARE IP-kern.
LPM_COMPARE-poorten
LPM_COMPARE
klken
alb
aeb
gegevens[]
agb
gegevensbestand[]
leeftijd
klok
aneb
aclr
aleb
inst
6.1. Kenmerken
De LPM_COMPARE IP-kern biedt de volgende kenmerken: · Genereert een comparatorfunctie om twee sets gegevens te vergelijken · Ondersteunt een gegevensbreedte van 1 bits · Ondersteunt gegevensrepresentatieformaten zoals ondertekend en niet-ondertekend · Produceert de volgende uitvoertypen:
— alb (ingang A is kleiner dan ingang B) — aeb (ingang A is gelijk aan ingang B) — agb (ingang A is groter dan ingang B) — ageb (ingang A is groter dan of gelijk aan ingang B) — aneb ( input A is niet gelijk aan input B) — aleb (input A is kleiner dan of gelijk aan input B) · Ondersteunt optionele asynchrone clear- en clock enable-invoerpoorten · Wijst de datab[]-invoer toe aan een constante · Ondersteunt pipelining met configureerbare uitvoerlatentie
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
6. LPM_COMPARE (vergelijker) 683490 | 2020.10.05
6.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr); parameter lpm_type = “lpm_vergelijken”; parameter lpm_width = 1; parameter lpm_representation = “NIET ONDERTEKEND”; parameter lpm_pipeline = 0; parameter lpm_hint = “ONGEBRUIKT”; invoer [lpm_width-1:0] dataa, datab; ingangsklok; invoer clken; invoer aclr; uitvoer alb, aeb, agb, aleb, aneb, ageb; eindmodule
6.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) LPM_PACK.vhd in de bibliothekenvhdllpm map.
component LPM_COMPARE generiek (LPM_WIDTH: natuurlijk;
LPM_REPRESENTATION: string:= “NIET ONDERTEKEND”; LPM_PIPELINE: natuurlijk:= 0; LPM_TYPE: tekenreeks:= L_COMPARE; LPM_HINT: string:= “ONGEBRUIKT”); poort (DATAA: in std_logic_vector(LPM_WIDTH-1 tot 0); DATAB: in std_logic_vector(LPM_WIDTH-1 tot 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; AGB: uit std_logic; eindcomponent;
6.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK lpm; GEBRUIK lpm.lpm_components.all;
6.5. Havens
In de volgende tabellen worden de invoer- en uitvoerpoorten voor de LMP_COMPARE IP-kern vermeld.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 27
6. LPM_COMPARE (vergelijker) 683490 | 2020.10.05
Tabel 18. LPM_COMPARE IP-kerninvoerpoorten
Havennaam
Vereist
Beschrijving
gegevens[]
Ja
Gegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTH.
gegevensbestand[]
Ja
Gegevensinvoer. De grootte van de invoerpoort is afhankelijk van de parameterwaarde LPM_WIDTH.
klok
Nee
Klokinvoer voor pijplijngebruik. De klokpoort levert de klokinvoer voor een pijplijn
operatie. Voor andere LPM_PIPELINE-waarden dan 0 (standaard) moet de klokpoort zijn
ingeschakeld.
klken
Nee
Klok inschakelen voor pijplijngebruik. Wanneer de clken-poort hoog wordt beweerd, wordt de
vergelijkingsoperatie plaatsvindt. Wanneer het signaal laag is, vindt er geen werking plaats. Als
weggelaten, de standaardwaarde is 1.
aclr
Nee
Asynchroon wissen voor pijplijngebruik. De pijplijn wordt geïnitialiseerd naar een ongedefinieerde (X) logica
niveau. De aclr-poort kan op elk moment worden gebruikt om de pijplijn opnieuw in te stellen op nullen,
asynchroon met het kloksignaal.
Tabel 19. LPM_COMPARE IP-kernuitvoerpoorten
Havennaam
Vereist
Beschrijving
alb
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A kleiner is dan ingang B.
aeb
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A gelijk is aan ingang B.
agb
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A groter is dan ingang B.
leeftijd
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A groter is dan of gelijk is aan ingang
B.
aneb
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A niet gelijk is aan ingang B.
aleb
Nee
Uitgangspoort voor de comparator. Beweerd als ingang A kleiner is dan of gelijk is aan ingang B.
6.6. parameters
De volgende tabel bevat de parameters voor de LPM_COMPARE IP-kern.
Tabel 20. LPM_COMPARE IP-kernparameters
Parameternaam
Type
Vereist
LPM_WIDTH
Geheel getal Ja
LPM_REPRESENTATIE
Snaar
Nee
LPM_PIPELINE
geheel getal nr
LPM_HINT
Snaar
Nee
Beschrijving
Specificeert de breedte van de dataa[]- en datab[]-poorten.
Specificeert het type vergelijking dat wordt uitgevoerd. Waarden zijn SIGNED en UNSIGNED. Als u dit weglaat, is de standaardwaarde UNSIGNED. Wanneer deze parameterwaarde is ingesteld op SIGNED, interpreteert de comparator de gegevensinvoer als ondertekend twee-complement.
Specificeert het aantal klokcycli van latentie geassocieerd met de alb-, aeb-, agb-, ageb-, aleb- of aneb-uitvoer. Een waarde nul (0) geeft aan dat er geen latentie bestaat en dat een puur combinatorische functie zal worden geïnstantieerd. Als u dit weglaat, is de standaardwaarde 0 (niet-gepipelined).
Hiermee kunt u Intel-specifieke parameters opgeven in VHDL-ontwerp files (.vhd). De standaardwaarde is ONGEBRUIKT.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 28
Feedback verzenden
6. LPM_COMPARE (vergelijker) 683490 | 2020.10.05
Parameternaam LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Typ Tekenreeks Tekenreeks
Snaar
Vereist Nee Nee
Nee
Beschrijving
Identificeert de entiteitsnaam van de bibliotheek met geparametriseerde modules (LPM) in VHDL-ontwerp files.
Deze parameter wordt gebruikt voor modellering en gedragssimulatiedoeleinden. De parametereditor berekent de waarde voor deze parameter.
Intel-specifieke parameter. U moet de parameter LPM_HINT gebruiken om de parameter ONE_INPUT_IS_CONSTANT in VHDL-ontwerp op te geven fileS. Waarden zijn JA, NEE of ONGEBRUIKT. Biedt een grotere optimalisatie als een invoer constant is. Als u dit weglaat, is de standaardwaarde NEE.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 29
683490 | 2020.10.05 Feedback verzenden
7. ALTECC (Foutcorrectiecode: Encoder/Decoder) IP Core
Figuur 6.
Intel levert de ALTECC IP-kern om de ECC-functionaliteit te implementeren. ECC detecteert beschadigde gegevens die tijdens de gegevensoverdracht aan de ontvangerzijde optreden. Deze foutcorrectiemethode is het meest geschikt voor situaties waarin fouten willekeurig optreden in plaats van in bursts.
De ECC detecteert fouten door het proces van gegevenscodering en -decodering. BijvoorbeeldampWanneer de ECC wordt toegepast in een transmissietoepassing, worden gegevens die uit de bron worden gelezen, gecodeerd voordat ze naar de ontvanger worden verzonden. De uitvoer (codewoord) van de encoder bestaat uit de ruwe data, aangevuld met het aantal pariteitsbits. Het exacte aantal toegevoegde pariteitsbits hangt af van het aantal bits in de invoergegevens. Het gegenereerde codewoord wordt vervolgens naar de bestemming verzonden.
De ontvanger ontvangt het codewoord en decodeert het. Informatie verkregen door de decoder bepaalt of er een fout wordt gedetecteerd. De decoder detecteert enkelbits- en dubbelbitsfouten, maar kan alleen enkelbitsfouten in de beschadigde gegevens herstellen. Dit type ECC is enkele foutcorrectie dubbele foutdetectie (SECDED).
U kunt de encoder- en decoderfuncties van de ALTCC IP-kern configureren. De data-invoer naar de encoder wordt gecodeerd om een codewoord te genereren dat een combinatie is van de data-invoer en de gegenereerde pariteitsbits. Het gegenereerde codewoord wordt voor decodering naar de decodeermodule verzonden net voordat het zijn bestemmingsblok bereikt. De decoder genereert een syndroomvector om te bepalen of er een fout is in het ontvangen codewoord. De decoder corrigeert de gegevens alleen als de fout van één bit uit de databits komt. Er wordt geen signaal gemarkeerd als de fout van één bit afkomstig is van de pariteitsbits. De decoder beschikt ook over vlagsignalen om de status van de ontvangen gegevens weer te geven en, indien van toepassing, de actie die door de decoder is ondernomen.
De volgende afbeeldingen tonen de poorten voor de ALTCC IP-kern.
ALTEC-encoderpoorten
ALTCC_ENCODER
gegevens[]
Q[]
klok
klokken
aclr
inst
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
7. ALTECC (foutcorrectiecode: encoder/decoder) IP Core 683490 | 2020.10.05
Figuur 7. ALTCC-decoderpoorten
ALTCC_DECODER
data[] klok klokken
q[] fout_gedetecteerd fout_gecorrigeerd
fout_fataal
aclr
inst
7.1. ALTCC-encoderfuncties
De ALTEC-encoder IP-kern biedt de volgende functies: · Voert datacodering uit met behulp van het Hamming Coding-schema · Ondersteunt een databreedte van 2 bits · Ondersteunt ondertekende en niet-ondertekende datarepresentatieformaten · Ondersteuning van pipelines met uitvoerlatentie van één of twee klokcycli · Ondersteunt optioneel asynchrone clear- en clock-enable-poorten
De ALTEC-encoder IP-kern neemt de gegevens op en codeert deze met behulp van het Hamming Coding-schema. Het Hamming-coderingsschema leidt de pariteitsbits af en voegt deze toe aan de originele gegevens om het uitvoercodewoord te produceren. Het aantal toegevoegde pariteitsbits hangt af van de breedte van de gegevens.
De volgende tabel geeft een overzicht van het aantal pariteitsbits dat is toegevoegd voor verschillende bereiken van databreedtes. De kolom Totaal bits vertegenwoordigt het totale aantal invoergegevensbits en toegevoegde pariteitsbits.
Tabel 21.
Aantal pariteitsbits en codewoord volgens gegevensbreedte
Gegevensbreedte
Aantal pariteitsbits
Totaal aantal bits (codewoord)
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
De pariteitsbitafleiding maakt gebruik van een even-pariteitscontrole. De extra 1-bit (in de tabel weergegeven als +1) wordt aan de pariteitsbits toegevoegd als de MSB van het codewoord. Dit zorgt ervoor dat het codewoord een even aantal enen heeft. BijvoorbeeldampAls de databreedte 4 bits is, worden er 4 pariteitsbits aan de data toegevoegd om een codewoord te vormen met een totaal van 8 bits. Als 7 bits van de LSB van het 8-bits codewoord een oneven aantal enen hebben, is de 1e bit (MSB) van het codewoord 8, waardoor het totale aantal enen in het codewoord even is.
De volgende figuur toont het gegenereerde codewoord en de rangschikking van de pariteitsbits en databits in een 8-bits data-ingang.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 31
7. ALTECC (foutcorrectiecode: encoder/decoder) IP Core 683490 | 2020.10.05
Figuur 8.
Pariteitsbits en databitsschikking in een 8-bits gegenereerd codewoord
MSB
LSB
4 pariteitsbits
4 databits
8
1
De ALTCC-encoder IP-kern accepteert alleen invoerbreedtes van 2 tot 64 bits tegelijk. Invoerbreedtes van 12 bits, 29 bits en 64 bits, die bij uitstek geschikt zijn voor Intel-apparaten, genereren outputs van respectievelijk 18 bits, 36 bits en 72 bits. U kunt de bitselectiebeperking regelen in de parametereditor.
7.2. Verilog HDL-prototype (ALTECC_ENCODER)
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module altecc_encoder #( parameter bedoeld_device_family = “ongebruikt”, parameter lpm_pipeline = 0, parameter breedte_codewoord = 8, parameter breedte_datawoord = 8, parameter lpm_type = “altecc_encoder”, parameter lpm_hint = “ongebruikt”) (invoerdraad aclr, invoerdraadklok, invoer draadklokken, invoerdraad [breedte_datawoord-1:0] gegevens, uitvoerdraad [breedte_codewoord-1:0] q); eindmodule
7.3. Verilog HDL-prototype (ALTECC_DECODER)
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) lpm.v in de edasynthese map.
module altecc_decoder #( parameter beoogde_device_family = “ongebruikt”, parameter lpm_pipeline = 0, parameter breedte_codewoord = 8, parameter breedte_datawoord = 8, parameter lpm_type = “altecc_decoder”, parameter lpm_hint = “ongebruikt”) (invoerdraad aclr, invoerdraadklok, invoer wire clocken, input wire [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, output wire err_fatal, output wire [width_dataword-1:0] q); eindmodule
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 32
Feedback verzenden
7. ALTECC (foutcorrectiecode: encoder/decoder) IP Core 683490 | 2020.10.05
7.4. VHDL-componentdeclaratie (ALTECC_ENCODER)
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) altera_mf_components.vhd in de bibliothekenvhdlaltera_mf map.
component altecc_encoder generiek ( beoogde_device_family:string := “ongebruikt”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := “ONGEBRUIKT”; lpm_type:string := “altecc_encoder ”); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clocken:in std_logic := '1'; data:in std_logic_vector(width_dataword-1 tot 0); q:out std_logic_vector(width_codeword -1 tot 0)); eindcomponent;
7.5. VHDL-componentdeclaratie (ALTECC_DECODER)
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) altera_mf_components.vhd in de bibliothekenvhdlaltera_mf map.
component altecc_decoder generiek ( beoogde_device_family:string := “ongebruikt”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := “ONGEBRUIKT”; lpm_type:string := “altecc_decoder ”); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clocken:in std_logic := '1'; data:in std_logic_vector(width_codeword-1 tot 0); err_corrected: out std_logic; err_detected : uit std_logic; q:uit std_logic_vector(width_dataword-1 tot 0); eindcomponent;
7.6. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK altera_mf; GEBRUIK altera_mf.altera_mf_components.all;
7.7. Encoderpoorten
De volgende tabellen vermelden de invoer- en uitvoerpoorten voor de ALTCC-encoder IP-kern.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 33
7. ALTECC (foutcorrectiecode: encoder/decoder) IP Core 683490 | 2020.10.05
Tabel 22. ALTCC-encoderingangspoorten
Havennaam
Vereist
Beschrijving
gegevens[]
Ja
Gegevensinvoerpoort. De grootte van de invoerpoort is afhankelijk van WIDTH_DATAWORD
parameterwaarde. De data[]-poort bevat de onbewerkte gegevens die moeten worden gecodeerd.
klok
Ja
Klokingangspoort die het kloksignaal levert om de codering te synchroniseren.
De klokpoort is vereist wanneer de LPM_PIPELINE-waarde groter is dan 0.
klokken
Nee
Klok inschakelen. Als u dit weglaat, is de standaardwaarde 1.
aclr
Nee
Asynchrone duidelijke invoer. Het actieve hoge ACLR-signaal kan op elk moment worden gebruikt
het asynchroon wissen van de registers.
Tabel 23. ALTECC-encoderuitgangspoorten
Poortnaam q[]
Vereist Ja
Beschrijving
Gecodeerde gegevensuitvoerpoort. De grootte van de uitvoerpoort is afhankelijk van de parameterwaarde WIDTH_CODEWORD.
7.8. Decoderpoorten
De volgende tabellen geven een overzicht van de invoer- en uitvoerpoorten voor de ALTCC-decoder IP-kern.
Tabel 24. ALTCC-decoderingangspoorten
Havennaam
Vereist
Beschrijving
gegevens[]
Ja
Gegevensinvoerpoort. De grootte van de invoerpoort is afhankelijk van de parameterwaarde WIDTH_CODEWORD.
klok
Ja
Klokingangspoort die het kloksignaal levert om de codering te synchroniseren. De klokpoort is vereist wanneer de LPM_PIPELINE-waarde groter is dan 0.
klokken
Nee
Klok inschakelen. Als u dit weglaat, is de standaardwaarde 1.
aclr
Nee
Asynchrone duidelijke invoer. Het actieve hoge ACLR-signaal kan op elk moment worden gebruikt om de registers asynchroon te wissen.
Tabel 25. ALTCC-decoderuitgangspoorten
Poortnaam q[]
Vereist Ja
Beschrijving
Gedecodeerde gegevensuitvoerpoort. De grootte van de uitvoerpoort is afhankelijk van de parameterwaarde WIDTH_DATAWORD.
err_detected Ja
Vlagsignaal dat de status van de ontvangen gegevens weergeeft en eventuele gevonden fouten specificeert.
err_correcte Ja d
Vlagsignaal om de status van de ontvangen gegevens weer te geven. Geeft aan dat er een fout van één bit is gevonden en gecorrigeerd. U kunt de gegevens gebruiken omdat deze al zijn gecorrigeerd.
fout_fataal
Ja
Vlagsignaal om de status van de ontvangen gegevens weer te geven. Geeft aan dat er een dubbelbitfout is gevonden, maar niet is gecorrigeerd. U mag de gegevens niet gebruiken als dit signaal wordt bevestigd.
syn_e
Nee
Een uitgangssignaal dat hoog wordt wanneer er een fout van één bit op de pariteit wordt gedetecteerd
beetjes.
7.9. Encoderparameters
De volgende tabel bevat de parameters voor de ALTCC-encoder IP-kern.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 34
Feedback verzenden
7. ALTECC (foutcorrectiecode: encoder/decoder) IP Core 683490 | 2020.10.05
Tabel 26. ALTECC-encoderparameters
Parameternaam
Type
Vereist
Beschrijving
WIDTH_DATAWORD
Geheel getal Ja
Specificeert de breedte van de onbewerkte gegevens. Waarden lopen van 2 tot 64. Als u dit weglaat, is de standaardwaarde 8.
WIDTH_CODEWORD
Geheel getal Ja
Specificeert de breedte van het corresponderende codewoord. Geldige waarden zijn van 6 tot 72, met uitzondering van 9, 17, 33 en 65. Indien weggelaten, is de standaardwaarde 13.
LPM_PIPELINE
geheel getal nr
Specificeert de pijplijn voor het circuit. Waarden lopen van 0 tot 2. Als de waarde 0 is, worden de poorten niet geregistreerd. Als de waarde 1 is, worden de uitgangspoorten geregistreerd. Als de waarde 2 is, worden de invoer- en uitvoerpoorten geregistreerd. Als u dit weglaat, is de standaardwaarde 0.
7.10. Decoderparameters
De volgende tabel bevat de IP-kernparameters van de ALTCC-decoder.
Tabel 27. ALTECC-decoderparameters
Parameternaam WIDTH_DATAWORD
Typ geheel getal
Vereist
Beschrijving
Ja
Specificeert de breedte van de onbewerkte gegevens. Waarden zijn 2 tot 64. De
standaardwaarde is 8.
WIDTH_CODEWORD
Geheel getal
Ja
Specificeert de breedte van het corresponderende codewoord. Waarden zijn 6
tot 72, exclusief 9, 17, 33 en 65. Indien weggelaten, wordt de standaardwaarde
bedraagt 13.
LPM_PIPELINE
Geheel getal
Nee
Specificeert het register van het circuit. Waarden lopen van 0 tot 2. Als de
waarde is 0, er is geen register geïmplementeerd. Als de waarde 1 is, wordt de
uitvoer wordt geregistreerd. Als de waarde 2 is, worden zowel de invoer als de
uitvoer worden geregistreerd. Als de waarde groter is dan 2, extra
registers zijn geïmplementeerd aan de uitgang voor de extra
latenties. Als u dit weglaat, is de standaardwaarde 0.
Maak een 'syn_e'-poort
Geheel getal
Nee
Schakel deze parameter in om een syn_e-poort te maken.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 35
683490 | 2020.10.05 Feedback verzenden
8. Intel FPGA Multiply Adder IP-kern
Figuur 9.
Met de Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX-apparaten) of ALTERA_MULT_ADD (Arria V-, Stratix V- en Cyclone V-apparaten) IP-kern kunt u een multiplier-adder implementeren.
De volgende afbeelding toont de poorten voor de Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kern.
Intel FPGA Multiply Adder of ALTERA_MULT_ADD-poorten
Intel FPGA Multiply Adder of ALTERA_MULT_ADD
dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] clock0 clock1 clock2 ena0 ena1 ena2 sload_accum
accum_sload chainin[]
scanouta[] resultaat[]
aclr0 aclr1
inst
Een vermenigvuldiger-opteller accepteert invoerparen, vermenigvuldigt de waarden met elkaar en telt vervolgens de producten van alle andere paren op of trekt deze af.
Als alle invoergegevensbreedten 9 bits breed of kleiner zijn, gebruikt de functie de 9 x 9 bit invoervermenigvuldigerconfiguratie in het DSP-blok voor apparaten die de 9 x 9-configuratie ondersteunen. Als dat niet het geval is, gebruikt het DSP-blok invoervermenigvuldigers van 18 x 18 bits om gegevens met een breedte tussen 10 bits en 18 bits te verwerken. Als er meerdere Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-cores in een ontwerp voorkomen, worden de functies gedistribueerd naar
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
zoveel mogelijk verschillende DSP-blokken mogelijk, zodat routering naar deze blokken flexibeler is. Minder vermenigvuldigers per DSP-blok maken meer routeringskeuzes naar het blok mogelijk door paden naar de rest van het apparaat te minimaliseren.
De registers en extra pijplijnregisters voor de volgende signalen worden ook in het DSP-blok geplaatst: · Gegevensinvoer · Selectie met of zonder teken · Selectie optellen of aftrekken · Producten van vermenigvuldigers
In het geval van het uitvoerresultaat wordt het eerste register in het DSP-blok geplaatst. De extra latentieregisters worden echter in logische elementen buiten het blok geplaatst. Randapparatuur voor het DSP-blok, inclusief data-ingangen naar de vermenigvuldiger, stuursignaalingangen en uitgangen van de opteller, gebruiken reguliere routering om met de rest van het apparaat te communiceren. Alle verbindingen in de functie gebruiken speciale routering binnen het DSP-blok. Deze speciale routering omvat de schuifregisterketens wanneer u de optie selecteert om de geregistreerde invoergegevens van een vermenigvuldiger van de ene vermenigvuldiger naar een aangrenzende vermenigvuldiger te verschuiven.
Voor meer informatie over DSP-blokken in de Stratix V- en Arria V-apparaatseries raadpleegt u het hoofdstuk DSP-blokken van de betreffende handboeken op de pagina Literatuur en technische documentatie.
Gerelateerde informatie AN 306: Multipliers implementeren in FPGA-apparaten
Biedt meer informatie over het implementeren van vermenigvuldigers met behulp van DSP en geheugenblokken in Intel FPGA-apparaten.
8.1. Kenmerken
De Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kern biedt de volgende functies: · Genereert een vermenigvuldiger om vermenigvuldigingsbewerkingen uit te voeren van twee complexe
getallen Opmerking: bij het bouwen van vermenigvuldigers die groter zijn dan de standaard ondersteunde grootte, kan/
zal een prestatie-impact zijn als gevolg van de cascadering van de DSP-blokken. · Ondersteunt gegevensbreedtes van 1 bits · Ondersteunt ondertekende en niet-ondertekende gegevensrepresentatieformaten · Ondersteunt pipelining met configureerbare invoerlatentie · Biedt een optie om dynamisch te schakelen tussen ondertekende en niet-ondertekende gegevensondersteuning · Biedt een optie om dynamisch te schakelen tussen optellen en aftrekken · Ondersteunt optionele asynchrone en synchrone clear- en clock-enable-ingangspoorten · Ondersteunt systolische vertragingsregistermodus · Ondersteunt pre-adder met 256 pre-load-coëfficiënten per vermenigvuldiger · Ondersteunt pre-load-constante als aanvulling op accumulatorfeedback
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1. Pre-adder
Bij pre-adder worden optellingen of aftrekkingen gedaan voordat de vermenigvuldiger wordt ingevoerd.
Er zijn vijf pre-optelmodi: · Eenvoudige modus · Coëfficiëntmodus · Invoermodus · Kwadratische modus · Constante modus
Opmerking:
Wanneer pre-adder wordt gebruikt (pre-adder-coëfficiënt/invoer/kwadraatmodus), moeten alle gegevensinvoer naar de vermenigvuldiger dezelfde klokinstelling hebben.
8.1.1.1. Eenvoudige modus vóór toevoeging
In deze modus zijn beide operanden afkomstig van de invoerpoorten en wordt de pre-adder niet gebruikt of omzeild. Dit is de standaardmodus.
Figuur 10. Eenvoudige modus vóór toevoeging
a0 b0
Meervoudig
resultaat
8.1.1.2. Coëfficiëntmodus vóór toevoeging
In deze modus is één vermenigvuldiger-operand afkomstig van de pre-adder, en de andere operand afkomstig van de interne coëfficiëntopslag. De coëfficiëntopslag maakt maximaal 8 vooraf ingestelde constanten mogelijk. De coëfficiëntselectiesignalen zijn coefsel[0..3].
Deze modus wordt uitgedrukt in de volgende vergelijking.
Het volgende toont de pre-adder-coëfficiëntmodus van een vermenigvuldiger.
Figuur 11. Coëfficiëntmodus vóór toevoeging
Preadder
a0
Meervoudig
+/-
resultaat
b0
coefsel0 coef
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 38
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Invoermodus vóór optelling In deze modus is één vermenigvuldiger-operand afkomstig van de pre-opteller, en de andere operand afkomstig van de datac[]-invoerpoort. Deze modus wordt uitgedrukt in de volgende vergelijking.
Hieronder ziet u de pre-adder-invoermodus van een vermenigvuldiger.
Figuur 12. Invoermodus vóór optelling
a0 b0
Meervoudig
+/-
resultaat
c0
8.1.1.4. Pre-adder Square-modus Deze modus wordt uitgedrukt in de volgende vergelijking.
Het volgende toont de pre-adder-kwadraatmodus van twee vermenigvuldigers.
Figuur 13. Pre-adder Square-modus
a0 b0
Meervoudig
+/-
resultaat
8.1.1.5. Constante modus vóór toevoeging
In deze modus is één vermenigvuldiger-operand afkomstig van de invoerpoort, en de andere operand afkomstig van de interne coëfficiëntopslag. De coëfficiëntopslag maakt maximaal 8 vooraf ingestelde constanten mogelijk. De coëfficiëntselectiesignalen zijn coefsel[0..3].
Deze modus wordt uitgedrukt in de volgende vergelijking.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
De volgende afbeelding toont de pre-adder-constantemodus van een vermenigvuldiger.
Figuur 14. Constante modus vóór toevoeging
a0
Meervoudig
resultaat
coefsel0
coëfficient
8.1.2. Systolische vertragingsregister
In een systolische architectuur worden de invoergegevens ingevoerd in een cascade van registers die als gegevensbuffer fungeren. Elk register levert een ingang sample naar een vermenigvuldiger waar deze wordt vermenigvuldigd met de betreffende coëfficiënt. De ketenopteller slaat de geleidelijk gecombineerde resultaten van de vermenigvuldiger en het eerder geregistreerde resultaat van de chainin[]-invoerpoort op om het eindresultaat te vormen. Elk vermenigvuldig-optelelement moet met een enkele cyclus worden vertraagd, zodat de resultaten op de juiste manier worden gesynchroniseerd wanneer ze bij elkaar worden opgeteld. Elke opeenvolgende vertraging wordt gebruikt om zowel het coëfficiëntgeheugen als de databuffer van hun respectieve vermenigvuldig-optelelementen te adresseren. Bijvoorbeeldample, een enkele vertraging voor het tweede vermenigvuldig-optelelement, twee vertragingen voor het derde vermenigvuldig-optelelement, enzovoort.
Figuur 15. Systolische registers
Systolische registers
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 j(t)
x(t) vertegenwoordigt de resultaten van een continue stroom invoer samples en y(t)
vertegenwoordigt de sommatie van een reeks invoer samples, en na verloop van tijd vermenigvuldigd met hun
respectieve coëfficiënten. Zowel de invoer- als de uitvoerresultaten vloeien van links naar rechts. De c(0) tot c(N-1) geven de coëfficiënten aan. De systolische vertragingsregisters worden aangegeven met S-1, terwijl de 1 een enkele klokvertraging vertegenwoordigt. Systolische vertragingsregisters zijn toegevoegd op
de input en output voor pipelining op een manier die de resultaten van de
vermenigvuldiger-operand en de geaccumuleerde bedragen blijven synchroon. Dit verwerkingselement
wordt gerepliceerd om een circuit te vormen dat de filterfunctie berekent. Deze functie is
uitgedrukt in de volgende vergelijking.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 40
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
N vertegenwoordigt het aantal gegevenscycli dat in de accumulator is ingevoerd, y(t) vertegenwoordigt de uitvoer op tijdstip t, A(t) vertegenwoordigt de invoer op tijdstip t, en B(i) zijn de coëfficiënten. De t en i in de vergelijking komen overeen met een bepaald tijdstip, dus om de uitvoer s te berekenenample y(t) op tijdstip t, een groep invoer sampbestanden op N verschillende tijdstippen, of A(n), A(n-1), A(n-2), … A(n-N+1) is vereist. De groep van N invoer sampbestanden worden vermenigvuldigd met N-coëfficiënten en bij elkaar opgeteld om het eindresultaat y te vormen.
De systolische registerarchitectuur is alleen beschikbaar voor de som-van-2- en som-van-4-modi. Voor beide systolische registerarchitectuurmodi moet het eerste chainin-signaal aan 0 worden gekoppeld.
De volgende afbeelding toont de implementatie van het systolische vertragingsregister van 2 vermenigvuldigers.
Figuur 16. Implementatie van systolische vertragingsregister van 2 vermenigvuldigers
kettingin
a0
Meervoudig
+/-
b0
a1
Meervoudig
+/-
b1
resultaat
De som van twee vermenigvuldigers wordt uitgedrukt in de volgende vergelijking.
De volgende afbeelding toont de implementatie van het systolische vertragingsregister van 4 vermenigvuldigers.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figuur 17. Implementatie van systolische vertragingsregister van 4 vermenigvuldigers
kettingin
a0
Meervoudig
+/-
b0
a1
Meervoudig
+/-
b1
a2
Meervoudig
+/-
b2
a3
Meervoudig
+/-
b3
resultaat
De som van vier vermenigvuldigers wordt uitgedrukt in de volgende vergelijking. Figuur 18. Som van 4 vermenigvuldigers
Hieronder vindt u de advantages van de implementatie van het systolische register: · Vermindert het gebruik van DSP-bronnen · Maakt efficiënte mapping in het DSP-blok mogelijk met behulp van de ketenoptellerstructuur
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 42
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.3. Voorbelastingsconstante
De voorbelastingsconstante bestuurt de accumulatoroperand en vormt een aanvulling op de accumulatorfeedback. De geldige LOADCONST_VALUE varieert van 0. De constante waarde is gelijk aan 64N, waarbij N = LOADCONST_VALUE. Wanneer de LOADCONST_VALUE is ingesteld op 2, is de constante waarde gelijk aan 64. Deze functie kan worden gebruikt als biased afronding.
De volgende afbeelding toont de implementatie van de pre-load-constante.
Figuur 19. Voorbelastingsconstante
Feedback van de accu
constante
a0
Meervoudig
+/-
b0
a1
Meervoudig
+/b1
resultaat
accum_sload sload_accum
Raadpleeg de volgende IP-kernen voor andere multiplier-implementaties: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dubbele accu
De dubbele accumulatorfunctie voegt een extra register toe aan het accumulatorfeedbackpad. Het dubbele accumulatorregister volgt het uitgangsregister, dat de klok, klokinschakeling en aclr omvat. Het extra accumulatorregister retourneert het resultaat met een vertraging van één cyclus. Met deze functie kunt u twee accumulatorkanalen hebben met hetzelfde aantal bronnen.
De volgende afbeelding toont de implementatie van de dubbele accumulator.
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figuur 20. Dubbele accumulator
Dubbele accumulator Register
Feedback van de accumulator
a0
Meervoudig
+/-
b0
a1
Meervoudig
+/b1
Uitvoerresultaat Uitvoerregister
8.2. Verilog HDL-prototype
U kunt het Intel FPGA Multiply Adder of ALTERA_MULT_ADD Verilog HDL-prototype vinden file (altera_mult_add_rtl.v) in de directory bibliothekenmegafunctions.
8.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in de altera_lnsim_components.vhd in de bibliothekenvhdl altera_lnsim map.
8.4. VHDL LIBRARY_USE-verklaring
De VHDL LIBRARY-USE-declaratie is niet vereist als u de VHDL Component Declaration gebruikt.
BIBLIOTHEEK altera_mf; GEBRUIK altera_mf.altera_mf_components.all;
8.5. Signalen
De volgende tabellen geven een overzicht van de invoer- en uitvoersignalen van de Multiply Adder Intel FPGA IP of ALTERA_MULT_ADD IP-kern.
Tabel 28. Vermenigvuldig optel Intel FPGA IPof ALTERA_MULT_ADD ingangssignalen
Signaal
Vereist
Beschrijving
dataa_0[]/dataa_1[]/
Ja
dataa_2[]/dataa_3[]
Gegevensinvoer naar de vermenigvuldiger. Invoerpoort [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] breed
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 44
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signaal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] teken
tekenb
scanina[] accum_sload
Verplicht Ja Nee
Nee Nee Nee Nee Nee
Nee
Nee Nee
Beschrijving
Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Gegevensinvoer naar de vermenigvuldiger. Ingangssignaal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] breed Het simulatiemodel voor dit IP ondersteunt onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Gegevensinvoer naar de vermenigvuldiger. Ingangssignaal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] breed Selecteer INPUT voor Selecteer preaddermodusparameter om deze signalen in te schakelen. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Klokinvoerpoort naar het overeenkomstige register. Dit signaal kan door elk register in de IP-kern worden gebruikt. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Asynchrone duidelijke invoer naar het overeenkomstige register. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Synchrone duidelijke invoer naar het overeenkomstige register. Het simulatiemodel voor dit IP ondersteunt onbepaalde invoerwaarde X voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen
Schakel signaalinvoer naar het overeenkomstige register in. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor deze signalen. Wanneer u een X-waarde aan deze signalen geeft, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Specificeert de numerieke weergave van de vermenigvuldigeringang A. Als het signaalsignaal hoog is, behandelt de vermenigvuldiger het signaal van de vermenigvuldigeringang A als een getal met teken. Als het signaalsignaal laag is, behandelt de vermenigvuldiger het signaal van ingang A van de vermenigvuldiger als een getal zonder teken. Selecteer VARIABEL voor Wat is het representatieformaat voor vermenigvuldigers. Een invoerparameter om dit signaal in te schakelen. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Specificeert de numerieke representatie van het B-ingangssignaal van de vermenigvuldiger. Als het signb-signaal hoog is, behandelt de vermenigvuldiger het B-signaal van de vermenigvuldiger als een twee-complementgetal met teken. Als het signb-signaal laag is, behandelt de vermenigvuldiger het vermenigvuldigeringangssignaal B als een getal zonder teken. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Ingang voor scanketen A. Ingangssignaal [WIDTH_A – 1, … 0] breed. Wanneer de parameter INPUT_SOURCE_A de waarde SCANA heeft, is het signaal scanina[] vereist.
Specificeert dynamisch of de accumulatorwaarde constant is. Als het accum_sload-signaal laag is, wordt de vermenigvuldigeruitvoer in de accumulator geladen. Gebruik accum_sload en sload_accum niet tegelijkertijd.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signaal sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Vereist nr
Nee Nee
Nee
Nee nee nee nee
Beschrijving
Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Specificeert dynamisch of de accumulatorwaarde constant is. Als het sload_accum-signaal hoog is, wordt de vermenigvuldigeruitvoer in de accumulator geladen. Gebruik accum_sload en sload_accum niet tegelijkertijd. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Optelresultaatinvoerbus van de voorgaande stage. Ingangssignaal [WIDTH_CHAININ – 1, … 0] breed.
Voer optellingen of aftrekkingen uit op de uitvoer van het eerste paar vermenigvuldigers. Ingang 1 naar addnsub1-signaal om de uitgangen van het eerste paar vermenigvuldigers op te tellen. Voer 0 in voor het optel-sub1-signaal om de uitgangen van het eerste paar vermenigvuldigers af te trekken. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Voer optellingen of aftrekkingen uit op de uitvoer van het eerste paar vermenigvuldigers. Ingang 1 naar addnsub3-signaal om de uitgangen van het tweede paar vermenigvuldigers op te tellen. Voer 0 in voor het addnsub3-signaal om de uitgangen van het eerste paar vermenigvuldigers af te trekken. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Coëfficiënt ingangssignaal [0:3] naar de eerste vermenigvuldiger. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Coëfficiënt ingangssignaal [0:3] naar de tweede vermenigvuldiger. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Coëfficiënt ingangssignaal[0:3] naar de derde vermenigvuldiger. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Coëfficiënt ingangssignaal [0:3] naar de vierde vermenigvuldiger. Het simulatiemodel voor dit IP ondersteunt een onbepaalde invoerwaarde (X) voor dit signaal. Wanneer u een X-waarde aan deze invoer invoert, wordt de X-waarde doorgegeven aan de uitgangssignalen.
Tabel 29. Vermenigvuldig optel Intel FPGA IP-uitvoersignalen
Signaal
Vereist
Beschrijving
resultaat []
Ja
Uitgangssignaal van de vermenigvuldiger. Uitgangssignaal [WIDTH_RESULT – 1 … 0] breed
Het simulatiemodel voor dit IP ondersteunt een onbepaalde uitvoerwaarde (X). Wanneer u de X-waarde als invoer opgeeft, wordt de X-waarde op dit signaal doorgegeven.
scannen []
Nee
Uitgang van scanketen A. Uitgangssignaal [WIDTH_A – 1..0] breed.
Selecteer meer dan 2 voor aantallen vermenigvuldigers en kies Scan keteningang voor Wat is de ingang A van de vermenigvuldiger aangesloten op parameter om dit signaal in te schakelen.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 46
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6. parameters
8.6.1. Algemeen tabblad
Tabel 30. Tabblad Algemeen
Parameter
IP-gegenereerde parameter
Waarde
Wat is het aantal vermenigvuldigers?
number_of_m 1 – 4 ultipliers
Hoe breed moeten de A width_a invoerbussen zijn?
1 – 256
Hoe breed moeten de B width_b invoerbussen zijn?
1 – 256
Hoe breed moet de 'resultaat'-uitgangsbus zijn?
breedte_resultaat
1 – 256
Maak voor elke klok een bijbehorende klokinschakeling
gui_associate Aan d_clock_enabl Uit e
8.6.2. Tabblad Extra modi
Tabel 31. Tabblad Extra modi
Parameter
IP-gegenereerde parameter
Waarde
Uitgangen configuratie
Registreer de uitvoer van de opteleenheid
gui_output_re Aan
gist
Uit
Wat is de bron voor klokinvoer?
gui_output_register_clock
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_output_register_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_output_register_sclr
GEEN SCLR0 SCLR1
Adder-operatie
Welke bewerking moet worden uitgevoerd op de uitgangen van het eerste paar vermenigvuldigers?
gui_vermenigvuldiger 1_richting
TOEVOEGEN, SUB, VARIABEL
Standaardwaarde 1
16
Beschrijving
Aantal vermenigvuldigers dat bij elkaar moet worden opgeteld. Waarden zijn 1 tot en met 4. Specificeer de breedte van de dataa[]-poort.
16
Specificeer de breedte van de datab[]-poort.
32
Specificeer de breedte van de result[]-poort.
Uit
Selecteer deze optie om klokinschakeling te creëren
voor elke klok.
Standaardwaarde
Beschrijving
Uit Klok0
GEEN GEEN
Selecteer deze optie om het uitvoerregister van de optelmodule in te schakelen.
Selecteer Clock0 , Clock1 of Clock2 om de klokbron voor uitgangsregisters in te schakelen en op te geven. U moet Uitvoer van opteleenheid registreren selecteren om deze parameter in te schakelen.
Specificeert de asynchrone wisbron voor het optelleruitvoerregister. U moet Uitvoer van de opteleenheid registreren selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het optelleruitvoerregister. U moet Uitvoer van de opteleenheid registreren selecteren om deze parameter in te schakelen.
TOEVOEGEN
Selecteer de optel- of aftrekkingsbewerking die moet worden uitgevoerd voor de uitvoer tussen de eerste en tweede vermenigvuldiger.
· Selecteer TOEVOEGEN om de optelling uit te voeren.
· Selecteer SUB om de aftrekking uit te voeren.
· Selecteer VARIABLE om de addnsub1-poort te gebruiken voor dynamisch optellen/aftrekken.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-gegenereerde parameter
Waarde
Registreer 'addnsub1'-invoer
gui_addnsub_ Aan multiplier_reg Uit ister1
Wat is de bron voor klokinvoer?
gui_addnsub_multiplier_reg ister1_clock
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_addnsub_multiplier_aclr 1
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_addnsub_multiplier_sclr 1
GEEN SCLR0 SCLR1
Welke bewerking moet worden uitgevoerd op de uitgangen van het tweede paar vermenigvuldigers?
gui_vermenigvuldiger 3_richting
TOEVOEGEN, SUB, VARIABEL
Registreer 'addnsub3'-invoer
gui_addnsub_ Aan multiplier_reg Uit ister3
Wat is de bron voor klokinvoer?
gui_addnsub_multiplier_reg ister3_clock
Klok0 Klok1 Klok2
Standaardwaarde
Uit Klok0 GEEN GEEN TOEVOEGEN
Uit Klok0
Beschrijving
Wanneer de VARIABELE waarde is geselecteerd: · Drive addnsub1-signaal te hoog voor
toevoeging operatie. · Drive addnsub1 signaal te laag voor
aftrekkingsoperatie. U moet meer dan twee vermenigvuldigers selecteren om deze parameter in te schakelen.
Selecteer deze optie om invoerregister voor addnsub1-poort in te schakelen. U moet VARIABEL selecteren voor Welke bewerking moet worden uitgevoerd op de uitgangen van het eerste paar vermenigvuldigers om deze parameter in te schakelen.
Selecteer Clock0 , Clock1 of Clock2 om het ingangskloksignaal voor addnsub1 register op te geven. U moet 'addnsub1'-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de asynchrone wisbron voor het addnsub1-register. U moet 'addnsub1'-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het addnsub1-register. U moet 'addnsub1'-invoer registreren selecteren om deze parameter in te schakelen.
Selecteer de optel- of aftrekkingsbewerking die moet worden uitgevoerd voor de uitgangen tussen de derde en vierde vermenigvuldiger. · Selecteer TOEVOEGEN om de optelling uit te voeren
operatie. · Selecteer SUB om aftrekken uit te voeren
operatie. · Selecteer VARIABEL om addnsub1 te gebruiken
poort voor dynamische optel-/aftrekcontrole. Wanneer de VARIABELE waarde is geselecteerd: · Stuur het addnsub1-signaal naar hoog voor optelling. · Zet het addnsub1-signaal laag voor aftrekking. U moet de waarde 4 selecteren voor Wat is het aantal vermenigvuldigers? om deze parameter in te schakelen.
Selecteer deze optie om het ingangsregister voor het addnsub3-signaal in te schakelen. U moet VARIABEL selecteren voor Welke bewerking moet worden uitgevoerd op de uitgangen van het tweede paar vermenigvuldigers om deze parameter in te schakelen.
Selecteer Clock0 , Clock1 of Clock2 om het ingangskloksignaal voor het addnsub3-register op te geven. U moet Register 'addnsub3′-invoer selecteren om deze parameter in te schakelen.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 48
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Wat is de bron voor asynchrone heldere invoer?
IP-gegenereerde parameter
Waarde
gui_addnsub_multiplier_aclr 3
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_addnsub_multiplier_sclr 3
GEEN SCLR0 SCLR1
Polariteit Schakel 'use_subadd' in
gui_use_subn Aan
toevoegen
Uit
8.6.3. Tabblad Vermenigvuldigers
Tabel 32. Tabblad Vermenigvuldigers
Parameter
IP-gegenereerde parameter
Waarde
Wat is de
gui_represent
weergaveformaat_a
voor vermenigvuldigers A-ingangen?
ONDERTEKEND, NIET ONDERTEKEND, VARIABEL
Registreer 'signa'-invoer
gui_register_s Aan
ik ben
Uit
Wat is de bron voor klokinvoer?
gui_register_s igna_clock
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_register_s igna_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_register_s igna_sclr
GEEN SCLR0 SCLR1
Wat is de
gui_represent
weergaveformaat ation_b
voor Multipliers B-ingangen?
ONDERTEKEND, NIET ONDERTEKEND, VARIABEL
Registreer `signb'-invoer
gui_register_s Aan
ignb
Uit
Standaardwaarde GEEN
GEEN
Beschrijving
Specificeert de asynchrone wisbron voor het addnsub3-register. U moet 'addnsub3'-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het addnsub3-register. U moet Register 'addnsub3′-invoer selecteren om deze parameter in te schakelen.
Uit
Selecteer deze optie om de functie om te keren
van de addnsub-invoerpoort.
Zet addnsub naar hoog voor aftrekking.
Zet de addnsub op laag voor optelling.
Standaardwaarde
Beschrijving
UNSIGNED Specificeer het representatieformaat voor de vermenigvuldiger A-invoer.
Uit
Selecteer deze optie om signa in te schakelen
register.
U moet de VARIABELE waarde selecteren voor Wat is het representatieformaat voor de invoer van Multipliers A? parameter om deze optie in te schakelen.
Klok0
Selecteer Clock0, Clock1 of Clock2 om het ingangskloksignaal voor het signa-register in te schakelen en op te geven.
U moet 'signa'-invoer registreren selecteren om deze parameter in te schakelen.
GEEN
Specificeert de asynchrone wisbron voor het signa-register.
U moet 'signa'-invoer registreren selecteren om deze parameter in te schakelen.
GEEN
Specificeert de synchrone wisbron voor het signaregister.
U moet 'signa'-invoer registreren selecteren om deze parameter in te schakelen.
UNSIGNED Specificeer het weergaveformaat voor de vermenigvuldiger B-invoer.
Uit
Selecteer deze optie om signb in te schakelen
register.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-gegenereerde parameter
Waarde
Standaardwaarde
Wat is de bron voor klokinvoer?
gui_register_s ignb_clock
Klok0 Klok1 Klok2
Klok0
Wat is de bron voor asynchrone heldere invoer?
gui_register_s ignb_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_register_s ignb_sclr
GEEN SCLR0 SCLR1
Invoerconfiguratie
Registreer ingang A van de vermenigvuldiger
Wat is de bron voor klokinvoer?
gui_input_reg Aan
zuster_a
Uit
gui_input_reg ister_a_clock
Klok0 Klok1 Klok2
GEEN GEEN
Uit Klok0
Wat is de bron voor asynchrone heldere invoer?
gui_input_reg ister_a_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_input_reg ister_a_sclr
GEEN SCLR0 SCLR1
Registreer ingang B van de vermenigvuldiger
Wat is de bron voor klokinvoer?
gui_input_reg Aan
zuster_b
Uit
gui_input_reg ister_b_clock
Klok0 Klok1 Klok2
GEEN GEEN Uit Klok0
Wat is de bron voor asynchrone heldere invoer?
gui_input_reg ister_b_aclr
GEEN ACLR0 ACLR1
GEEN
Wat is de bron voor synchrone heldere invoer?
gui_input_reg ister_b_sclr
GEEN SCLR0 SCLR1
GEEN
Waarop is ingang A van de vermenigvuldiger aangesloten?
gui_multiplier Vermenigvuldigerinvoer Vermenigvuldiger
_a_invoer
Scan keteninvoer
Beschrijving
U moet de VARIABELE waarde selecteren voor Wat is het representatieformaat voor invoer van vermenigvuldigers B? parameter om deze optie in te schakelen.
Selecteer Clock0 , Clock1 of Clock2 om het ingangskloksignaal voor signb-register in te schakelen en op te geven. U moet 'signb'-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de asynchrone wisbron voor het signb-register. U moet 'signb'-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het signb-register. U moet 'signb'-invoer registreren selecteren om deze parameter in te schakelen.
Selecteer deze optie om het invoerregister voor de data-invoerbus in te schakelen.
Selecteer Clock0, Clock1 of Clock2 om het registeringangskloksignaal voor de data-ingangsbus in te schakelen en te specificeren. Om deze parameter in te schakelen, moet u Registeringang A van de vermenigvuldiger selecteren.
Specificeert de register-asynchrone wisbron voor de data-invoerbus. Om deze parameter in te schakelen, moet u Registeringang A van de vermenigvuldiger selecteren.
Specificeert de registersynchrone wisbron voor de data-invoerbus. Om deze parameter in te schakelen, moet u Registeringang A van de vermenigvuldiger selecteren.
Selecteer deze optie om het invoerregister voor de datab-invoerbus in te schakelen.
Selecteer Clock0, Clock1 of Clock2 om het registeringangskloksignaal voor de datab-ingangsbus in te schakelen en te specificeren. Om deze parameter in te schakelen, moet u Registeringang B van de vermenigvuldiger selecteren.
Specificeert de register-asynchrone wisbron voor de datab-invoerbus. Om deze parameter in te schakelen, moet u Registeringang B van de vermenigvuldiger selecteren.
Specificeert de registersynchrone wisbron voor de datab-invoerbus. Om deze parameter in te schakelen, moet u Registeringang B van de vermenigvuldiger selecteren.
Selecteer de ingangsbron voor ingang A van de vermenigvuldiger.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 50
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-gegenereerde parameter
Waarde
Scan een registerconfiguratie
Registreer de uitvoer van de scanketen
gui_scanouta Aan
_register
Uit
Wat is de bron voor klokinvoer?
gui_scanouta_register_cloc k
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_scanouta_register_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_scanouta_register_sclr
GEEN SCLR0 SCLR1
8.6.4. Tabblad Preadder
Tabel 33. Tabblad Preadder
Parameter
IP-gegenereerde parameter
Waarde
Selecteer preadder-modus
preadder_mo de
EENVOUDIG, COEF, INPUT, VIERKANT, CONSTANT
Standaardwaarde
Beschrijving
Selecteer Vermenigvuldigerinvoer om de data-invoerbus als bron voor de vermenigvuldiger te gebruiken. Selecteer Scanketeninvoer om de scaninvoerbus als bron voor de vermenigvuldiger te gebruiken en de scanuitvoerbus in te schakelen. Deze parameter is beschikbaar als u 2, 3 of 4 selecteert voor Wat is het aantal vermenigvuldigers? parameter.
Uit Klok0 GEEN GEEN
Selecteer deze optie om het uitgangsregister voor de scanouta-uitgangsbus in te schakelen.
U moet Scan keteningang selecteren voor Waar is ingang A van de vermenigvuldiger op aangesloten? parameter om deze optie in te schakelen.
Selecteer Clock0, Clock1 of Clock2 om het registeringangskloksignaal voor de scanouta-uitgangsbus in te schakelen en te specificeren.
U moet Registeruitvoer van de scanketenparameter inschakelen om deze optie in te schakelen.
Specificeert de register asynchrone wisbron voor de scanouta-uitvoerbus.
U moet Registeruitvoer van de scanketenparameter inschakelen om deze optie in te schakelen.
Specificeert de registersynchrone wisbron voor de scanouta-uitgangsbus.
U moet Uitvoer van de scanketenparameter registreren selecteren om deze optie in te schakelen.
Standaardwaarde
EENVOUDIG
Beschrijving
Specificeert de werkingsmodus voor de preaddermodule. EENVOUDIG: Deze modus omzeilt de preadder. Dit is de standaardmodus. COEF: Deze modus gebruikt de uitvoer van de preadder- en coefsel-invoerbus als invoer voor de vermenigvuldiger. INPUT: Deze modus gebruikt de uitvoer van de preadder- en datac-invoerbus als invoer voor de vermenigvuldiger. SQUARE: Deze modus gebruikt de uitvoer van de preadder als invoer voor de vermenigvuldiger.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-gegenereerde parameter
Waarde
Selecteer de richting van de preadder
gui_preadder TOEVOEGEN,
_richting
SUB
Hoe breed moeten de C width_c invoerbussen zijn?
1 – 256
Gegevens C Ingangsregisterconfiguratie
Registreer datac-invoer
gui_datac_inp Aan
ut_register
Uit
Wat is de bron voor klokinvoer?
gui_datac_inp ut_register_c lock
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_datac_inp ut_register_a clr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_datac_inp ut_register_sc lr
GEEN SCLR0 SCLR1
Coëfficiënten
Hoe breed moet de coefbreedte zijn?
breedte_coef
1 – 27
Coef Register Configuratie
Registreer de coefselinvoer
gui_coef_regi Aan
ster
Uit
Wat is de bron voor klokinvoer?
gui_coef_regi ster_clock
Klok0 Klok1 Klok2
Standaardwaarde
TOEVOEGEN
16
Beschrijving
CONSTANT: Deze modus gebruikt data-invoerbus met omzeilde preadder en coefsel-invoerbus als invoer voor de vermenigvuldiger.
Specificeert de werking van de preadder. Om deze parameter in te schakelen, selecteert u het volgende voor Select preadder mode: · COEF · INPUT · SQUARE of · CONSTANT
Specificeert het aantal bits voor de C-ingangsbus. U moet INPUT selecteren voor Select preadder mode om deze parameter in te schakelen.
Op Klok0 GEEN GEEN
Selecteer deze optie om het invoerregister voor de datac-invoerbus in te schakelen. U moet INPUT instellen op Select preadder mode parameter om deze optie in te schakelen.
Selecteer Clock0, Clock1 of Clock2 om het ingangskloksignaal voor het datac-ingangsregister op te geven. U moet Datac-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de asynchrone wisbron voor het datac-invoerregister. U moet Datac-invoer registreren selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het datac-invoerregister. U moet Datac-invoer registreren selecteren om deze parameter in te schakelen.
18
Specificeert het aantal bits voor
coefsel-ingangsbus.
U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Op Klok0
Selecteer deze optie om het ingangsregister voor de Coefsel-ingangsbus in te schakelen. U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Selecteer Clock0, Clock1 of Clock2 om het ingangskloksignaal voor het Coefsel-ingangsregister op te geven. U moet Registreer de coefsel-invoer selecteren om deze parameter in te schakelen.
voortgezet…
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 52
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Wat is de bron voor asynchrone heldere invoer?
IP-gegenereerde parameter
Waarde
gui_coef_regi ster_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer
gui_coef_regi ster_sclr
GEEN SCLR0 SCLR1
Coëfficiënt_0-configuratie
coef0_0 tot coef0_7
0x00000 0xFFFFFFFF
Coëfficiënt_1-configuratie
coef1_0 tot coef1_7
0x00000 0xFFFFFFFF
Coëfficiënt_2-configuratie
coef2_0 tot coef2_7
0x00000 0xFFFFFFFF
Coëfficiënt_3-configuratie
coef3_0 tot coef3_7
0x00000 0xFFFFFFFF
8.6.5. Tabblad Accumulator
Tabel 34. Tabblad Accumulator
Parameter
IP-gegenereerde parameter
Waarde
Accu inschakelen?
accumulator
JA NEE
Wat is het type accumulatorbewerking?
accum_directi TOEVOEGEN,
on
SUB
Standaardwaarde GEEN
GEEN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Beschrijving
Specificeert de asynchrone wisbron voor het coefsel-invoerregister. U moet Registreer de coefsel-invoer selecteren om deze parameter in te schakelen.
Specificeert de synchrone wisbron voor het coefsel-invoerregister. U moet Registreer de coefsel-invoer selecteren om deze parameter in te schakelen.
Specificeert de coëfficiëntwaarden voor deze eerste vermenigvuldiger. Het aantal bits moet hetzelfde zijn als gespecificeerd in Hoe breed moet de coefbreedte zijn? parameter. U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Specificeert de coëfficiëntwaarden voor deze tweede vermenigvuldiger. Het aantal bits moet hetzelfde zijn als gespecificeerd in Hoe breed moet de coefbreedte zijn? parameter. U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Specificeert de coëfficiëntwaarden voor deze derde vermenigvuldiger. Het aantal bits moet hetzelfde zijn als gespecificeerd in Hoe breed moet de coefbreedte zijn? parameter. U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Specificeert de coëfficiëntwaarden voor deze vierde vermenigvuldiger. Het aantal bits moet hetzelfde zijn als gespecificeerd in Hoe breed moet de coefbreedte zijn? parameter. U moet COEF of CONSTANT selecteren voor de preaddermodus om deze parameter in te schakelen.
Standaardwaarde NEE
TOEVOEGEN
Beschrijving
Selecteer JA om de accumulator in te schakelen. U moet Uitvoer van opteleenheid registreren selecteren wanneer u de accumulatorfunctie gebruikt.
Specificeert de werking van de accumulator: · ADD voor optellen · SUB voor aftrekken. U moet JA selecteren bij Accumulator inschakelen? parameter om deze optie in te schakelen.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
Voorbelastingsconstante Schakel de voorbelastingsconstante in
IP-gegenereerde parameter
Waarde
gui_ena_prelo Aan
advertentie_const
Uit
Waar is de ingang van de accumulatiepoort mee verbonden?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Selecteer waarde voor preload loadconst_val 0 – 64
constante
ue
Wat is de bron voor klokinvoer?
gui_accum_sl oad_register_ klok
Klok0 Klok1 Klok2
Wat is de bron voor asynchrone heldere invoer?
gui_accum_sl oad_register_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_accum_sl oad_register_ sclr
GEEN SCLR0 SCLR1
Dubbele accumulator inschakelen
gui_double_a Aan
cum
Uit
Standaardwaarde
Beschrijving
Uit
Schakel de accum_sload of in
sload_accum-signalen en registerinvoer
om de invoer voor de dynamisch te selecteren
accumulator.
Wanneer accum_sload laag is of sload_accum, wordt de vermenigvuldigeruitvoer naar de accumulator gevoerd.
Wanneer accum_sload hoog is of sload_accum, wordt een door de gebruiker gespecificeerde voorbelastingsconstante in de accumulator ingevoerd.
U moet JA selecteren bij Accumulator inschakelen? parameter om deze optie in te schakelen.
ACCUM_SL OAD
Specificeert het gedrag van het accum_sload/sload_accum-signaal.
ACCUM_SLOAD: Zet accum_sload laag om de vermenigvuldigeruitvoer naar de accumulator te laden.
SLOAD_ACCUM: Rijd sload_accum hoog om de vermenigvuldigeruitvoer naar de accumulator te laden.
U moet de optie Voorbelastingsconstante inschakelen selecteren om deze parameter in te schakelen.
64
Geef de vooraf ingestelde constante waarde op.
Deze waarde kan 2N zijn, waarbij N de vooraf ingestelde constante waarde is.
Wanneer N=64, vertegenwoordigt dit een constant nulpunt.
U moet de optie Voorbelastingsconstante inschakelen selecteren om deze parameter in te schakelen.
Klok0
Selecteer Clock0 , Clock1 of Clock2 om het ingangskloksignaal voor accum_sload/sload_accum register op te geven.
U moet de optie Voorbelastingsconstante inschakelen selecteren om deze parameter in te schakelen.
GEEN
Specificeert de asynchrone wisbron voor het register accum_sload/sload_accum.
U moet de optie Voorbelastingsconstante inschakelen selecteren om deze parameter in te schakelen.
GEEN
Specificeert de synchrone wisbron voor het register accum_sload/sload_accum.
U moet de optie Voorbelastingsconstante inschakelen selecteren om deze parameter in te schakelen.
Uit
Schakelt het dubbele accumulatorregister in.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 54
Feedback verzenden
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6.6. Tabblad Systolisch/Chainout
Tabel 35. Tabblad Systolische/Chainout-opteller
Parameter Chainout-opteller inschakelen
IP-gegenereerde parameter
Waarde
chainout_add JA,
er
NEE
Wat is het type chainout-optelbewerking?
chainout_add TOEVOEGEN,
er_richting
SUB
'Negate'-invoer inschakelen voor chainout-adder?
Poort_negeren
PORT_USED, PORT_UNUSED
Negatieve invoer registreren? negate_registr er
NIET-GEREGISTREERD, KLOK0, KLOK1, KLOK2, KLOK3
Wat is de bron voor asynchrone heldere invoer?
negate_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
negate_sclr
GEEN SCLR0 SCLR1
Systolische vertraging
Schakel systolische vertragingsregisters in
gui_systolisch_d Aan
Elay
Uit
Wat is de bron voor klokinvoer?
gui_systolische_d KLOK0,
elay_klok
KLOK1,
Standaardwaarde
NEE
Beschrijving
Selecteer JA om de chainout-optelmodule in te schakelen.
TOEVOEGEN
Specificeert de chainout-optelbewerking.
Voor aftrekkingen moet SIGNED worden geselecteerd voor Wat is het weergaveformaat voor invoer van vermenigvuldigers A? en Wat is het representatieformaat voor invoer van Multipliers B? op het tabblad Vermenigvuldigers.
PORT_UN GEBRUIKT
Selecteer PORT_USED om het negeren van het ingangssignaal in te schakelen.
Deze parameter is ongeldig als de chainout-opteller is uitgeschakeld.
AFMELDEN ERED
Om het ingangsregister in te schakelen voor het negeren van het ingangssignaal en specificeert het ingangskloksignaal voor het negeren van het register.
Selecteer UNREGISTERED als het negatieve invoerregister niet nodig is
Deze parameter is ongeldig als u selecteert:
· NEE voor Chainout-opteller inschakelen of
· PORT_UNUSED voor het inschakelen van 'negate'-invoer voor chainout-adder? parameter of
GEEN
Specificeert de asynchrone wisbron voor het negatieregister.
Deze parameter is ongeldig als u selecteert:
· NEE voor Chainout-opteller inschakelen of
· PORT_UNUSED voor het inschakelen van 'negate'-invoer voor chainout-adder? parameter of
GEEN
Specificeert de synchrone wisbron voor het negatieregister.
Deze parameter is ongeldig als u selecteert:
· NEE voor Chainout-opteller inschakelen of
· PORT_UNUSED voor het inschakelen van 'negate'-invoer voor chainout-adder? parameter of
Uit KLOK0
Selecteer deze optie om de systolische modus in te schakelen. Deze parameter is beschikbaar als u 2 of 4 selecteert voor Wat is het aantal vermenigvuldigers? parameter. U moet de registeruitgang van de opteleenheid inschakelen om de systolische vertragingsregisters te kunnen gebruiken.
Specificeert het ingangskloksignaal voor het systolische vertragingsregister.
voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parameter
IP-gegenereerde parameter
Waarde
KLOK2,
Wat is de bron voor asynchrone heldere invoer?
gui_systolic_d elay_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_systolic_d elay_sclr
GEEN SCLR0 SCLR1
Standaardwaarde
GEEN
GEEN
Beschrijving
U moet systolische vertragingsregisters inschakelen selecteren om deze optie in te schakelen.
Specificeert de asynchrone wisbron voor het systolische vertragingsregister. U moet systolische vertragingsregisters inschakelen selecteren om deze optie in te schakelen.
Specificeert de synchrone wisbron voor het systolische vertragingsregister. U moet systolische vertragingsregisters inschakelen selecteren om deze optie in te schakelen.
8.6.7. Tabblad Pipelining
Tabel 36. Tabblad Pipelining
Configuratie van parameterpijplijnen
IP-gegenereerde parameter
Waarde
Wilt u pijplijnregister toevoegen aan de invoer?
gui_pipelining Nee, ja
Standaardwaarde
Nee
Geef aan wat de
latentie
aantal latentieklok
cycli
Elke waarde groter dan 0
Wat is de bron voor klokinvoer?
gui_input_late ncy_clock
KLOK0, KLOK1, KLOK2
Wat is de bron voor asynchrone heldere invoer?
gui_input_late ncy_aclr
GEEN ACLR0 ACLR1
Wat is de bron voor synchrone heldere invoer?
gui_input_late ncy_sclr
GEEN SCLR0 SCLR1
KLOK0 GEEN GEEN
Beschrijving
Selecteer Ja om een extra niveau van pijplijnregister voor de ingangssignalen in te schakelen. U moet een waarde groter dan 0 opgeven voor Geef het aantal latentieklokcycli op.
Specificeert de gewenste latentie in klokcycli. Eén niveau van pijplijnregister = 1 latentie in klokcyclus. U moet JA selecteren bij Wilt u pijplijnregister toevoegen aan de invoer? om deze optie in te schakelen.
Selecteer Clock0 , Clock1 of Clock2 om het ingangskloksignaal van het pijplijnregister in te schakelen en op te geven. U moet JA selecteren bij Wilt u pijplijnregister toevoegen aan de invoer? om deze optie in te schakelen.
Specificeert de register-asynchrone wisbron voor het extra pijplijnregister. U moet JA selecteren bij Wilt u pijplijnregister toevoegen aan de invoer? om deze optie in te schakelen.
Specificeert de registersynchrone wisbron voor het extra pijplijnregister. U moet JA selecteren bij Wilt u pijplijnregister toevoegen aan de invoer? om deze optie in te schakelen.
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 56
Feedback verzenden
683490 | 2020.10.05 Feedback verzenden
9. ALTMEMMULT (op geheugen gebaseerde constante coëfficiëntvermenigvuldiger) IP Core
Aandacht:
Intel heeft de ondersteuning van dit IP-adres verwijderd in Intel Quartus Prime Pro Edition versie 20.3. Als de IP-kern in uw ontwerp zich richt op apparaten in Intel Quartus Prime Pro Edition, kunt u het IP-adres vervangen door LPM_MULT Intel FPGA IP of het IP-adres opnieuw genereren en uw ontwerp compileren met behulp van Intel Quartus Prime Standard Edition-software.
De ALTMEMMULT IP-kern wordt gebruikt om op geheugen gebaseerde vermenigvuldigers te creëren met behulp van de on-chip geheugenblokken die te vinden zijn in Intel FPGA's (met M512-, M4K-, M9K- en MLAB-geheugenblokken). Deze IP-kern is handig als u niet over voldoende middelen beschikt om de vermenigvuldigers in logische elementen (LE's) of speciale vermenigvuldigerbronnen te implementeren.
De ALTMEMMULT IP-kern is een synchrone functie waarvoor een klok vereist is. De ALTMEMMULT IP-kern implementeert een vermenigvuldiger met de kleinst mogelijke doorvoer en latentie voor een gegeven set parameters en specificaties.
De volgende afbeelding toont de poorten voor de ALTMEMMULT IP-kern.
Figuur 21. ALTMEMMULT-poorten
ALTMEMMULT
data_in[] sload_data coeff_in[]
resultaat[] resultaat_valid load_done
sload_coeff
scl klok
inst
Gerelateerde informatie Functies op pagina 71
9.1. Kenmerken
De ALTMEMMULT IP-kern biedt de volgende kenmerken: · Creëert alleen op geheugen gebaseerde vermenigvuldigers met behulp van on-chip geheugenblokken gevonden in
Intel FPGA's · Ondersteunt databreedte van 1 bits · Ondersteunt ondertekende en niet-ondertekende datarepresentatieformaten · Ondersteunt pipelining met vaste uitvoerlatentie
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
ISO 9001: 2015 geregistreerd
9. ALTMEMMULT (op geheugen gebaseerde constante coëfficiëntvermenigvuldiger) IP Core 683490 | 2020.10.05
· Slaat meerdere constanten op in het Random Access Memory (RAM)
· Biedt een optie om het RAM-bloktype te selecteren
· Ondersteunt optionele synchrone clear- en load-control-invoerpoorten
9.2. Verilog HDL-prototype
Het volgende Verilog HDL-prototype bevindt zich in het Verilog Design File (.v) altera_mf.v in de eda-synthesemap.
module altmemmult #( parameter coeff_representation = “SIGNED”, parameter coëfficiënt0 = “UNUSED”, parameter data_representation = “SIGNED”, parameter beoogde_device_family = “unused”, parameter max_clock_cycles_per_result = 1, parameter number_of_coefficients = 1, parameter ram_block_type = “AUTO”, parameter total_latency = 1, parameter breedte_c = 1, parameter breedte_d = 1, parameter breedte_r = 1, parameter breedte_s = 1, parameter lpm_type = "altmemmult", parameter lpm_hint = "ongebruikt") (ingangsdraadklok, ingangsdraad [width_c-1: 0]coeff_in, invoerdraad [width_d-1:0] data_in, uitvoerdraad load_done, uitvoerdraad [width_r-1:0] resultaat, uitvoerdraad resultaat_valid, invoerdraad sclr, invoerdraad [width_s-1:0] sel, invoer wire sload_coeff, input wire sload_data)/* synthese syn_black_box=1 */; eindmodule
9.3. VHDL-componentverklaring
De VHDL-componentdeclaratie bevindt zich in het VHDL-ontwerp File (.vhd) altera_mf_components.vhd in de bibliothekenvhdlaltera_mf map.
component altmemmult generiek ( coeff_representation:string := “ONDERTEKEND”; coëfficiënt0:string := “UNUSED”; data_representation:string := “SIGNED”; beoogde_device_family:string := “ongebruikt”; max_clock_cycles_per_result:natural := 1; number_of_coefficients:natural := 1; ram_block_type:string:= “AUTO”; totale_latency:natuurlijk; breedte_d:natuurlijk; breedte_s:natuurlijk:= 1; “altmemmult”); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 0) := (anderen => '0'); data_in:in std_logic_vector(width_d-1 downto 0);
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 58
Feedback verzenden
9. ALTMEMMULT (op geheugen gebaseerde constante coëfficiëntvermenigvuldiger) IP Core 683490 | 2020.10.05
load_done:out std_logic; resultaat:out std_logic_vector(width_r-1 tot 0); resultaat_geldig:uit std_logic; sclr:in std_logic := '0'; sel:in std_logic_vector(width_s-1 tot 0) := (anderen => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); eindcomponent;
9.4. Havens
De volgende tabellen geven een overzicht van de invoer- en uitvoerpoorten voor de ALTMEMMULT IP-kern.
Tabel 37. ALTMEMMULT-invoerpoorten
Havennaam
Vereist
Beschrijving
klok
Ja
Klokingang naar de vermenigvuldiger.
coeff_in[]
Nee
Coëfficiëntinvoerpoort voor de vermenigvuldiger. De grootte van de invoerpoort is afhankelijk van de parameterwaarde WIDTH_C.
data_in[]
Ja
Gegevensinvoerpoort naar de vermenigvuldiger. De grootte van de invoerpoort is afhankelijk van de parameterwaarde WIDTH_D.
sclr
Nee
Synchrone duidelijke invoer. Indien niet gebruikt, is de standaardwaarde actief hoog.
sel[]
Nee
Vaste coëfficiëntselectie. De grootte van de invoerpoort is afhankelijk van de WIDTH_S
parameterwaarde.
sload_coeff
Nee
Synchrone invoerpoort voor belastingscoëfficiënt. Vervangt de huidige geselecteerde coëfficiëntwaarde door de waarde die is opgegeven in de coeff_in-invoer.
sload_data
Nee
Synchrone invoerpoort voor laadgegevens. Signaal dat een nieuwe vermenigvuldigingsbewerking specificeert en een bestaande vermenigvuldigingsbewerking annuleert. Als de parameter MAX_CLOCK_CYCLES_PER_RESULT de waarde 1 heeft, wordt de invoerpoort sload_data genegeerd.
Tabel 38. ALTMEMMULT-uitvoerpoorten
Havennaam
Vereist
Beschrijving
resultaat[]
Ja
Uitgangspoort van de vermenigvuldiger. De grootte van de invoerpoort is afhankelijk van de parameterwaarde WIDTH_R.
resultaat_geldig
Ja
Geeft aan wanneer de uitvoer het geldige resultaat is van een volledige vermenigvuldiging. Als de parameter MAX_CLOCK_CYCLES_PER_RESULT de waarde 1 heeft, wordt de result_valid-uitvoerpoort niet gebruikt.
laad_klaar
Nee
Geeft aan wanneer de nieuwe coëfficiënt geladen is. Het load_done-signaal geeft aan wanneer een nieuwe coëfficiënt is geladen. Tenzij het load_done-signaal hoog is, kan er geen andere coëfficiëntwaarde in het geheugen worden geladen.
9.5. parameters
De volgende tabel bevat de parameters voor de ALTMEMMULT IP-kern.
Tabel 39.
WIDTH_D WIDTH_C
ALTMEMMULT-parameters
Parameternaam
Type vereist
Beschrijving
Geheel getal Ja
Specificeert de breedte van de data_in[]-poort.
Geheel getal Ja
Specificeert de breedte van de coeff_in[]-poort. voortgezet…
Feedback verzenden
Intel FPGA Integer Rekenkundige IP Cores Gebruikershandleiding 59
9. ALTMEMMULT (op geheugen gebaseerde constante coëfficiëntvermenigvuldiger) IP Core 683490 | 2020.10.05
Parameternaam WIDTH_R WIDTH
Documenten / Bronnen
![]() |
Intel FPGA geheel getal rekenkundige IP-kernen [pdf] Gebruikershandleiding FPGA rekenkundige IP-kernen met geheel getal, rekenkundige IP-kernen met geheel getal, rekenkundige IP-kernen, IP-kernen |