FPGA Heelgetal Rekenkundige IP Cores
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids
Opgedateer vir Intel® Quartus® Prime Design Suite: 20.3
Aanlyn weergawe Stuur terugvoer
UG-01063
ID: 683490 Weergawe: 2020.10.05
Inhoud
Inhoud
1. Intel FPGA Heelgetal Rekenkundige IP Cores……………………………………………………………………….. 5
2. LPM_COUNTER (Teller) IP-kern……………………………………………………………………………….. 7 2.1. Kenmerke………………………………………………………………………………………………………………7 2.2. Verilog HDL-prototipe……………………………………………………………………………………….. 8 2.3. VHDL-komponentverklaring……………………………………………………………………………….8 2.4. VHDL-BIBLIOTEEK_GEBRUIK Verklaring………………………………………………………………………… 9 2.5. Hawens………………………………………………………………………………………………………………………..9 2.6. Parameters……………………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Verdeler) Intel FPGA IP Core……………………………………………………………………….. 12 3.1. Kenmerke………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototipe……………………………………………………………………………………… 12 3.3. VHDL-komponentverklaring………………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 13 3.5. Hawens……………………………………………………………………………………………………………… 13 3.6. Parameters……………………………………………………………………………………………………………… 14
4. LPM_MULT (Vermenigvuldiger) IP-kern………………………………………………………………………………………. 16 4.1. Kenmerke………………………………………………………………………………………………. 16 4.2. Verilog HDL-prototipe……………………………………………………………………………………… 17 4.3. VHDL-komponentverklaring………………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 17 4.5. Seine………………………………………………………………………………………………………… 18 4.6. Parameters vir Stratix V-, Arria V-, Cyclone V- en Intel Cyclone 10 LP-toestelle………………… 18 4.6.1. Algemeen-oortjie…………………………………………………………………………………………18 4.6.2. Algemeen 2 Tab……………………………………………………………………………………… 19 4.6.3. Pypleidingoortjie……………………………………………………………………………………… 19 4.7. Parameters vir Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX-toestelle……….. 20 4.7.1. Algemeen-oortjie …………………………………………………………………………………………20 4.7.2. Algemeen 2 Tab……………………………………………………………………………………… 20 4.7.3. Pypleiding………………………………………………………………………………………………………21
5. LPM_ADD_SUB (Opteller/Aftrekker) ………………………………………………………………………………… 22 5.1. Kenmerke………………………………………………………………………………………………. 22 5.2. Verilog HDL-prototipe……………………………………………………………………………………… 23 5.3. VHDL-komponentverklaring………………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 23 5.5. Hawens……………………………………………………………………………………………………………… 23 5.6. Parameters……………………………………………………………………………………………………………… 24
6. LPM_VERGELYKING (Vergelyker) ………………………………………………………………………………………… 26 6.1. Kenmerke………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototipe……………………………………………………………………………………… 27 6.3. VHDL-komponentverklaring………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 27 6.5. Hawens……………………………………………………………………………………………………………… 27 6.6. Parameters……………………………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 2
Stuur terugvoer
Inhoud
7. ALTECC (Foutkorreksiekode: Enkodeerder/Dekodeerder) IP-kern………………………………………… 30
7.1. ALTECC-enkodeerderkenmerke…………………………………………………………………………………..31 7.2. Verilog HDL-prototipe (ALTECC_ENCODER) …………………………………………………………………. 32 7.3. Verilog HDL-prototipe (ALTECC_DECODER) …………………………………………………………………. 32 7.4. VHDL-komponentverklaring (ALTECC_ENCODER)…………………………………………………33 7.5. VHDL-komponentverklaring (ALTECC_DECODER)…………………………………………………33 7.6. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 33 7.7. Enkodeerderpoorte……………………………………………………………………………………………… 33 7.8. Dekodeerderpoorte………………………………………………………………………………………………………34 7.9. Enkodeerderparameters……………………………………………………………………………………… 34 7.10. Dekodeerderparameters ………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………………. 36
8.1. Kenmerke………………………………………………………………………………………………. 37 8.1.1. Vooropteller……………………………………………………………………………………….. 38 8.1.2. Sistoliese vertragingsregister……………………………………………………………………….. 40 8.1.3. Voorlaaikonstante……………………………………………………………………………… 43 8.1.4. Dubbelakkumulator……………………………………………………………………………… 43
8.2. Verilog HDL-prototipe……………………………………………………………………………………… 44 8.3. VHDL-komponentverklaring………………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE Verklaring………………………………………………………………………………. 44 8.5. Seine………………………………………………………………………………………………………… 44 8.6. Parameters……………………………………………………………………………………………………………… 47
8.6.1. Algemeen-oortjie…………………………………………………………………………………………47 8.6.2. Ekstra modusse-oortjie………………………………………………………………………………….. 47 8.6.3. Vermenigvuldigers Tab……………………………………………………………………………………….. 49 8.6.4. Preadder-oortjie………………………………………………………………………………………………. 51 8.6.5. Akkumulatoroortjie………………………………………………………………………………….. 53 8.6.6. Sistoliese/Ketting-oortjie………………………………………………………………………………. 55 8.6.7. Pypleidingoortjie……………………………………………………………………………………… 56
9. ALTMEMMULT (Geheue-gebaseerde Konstante Koëffisiënt Vermenigvuldiger) IP Kern………………………… 57
9.1. Kenmerke………………………………………………………………………………………………. 57 9.2. Verilog HDL-prototipe……………………………………………………………………………………… 58 9.3. VHDL-komponentverklaring………………………………………………………………………….. 58 9.4. Hawens……………………………………………………………………………………………………………… 59 9.5. Parameters……………………………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Vermenigvuldig-akkumuleer) IP-kern……………………………………………………… 61
10.1. Kenmerke……………………………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototipe…………………………………………………………………………………………..62 10.3. VHDL-komponentverklaring………………………………………………………………………… 63 10.4. VHDL-BIBLIOTEEK_GEBRUIK Verklaring………………………………………………………………………………63 10.5. Hawens………………………………………………………………………………………………………………. 63 10.6. Grense…………………………………………………………………………………………. 64
11. ALTMULT_ADD (Vermenigvuldig-adder) IP-kern…………………………………………………………………..69
11.1. Kenmerke……………………………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototipe…………………………………………………………………………………………..72 11.3. VHDL-komponentverklaring………………………………………………………………………… 72 11.4. VHDL LIBRARY_GEBRUIK Verklaring………………………………………………………………………………72
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 3
Inhoud
11.5. Hawens………………………………………………………………………………………………………………. 72 11.6. Grense…………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Komplekse vermenigvuldiger) IP-kern……………………………………………………… 86 12.1. Komplekse vermenigvuldiging………………………………………………………………………………………………. 86 12.2. Kanoniese voorstelling………………………………………………………………………… 87 12.3. Konvensionele verteenwoordiging…………………………………………………………………………………. 87 12.4. Kenmerke……………………………………………………………………………………………………………….. 88 12.5. Verilog HDL-prototipe………………………………………………………………………………………..88 12.6. VHDL-komponentverklaring………………………………………………………………………… 89 12.7. VHDL-BIBLIOTEEK_GEBRUIK Verklaring………………………………………………………………………89 12.8. Seine………………………………………………………………………………………………………………. 89 12.9. Grense…………………………………………………………………………………………. 90
13. ALTSQRT (Geheelgetal Vierkantwortel) IP-kern…………………………………………………………………………92 13.1. Kenmerke……………………………………………………………………………………………………………….. 92 13.2. Verilog HDL-prototipe………………………………………………………………………………………..92 13.3. VHDL-komponentverklaring………………………………………………………………………… 93 13.4. VHDL-BIBLIOTEEK_GEBRUIK Verklaring………………………………………………………………………………93 13.5. Hawens………………………………………………………………………………………………………………. 93 13.6. Grense…………………………………………………………………………………………. 94
14. PARALLEL_ADD (Parallelle Adder) IP-kern………………………………………………………………….. 95 14.1. Kenmerk……………………………………………………………………………………………………………….95 14.2. Verilog HDL-prototipe…………………………………………………………………………………………..95 14.3. VHDL-komponentverklaring………………………………………………………………………… 96 14.4. VHDL LIBRARY_GEBRUIK Verklaring………………………………………………………………………………96 14.5. Hawens………………………………………………………………………………………………………………. 96 14.6. Grense…………………………………………………………………………………………. 97
15. Heelgetal rekenkundige IP-kerngebruikersgids Dokumentargiewe………………………………… 98
16. Dokumenthersieningsgeskiedenis vir Intel FPGA Integer Rekenkundige IP Cores Gebruikersgids…. 99
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 4
Stuur terugvoer
683490 | 2020.10.05 Stuur terugvoer
1. Intel FPGA Integer Rekenkundige IP Cores
Jy kan die Intel® FPGA heelgetal IP-kerne gebruik om wiskundige bewerkings in jou ontwerp uit te voer.
Hierdie funksies bied meer doeltreffende logika-sintese en toestelimplementering as om jou eie funksies te kodeer. U kan die IP-kerne aanpas om aan u ontwerpvereistes te voldoen.
Intel heelgetal rekenkundige IP-kerns word in die volgende twee kategorieë verdeel: · Biblioteek van geparameteriseerde modules (LPM) IP-kerns · Intel-spesifieke (ALT) IP-kerne
Die volgende tabel lys die heelgetal rekenkundige IP-kerns.
Tabel 1.
Lys van IP-kerne
IP kerns
LPM IP-kerne
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Intel-spesifieke (ALT) IP-kerne ALTECC
Funksie verbyview Counter Divider Multiplier
Optel- of aftrekkervergelyker
ECC Encoder/Decoder
Ondersteunde toestel
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel Cyclone 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V vervolg ...
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
1. Intel FPGA Integer Rekenkundige IP Cores 683490 | 2020.10.05/XNUMX/XNUMX
IP Cores Intel FPGA Multiply Adder of ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD
Funksie verbyview Vermenigvuldiger-opteller
Geheue-gebaseerde konstante koëffisiëntvermenigvuldiger
Vermenigvuldiger-akkumulator Vermenigvuldiger-opteller
Komplekse vermenigvuldiger
Heelgetal Vierkantwortel
Parallelle Adder
Ondersteunde toestel
Arria V, Stratix V, Cyclone V, Intel Stratix 10, Intel Arria 10, Intel Cyclone
10 GX
Arria II GX, Arria II GZ, Arria V, Intel Arria 10 (Intel Quartus® Prime Standard Edition), Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 GX, Intel Cyclone 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Verwante inligting
· Intel FPGA's en programmeerbare toestelle vrystellingsnotas
· Inleiding tot Intel FPGA IP Cores Verskaf meer inligting oor Intel FPGA IP Cores.
· Floating-Point IP Cores Gebruikersgids Verskaf meer inligting oor Intel FPGA Floating-Point IP-kerne.
· Inleiding tot Intel FPGA IP Cores Verskaf algemene inligting oor alle Intel FPGA IP-kerns, insluitend parameterisering, generering, opgradering en simulering van IP-kerne.
· Skep weergawe-onafhanklike IP- en Qsys-simulasieskrifte Skep simulasieskripte wat nie handopdaterings vir sagteware of IP-weergawe-opgraderings benodig nie.
· Projekbestuur Beste Praktyke Riglyne vir doeltreffende bestuur en oordraagbaarheid van jou projek en IP files.
· Heelgetalrekenkundige IP-kerngebruikersgids Dokumentargiewe op bladsy 98 Verskaf 'n lys van gebruikersgidse vir vorige weergawes van die Heelgetalrekenkundige IP-kerns.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 6
Stuur terugvoer
683490 | 2020.10.05 Stuur terugvoer
2. LPM_COUNTER (Teller) IP-kern
Figuur 1.
Die LPM_COUNTER IP-kern is 'n binêre teller wat op-, af- en op- of aftellers skep met uitsette van tot 256 bisse wyd.
Die volgende figuur toon die poorte vir die LPM_COUNTER IP-kern.
LPM_COUNTER poorte
LPM_COUNTER
ssclr laai sset data[]
q[]
op af
uithaal
aclr aload asset
clk_en cnt_en cin
inst
2.1. Kenmerke
Die LPM_COUNTER IP-kern bied die volgende kenmerke: · Genereer op-, af- en op-/af-tellers · Genereer die volgende tellertipes:
- Gewone binêre - die teller inkremente vanaf nul of verminder vanaf 255
— Modulus – die teller inkrementeer na of verminder vanaf die moduluswaarde wat deur die gebruiker gespesifiseer is en herhaal
· Ondersteun opsionele sinchroniese skoonmaak-, laai- en stel-invoerpoorte · Ondersteun opsionele asinchroniese skoonmaak-, laai- en stel-invoerpoorte · Ondersteun opsionele tel-en-en-klokaktiveer-invoerpoorte · Ondersteun opsionele in- en uitvoerpoorte
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
2. LPM_COUNTER (Teller) IP-kern
683490 | 2020.10.05
2.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
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 = "ONGEBRUIK"; parameter lpm_avalue = "ONGEBRUIK"; parameter lpm_svalue = "ONGEBRUIK"; parameter lpm_pvalue = "ONGEBRUIK"; parameter lpm_port_updown = "PORT_CONNECTIVITY"; parameter lpm_hint = "ONGEBRUIK"; uitvoer [lpm_width-1:0] q; uitset uitslag; uitset [15:0] vgl; invoer cin; invoer [lpm_width-1:0] data; invoer klok, clk_en, cnt_en, updown; invoer aset, aclr, aload; invoer sset, sclr, laai; eindmodule
2.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) LPM_PACK.vhd in die librariesvhdllpm gids.
komponent LPM_COUNTER generies ( LPM_WIDTH : natuurlik; LPM_MODULUS : natuurlik := 0; LPM_DIRECTION : string := “UNUSED”; LPM_AVALUE : string := “UNUSED”; LPM_SVALUE : string := “UNUSED”; LPM_PORT:_CONTIN_PORT:_IVN ; LPM_PVALUE : string := "ONGEBRUIK"; LPM_TYPE poort (DATA: in std_logic_vector(LPM_WIDTH-1 af na 0):= (ANDER =>
'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'; V: uit std_logic_vector (LPM_WIDTH-1 af na 0); EQ: uit std_logic_vector (15 af na 0));
eindkomponent;
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 8
Stuur terugvoer
2. LPM_COUNTER (Teller) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
2.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK lpm; GEBRUIK lpm.lpm_components.all;
2.5. Hawens
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die LPM_COUNTER IP-kern.
Tabel 2.
LPM_COUNTER invoerpoorte
Port Naam
Vereis
Beskrywing
data[]
Nee
Parallelle data-invoer na die teller. Die grootte van die invoerpoort hang af van die LPM_WIDTH parameterwaarde.
horlosie
Ja
Positiewe rand-geaktiveerde klokinvoer.
clk_af
Nee
Klok aktiveer invoer om alle sinchrone aktiwiteite te aktiveer. As dit weggelaat word, is die verstekwaarde 1.
cnt_af
Nee
Telling aktiveer invoer om die telling te deaktiveer wanneer dit laag beweer word sonder om laai, sset of sclr te beïnvloed. As dit weggelaat word, is die verstekwaarde 1.
op af
Nee
Beheer die rigting van die telling. Wanneer hoog (1) beweer word, is die telrigting op, en wanneer dit laag (0) beweer word, is die telrigting af. As die LPM_DIRECTION parameter gebruik word, kan die opwaartse poort nie gekoppel word nie. As LPM_DIRECTION nie gebruik word nie, is die opwaartse poort opsioneel. As dit weggelaat word, is die verstekwaarde op (1).
cin
Nee
Dra in na die lae-orde bietjie. Vir optellers is die gedrag van die cin-invoer
identies aan die gedrag van die cnt_en-invoer. As dit weggelaat word, is die verstekwaarde 1
(VCC).
aclr
Nee
Asinchroniese duidelike invoer. As beide aset en aclr gebruik en beweer word, vervang aclr aset. As dit weggelaat word, is die verstekwaarde 0 (gedeaktiveer).
bate
Nee
Asinchroniese stel invoer. Spesifiseer die q[]-uitsette as alle 1'e, of tot die waarde gespesifiseer deur die LPM_AVALUE-parameter. As beide die asset- en aclr-poorte gebruik en beweer word, vervang die waarde van die aclr-poort die waarde van die asset-poort. As dit weggelaat word, is die verstekwaarde 0, gedeaktiveer.
baie
Nee
Asinchroniese lasinvoer wat die teller asinchronies laai met die waarde op die data-invoer. Wanneer die aload-poort gebruik word, moet die data[]-poort gekoppel word. As dit weggelaat word, is die verstekwaarde 0, gedeaktiveer.
sclr
Nee
Sinchroniese duidelike invoer wat die teller op die volgende aktiewe klokrand skoonmaak. As beide die sset- en sclr-poorte gebruik en beweer word, oorheers die waarde van die sclr-poort die waarde van die sset-poort. As dit weggelaat word, is die verstekwaarde 0, gedeaktiveer.
sset
Nee
Sinchroniese stelinvoer wat die teller op die volgende aktiewe klokrand stel. Spesifiseer die waarde van die q-uitsette as alle 1'e, of tot die waarde gespesifiseer deur die LPM_SVALUE-parameter. As beide die sset- en sclr-poorte gebruik en beweer word,
die waarde van die sclr-poort oorheers die waarde van die sset-poort. As dit weggelaat word, is die verstekwaarde 0 (gedeaktiveer).
laai
Nee
Sinchroniese lasinvoer wat die teller laai met data[] op die volgende aktiewe klokrand. Wanneer die laaipoort gebruik word, moet die data[]-poort gekoppel word. As dit weggelaat word, is die verstekwaarde 0 (gedeaktiveer).
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 9
2. LPM_COUNTER (Teller) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
Tabel 3.
LPM_COUNTER Uitsetpoorte
Port Naam
Vereis
Beskrywing
q[]
Nee
Data-uitvoer vanaf die toonbank. Die grootte van die uitsetpoort hang af van die
LPM_WIDTH parameterwaarde. Óf q[] of ten minste een van die eq[15..0] poorte
gekoppel moet word.
vgl[15..0]
Nee
Teen-dekodeer-uitset. Die eq[15..0]-poort is nie toeganklik in die parameterredigeerder nie omdat die parameter slegs AHDL ondersteun.
Óf die q[]-poort of eq[]-poort moet gekoppel wees. Tot c eq-poorte kan gebruik word (0 <= c <= 15). Slegs die 16 laagste telwaardes word gedekodeer. Wanneer die telwaarde c is, word die eqc-uitset hoog beweer (1). Byvoorbeeldample, wanneer die telling 0 is, eq0 = 1, wanneer die telling 1 is, eq1 = 1, en wanneer die telling 15 is, vgl 15 = 1. Gedekodeerde uitset vir tellingwaardes van 16 of meer vereis eksterne dekodering. Die eq[15..0]-uitsette is asynchronies met die q[]-uitset.
uithaal
Nee
Uitvoerpoort van die teller se MSB-bietjie. Dit kan gebruik word om aan 'n ander toonbank te koppel om 'n groter toonbank te skep.
2.6. Grense
Die volgende tabel lys die parameters vir die LPM_COUNTER IP-kern.
Tabel 4.
LPM_COUNTER Parameters
Parameter Naam
Tik
LPM_WIDTH
Heelgetal
LPM_DIRECTION
Snaar
LPM_MODULUS LPM_AVALUE
Heelgetal
Heelgetal/ String
LPM_SVALUE LPM_HINT
Heelgetal/ String
Snaar
LPM_TYPE
Snaar
Vereis Ja Nee Nee Nee
Nee Nee
Nee
Beskrywing
Spesifiseer die breedtes van die data[]- en q[]-poorte, indien hulle gebruik word.
Waardes is OP, AF en ONGEBRUIK. As die LPM_DIRECTION parameter gebruik word, kan die opwaartse poort nie gekoppel word nie. Wanneer die opwaartse poort nie gekoppel is nie, is die LPM_DIRECTION parameter verstekwaarde OP.
Die maksimum telling, plus een. Aantal unieke toestande in die teller se siklus. As die laswaarde groter is as die LPM_MODULUS-parameter, word die gedrag van die teller nie gespesifiseer nie.
Konstante waarde wat gelaai word wanneer bate hoog beweer word. As die waarde wat gespesifiseer is groter as of gelyk aan , die gedrag van die teller is 'n ongedefinieerde (X) logika vlak, waar is LPM_MODULUS, indien teenwoordig, of 2 ^ LPM_WIDTH. Intel beveel aan dat jy hierdie waarde as 'n desimale getal vir AHDL-ontwerpe spesifiseer.
Konstante waarde wat op die stygende rand van die klokpoort gelaai word wanneer die sset-poort hoog beweer word. Intel beveel aan dat jy hierdie waarde as 'n desimale getal vir AHDL-ontwerpe spesifiseer.
Wanneer jy 'n biblioteek van geparameteriseerde modules (LPM) instansieer funksioneer in 'n VHDL-ontwerp File (.vhd), moet jy die LPM_HINT parameter gebruik om 'n Intel-spesifieke parameter te spesifiseer. Byvoorbeeldample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = JA"
Die verstekwaarde is UNUSED.
Identifiseer die biblioteek van geparameteriseerde modules (LPM) entiteitsnaam in VHDL-ontwerp files.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 10
Stuur terugvoer
2. LPM_COUNTER (Teller) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
Parameternaam INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Tik String String
Snaar
Snaar
Vereiste Nee No
Nee
Nee
Beskrywing
Hierdie parameter word gebruik vir modellering en gedragsimulasiedoeleindes. Hierdie parameter word gebruik vir modellering en gedragsimulasiedoeleindes. Die parameterredigeerder bereken die waarde vir hierdie parameter.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die CARRY_CNT_EN parameter in VHDL ontwerp te spesifiseer files. Waardes is SLIM, AAN, AF en ONGEBRUIK. Aktiveer die LPM_COUNTER-funksie om die cnt_en-sein deur die draketting te versprei. In sommige gevalle kan die CARRY_CNT_EN-parameterinstelling 'n effense impak op die spoed hê, so jy sal dit dalk wil afskakel. Die verstekwaarde is SMART, wat die beste afweging tussen grootte en spoed bied.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die LABWIDE_SCLR parameter in VHDL ontwerp te spesifiseer files. Waardes is AAN, AF of NIE GEBRUIK. Die verstekwaarde is AAN. Laat jou toe om die gebruik van die LABwide sclr-funksie wat in verouderde toestelfamilies gevind word, te deaktiveer. Deur hierdie opsie af te skakel, verhoog die kanse om die gedeeltelik gevulde LAB's ten volle te gebruik, en kan dus hoër logika-digtheid toelaat wanneer SCLR nie op 'n volledige LAB van toepassing is nie. Hierdie parameter is beskikbaar vir terugwaartse versoenbaarheid, en Intel beveel aan dat jy nie hierdie parameter gebruik nie.
Spesifiseer die gebruik van die opwaartse invoerpoort. As dit weggelaat word, is die verstekwaarde PORT_CONNECTIVITY. Wanneer die poortwaarde op PORT_USED gestel is, word die poort as gebruik hanteer. Wanneer die poortwaarde op PORT_UNUSED gestel is, word die poort as ongebruik behandel. Wanneer die poortwaarde op PORT_CONNECTIVITY gestel is, word die poortgebruik bepaal deur die poortverbinding na te gaan.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 11
683490 | 2020.10.05 Stuur terugvoer
3. LPM_DIVIDE (Verdeler) Intel FPGA IP Core
Figuur 2.
Die LPM_DIVIDE Intel FPGA IP-kern implementeer 'n verdeler om 'n teller-invoerwaarde te deel deur 'n noemer-insetwaarde om 'n kwosiënt en 'n res te produseer.
Die volgende figuur toon die poorte vir die LPM_DIVIDE IP-kern.
LPM_DIVIDE-poorte
LPM_DIVIDE
nommer[] denom[] horlosie
kwosiënt[] bly[]
clken aclr
inst
3.1. Kenmerke
Die LPM_DIVIDE IP-kern bied die volgende kenmerke: · Genereer 'n verdeler wat 'n teller-invoerwaarde deur 'n noemer-invoer deel
waarde om 'n kwosiënt en 'n res te produseer. · Ondersteun data breedte van 1 bisse. · Ondersteun getekende en ongetekende datavoorstellingsformaat vir beide die teller
en noemerwaardes. · Ondersteun area- of spoedoptimalisering. · Verskaf 'n opsie om 'n positiewe res-uitset te spesifiseer. · Ondersteun pypleiding konfigureerbare uitset latency. · Ondersteun opsionele asynchrone helder en klok aktiveer poorte.
3.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
module lpm_divide (kwosiënt, bly, getal, denom, klok, clken, aclr); parameter lpm_type = "lpm_divide"; parameter lpm_widthn = 1; parameter lpm_widthd = 1; parameter lpm_nrepresentation = "ONTEKENNEDE"; parameter lpm_drepresentation = "ONTEKENNEDE"; parameter lpm_remainderpositive = "WAAR"; parameter lpm_pipeline = 0;
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
3. LPM_DIVIDE (Verdeler) Intel FPGA IP Core 683490 | 2020.10.05/XNUMX/XNUMX
parameter lpm_hint = "ONGEBRUIK"; invoer klok; invoer clken; invoer aclr; invoer [lpm_widthn-1:0] nommer; invoer [lpm_widthd-1:0] denominasie; uitvoer [lpm_widthn-1:0] kwosiënt; uitset [lpm_widthd-1:0] bly; eindmodule
3.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) LPM_PACK.vhd in die librariesvhdllpm gids.
komponent LPM_DIVIDE generies (LPM_WIDTHN: natuurlik; LPM_WIDTHD: natuurlik;
LPM_NREPRESENTATION : string := “ONTEKEN”; LPM_DREPRESENTATION : string := “ONTEKEN”; LPM_PIPELINE : natuurlik := 0; LPM_TYPE : string := L_DIVIDE; LPM_HINT : string := “UNUSED”); poort (NUMER: in std_logic_vector(LPM_WIDTHN-1 af na 0); DENOM: in std_logic_vector(LPM_WIDTHD-1 af na 0); ACLR: in std_logic:= '0'; KLOK: in std_logic:= '0:'; std_logic := '1'; QUOTIENT: uit std_logic_vector (LPM_WIDTHN-1 af na 0) REMAIN: uit std_logic_vector (LPM_WIDTHD-1 af na 0)); eindkomponent;
3.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK lpm; GEBRUIK lpm.lpm_components.all;
3.5. Hawens
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die LPM_DIVIDE IP-kern.
Tabel 5.
LPM_DIVIDE-invoerpoorte
Port Naam
Vereis
nommer[]
Ja
denominasie[]
Ja
Beskrywing
Invoer van tellerdata. Die grootte van die invoerpoort hang af van die LPM_WIDTHN-parameterwaarde.
Noemer data-invoer. Die grootte van die invoerpoort hang af van die LPM_WIDTHD parameterwaarde.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 13
3. LPM_DIVIDE (Verdeler) Intel FPGA IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Port Naam klok clken
aclr
Vereiste Nee No
Nee
Beskrywing
Klokinvoer vir pyplyngebruik. Vir LPM_PIPELINE-waardes anders as 0 (verstek), moet die klokpoort geaktiveer wees.
Klok aktiveer pyplyngebruik. Wanneer die clken-poort hoog beweer word, vind die verdelingsoperasie plaas. Wanneer die sein laag is, vind geen bewerking plaas nie. As dit weggelaat word, is die verstekwaarde 1.
Asinchroniese duidelike poort wat te eniger tyd gebruik word om die pyplyn asinchroon na die klokinvoer terug te stel na al '0'e.
Tabel 6.
LPM_DIVIDE Uitsetpoorte
Port Naam
Vereis
Beskrywing
kwosiënt[]
Ja
Data-uitset. Die grootte van die uitsetpoort hang af van die LPM_WIDTHN
parameter waarde.
bly[]
Ja
Data-uitset. Die grootte van die uitsetpoort hang af van die LPM_WIDTHD
parameter waarde.
3.6. Grense
Die volgende tabel lys die parameters vir die LPM_DIVIDE Intel FPGA IP-kern.
Parameter Naam
Tik
Vereis
Beskrywing
LPM_WIDTHN
Heelgetal
Ja
Spesifiseer die wydtes van die nommer[] en
kwosiënt[] poorte. Waardes is 1 tot 64.
LPM_WIDTHD
Heelgetal
Ja
Spesifiseer die wydtes van die denominasie[] en
bly[] hawens. Waardes is 1 tot 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
Snaar Snaar
Nee
Tekenvoorstelling van die tellerinvoer.
Waardes is GETEKEN en NIE GETEKEN. Wanneer hierdie
parameter is ingestel op GETEKEN, die verdeler
interpreteer die getal[]-invoer as geteken twee's
komplement.
Nee
Tekenvoorstelling van die noemer-invoer.
Waardes is GETEKEN en NIE GETEKEN. Wanneer hierdie
parameter is ingestel op GETEKEN, die verdeler
interpreteer die denom[]-invoer as geteken twee's
komplement.
LPM_TYPE
Snaar
Nee
Identifiseer die biblioteek van geparameteriseerde
modules (LPM) entiteit naam in VHDL ontwerp
files (.vhd).
LPM_WENK
Snaar
Nee
Wanneer jy 'n biblioteek van instansieer
geparameteriseerde modules (LPM) funksioneer in a
VHDL ontwerp File (.vhd), moet jy die
LPM_HINT parameter om 'n Intel-
spesifieke parameter. Byvoorbeeldample: LPM_HINT
= "CHAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = JA” Die
verstekwaarde is ONGEBRUIK.
LPM_REMAINDERPOSITIEF
Snaar
Nee
Intel-spesifieke parameter. Jy moet die gebruik
LPM_HINT parameter om die
LPM_REMAINDERPOSITIVE parameter in
VHDL ontwerp files. Waardes is WAAR of ONWAAR.
As hierdie parameter op WAAR gestel is, dan is die
waarde van die oorblyfsel[]-poort moet groter wees
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 14
Stuur terugvoer
3. LPM_DIVIDE (Verdeler) Intel FPGA IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter Naam
Tik
MAXIMIZE_SPEED
Heelgetal
LPM_PIPELINE
Heelgetal
INTENDED_DEVICE_FAMILY SKIP_BITS
String Heelgetal
Vereiste nr
Nee Nee Nee
Beskrywing
as of gelyk aan nul. As hierdie parameter op WAAR gestel is, dan is die waarde van die poort oorbly[] óf nul, óf die waarde is dieselfde teken, óf positief óf negatief, as die waarde van die nommerpoort. Ten einde area te verminder en spoed te verbeter, beveel Intel aan om hierdie parameter op WAAR te stel in bedrywighede waar die res positief moet wees of waar die res onbelangrik is.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die MAXIMIZE_SPEED parameter in VHDL ontwerp te spesifiseer files. Waardes is [0..9]. As dit gebruik word, probeer die Intel Quartus Prime-sagteware om 'n spesifieke geval van die LPM_DIVIDE-funksie vir spoed eerder as roeteerbaarheid te optimaliseer, en ignoreer die instelling van die Optimization Technique-logika-opsie. As MAXIMIZE_SPEED ongebruik is, word die waarde van die Optimeringstegniek-opsie eerder gebruik. As die waarde van MAXIMIZE_SPEED 6 of hoër is, optimaliseer die samesteller die LPM_DIVIDE IP-kern vir hoër spoed deur drakettings te gebruik; as die waarde 5 of minder is, implementeer die samesteller die ontwerp sonder drakettings.
Spesifiseer die aantal kloksiklusse van latensie wat geassosieer word met die kwosiënt[] en bly[] uitsette. 'n Waarde van nul (0) dui aan dat geen latensie bestaan nie, en dat 'n suiwer kombinasiefunksie geïnstansieer word. As dit weggelaat word, is die verstekwaarde 0 (nie-pyplyn). Jy kan nie 'n waarde vir die LPM_PIPELINE-parameter spesifiseer wat hoër is as LPM_WIDTHN nie.
Hierdie parameter word gebruik vir modellering en gedragsimulasiedoeleindes. Die parameterredigeerder bereken die waarde vir hierdie parameter.
Maak voorsiening vir meer doeltreffende fraksionele bisverdeling om logika op die voorste bisse te optimaliseer deur die aantal voorste GND aan die LPM_DIVIDE IP-kern te verskaf. Spesifiseer die aantal voorste GND op die kwosiëntuitset na hierdie parameter.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 15
683490 | 2020.10.05 Stuur terugvoer
4. LPM_MULT (Vermenigvuldiger) IP-kern
Figuur 3.
Die LPM_MULT IP-kern implementeer 'n vermenigvuldiger om twee insetdatawaardes te vermenigvuldig om 'n produk as 'n uitset te produseer.
Die volgende figuur toon die poorte vir die LPM_MULT IP-kern.
LPM_Multi-poorte
LPM_MULT klok dataa[] resultaat[] data[] aclr/sclr clken
inst
Verwante inligtingkenmerke op bladsy 71
4.1. Kenmerke
Die LPM_MULT IP-kern bied die volgende kenmerke: · Genereer 'n vermenigvuldiger wat twee invoerdatawaardes vermenigvuldig · Ondersteun datawydte van 1 bisse · Ondersteun ondertekende en ongetekende datavoorstellingsformaat · Ondersteun area- of spoedoptimalisering · Ondersteun pypleiding met konfigureerbare uitsetvertraging · Voorsien 'n opsie vir implementering in toegewyde digitale seinverwerking (DSP)
blokkring- of logika-elemente (LE's) Let wel: Wanneer vermenigvuldigers gebou word wat groter is as die inheemse ondersteunde grootte, kan/
sal 'n prestasie-impak wees as gevolg van die kaskade van die ADV-blokke. · Ondersteun opsionele asinchronous clear en klok aktiveer invoerpoorte · Ondersteun opsionele sinchronous clear vir Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX toestelle
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
4. LPM_MULT (Vermenigvuldiger) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
4.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
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 = "UNTEKENTEKEN"; parameter lpm_pipeline = 0; parameter lpm_hint = "ONGEBRUIK"; invoer klok; invoer clken; invoer aclr; invoer [lpm_widtha-1:0] dataa; invoer [lpm_widthb-1:0] data; invoer [lpm_widths-1:0] som; uitset [lpm_widthp-1:0] resultaat; eindmodule
4.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) LPM_PACK.vhd in die librariesvhdllpm gids.
komponent LPM_MULT generies ( LPM_WIDTHA : natuurlik; LPM_WIDTHB : natuurlik; LPM_WIDTHS : natuurlik := 1; LPM_WIDTHP : natuurlik;
LPM_REPRESENTATION : string := “ONTEKEN”; LPM_PIPELINE : natuurlik := 0; LPM_TYPE: string := L_MULT; LPM_HINT : string := “UNUSED”); poort (DATAA: in std_logic_vector(LPM_WIDTHA-1 af na 0); DATAB: in std_logic_vector(LPM_WIDTHB-1 af na 0); ACLR: in std_logic:= '0'; KLOK: in std_logic:= '0 in'; std_logic: in := '1'; SOM: in std_logic_vector (LPM_WIDTHS-1 af na 0) := (ANDER => '0' RESULTAAT: uit std_logic_vector (LPM_WIDTHP-1 af na 0)); eindkomponent;
4.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK lpm; GEBRUIK lpm.lpm_components.all;
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 17
4. LPM_MULT (Vermenigvuldiger) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
4.5. Seine
Tabel 7.
LPM_MULT Invoerseine
Sein Naam
Vereis
Beskrywing
dataa[]
Ja
Data-invoer.
Vir Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-toestelle hang die grootte van die insetsein af van die Dataa-breedteparameterwaarde.
Vir ouer en Intel Cyclone 10 LP-toestelle hang die grootte van die insetsein af van die LPM_WIDTHA-parameterwaarde.
datab[]
Ja
Data-invoer.
Vir Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-toestelle hang die grootte van die insetsein af van die Datab-breedteparameterwaarde.
Vir ouer en Intel Cyclone 10 LP-toestelle hang die grootte van die insetsein af
op die LPM_WIDTHB parameterwaarde.
horlosie
Nee
Klokinvoer vir pyplyngebruik.
Vir ouer en Intel Cyclone 10 LP-toestelle moet die kloksein geaktiveer word vir LPM_PIPELINE-waardes anders as 0 (verstek).
Vir Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-toestelle moet die kloksein geaktiveer word as Latency-waarde anders as 1 is (verstek).
clken
Nee
Klok aktiveer vir pyplyngebruik. Wanneer die clken sein hoog beweer word, sal die
optel-/aftrekker-bewerking vind plaas. Wanneer die sein laag is, geen werking nie
voorkom. As dit weggelaat word, is die verstekwaarde 1.
aclr sclr
Nee
Asinchroniese duidelike sein wat te eniger tyd gebruik word om die pyplyn na alle 0'e terug te stel,
asynchronies met die kloksein. Die pyplyn inisialiseer na 'n ongedefinieerde (X)
logiese vlak. Die uitsette is 'n konsekwente, maar nie-nul waarde.
Nee
Sinchroniese duidelike sein wat enige tyd gebruik word om die pyplyn na alle 0'e terug te stel,
sinchronies met die kloksein. Die pyplyn inisialiseer na 'n ongedefinieerde (X)
logiese vlak. Die uitsette is 'n konsekwente, maar nie-nul waarde.
Tabel 8.
LPM_MULT Uitset seine
sein Naam
Vereis
Beskrywing
resultaat[]
Ja
Data-uitset.
Vir ouer en Intel Cyclone 10 LP-toestelle hang die grootte van die uitsetsein af van die LPM_WIDTHP-parameterwaarde. As LPM_WIDTHP < maks (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) of (LPM_WIDTHA + LPM_WIDTHS), is slegs die LPM_WIDTHP MSB's teenwoordig.
Vir Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX hang die grootte van die uitsetseine af van die Resultaatbreedte-parameter.
4.6. Parameters vir Stratix V-, Arria V-, Cyclone V- en Intel Cyclone 10 LP-toestelle
4.6.1. Algemene Tab
Tabel 9.
Algemene Tab
Parameter
Waarde
Vermenigvuldiger konfigurasie
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Verstekwaarde
Beskrywing
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Kies die gewenste konfigurasie vir die vermenigvuldiger.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 18
Stuur terugvoer
4. LPM_MULT (Vermenigvuldiger) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Hoe wyd moet die 'dataa'-invoer wees? Hoe wyd moet die 'datab'-invoer wees? Hoe moet die breedte van die 'resultaat'-uitset bepaal word? Beperk die breedte
Waarde
Vermenigvuldig 'dataa'-invoer op sigself (kwadrateerbewerking)
1 – 256 bisse
Verstekwaarde
Beskrywing
8 stukkies
Spesifiseer die breedte van die dataa[]-poort.
1 – 256 bisse
8 stukkies
Spesifiseer die breedte van die datab[]-poort.
Bereken outomaties die breedte Beperk die breedte
1 – 512 bisse
Bereken outomaties die breedte
Kies die gewenste metode om die breedte van die resultaat[]-poort te bepaal.
16 stukkies
Spesifiseer die breedte van die resultaat[]-poort.
Hierdie waarde sal slegs effektief wees as jy Beperk die breedte in die Tipe parameter kies.
4.6.2. Algemeen 2 Tab
Tabel 10. Algemeen 2 Tab
Parameter
Waarde
Data-invoer
Het die 'datab'-invoerbus 'n konstante waarde?
Nee Ja
Tipe vermenigvuldiging
Watter tipe van
Ongetekende
vermenigvuldiging wil jy hê? Geteken
Implementering
Watter vermenigvuldiger-implementering moet gebruik word?
Gebruik die verstek implementering
Gebruik die toegewyde vermenigvuldigerkringe (Nie beskikbaar vir alle gesinne nie)
Gebruik logiese elemente
Verstekwaarde
Beskrywing
Nee
Kies Ja om die konstante waarde van die te spesifiseer
`datab'-invoerbus, indien enige.
Ongetekende
Spesifiseer die voorstellingsformaat vir beide dataa[] en datab[]-insette.
Gebruik die verstek implementasie
Kies die gewenste metode om die breedte van die resultaat[]-poort te bepaal.
4.6.3. Pypleiding Tab
Tabel 11. Pypleiding Tab
Parameter
Wil jy die nr
funksie?
Ja
Waarde
Skep 'n 'aclr'
—
asynchrone duidelike poort
Verstekwaarde
Beskrywing
Nee
Kies Ja om pyplynregister te aktiveer na die
vermenigvuldiger se uitset en spesifiseer die verlangde
uitset latency in klok siklus. Aktiveer die
pyplynregister voeg ekstra latensie by die
uitset.
Ongemerk
Kies hierdie opsie om aclr-poort in staat te stel om asinchronous clear vir die pyplynregister te gebruik.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 19
4. LPM_MULT (Vermenigvuldiger) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Skep 'n 'clken' klok aktiveer klok
Optimalisering
Watter tipe optimalisering wil jy hê?
Waarde -
Verstek spoedgebied
Verstekwaarde
Beskrywing
Ongemerk
Spesifiseer aktiewe hoë klokaktivering vir die klokpoort van die pyplynregister
Verstek
Spesifiseer die gewenste optimalisering vir die IP-kern.
Kies Standaard om Intel Quartus Prime-sagteware toe te laat om die beste optimalisering vir die IP-kern te bepaal.
4.7. Parameters vir Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-toestelle
4.7.1. Algemene Tab
Tabel 12. Algemeen Tab
Parameter
Waarde
Verstekwaarde
Beskrywing
Vermenigvuldiger-konfigurasietipe
Datapoortwydtes
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Vermenigvuldig 'dataa'-invoer op sigself (kwadrateerbewerking)
Vermenigvuldig 'dataa'-invoer met 'datab'-invoer
Kies die gewenste konfigurasie vir die vermenigvuldiger.
Data 'n breedte
1 – 256 bisse
8 stukkies
Spesifiseer die breedte van die dataa[]-poort.
Datab breedte
1 – 256 bisse
8 stukkies
Spesifiseer die breedte van die datab[]-poort.
Hoe moet die breedte van die 'resultaat'-uitset bepaal word?
Tik
Bereken outomaties die breedte
Beperk die breedte
Bereken outomaties die breedte
Kies die gewenste metode om die breedte van die resultaat[]-poort te bepaal.
Waarde
1 – 512 bisse
16 stukkies
Spesifiseer die breedte van die resultaat[]-poort.
Hierdie waarde sal slegs effektief wees as jy Beperk die breedte in die Tipe parameter kies.
Resultaat breedte
1 – 512 bisse
—
Vertoon die effektiewe breedte van die resultaat[]-poort.
4.7.2. Algemeen 2 Tab
Tabel 13. Algemeen 2 Tab
Parameter
Data-invoer
Het die 'datab'-invoerbus 'n konstante waarde?
Nee Ja
Waarde
Verstekwaarde
Beskrywing
Nee
Kies Ja om die konstante waarde van die te spesifiseer
`datab'-invoerbus, indien enige.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 20
Stuur terugvoer
4. LPM_MULT (Vermenigvuldiger) IP-kern 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Waarde
Waarde
Enige waarde groter as 0
Tipe vermenigvuldiging
Watter tipe van
Ongetekende
vermenigvuldiging wil jy hê? Geteken
Implementering styl
Watter vermenigvuldiger-implementering moet gebruik word?
Gebruik die verstek implementering
Gebruik die toegewyde vermenigvuldigerkringe
Gebruik logiese elemente
Verstekwaarde
Beskrywing
0
Spesifiseer die konstante waarde van datab[]-poort.
Ongetekende
Spesifiseer die voorstellingsformaat vir beide dataa[] en datab[]-insette.
Gebruik die verstek implementasie
Kies die gewenste metode om die breedte van die resultaat[]-poort te bepaal.
4.7.3. Pypleiding
Tabel 14. Pypleiding Tab
Parameter
Waarde
Wil jy die funksie pyplyn?
Pyplyn
Nee Ja
Vertraging Duidelike seintipe
Enige waarde groter as 0.
GEEN ACLR SCLR
Skep 'n 'clken'-horlosie
—
aktiveer klok
Watter tipe optimalisering wil jy hê?
Tik
Verstek spoedgebied
Verstekwaarde
Beskrywing
No 1 GEEN
—
Kies Ja om pyplynregister na die vermenigvuldiger se uitset te aktiveer. Deur die pyplynregister te aktiveer, voeg ekstra latensie by die uitset.
Spesifiseer die verlangde uitsetvertraging in kloksiklus.
Spesifiseer die tipe terugstelling vir die pyplynregister. Kies GEEN as jy nie enige pyplynregister gebruik nie. Kies ACLR om asinchronous clear vir die pyplynregister te gebruik. Dit sal ACLR-poort genereer. Kies SCLR om sinchronous clear vir die pyplynregister te gebruik. Dit sal SCLR-poort genereer.
Spesifiseer aktiewe hoë klokaktivering vir die klokpoort van die pyplynregister
Verstek
Spesifiseer die gewenste optimalisering vir die IP-kern.
Kies Standaard om Intel Quartus Prime-sagteware toe te laat om die beste optimalisering vir die IP-kern te bepaal.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 21
683490 | 2020.10.05 Stuur terugvoer
5. LPM_ADD_SUB (opteller/aftrekker)
Figuur 4.
Die LPM_ADD_SUB IP-kern laat jou toe om 'n opteller of 'n aftrekker te implementeer om stelle data op te tel of af te trek om 'n uitset te produseer wat die som of verskil van die insetwaardes bevat.
Die volgende figuur toon die poorte vir die LPM_ADD_SUB IP-kern.
LPM_ADD_SUB-poorte
LPM_ADD_SUB add_sub cin
dataa[]
klok clken datab[] aclr
resultaat[] oorloop cout
inst
5.1. Kenmerke
Die LPM_ADD_SUB IP-kern bied die volgende kenmerke: · Genereer opteller, aftrekker en dinamies konfigureerbare opteller/aftrekker
funksies. · Ondersteun data breedte van 1 bisse. · Ondersteun datavoorstellingformaat soos onderteken en ongetekende. · Ondersteun opsionele indra (leen-uit), asynchrone skoon, en klok aktiveer
invoerpoorte. · Ondersteun opsionele uitvoer- (leen-in) en oorloop uitsetpoorte. · Ken een van die invoerdatabusse toe aan 'n konstante. · Ondersteun pypleiding met konfigureerbare uitsetvertraging.
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
5. LPM_ADD_SUB (Opteller/Aftrekker) 683490 | 2020.10.05/XNUMX/XNUMX
5.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
module lpm_add_sub (resultaat, cout, oorloop, add_sub, cin, dataa, datab, klok, clken, aclr); parameter lpm_type = "lpm_add_sub"; parameter lpm_width = 1; parameter lpm_direction = "ONGEBRUIK"; parameter lpm_representation = "GETEKEN"; parameter lpm_pipeline = 0; parameter lpm_hint = "ONGEBRUIK"; invoer [lpm_width-1:0] dataa, datab; invoer add_sub, cin; invoer klok; invoer clken; invoer aclr; uitset [lpm_width-1:0] resultaat; uitsetuitslag, oorloop; eindmodule
5.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) LPM_PACK.vhd in die librariesvhdllpm gids.
komponent LPM_ADD_SUB generies (LPM_WIDTH: natuurlik;
LPM_DIRECTION : string := “ONGEBRUIK”; LPM_REPRESENTATION: string := “GETEKEN”; LPM_PIPELINE : natuurlik := 0; LPM_TYPE : string := L_ADD_SUB; LPM_HINT : string := “UNUSED”); poort (DATAA: in std_logic_vector(LPM_WIDTH-1 af na 0); DATAB: in std_logic_vector(LPM_WIDTH-1 af na 0); ACLR: in std_logic:= '0'; KLOK: in std_logic:= '0:'; std_logic := '1'; CIN: in std_logic:= 'Z'; eindkomponent;
5.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK lpm; GEBRUIK lpm.lpm_components.all;
5.5. Hawens
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die LPM_ADD_SUB IP-kern.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 23
5. LPM_ADD_SUB (Opteller/Aftrekker) 683490 | 2020.10.05/XNUMX/XNUMX
Tabel 15. LPM_ADD_SUB IP-kerninvoerpoorte
Port Naam
Vereis
Beskrywing
cin
Nee
Dra in na die lae-orde bietjie. Vir optelbewerkings is die verstekwaarde 0. Vir
aftrekbewerkings, is die verstekwaarde 1.
dataa[]
Ja
Data-invoer. Die grootte van die invoerpoort hang af van die LPM_WIDTH parameterwaarde.
datab[]
Ja
Data-invoer. Die grootte van die invoerpoort hang af van die LPM_WIDTH parameterwaarde.
add_sub
Nee
Opsionele invoerpoort om dinamiese skakeling tussen die opteller en aftrekker moontlik te maak
funksies. As die LPM_DIRECTION parameter gebruik word, kan add_sub nie gebruik word nie. As
weggelaat is, is die verstekwaarde ADD. Intel beveel aan dat jy die
LPM_DIRECTION parameter om die werking van die LPM_ADD_SUB funksie te spesifiseer,
eerder as om 'n konstante aan die add_sub-poort toe te ken.
horlosie
Nee
Invoer vir pyplyngebruik. Die klokpoort verskaf die klokinvoer vir 'n pyplyn
operasie. Vir LPM_PIPELINE waardes anders as 0 (verstek), moet die klokpoort wees
aangeskakel.
clken
Nee
Klok aktiveer vir pyplyngebruik. Wanneer die clken-poort hoog beweer word, sal die adder/
aftrekoperasie vind plaas. Wanneer die sein laag is, vind geen bewerking plaas nie. As
weggelaat is, is die verstekwaarde 1.
aclr
Nee
Asynchrone duidelik vir pyplyngebruik. Die pyplyn inisialiseer na 'n ongedefinieerde (X)
logiese vlak. Die aclr-poort kan enige tyd gebruik word om die pyplyn na alle 0'e terug te stel,
asynchronies met die kloksein.
Tabel 16. LPM_ADD_SUB IP-kern-uitvoerpoorte
Port Naam
Vereis
Beskrywing
resultaat[]
Ja
Data-uitset. Die grootte van die uitsetpoort hang af van die LPM_WIDTH parameter
waarde.
uithaal
Nee
Uitvoer (inleen) van die mees betekenisvolle bietjie (MSB). Die cout-poort het 'n fisiese
interpretasie as die uitvoering (inleen) van die MSB. Die cout-poort bespeur
oorloop in ONGETEKENDE operasies. Die cout-poort werk op dieselfde manier vir
GETEKENDE en ONGEKTEKEN bewerkings.
oorloop
Nee
Opsionele oorloop uitsondering uitset. Die oorlooppoort het 'n fisiese interpretasie as
die XOR van die indra na die MSB met die uitdra van die MSB. Die oorlooppoort
beweer wanneer resultate die beskikbare akkuraatheid oorskry, en word slegs gebruik wanneer die
LPM_REPRESENTATION parameterwaarde is GETEKEN.
5.6. Grense
Die volgende tabel lys die LPM_ADD_SUB IP-kernparameters.
Tabel 17. LPM_ADD_SUB IP-kernparameters
Parameternaam LPM_WIDTH
Tik Heelgetal
Vereis Ja
Beskrywing
Spesifiseer die breedtes van die dataa[], datab[], en resultaat[]-poorte.
LPM_DIRECTION
Snaar
Nee
Waardes is ADD, SUB en ONGEBRUIK. As dit weggelaat word, is die verstekwaarde DEFAULT, wat die parameter lei om sy waarde van die add_sub-poort af te neem. Die add_sub-poort kan nie gebruik word as LPM_DIRECTION gebruik word nie. Intel beveel aan dat jy die LPM_DIRECTION-parameter gebruik om die werking van die LPM_ADD_SUB-funksie te spesifiseer, eerder as om 'n konstante aan die add_sub-poort toe te ken.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 24
Stuur terugvoer
5. LPM_ADD_SUB (Opteller/Aftrekker) 683490 | 2020.10.05/XNUMX/XNUMX
Parameternaam LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Tik String Heelgetal String String String Heelgetal
Snaar
Vereiste Nee Nee Nee Nee Nee Nee
Nee
Beskrywing
Spesifiseer die tipe toevoeging wat uitgevoer word. Waardes is GETEKEN en NIE GETEKEN. As dit weggelaat word, is die verstekwaarde GETEKEN. Wanneer hierdie parameter op GETEKEN gestel is, interpreteer die opteller/aftrekker die data-invoer as geteken twee se komplement.
Spesifiseer die aantal latensiekloksiklusse wat met die resultaat[]-uitvoer geassosieer word. 'n Waarde van nul (0) dui aan dat geen latensie bestaan nie, en dat 'n suiwer kombinasiefunksie geïnstansieer sal word. As dit weggelaat word, is die verstekwaarde 0 (nie-pyplyn).
Laat jou toe om Intel-spesifieke parameters in VHDL-ontwerp te spesifiseer files (.vhd). Die verstekwaarde is UNUSED.
Identifiseer die biblioteek van geparameteriseerde modules (LPM) entiteitsnaam in VHDL-ontwerp files.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die ONE_INPUT_IS_CONSTANT parameter in VHDL ontwerp te spesifiseer files. Waardes is JA, NEE en ONGEBRUIK. Verskaf groter optimalisering as een inset konstant is. As dit weggelaat word, is die verstekwaarde NEE.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die MAXIMIZE_SPEED parameter in VHDL ontwerp te spesifiseer files. Jy kan 'n waarde tussen 0 en 10 spesifiseer. Indien dit gebruik word, poog die Intel Quartus Prime sagteware om 'n spesifieke instansie van die LPM_ADD_SUB funksie vir spoed eerder as roeteerbaarheid te optimaliseer, en ignoreer die instelling van die Optimization Technique logika opsie. As MAXIMIZE_SPEED ongebruik is, word die waarde van die Optimeringstegniek-opsie eerder gebruik. As die instelling vir MAXIMIZE_SPEED 6 of hoër is, optimaliseer die samesteller die LPM_ADD_SUB IP-kern vir hoër spoed deur gebruik te maak van drakettings; as die instelling 5 of minder is, implementeer die samesteller die ontwerp sonder drakettings. Hierdie parameter moet slegs vir Cyclone-, Stratix- en Stratix GX-toestelle gespesifiseer word wanneer die add_sub-poort nie gebruik word nie.
Hierdie parameter word gebruik vir modellering en gedragsimulasiedoeleindes. Die parameterredigeerder bereken die waarde vir hierdie parameter.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 25
683490 | 2020.10.05 Stuur terugvoer
6. LPM_COMPARE (Vergelyker)
Figuur 5.
Die LPM_COMPARE IP-kern vergelyk die waarde van twee stelle data om die verhouding tussen hulle te bepaal. In sy eenvoudigste vorm kan jy 'n eksklusiewe-OF-hek gebruik om te bepaal of twee stukkies data gelyk is.
Die volgende figuur toon die poorte vir die LPM_COMPARE IP-kern.
LPM_COMPARE-poorte
LPM_COMPARE
clken
alb
aeb
dataa[]
agb
datab[]
ageb
horlosie
aneb
aclr
aleb
inst
6.1. Kenmerke
Die LPM_COMPARE IP-kern bied die volgende kenmerke: · Genereer 'n vergelykerfunksie om twee stelle data te vergelyk · Ondersteun datawydte van 1 bisse · Ondersteun datavoorstellingsformaat soos onderteken en ongetekende · Produseer die volgende uitvoertipes:
— alb (inset A is minder as inset B) — aeb (inset A is gelyk aan inset B) — agb (inset A is groter as inset B) — ageb (inset A is groter as of gelyk aan inset B) — aneb ( inset A is nie gelyk aan inset B nie) — aleb (inset A is minder as of gelyk aan inset B) · Ondersteun opsionele asynchrone helder en klok aktiveer invoerpoorte · Ken die data[] insette toe aan 'n konstante · Ondersteun pypleiding met konfigureerbare uitsetvertraging
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
6. LPM_COMPARE (Vergelyker) 683490 | 2020.10.05/XNUMX/XNUMX
6.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
module lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, klok, clken, aclr); parameter lpm_type = "lpm_compare"; parameter lpm_width = 1; parameter lpm_representation = "UNTEKENTEKEN"; parameter lpm_pipeline = 0; parameter lpm_hint = "ONGEBRUIK"; invoer [lpm_width-1:0] dataa, datab; invoer klok; invoer clken; invoer aclr; uitset alb, aeb, agb, aleb, aneb, ageb; eindmodule
6.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) LPM_PACK.vhd in die librariesvhdllpm gids.
komponent LPM_COMPARE generies (LPM_WIDTH: natuurlik;
LPM_REPRESENTATION : string := “ONTEKEN”; LPM_PIPELINE : natuurlik := 0; LPM_TYPE: string := L_COMPARE; LPM_HINT : string := “UNUSED”); poort (DATAA: in std_logic_vector(LPM_WIDTH-1 af na 0); DATAB: in std_logic_vector(LPM_WIDTH-1 af na 0); ACLR: in std_logic:= '0'; KLOK: in std_logic:= '0:'; std_logic := '1'; AGB : out std_logic : out std_logic; eindkomponent;
6.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK lpm; GEBRUIK lpm.lpm_components.all;
6.5. Hawens
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die LMP_COMPARE IP-kern.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 27
6. LPM_COMPARE (Vergelyker) 683490 | 2020.10.05/XNUMX/XNUMX
Tabel 18. LPM_COMPARE IP-kern-invoerpoorte
Port Naam
Vereis
Beskrywing
dataa[]
Ja
Data-invoer. Die grootte van die invoerpoort hang af van die LPM_WIDTH parameterwaarde.
datab[]
Ja
Data-invoer. Die grootte van die invoerpoort hang af van die LPM_WIDTH parameterwaarde.
horlosie
Nee
Klokinvoer vir pyplyngebruik. Die klokpoort verskaf die klokinvoer vir 'n pyplyn
operasie. Vir LPM_PIPELINE waardes anders as 0 (verstek), moet die klokpoort wees
aangeskakel.
clken
Nee
Klok aktiveer vir pyplyngebruik. Wanneer die clken-poort hoog beweer word, word die
vergelykingsoperasie plaasvind. Wanneer die sein laag is, vind geen bewerking plaas nie. As
weggelaat is, is die verstekwaarde 1.
aclr
Nee
Asynchrone duidelik vir pyplyngebruik. Die pyplyn initialiseer na 'n ongedefinieerde (X) logika
vlak. Die aclr-poort kan enige tyd gebruik word om die pyplyn na alle 0'e terug te stel,
asynchronies met die kloksein.
Tabel 19. LPM_COMPARE IP-kern-uitsetpoorte
Port Naam
Vereis
Beskrywing
alb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A minder as inset B is.
aeb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A gelyk is aan inset B.
agb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A groter is as inset B.
ageb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A groter as of gelyk aan inset is
B.
aneb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A nie gelyk is aan inset B nie.
aleb
Nee
Uitsetpoort vir die vergelyker. Bevestig as inset A kleiner as of gelyk is aan inset B.
6.6. Grense
Die volgende tabel lys die parameters vir die LPM_COMPARE IP-kern.
Tabel 20. LPM_COMPARE IP-kernparameters
Parameter Naam
Tik
Vereis
LPM_WIDTH
Heelgetal Ja
LPM_REPRESENTATION
Snaar
Nee
LPM_PIPELINE
Heelgetal No
LPM_WENK
Snaar
Nee
Beskrywing
Spesifiseer die wydtes van die dataa[]- en datab[]-poorte.
Spesifiseer die tipe vergelyking wat uitgevoer word. Waardes is GETEKEN en NIE GETEKEN. As dit weggelaat word, is die verstekwaarde ONTEKEN. Wanneer hierdie parameterwaarde op GETEKEN gestel is, interpreteer die vergelyker die data-invoer as geteken twee se komplement.
Spesifiseer die aantal kloksiklusse van latensie wat met die alb-, aeb-, agb-, ageb-, aleb- of aneb-uitvoer geassosieer word. 'n Waarde van nul (0) dui aan dat geen latensie bestaan nie, en dat 'n suiwer kombinasiefunksie geïnstansieer sal word. As dit weggelaat word, is die verstekwaarde 0 (nie-pyplyn).
Laat jou toe om Intel-spesifieke parameters in VHDL-ontwerp te spesifiseer files (.vhd). Die verstekwaarde is UNUSED.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 28
Stuur terugvoer
6. LPM_COMPARE (Vergelyker) 683490 | 2020.10.05/XNUMX/XNUMX
Parameternaam LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Tik String String
Snaar
Vereiste Nee No
Nee
Beskrywing
Identifiseer die biblioteek van geparameteriseerde modules (LPM) entiteitsnaam in VHDL-ontwerp files.
Hierdie parameter word gebruik vir modellering en gedragsimulasiedoeleindes. Die parameterredigeerder bereken die waarde vir hierdie parameter.
Intel-spesifieke parameter. Jy moet die LPM_HINT parameter gebruik om die ONE_INPUT_IS_CONSTANT parameter in VHDL ontwerp te spesifiseer files. Waardes is JA, NEE of ONGEBRUIK. Verskaf groter optimalisering as 'n inset konstant is. As dit weggelaat word, is die verstekwaarde NEE.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 29
683490 | 2020.10.05 Stuur terugvoer
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP-kern
Figuur 6.
Intel verskaf die ALTECC IP-kern om die ECC-funksionaliteit te implementeer. ECC bespeur korrupte data wat tydens data-oordrag aan die ontvangerkant voorkom. Hierdie foutkorreksiemetode is die beste geskik vir situasies waar foute lukraak voorkom eerder as in sarsies.
Die ECC bespeur foute deur die proses van data-enkodering en -dekodering. Byvoorbeeldample, wanneer die ECC in 'n transmissietoepassing toegepas word, word data wat vanaf die bron gelees word, geënkodeer voordat dit na die ontvanger gestuur word. Die uitset (kodewoord) van die enkodeerder bestaan uit die rou data wat met die aantal pariteitbisse aangeheg is. Die presiese aantal pariteitbisse wat bygevoeg word, hang af van die aantal bisse in die invoerdata. Die gegenereerde kodewoord word dan na die bestemming gestuur.
Die ontvanger ontvang die kodewoord en dekodeer dit. Inligting wat deur die dekodeerder verkry word, bepaal of 'n fout opgespoor word. Die dekodeerder bespeur enkelbis- en dubbelbisfoute, maar kan slegs enkelbisfoute in die korrupte data regmaak. Hierdie tipe ECC is enkelfoutkorreksie dubbelfoutopsporing (SECDED).
U kan enkodeerder- en dekodeerderfunksies van die ALTECC IP-kern instel. Die data-invoer na die enkodeerder word geënkodeer om 'n kodewoord te genereer wat 'n kombinasie is van die data-invoer en die gegenereerde pariteitbisse. Die gegenereerde kodewoord word na die dekodeerdermodule oorgedra vir dekodering net voordat dit sy bestemmingsblok bereik. Die dekodeerder genereer 'n sindroomvektor om te bepaal of daar enige fout in die ontvangde kodewoord is. Die dekodeerder korrigeer die data slegs as die enkelbisfout van die databisse afkomstig is. Geen sein word gemerk as die enkelbisfout van die pariteitsbisse afkomstig is nie. Die dekodeerder het ook vlagseine om die status van die data wat ontvang is en die aksie wat deur die dekodeerder geneem is, te wys, indien enige.
Die volgende figure wys die poorte vir die ALTECC IP-kern.
ALTECC-enkodeerderpoorte
ALTECC_ENCODER
data[]
q[]
horlosie
klok
aclr
inst
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Figuur 7. ALTECC-dekodeerderpoorte
ALTECC_DEKODER
data[] horlosie
q[] err_detected err_corrected
fout_noodlottig
aclr
inst
7.1. ALTECC Encoder Kenmerke
Die ALTECC-enkodeerder IP-kern bied die volgende kenmerke: · Voer data-kodering uit met behulp van die Hamming-koderingskema · Ondersteun datawydte van 2 bisse · Ondersteun ondertekende en ongetekende datavoorstellingsformaat · Ondersteun pypleiding met uitsetvertraging van een of twee kloksiklusse · Ondersteun opsioneel asynchrone helder en klok aktiveer poorte
Die ALTECC-kodeerder IP-kern neem die data in en enkodeer met behulp van die Hamming-koderingskema. Die Hamming-koderingskema lei die pariteitsbisse af en voeg dit by die oorspronklike data om die uitsetkodewoord te produseer. Die aantal pariteitbisse wat bygevoeg word, hang af van die breedte van die data.
Die volgende tabel lys die aantal pariteitbisse wat vir verskillende reekse datawydtes aangeheg is. Die Total Bits-kolom verteenwoordig die totale aantal invoerdatabisse en bygevoegde pariteitbisse.
Tabel 21.
Aantal pariteitbisse en kodewoord volgens datawydte
Data Breedte
Aantal pariteitsbisse
Totale stukkies (kodewoord)
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
Die pariteitsbis-afleiding gebruik 'n ewe-pariteitkontrolering. Die bykomende 1 bis (getoon in die tabel as +1) word as die MSB van die kodewoord by die pariteitsbisse aangeheg. Dit verseker dat die kodewoord 'n ewe getal van 1'e het. Byvoorbeeldample, as die datawydte 4 bisse is, word 4 pariteitbisse aan die data gevoeg om 'n kodewoord met 'n totaal van 8 bisse te word. As 7 bisse van die LSB van die 8-bis kodewoord 'n onewe getal 1'e het, is die 8ste bis (MSB) van die kodewoord 1 wat die totale aantal 1'e in die kodewoord ewe maak.
Die volgende figuur toon die gegenereerde kodewoord en die rangskikking van die pariteitbisse en databisse in 'n 8-bis data-invoer.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 31
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Figuur 8.
Pariteitbits en databitsrangskikking in 'n 8-bis-gegenereerde kodewoord
MSB
LSB
4 pariteit bisse
4 data stukkies
8
1
Die ALTECC-enkodeerder IP-kern aanvaar slegs invoerwydtes van 2 tot 64 bisse op een slag. Invoerwydtes van 12 bisse, 29 bisse en 64 bisse, wat ideaal geskik is vir Intel-toestelle, genereer uitsette van onderskeidelik 18 bisse, 36 bisse en 72 bisse. U kan die bitseleksie-beperking in die parameterredigeerder beheer.
7.2. Verilog HDL-prototipe (ALTECC_ENCODER)
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
module altecc_encoder #(parameter intended_device_family = "unused", parameter lpm_pipeline = 0, parameter width_codeword = 8, parameter width_dataword = 8, parameter lpm_type = "altecc_encoder", parameter lpm_hint = "unused") (invoerdraadklok, invoerdraad-aklr, invoerdraad draadklok, invoerdraad [width_dataword-1:0] data, uitvoerdraad [width_codeword-1:0] q); eindmodule
7.3. Verilog HDL-prototipe (ALTECC_DECODER)
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) lpm.v in die edasintese gids.
module altecc_decoder #(parameter intended_device_family = "unused", parameter lpm_pipeline = 0, parameter width_codeword = 8, parameter width_dataword = 8, parameter lpm_type = "altecc_decoder", parameter lpm_hint = "unused") (invoerdraadklok, invoerdraad-aklr, invoerdraad draadklok, invoerdraad [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, outout wire err_fatal, output wire [width_dataword-1:0] q); eindmodule
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 32
Stuur terugvoer
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP Core 683490 | 2020.10.05/XNUMX/XNUMX
7.4. VHDL-komponentverklaring (ALTECC_ENCODER)
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) altera_mf_components.vhd in die librariesvhdlaltera_mf gids.
komponent altecc_encoder generies (bedoelde_toestelfamilie:string:= "ongebruik"; lpm_pyplyn:natuurlik:= 0; width_codeword:natuurlik:= 8; width_dataword:natuurlik:= 8; lpm_wenk:string:= "ONGEBRUIK"; _:en_coderte ”); poort(aclr:in std_logic:= '0'; klok:in std_logic:= '0'; klok:in std_logic:= '1'; data:in std_logic_vector(width_dataword-1 af na 0); q:out std_logic_vector(width_codeword -1 af na 0)); eindkomponent;
7.5. VHDL-komponentverklaring (ALTECC_DECODER)
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) altera_mf_components.vhd in die librariesvhdlaltera_mf gids.
komponent altecc_dekodeerder generies (bedoelde_toestelfamilie:string:= “ongebruik”; lpm_pyplyn:natuurlik:= 0; width_codeword:natuurlik:= 8; width_dataword:natuurlik:= 8; lpm_wenk:string:= “ONGEBRUIKT”; _pm_coderte ”); poort (aclr:in std_logic:= '0'; klok:in std_logic:= '0'; klok:in std_logic:= '1'; data:in std_logic_vector(width_codeword-1 af na 0); err_corrected: out std_logic; err_detected : uit std_logic; eindkomponent;
7.6. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK altera_mf; GEBRUIK altera_mf.altera_mf_components.all;
7.7. Enkodeerderpoorte
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die ALTECC-enkodeerder IP-kern.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 33
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Tabel 22. ALTECC Encoder Invoerpoorte
Port Naam
Vereis
Beskrywing
data[]
Ja
Data-invoerpoort. Die grootte van die invoerpoort hang af van die WIDTH_DATAWORD
parameter waarde. Die data[]-poort bevat die rou data wat geënkodeer moet word.
horlosie
Ja
Klokinvoerpoort wat die kloksein verskaf om die enkoderingsbewerking te sinchroniseer.
Die klokpoort word vereis wanneer die LPM_PIPELINE-waarde groter as 0 is.
klok
Nee
Klok aktiveer. As dit weggelaat word, is die verstekwaarde 1.
aclr
Nee
Asinchroniese duidelike invoer. Die aktiewe hoë aclr sein kan enige tyd gebruik word om
maak die registers asynchronies skoon.
Tabel 23. ALTECC Encoder Uitsetpoorte
Poortnaam q[]
Vereis Ja
Beskrywing
Gekodeerde data-uitvoerpoort. Die grootte van die uitsetpoort hang af van die WIDTH_CODEWORD parameterwaarde.
7.8. Dekodeerderpoorte
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die ALTECC-dekodeerder IP-kern.
Tabel 24. ALTECC-dekodeerder-invoerpoorte
Port Naam
Vereis
Beskrywing
data[]
Ja
Data-invoerpoort. Die grootte van die invoerpoort hang af van die WIDTH_CODEWORD parameterwaarde.
horlosie
Ja
Klokinvoerpoort wat die kloksein verskaf om die enkoderingsbewerking te sinchroniseer. Die klokpoort word vereis wanneer die LPM_PIPELINE-waarde groter as 0 is.
klok
Nee
Klok aktiveer. As dit weggelaat word, is die verstekwaarde 1.
aclr
Nee
Asinchroniese duidelike invoer. Die aktiewe hoë aclr-sein kan enige tyd gebruik word om die registers asynchronies skoon te maak.
Tabel 25. ALTECC Dekodeerder Uitsetpoorte
Poortnaam q[]
Vereis Ja
Beskrywing
Gedekodeerde data-uitvoerpoort. Die grootte van die uitvoerpoort hang af van die WIDTH_DATAWORD-parameterwaarde.
err_detected Ja
Vlagsein om die status van data ontvang te weerspieël en spesifiseer enige foute wat gevind is.
err_correcte Ja d
Vlagsein om die status van data ontvang te weerspieël. Dui enkelbisfout wat gevind en reggestel is aan. Jy kan die data gebruik omdat dit reeds reggestel is.
fout_noodlottig
Ja
Vlagsein om die status van data ontvang te weerspieël. Dui dubbelbisfout aan wat gevind is, maar nie reggestel nie. Jy moet nie die data gebruik as hierdie sein beweer word nie.
syn_e
Nee
'n Uitsetsein wat hoog sal gaan wanneer 'n enkelbisfout op die pariteit opgespoor word
stukkies.
7.9. Encoder Parameters
Die volgende tabel lys die parameters vir die ALTECC-enkodeerder IP-kern.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 34
Stuur terugvoer
7. ALTECC (Foutkorreksiekode: Encoder/Decoder) IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Tabel 26. ALTECC Encoder Parameters
Parameter Naam
Tik
Vereis
Beskrywing
WIDTH_DATAWORD
Heelgetal Ja
Spesifiseer die breedte van die rou data. Waardes is van 2 tot 64. As dit weggelaat word, is die verstekwaarde 8.
WIDTH_CODEWORD
Heelgetal Ja
Spesifiseer die breedte van die ooreenstemmende kodewoord. Geldige waardes is van 6 tot 72, 9, 17, 33 en 65 uitgesluit. As dit weggelaat word, is die verstekwaarde 13.
LPM_PIPELINE
Heelgetal No
Spesifiseer die pyplyn vir die stroombaan. Waardes is van 0 tot 2. As die waarde 0 is, is die poorte nie geregistreer nie. As die waarde 1 is, word die uitsetpoorte geregistreer. As die waarde 2 is, word die invoer- en uitsetpoorte geregistreer. As dit weggelaat word, is die verstekwaarde 0.
7.10. Dekodeerder parameters
Die volgende tabel lys die ALTECC-dekodeerder IP-kernparameters.
Tabel 27. ALTECC-dekodeerderparameters
Parameternaam WIDTH_DATAWORD
Tik Heelgetal
Vereis
Beskrywing
Ja
Spesifiseer die breedte van die rou data. Waardes is 2 tot 64. Die
verstekwaarde is 8.
WIDTH_CODEWORD
Heelgetal
Ja
Spesifiseer die breedte van die ooreenstemmende kodewoord. Waardes is 6
tot 72, uitgesluit 9, 17, 33 en 65. Indien weggelaat, die verstekwaarde
is 13.
LPM_PIPELINE
Heelgetal
Nee
Spesifiseer die register van die stroombaan. Waardes is van 0 tot 2. As die
waarde is 0, geen register is geïmplementeer nie. As die waarde 1 is, is die
uitset geregistreer is. As die waarde 2 is, is beide die invoer en die
uitset geregistreer is. As die waarde groter as 2 is, addisioneel
registers word geïmplementeer by die uitset vir die bykomende
vertragings. As dit weggelaat word, is die verstekwaarde 0.
Skep 'n 'syn_e'-poort
Heelgetal
Nee
Skakel hierdie parameter aan om 'n syn_e-poort te skep.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 35
683490 | 2020.10.05 Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core
Figuur 9.
Die Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX-toestelle) of ALTERA_MULT_ADD (Arria V-, Stratix V- en Cyclone V-toestelle) IP-kern laat jou toe om 'n vermenigvuldiger-opteller te implementeer.
Die volgende figuur toon die poorte vir die Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kern.
Intel FPGA Multiply Adder of ALTERA_MULT_ADD-poorte
Intel FPGA Multiply Adder of ALTERA_MULT_ADD
dataa[] signa datab[] tekenb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] klok0 klok1 klok2 ena0 ena1 ena2 sload_accum
accum_sload chainin[]
scanouta[] resultaat[]
aclr0 aclr1
inst
'n Vermenigvuldiger-opteller aanvaar pare van insette, vermenigvuldig die waardes saam en tel dan by of trek af van die produkte van alle ander pare.
As al die insetdatawydtes 9-bis breed of kleiner is, gebruik die funksie die 9 x 9-bis-invoervermenigvuldigerkonfigurasie in die DSP-blok vir toestelle wat 9 x 9-konfigurasie ondersteun. Indien nie, gebruik die DSP-blok 18 × 18-bis insetvermenigvuldigers om data met breedtes tussen 10 bisse en 18 bisse te verwerk. As verskeie Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kerne in 'n ontwerp voorkom, word die funksies versprei na as
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
baie verskillende DSP-blokke as moontlik sodat roetering na hierdie blokke meer buigsaam is. Minder vermenigvuldigers per DSP-blok laat meer roetekeuses in die blok toe deur paaie na die res van die toestel te minimaliseer.
Die registers en ekstra pyplynregisters vir die volgende seine word ook binne die ADV-blok geplaas: · Data-invoer · Geteken of ongetekende kies · Optel of aftrek kies · Produkte van vermenigvuldigers
In die geval van die uitsetresultaat word die eerste register in die DSP-blok geplaas. Die ekstra latensieregisters word egter in logiese elemente buite die blok geplaas. Periferaal tot die DSP-blok, insluitend data-insette na die vermenigvuldiger, beheersein-insette en uitsette van die opteller, gebruik gereelde roetering om met die res van die toestel te kommunikeer. Alle verbindings in die funksie gebruik toegewyde roetering binne die DSP-blok. Hierdie toegewyde roetering sluit die skuifregisterkettings in wanneer jy die opsie kies om 'n vermenigvuldiger se geregistreerde insetdata van een vermenigvuldiger na 'n aangrensende vermenigvuldiger te skuif.
Vir meer inligting oor ADV-blokke in enige van die Stratix V- en Arria V-toestelreekse, verwys na die ADV-blokke-hoofstuk van die onderskeie handboeke op die Literatuur- en Tegniese Dokumentasie-bladsy.
Verwante inligting AN 306: Implementering van vermenigvuldigers in FPGA-toestelle
Verskaf meer inligting oor die implementering van vermenigvuldigers met behulp van DSP en geheueblokke in Intel FPGA-toestelle.
8.1. Kenmerke
Die Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kern bied die volgende kenmerke: · Genereer 'n vermenigvuldiger om vermenigvuldigingsbewerkings van twee komplekse uit te voer
getalle Let wel: Wanneer vermenigvuldigers gebou word wat groter is as die inheemse ondersteunde grootte, kan/
sal 'n prestasie-impak wees as gevolg van die kaskade van die ADV-blokke. · Ondersteun datawydtes van 1 256 bisse · Ondersteun getekende en ongetekende datavoorstellingsformaat · Ondersteun pypleiding met konfigureerbare invoervertraging · Bied 'n opsie om dinamies te wissel tussen ondertekende en ongetekende dataondersteuning · Bied 'n opsie om dinamies te wissel tussen optel- en aftrekbewerking · Ondersteun opsionele asynchrone en sinchrone duidelike en klok aktiveer invoerpoorte · Ondersteun sistoliese vertragingsregistermodus · Ondersteun vooropteller met 8 voorlaaikoëffisiënte per vermenigvuldiger · Ondersteun voorlaaikonstante om akkumulatorterugvoer aan te vul
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
8.1.1. Vooropteller
Met vooropteller word optellings of aftrekkings gedoen voordat die vermenigvuldiger gevoer word.
Daar is vyf pre-optelmodusse: · Eenvoudige modus · Koëffisiëntmodus · Invoermodus · Vierkantmodus · Konstante modus
Let wel:
Wanneer voorafteller gebruik word (vooroptellerkoëffisiënt/invoer/vierkantmodus), moet alle data-insette na die vermenigvuldiger dieselfde klokinstelling hê.
8.1.1.1. Pre-adder eenvoudige modus
In hierdie modus kom beide operandes van die invoerpoorte af en word voorafteller nie gebruik of omseil nie. Dit is die verstekmodus.
Figuur 10. Pre-adder Eenvoudige modus
a0 b0
Multi0
resultaat
8.1.1.2. Vooropteller-koëffisiëntmodus
In hierdie modus kom een vermenigvuldiger-operand van die vooropteller af, en die ander operand is afkomstig van die interne koëffisiëntberging. Die koëffisiëntberging laat tot 8 voorafbepaalde konstantes toe. Die koëffisiënt seleksie seine is coefsel[0..3].
Hierdie modus word in die volgende vergelyking uitgedruk.
Die volgende toon die vooroptellerkoëffisiëntmodus van 'n vermenigvuldiger.
Figuur 11. Vooropteller-koëffisiëntmodus
Voorlêer
a0
Multi0
+/-
resultaat
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 38
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
8.1.1.3. Vooropteller-invoermodus In hierdie modus kom een vermenigvuldiger-operand van die vooropteller af, en die ander operand kom van die datac[]-invoerpoort af. Hierdie modus word in die volgende vergelyking uitgedruk.
Die volgende toon die vooropteller-invoermodus van 'n vermenigvuldiger.
Figuur 12. Pre-adder-invoermodus
a0 b0
Multi0
+/-
resultaat
c0
8.1.1.4. Vooropteller-vierkantmodus Hierdie modus word in die volgende vergelyking uitgedruk.
Die volgende toon die vooropteller-vierkantmodus van twee vermenigvuldigers.
Figuur 13. Pre-adder Square Mode
a0 b0
Multi0
+/-
resultaat
8.1.1.5. Pre-adder Constant Mode
In hierdie modus kom een vermenigvuldiger-operand van die invoerpoort af, en die ander operand is afkomstig van die interne koëffisiëntberging. Die koëffisiëntberging laat tot 8 voorafbepaalde konstantes toe. Die koëffisiënt seleksie seine is coefsel[0..3].
Hierdie modus word in die volgende vergelyking uitgedruk.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Die volgende figuur toon die vooroptellerkonstantemodus van 'n vermenigvuldiger.
Figuur 14. Pre-adder Constant Mode
a0
Multi0
resultaat
coefsel0
koef
8.1.2. Sistoliese vertragingsregister
In 'n sistoliese argitektuur word die invoerdata in 'n kaskade van registers ingevoer wat as 'n databuffer optree. Elke register lewer 'n inset sample tot 'n vermenigvuldiger waar dit met die onderskeie koëffisiënt vermenigvuldig word. Die kettingopteller stoor die geleidelik gekombineerde resultate van die vermenigvuldiger en die voorheen geregistreerde resultaat van die kettingin[]-invoerpoort om die finale resultaat te vorm. Elke vermenigvuldig-optel-element moet met 'n enkele siklus vertraag word sodat die resultate gepas sinchroniseer wanneer dit saamgevoeg word. Elke opeenvolgende vertraging word gebruik om beide die koëffisiëntgeheue en die databuffer van hul onderskeie vermenigvuldig-optel-elemente aan te spreek. Byvoorbeeldample, 'n enkele vertraging vir die tweede vermenigvuldig-optel-element, twee vertragings vir die derde vermenigvuldig-optel-element, ensovoorts.
Figuur 15. Sistoliese registers
Sistoliese 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) verteenwoordig die resultate van 'n aaneenlopende stroom van insette samples en y(t)
verteenwoordig die opsomming van 'n stel insette samples, en mettertyd, vermenigvuldig met hul
onderskeie koëffisiënte. Beide die inset- en uitsetresultate vloei van links na regs. Die c(0) tot c(N-1) dui die koëffisiënte aan. Die sistoliese vertragingsregisters word aangedui deur S-1, terwyl die 1 'n enkele klokvertraging verteenwoordig. Sistoliese vertragingsregisters word bygevoeg by
die insette en uitsette vir pypleiding op 'n manier wat die resultate van die verseker
vermenigvuldiger operand en die opgehoopte somme bly sinchroniseer. Hierdie verwerkingselement
word gerepliseer om 'n stroombaan te vorm wat die filterfunksie bereken. Hierdie funksie is
uitgedruk in die volgende vergelyking.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 40
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
N verteenwoordig die aantal siklusse van data wat in die akkumulator ingevoer is, y(t) verteenwoordig die uitset op tyd t, A(t) verteenwoordig die inset op tyd t, en B(i) is die koëffisiënte. Die t en i in die vergelyking stem ooreen met 'n spesifieke tydstip, dus om die uitset s te berekenample y(t) by tyd t, 'n groep insette samples op N verskillende tydstip, of A(n), A(n-1), A(n-2), … A(n-N+1) word vereis. Die groep van N insette samplese word vermenigvuldig met N-koëffisiënte en saamgetel om die finale resultaat y te vorm.
Die sistoliese registerargitektuur is slegs beskikbaar vir som-van-2 en som-van-4-modusse. Vir beide sistoliese registerargitektuurmodusse moet die eerste kettingsein aan 0 gekoppel word.
Die volgende figuur toon die sistoliese vertragingsregister-implementering van 2 vermenigvuldigers.
Figuur 16. Sistoliese vertragingsregisterimplementering van 2 vermenigvuldigers
kettingin
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
resultaat
Die som van twee vermenigvuldigers word in die volgende vergelyking uitgedruk.
Die volgende figuur toon die sistoliese vertragingsregister-implementering van 4 vermenigvuldigers.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Figuur 17. Sistoliese vertragingsregisterimplementering van 4 vermenigvuldigers
kettingin
a0
Multi0
+/-
b0
a1
Multi1
+/-
b1
a2
Multi2
+/-
b2
a3
Multi3
+/-
b3
resultaat
Die som van vier vermenigvuldigers word in die volgende vergelyking uitgedruk. Figuur 18. Som van 4 vermenigvuldigers
Die volgende lys die advantagkenmerke van sistoliese register-implementering: · Verminder DSP-hulpbrongebruik · Maak doeltreffende kartering in die DSP-blok moontlik deur die kettingoptellerstruktuur te gebruik
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 42
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
8.1.3. Voorlaai konstante
Die voorladingskonstante beheer die akkumulatoroperand en komplementeer die akkumulatorterugvoer. Die geldige LOADCONST_VALUE wissel van 0. Die konstante waarde is gelyk aan 64N, waar N = LOADCONST_VALUE. Wanneer die LOADCONST_VALUE op 2 gestel is, is die konstante waarde gelyk aan 64. Hierdie funksie kan as bevooroordeelde afronding gebruik word.
Die volgende figuur toon die pre-load konstante implementering.
Figuur 19. Pre-load Constant
Akkumulator terugvoer
konstant
a0
Multi0
+/-
b0
a1
Multi1
+/b1
resultaat
accum_sload sload_accum
Verwys na die volgende IP-kerne vir ander vermenigvuldiger-implementerings: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dubbele akkumulator
Die dubbelakkumulatorkenmerk voeg 'n bykomende register in die akkumulatorterugvoerpad by. Die dubbelakkumulatorregister volg die uitsetregister, wat die klok, klokaktiveer en aclr insluit. Die bykomende akkumulatorregister gee resultaat met 'n eensiklusvertraging terug. Hierdie kenmerk stel jou in staat om twee akkumulatorkanale met dieselfde hulpbrontelling te hê.
Die volgende figuur toon die implementering van die dubbele akkumulator.
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Figuur 20. Dubbelakkumulator
Dubbel Accu mulator Register
Akku mulator terugvoer
a0
Multi0
+/-
b0
a1
Multi1
+/b1
Uitsetresultaat Uitsetregister
8.2. Verilog HDL-prototipe
Jy kan die Intel FPGA Multiply Adder of ALTERA_MULT_ADD Verilog HDL prototipe vind file (altera_mult_add_rtl.v) in die librariesmegafunctions gids.
8.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is geleë in die altera_lnsim_components.vhd in die librariesvhdl altera_lnsim gids.
8.4. VHDL LIBRARY_USE-verklaring
Die VHDL-BIBLIOTEEK-GEBRUIK-verklaring word nie vereis as jy die VHDL-komponentverklaring gebruik nie.
BIBLIOTEEK altera_mf; GEBRUIK altera_mf.altera_mf_components.all;
8.5. Seine
Die volgende tabelle lys die inset- en uitsetseine van die Multiply Adder Intel FPGA IP of ALTERA_MULT_ADD IP-kern.
Tabel 28. Vermenigvuldig Adder Intel FPGA IPof ALTERA_MULT_ADD Insetseine
Sein
Vereis
Beskrywing
dataa_0[]/dataa_1[]/
Ja
dataa_2[]/dataa_3[]
Data-invoer na die vermenigvuldiger. Invoerpoort [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] breed
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 44
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Sein datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] klok[1:0] aclr[1:0] sclr[1:0] ena [1:0] teken
tekenb
scanina[] accum_sload
Vereis Ja Nee
Nee Nee Nee Nee Nee
Nee
Nee Nee
Beskrywing
Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Data-invoer na die vermenigvuldiger. Insetsein [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] wyd Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Data-invoer na die vermenigvuldiger. Invoersein [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] wyd Kies INPUT vir Kies preadder-modus parameter om hierdie seine te aktiveer. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Klok invoerpoort na die ooreenstemmende register. Hierdie sein kan deur enige register in die IP-kern gebruik word. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Asinchroniese duidelike invoer na die ooreenstemmende register. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Sinchroniese duidelike invoer na die ooreenstemmende register. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde X vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer
Aktiveer seininvoer na die ooreenstemmende register. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie seine. Wanneer jy X-waarde aan hierdie seine verskaf, word die X-waarde op die uitsetseine gepropageer.
Spesifiseer die numeriese voorstelling van die vermenigvuldiger-inset A. As die seinsein hoog is, hanteer die vermenigvuldiger die vermenigvuldiger-inset A-sein as 'n getekende getal. As die sein sein laag is, behandel die vermenigvuldiger die vermenigvuldiger inset A sein as 'n ongetekende getal. Kies VARIABLE vir Wat is die voorstellingsformaat vir Vermenigvuldigers A-invoerparameter om hierdie sein te aktiveer. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Spesifiseer die numeriese voorstelling van die vermenigvuldiger-inset B-sein. As die tekenb-sein hoog is, hanteer die vermenigvuldiger die vermenigvuldiger-inset B-sein as 'n getekende twee se komplementgetal. As die tekenb-sein laag is, behandel die vermenigvuldiger die vermenigvuldiger-inset B-sein as 'n ongetekende getal. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Invoer vir skandeerketting A. Insetsein [WIDTH_A – 1, … 0] wyd. Wanneer die INPUT_SOURCE_A parameter 'n waarde van SCANA het, word die scanina[] sein vereis.
Spesifiseer dinamies of die akkumulatorwaarde konstant is. As die accum_sload-sein laag is, word die vermenigvuldigeruitset in die akkumulator gelaai. Moenie accum_sload en sload_accum gelyktydig gebruik nie.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Seinlading_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Vereiste nr
Nee Nee
Nee
Nee Nee Nee Nee
Beskrywing
Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Spesifiseer dinamies of die akkumulatorwaarde konstant is. As die sload_accum sein hoog is, dan word die vermenigvuldiger uitset in die akkumulator gelaai. Moenie accum_sload en sload_accum gelyktydig gebruik nie. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Adder resultaat invoer bus van die voorafgaande stage. Invoersein [WIDTH_CHAININ – 1, … 0] wyd.
Voer optelling of aftrekking uit tot die uitsette van die eerste paar vermenigvuldigers. Invoer 1 na addnsub1 sein om die uitsette van die eerste paar vermenigvuldigers by te voeg. Invoer 0 na addnsub1 sein om die uitsette van die eerste paar vermenigvuldigers af te trek. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Voer optelling of aftrekking uit tot die uitsette van die eerste paar vermenigvuldigers. Invoer 1 na addnsub3 sein om die uitsette van die tweede paar vermenigvuldigers by te voeg. Invoer 0 na addnsub3 sein om die uitsette van die eerste paar vermenigvuldigers af te trek. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Koëffisiënt-insetsein[0:3] na die eerste vermenigvuldiger. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Koëffisiënt-invoersein[0:3] na die tweede vermenigvuldiger. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Koëffisiënt-invoersein[0:3] na die derde vermenigvuldiger. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Koëffisiënt insetsein [0:3] na die vierde vermenigvuldiger. Die simulasiemodel vir hierdie IP ondersteun onbepaalde insetwaarde (X) vir hierdie sein. Wanneer jy X-waarde aan hierdie inset verskaf, word die X-waarde op die uitsetseine gepropageer.
Tabel 29. Vermenigvuldig Adder Intel FPGA IP-uitsetseine
Sein
Vereis
Beskrywing
resultaat []
Ja
Vermenigvuldiger uitset sein. Uitsetsein [WIDTH_RESULT – 1 … 0] wyd
Die simulasiemodel vir hierdie IP ondersteun onbepaalde uitsetwaarde (X). Wanneer jy X-waarde as die inset verskaf, word die X-waarde op hierdie sein gepropageer.
scanouta []
Nee
Uitset van skanderingketting A. Uitsetsein [WIDTH_A – 1..0] wyd.
Kies meer as 2 vir getalle vermenigvuldigers en kies Skandeer kettinginvoer vir Wat is die inset A van die vermenigvuldiger gekoppel aan parameter om hierdie sein te aktiveer.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 46
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
8.6. Grense
8.6.1. Algemene Tab
Tabel 30. Algemeen Tab
Parameter
IP-gegenereerde parameter
Waarde
Wat is die aantal vermenigvuldigers?
aantal_m 1 – 4 vermenigvuldigers
Hoe wyd moet die A width_a insetbusse wees?
1 – 256
Hoe wyd moet die B width_b insetbusse wees?
1 – 256
Hoe breed moet die 'resultaat' uitsetbus wees?
breedte_resultaat
1 – 256
Skep 'n geassosieerde klokaktivering vir elke horlosie
gui_associate Aan d_clock_enabl Af e
8.6.2. Ekstra modusse-oortjie
Tabel 31. Ekstra Modusse Tab
Parameter
IP-gegenereerde parameter
Waarde
Uitsette konfigurasie
Registreer uitset van die opteleenheid
gui_output_re Aan
gister
Af
Wat is die bron vir klokinvoer?
gui_output_re gister_clock
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_output_re gister_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_output_re gister_sclr
GEEN SCLR0 SCLR1
Adder werking
Watter bewerking moet op uitsette van die eerste paar vermenigvuldigers uitgevoer word?
gui_multiplier 1_direction
VOEG TOE, SUB, VERANDERLIK
Standaardwaarde 1
16
Beskrywing
Aantal vermenigvuldigers wat bymekaar getel moet word. Waardes is 1 tot 4. Spesifiseer die breedte van die dataa[]-poort.
16
Spesifiseer die breedte van die datab[]-poort.
32
Spesifiseer die breedte van die resultaat[]-poort.
Af
Kies hierdie opsie om klokaktivering te skep
vir elke horlosie.
Verstekwaarde
Beskrywing
Af Klok0
GEEN GEEN
Kies hierdie opsie om uitsetregister van die optelmodule te aktiveer.
Kies Klok0, Klok1 of Klok2 om die klokbron vir uitsetregisters te aktiveer en te spesifiseer. Jy moet Registreer uitvoer van die opteleenheid kies om hierdie parameter te aktiveer.
Spesifiseer die asynchrone duidelike bron vir die adder-uitsetregister. Jy moet Registreer uitvoer van die opteleenheid kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die adder-uitsetregister. Jy moet Registreer uitvoer van die opteleenheid kies om hierdie parameter te aktiveer.
VOEG TOE
Kies optel- of aftrekbewerking om uit te voer vir die uitsette tussen die eerste en tweede vermenigvuldigers.
· Kies VOEG TOE om byvoegbewerking uit te voer.
· Kies SUB om aftrekbewerking uit te voer.
· Kies VERANDERLIK om addnsub1-poort te gebruik vir dinamiese optel-/aftrekbeheer.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
IP-gegenereerde parameter
Waarde
Registreer 'addnsub1'-invoer
gui_addnsub_ Aan multiplier_reg Off ister1
Wat is die bron vir klokinvoer?
gui_addnsub_ multiplier_reg ister1_clock
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_addnsub_ multiplier_aclr 1
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_addnsub_ multiplier_sclr 1
GEEN SCLR0 SCLR1
Watter bewerking moet uitgevoer word op uitsette van die tweede paar vermenigvuldigers?
gui_multiplier 3_direction
VOEG TOE, SUB, VERANDERLIK
Registreer 'addnsub3'-invoer
gui_addnsub_ Aan multiplier_reg Off ister3
Wat is die bron vir klokinvoer?
gui_addnsub_ multiplier_reg ister3_clock
Klok0 Klok1 Klok2
Verstekwaarde
Af Klok0 GEEN GEEN VOEG TOE
Af Klok0
Beskrywing
Wanneer VERANDERLIKE waarde gekies word: · Ry addnsub1 sein na hoog vir
byvoeging operasie. · Ry addnsub1 sein na laag vir
aftrek bewerking. Jy moet meer as twee vermenigvuldigers kies om hierdie parameter te aktiveer.
Kies hierdie opsie om invoerregister vir addnsub1-poort te aktiveer. Jy moet VERANDERLIKE kies vir Watter bewerking moet uitgevoer word op uitsette van die eerste paar vermenigvuldigers om hierdie parameter te aktiveer.
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir addnsub1-register te spesifiseer. Jy moet Registreer 'addnsub1'-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die asynchrone duidelike bron vir die addnsub1-register. Jy moet Registreer 'addnsub1'-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die addnsub1-register. Jy moet Registreer 'addnsub1'-invoer kies om hierdie parameter te aktiveer.
Kies optel- of aftrekbewerking om vir die uitsette tussen die derde en vierde vermenigvuldigers uit te voer. · Kies ADD om optelling uit te voer
operasie. · Kies SUB om aftrekking uit te voer
operasie. · Kies VERANDERLIK om addnsub1 te gebruik
poort vir dinamiese optel-/aftrekbeheer. Wanneer VERANDERLIKE waarde gekies word: · Ry addnsub1-sein na hoog vir optelbewerking. · Ry addnsub1-sein na laag vir aftrekking. Jy moet die waarde 4 kies vir Wat is die aantal vermenigvuldigers? om hierdie parameter te aktiveer.
Kies hierdie opsie om insetregister vir addnsub3 sein te aktiveer. Jy moet VERANDERLIKE kies vir Watter bewerking moet uitgevoer word op uitsette van die tweede paar vermenigvuldigers om hierdie parameter te aktiveer.
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir addnsub3-register te spesifiseer. Jy moet Register 'addnsub3'-invoer kies om hierdie parameter te aktiveer.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 48
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Wat is die bron vir asynchrone duidelike invoer?
IP-gegenereerde parameter
Waarde
gui_addnsub_ multiplier_aclr 3
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_addnsub_ multiplier_sclr 3
GEEN SCLR0 SCLR1
Polariteit Aktiveer `use_subadd'
gui_use_subn Aan
byvoeg
Af
8.6.3. Vermenigvuldigers Tab
Tabel 32. Vermenigvuldigers Tab
Parameter
IP-gegenereerde parameter
Waarde
Wat is die
gui_verteenwoordig
voorstellingsformaat ation_a
vir vermenigvuldigers A-insette?
GETEKEN, ONGEKTEKEN, VERANDERBAAR
Registreer `signa'-invoer
gui_register_s Aan
igna
Af
Wat is die bron vir klokinvoer?
gui_register_s igna_clock
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_register_s igna_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_register_s igna_sclr
GEEN SCLR0 SCLR1
Wat is die
gui_verteenwoordig
voorstellingsformaat ation_b
vir vermenigvuldigers B-insette?
GETEKEN, ONGEKTEKEN, VERANDERBAAR
Registreer `signb'-invoer
gui_register_s Aan
ignb
Af
Verstekwaarde GEEN
GEEN
Beskrywing
Spesifiseer die asynchrone duidelike bron vir die addnsub3-register. Jy moet Registreer 'addnsub3'-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die addnsub3-register. Jy moet Register 'addnsub3'-invoer kies om hierdie parameter te aktiveer.
Af
Kies hierdie opsie om die funksie om te keer
van addnsub-invoerpoort.
Ry addnsub na hoog vir aftrekbewerking.
Ry addnsub na laag vir byvoegbewerking.
Verstekwaarde
Beskrywing
ONTEKEN Spesifiseer die voorstellingsformaat vir die vermenigvuldiger A-invoer.
Af
Kies hierdie opsie om teken te aktiveer
registreer.
Jy moet VERANDERLIKE waarde kies vir Wat is die voorstellingsformaat vir Vermenigvuldigers A-insette? parameter om hierdie opsie te aktiveer.
Horlosie 0
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir tekenregister te aktiveer en te spesifiseer.
Jy moet Register `signa'-invoer kies om hierdie parameter te aktiveer.
GEEN
Spesifiseer die asynchrone duidelike bron vir die tekenregister.
Jy moet Register `signa'-invoer kies om hierdie parameter te aktiveer.
GEEN
Spesifiseer die sinchrone duidelike bron vir die tekenregister.
Jy moet Register `signa'-invoer kies om hierdie parameter te aktiveer.
ONTEKEN Spesifiseer die voorstellingsformaat vir die vermenigvuldiger B-invoer.
Af
Kies hierdie opsie om tekenb te aktiveer
registreer.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
IP-gegenereerde parameter
Waarde
Verstekwaarde
Wat is die bron vir klokinvoer?
gui_register_s ignb_klok
Klok0 Klok1 Klok2
Horlosie 0
Wat is die bron vir asynchrone duidelike invoer?
gui_register_s ignb_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_register_s ignb_sclr
GEEN SCLR0 SCLR1
Invoerkonfigurasie
Registreer inset A van die vermenigvuldiger
Wat is die bron vir klokinvoer?
gui_input_reg Aan
ister_a
Af
gui_input_reg ister_a_clock
Klok0 Klok1 Klok2
GEEN GEEN
Af Klok0
Wat is die bron vir asynchrone duidelike invoer?
gui_input_reg ister_a_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_input_reg ister_a_sclr
GEEN SCLR0 SCLR1
Registreer inset B van die vermenigvuldiger
Wat is die bron vir klokinvoer?
gui_input_reg Aan
ister_b
Af
gui_input_reg ister_b_klok
Klok0 Klok1 Klok2
GEEN GEEN Af Klok0
Wat is die bron vir asynchrone duidelike invoer?
gui_input_reg ister_b_aclr
GEEN ACLR0 ACLR1
GEEN
Wat is die bron vir sinchrone duidelike invoer?
gui_input_reg ister_b_sclr
GEEN SCLR0 SCLR1
GEEN
Waaraan is die inset A van die vermenigvuldiger gekoppel?
gui_multiplier Vermenigvuldiger invoer Vermenigvuldiger
_'n_invoer
Skandeer kettinginvoerinvoer
Beskrywing
Jy moet VERANDERLIKE waarde kies vir Wat is die voorstellingsformaat vir Vermenigvuldigers B-insette? parameter om hierdie opsie te aktiveer.
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir tekenregister te aktiveer en te spesifiseer. Jy moet Register `signb'-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die asynchrone duidelike bron vir die tekenregister. Jy moet Register `signb'-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die tekenregister. Jy moet Register `signb'-invoer kies om hierdie parameter te aktiveer.
Kies hierdie opsie om invoerregister vir data 'n invoerbus te aktiveer.
Kies Klok0, Klok1 of Klok2 om die registerinvoerkloksein vir data 'n insetbus te aktiveer en te spesifiseer. Jy moet Registreer invoer A van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Spesifiseer die register asinchrone duidelike bron vir die data-invoerbus. Jy moet Registreer invoer A van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Spesifiseer die register sinchrone duidelike bron vir die data-invoerbus. Jy moet Registreer invoer A van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Kies hierdie opsie om invoerregister vir data-invoerbus te aktiveer.
Kies Klok0, Klok1 of Klok2 om die registerinvoerkloksein vir data-invoerbus te aktiveer en te spesifiseer. Jy moet Register-invoer B van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Spesifiseer die register asinchrone duidelike bron vir die data-invoerbus. Jy moet Register-invoer B van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Spesifiseer die register sinchrone duidelike bron vir die data-invoerbus. Jy moet Register-invoer B van die vermenigvuldiger kies om hierdie parameter te aktiveer.
Kies die insetbron vir inset A van die vermenigvuldiger.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 50
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
IP-gegenereerde parameter
Waarde
Scanout A Register Configuration
Registreer uitset van die skanderingketting
gui_scanouta Aan
_registreer
Af
Wat is die bron vir klokinvoer?
gui_scanouta _register_klok k
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_scanouta _register_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_scanouta _register_sclr
GEEN SCLR0 SCLR1
8.6.4. Preadder-oortjie
Tabel 33. Preadder Tab
Parameter
IP-gegenereerde parameter
Waarde
Kies voorlêermodus
preadder_mo de
EENVOUDIG, KOEF, INVOER, VIERKANT, KONSTANT
Verstekwaarde
Beskrywing
Kies Vermenigvuldiger-invoer om data 'n invoerbus as die bron na die vermenigvuldiger te gebruik. Kies Skandeer kettinginvoer om skandeerinvoerbus as die bron na die vermenigvuldiger te gebruik en die skandeeruitsetbus te aktiveer. Hierdie parameter is beskikbaar wanneer jy 2, 3 of 4 kies vir Wat is die aantal vermenigvuldigers? parameter.
Af Klok0 GEEN GEEN
Kies hierdie opsie om uitsetregister vir scanouta-uitsetbus te aktiveer.
Jy moet Scan chain input kies vir Waaraan is die inset A van die vermenigvuldiger gekoppel? parameter om hierdie opsie te aktiveer.
Kies Klok0, Klok1 of Klok2 om die registerinvoerkloksein vir scanouta-uitsetbus te aktiveer en te spesifiseer.
Jy moet Register-uitvoer van die skanderingkettingparameter aanskakel om hierdie opsie te aktiveer.
Spesifiseer die register asynchrone duidelike bron vir die scanouta-uitsetbus.
Jy moet Register-uitvoer van die skanderingkettingparameter aanskakel om hierdie opsie te aktiveer.
Spesifiseer die register sinchrone duidelike bron vir die scanouta-uitsetbus.
Jy moet Registreer uitvoer van die skanderingkettingparameter kies om hierdie opsie te aktiveer.
Verstekwaarde
EENVOUDIG
Beskrywing
Spesifiseer die werkingsmodus vir voorlêermodule. EENVOUDIG: Hierdie modus omseil die preadder. Dit is die verstekmodus. COEF: Hierdie modus gebruik die uitset van die preadder en coefsel insetbus as die insette na die vermenigvuldiger. INPUT: Hierdie modus gebruik die uitset van die preadder en datac insetbus as die insette na die vermenigvuldiger. VIERKANT: Hierdie modus gebruik die uitset van die voorlêer as beide die insette na die vermenigvuldiger.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
IP-gegenereerde parameter
Waarde
Kies voorlêerrigting
gui_preadder ADD,
_rigting
SUB
Hoe wyd moet die C width_c insetbusse wees?
1 – 256
Data C Invoer Register Konfigurasie
Registreer data-invoer
gui_datac_inp Aan
ut_register
Af
Wat is die bron vir klokinvoer?
gui_datac_inp ut_register_cl ock
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_datac_inp ut_register_a clr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_datac_inp ut_register_sc lr
GEEN SCLR0 SCLR1
Koëffisiënte
Hoe breed moet die koefwydte wees?
width_coef
1 – 27
Coef Register Konfigurasie
Registreer die coefsel-invoer
gui_coef_regi Aan
ster
Af
Wat is die bron vir klokinvoer?
gui_coef_regi ster_clock
Klok0 Klok1 Klok2
Verstekwaarde
VOEG TOE
16
Beskrywing
KONSTANT: Hierdie modus gebruik data as 'n insetbus met 'n preadder-omseil en coefsel-invoerbus as die insette na die vermenigvuldiger.
Spesifiseer die werking van die voorlêer. Om hierdie parameter te aktiveer, kies die volgende vir Kies preadder-modus: · COEF · INPUT · VIERKANT of · KONSTANT
Spesifiseer die aantal bisse vir C-invoerbus. Jy moet INPUT vir Kies preadder-modus kies om hierdie parameter te aktiveer.
Op Klok0 GEEN GEEN
Kies hierdie opsie om insetregister vir data-invoerbus te aktiveer. Jy moet INPUT stel op Select preadder mode parameter om hierdie opsie te aktiveer.
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir data-invoerregister te spesifiseer. Jy moet Register datac input kies om hierdie parameter te aktiveer.
Spesifiseer die asynchrone duidelike bron vir die datac-invoerregister. Jy moet Register datac input kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die datac-invoerregister. Jy moet Register datac input kies om hierdie parameter te aktiveer.
18
Spesifiseer die aantal bisse vir
coefsel invoer bus.
Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Op klok 0
Kies hierdie opsie om insetregister vir coefsel-invoerbus te aktiveer. Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir koefsel-invoerregister te spesifiseer. Jy moet Registreer die coefsel-invoer kies om hierdie parameter te aktiveer.
voortgesit …
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 52
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Wat is die bron vir asynchrone duidelike invoer?
IP-gegenereerde parameter
Waarde
gui_coef_regi ster_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer
gui_coef_regi ster_sclr
GEEN SCLR0 SCLR1
Koëffisiënt_0-konfigurasie
koef0_0 tot koef0_7
0x00000 0xFFFFFFF
Koëffisiënt_1-konfigurasie
koef1_0 tot koef1_7
0x00000 0xFFFFFFF
Koëffisiënt_2-konfigurasie
koef2_0 tot koef2_7
0x00000 0xFFFFFFF
Koëffisiënt_3-konfigurasie
koef3_0 tot koef3_7
0x00000 0xFFFFFFF
8.6.5. Akkumulator-oortjie
Tabel 34. Akkumulator Tab
Parameter
IP-gegenereerde parameter
Waarde
Aktiveer akkumulator?
akkumulator
JA, NEE
Wat is die tipe akkumulatorbewerking?
accum_directi ADD,
on
SUB
Verstekwaarde GEEN
GEEN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Beskrywing
Spesifiseer die asynchrone duidelike bron vir die coefsel-invoerregister. Jy moet Registreer die coefsel-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die coefsel-invoerregister. Jy moet Registreer die coefsel-invoer kies om hierdie parameter te aktiveer.
Spesifiseer die koëffisiëntwaardes vir hierdie eerste vermenigvuldiger. Die aantal bisse moet dieselfde wees as gespesifiseer in Hoe breed moet die koefwydte wees? parameter. Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Spesifiseer die koëffisiëntwaardes vir hierdie tweede vermenigvuldiger. Die aantal bisse moet dieselfde wees as gespesifiseer in Hoe breed moet die koefwydte wees? parameter. Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Spesifiseer die koëffisiëntwaardes vir hierdie derde vermenigvuldiger. Die aantal bisse moet dieselfde wees as gespesifiseer in Hoe breed moet die koefwydte wees? parameter. Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Spesifiseer die koëffisiëntwaardes vir hierdie vierde vermenigvuldiger. Die aantal bisse moet dieselfde wees as gespesifiseer in Hoe breed moet die koefwydte wees? parameter. Jy moet COEF of CONSTANT kies vir preadder-modus om hierdie parameter te aktiveer.
Verstekwaarde NO
VOEG TOE
Beskrywing
Kies JA om die akkumulator te aktiveer. Jy moet Registreer uitvoer van opteleenheid kies wanneer jy akkumulatorfunksie gebruik.
Spesifiseer die werking van die akkumulator: · ADD vir optelbewerking · SUB vir aftrekbewerking. Jy moet JA kies vir Aktiveer akkumulator? parameter om hierdie opsie te aktiveer.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
Voorlaaikonstante Aktiveer vooraflaaikonstante
IP-gegenereerde parameter
Waarde
gui_ena_prelo Aan
advertensie_konst
Af
Waaraan is die inset van akkumuleerpoort gekoppel?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Kies waarde vir preload loadconst_val 0 – 64
konstant
ue
Wat is die bron vir klokinvoer?
gui_accum_sl oad_register_ klok
Klok0 Klok1 Klok2
Wat is die bron vir asynchrone duidelike invoer?
gui_accum_sl oad_register_ aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_accum_sl oad_register_ sclr
GEEN SCLR0 SCLR1
Aktiveer dubbele akkumulator
gui_double_a Aan
ccum
Af
Verstekwaarde
Beskrywing
Af
Aktiveer die accum_sload of
sload_accum seine en register insette
om die invoer na die dinamies te kies
akkumulator.
Wanneer accum_sload laag of sload_accum is, word die vermenigvuldigeruitset in die accumulator ingevoer.
Wanneer accum_sload hoog of sload_accum is, word 'n gebruikergespesifiseerde voorlaaikonstante in die akkumulator ingevoer.
Jy moet JA kies vir Aktiveer akkumulator? parameter om hierdie opsie te aktiveer.
ACCUM_SL OAD
Spesifiseer die gedrag van accum_sload/sload_accum sein.
ACCUM_SLOAD: Ry accum_sload laag om die vermenigvuldigeruitset na die akkumulator te laai.
SLOAD_ACCUM: Ry sload_accum hoog om die vermenigvuldigeruitset na die akkumulator te laai.
Jy moet Aktiveer voorlaai konstante opsie kies om hierdie parameter te aktiveer.
64
Spesifiseer die voorafbepaalde konstante waarde.
Hierdie waarde kan 2N wees waar N die voorafbepaalde konstante waarde is.
Wanneer N=64, verteenwoordig dit 'n konstante nul.
Jy moet Aktiveer voorlaai konstante opsie kies om hierdie parameter te aktiveer.
Horlosie 0
Kies Klok0, Klok1 of Klok2 om die insetkloksein vir accum_sload/sload_accum register te spesifiseer.
Jy moet Aktiveer voorlaai konstante opsie kies om hierdie parameter te aktiveer.
GEEN
Spesifiseer die asynchrone duidelike bron vir die accum_sload/sload_accum register.
Jy moet Aktiveer voorlaai konstante opsie kies om hierdie parameter te aktiveer.
GEEN
Spesifiseer die sinchrone duidelike bron vir die accum_sload/sload_accum register.
Jy moet Aktiveer voorlaai konstante opsie kies om hierdie parameter te aktiveer.
Af
Aktiveer die dubbelakkumulatorregister.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 54
Stuur terugvoer
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
8.6.6. Sistoliese/Ketting-oortjie
Tabel 35. Sistoliese/Ketting-opteller-oortjie
Parameter Aktiveer chainout adder
IP-gegenereerde parameter
Waarde
chainout_add JA,
er
NEE
Wat is die tipe chainout adder-bewerking?
chainout_add ADD,
er_rigting
SUB
Aktiveer `negate'-invoer vir chainout-opteller?
Port_negate
PORT_USED, PORT_UNUSED
Registreer `negate'-invoer? negate_register er
ONGEREGISTREERD, KLOK0, KLOK1, KLOK2, KLOK3
Wat is die bron vir asynchrone duidelike invoer?
ontken_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
negate_sclr
GEEN SCLR0 SCLR1
Sistoliese vertraging
Aktiveer sistoliese vertragingsregisters
gui_systolic_d Aan
Elay
Af
Wat is die bron vir klokinvoer?
gui_systolic_d CLOCK0,
elay_klok
KLOK 1,
Verstekwaarde
NEE
Beskrywing
Kies JA om kettingoptellermodule te aktiveer.
VOEG TOE
Spesifiseer die chainout adder-bewerking.
Vir aftrekbewerking moet GETEKEN gekies word vir Wat is die voorstellingsformaat vir Vermenigvuldigers A-insette? en Wat is die voorstellingsformaat vir vermenigvuldigers B-insette? in die Vermenigvuldigers-oortjie.
PORT_UN GEBRUIK
Kies PORT_USED om ontken insetsein te aktiveer.
Hierdie parameter is ongeldig wanneer chainout adder gedeaktiveer is.
ONGEREGISTREERDE
Om die insetregister vir ontken insetsein te aktiveer en die insetkloksein vir ontkenregister te spesifiseer.
Kies UNREGISTERED as die ontkeninvoerregister na nie nodig is nie
Hierdie parameter is ongeldig wanneer jy kies:
· NEE vir Aktiveer chainout adder of
· PORT_UNUSED vir Aktiveer 'negate' invoer vir chainout adder? parameter of
GEEN
Spesifiseer die asynchrone duidelike bron vir die negate register.
Hierdie parameter is ongeldig wanneer jy kies:
· NEE vir Aktiveer chainout adder of
· PORT_UNUSED vir Aktiveer 'negate' invoer vir chainout adder? parameter of
GEEN
Spesifiseer die sinchrone duidelike bron vir die negate register.
Hierdie parameter is ongeldig wanneer jy kies:
· NEE vir Aktiveer chainout adder of
· PORT_UNUSED vir Aktiveer 'negate' invoer vir chainout adder? parameter of
Af KLOK0
Kies hierdie opsie om sistoliese modus te aktiveer. Hierdie parameter is beskikbaar wanneer jy 2, of 4 kies vir Wat is die aantal vermenigvuldigers? parameter. Jy moet die Register-uitvoer van die opteleenheid aktiveer om die sistoliese vertragingsregisters te gebruik.
Spesifiseer die insetkloksein vir sistoliese vertragingsregister.
voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05/XNUMX/XNUMX
Parameter
IP-gegenereerde parameter
Waarde
KLOK 2,
Wat is die bron vir asynchrone duidelike invoer?
gui_systolic_d elay_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_systolic_d elay_sclr
GEEN SCLR0 SCLR1
Verstekwaarde
GEEN
GEEN
Beskrywing
Jy moet aktiveer sistoliese vertragingsregisters kies om hierdie opsie te aktiveer.
Spesifiseer die asynchrone duidelike bron vir die sistoliese vertragingsregister. Jy moet aktiveer sistoliese vertragingsregisters kies om hierdie opsie te aktiveer.
Spesifiseer die sinchrone duidelike bron vir die sistoliese vertragingsregister. Jy moet aktiveer sistoliese vertragingsregisters kies om hierdie opsie te aktiveer.
8.6.7. Pypleiding Tab
Tabel 36. Pypleiding Tab
Parameter Pyplyn-konfigurasie
IP-gegenereerde parameter
Waarde
Wil jy pyplynregister by die invoer voeg?
gui_pipelining Nee, Ja
Verstekwaarde
Nee
Spesifiseer asseblief die
latensie
aantal latency klok
siklusse
Enige waarde groter 0 as 0
Wat is die bron vir klokinvoer?
gui_input_late ncy_clock
KLOK0, KLOK1, KLOK2
Wat is die bron vir asynchrone duidelike invoer?
gui_input_late ncy_aclr
GEEN ACLR0 ACLR1
Wat is die bron vir sinchrone duidelike invoer?
gui_input_late ncy_sclr
GEEN SCLR0 SCLR1
KLOK0 GEEN GEEN
Beskrywing
Kies Ja om 'n bykomende vlak van pyplynregister vir die insetseine te aktiveer. Jy moet 'n waarde groter as 0 spesifiseer vir Spesifiseer asseblief die aantal latensiekloksiklusse parameter.
Spesifiseer die verlangde latensie in kloksiklusse. Een vlak van pyplynregister = 1 latensie in kloksiklus. Jy moet JA kies vir Wil jy pyplynregister by die invoer voeg? om hierdie opsie te aktiveer.
Kies Klok0, Klok1 of Klok2 om die pyplynregister-invoerkloksein te aktiveer en te spesifiseer. Jy moet JA kies vir Wil jy pyplynregister by die invoer voeg? om hierdie opsie te aktiveer.
Spesifiseer die register asinchrone duidelike bron vir die bykomende pyplynregister. Jy moet JA kies vir Wil jy pyplynregister by die invoer voeg? om hierdie opsie te aktiveer.
Spesifiseer die register sinchrone duidelike bron vir die bykomende pyplynregister. Jy moet JA kies vir Wil jy pyplynregister by die invoer voeg? om hierdie opsie te aktiveer.
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 56
Stuur terugvoer
683490 | 2020.10.05 Stuur terugvoer
9. ALTMEMMULT (Geheue-gebaseerde Konstante Koëffisiënt Vermenigvuldiger) IP-kern
Aandag:
Intel het die ondersteuning van hierdie IP in Intel Quartus Prime Pro Edition weergawe 20.3 verwyder. As die IP-kern in jou ontwerp toestelle in Intel Quartus Prime Pro Edition teiken, kan jy die IP vervang met LPM_MULT Intel FPGA IP of die IP hergenereer en jou ontwerp saamstel deur Intel Quartus Prime Standard Edition-sagteware te gebruik.
Die ALTMEMMULT IP-kern word gebruik om geheue-gebaseerde vermenigvuldigers te skep deur gebruik te maak van die onchip-geheueblokke wat in Intel FPGA's gevind word (met M512-, M4K-, M9K- en MLAB-geheueblokke). Hierdie IP-kern is nuttig as jy nie voldoende hulpbronne het om die vermenigvuldigers in logiese elemente (LE's) of toegewyde vermenigvuldigerhulpbronne te implementeer nie.
Die ALTMEMMULT IP-kern is 'n sinchrone funksie wat 'n horlosie vereis. Die ALTMEMMULT IP-kern implementeer 'n vermenigvuldiger met die kleinste deurset en latensie moontlik vir 'n gegewe stel parameters en spesifikasies.
Die volgende figuur toon die poorte vir die ALTMEMMULT IP-kern.
Figuur 21. ALTMEMMULT-poorte
ALTMEMMULT
data_in[] sload_data coeff_in[]
resultaat[] resultaat_geldige laai_klaar
sload_coeff
sclr klok
inst
Verwante inligtingkenmerke op bladsy 71
9.1. Kenmerke
Die ALTMEMMULT IP-kern bied die volgende kenmerke: · Skep slegs geheue-gebaseerde vermenigvuldigers deur gebruik te maak van on-chip geheue blokke gevind in
Intel FPGA's · Ondersteun datawydte van 1 bisse · Ondersteun ondertekende en ongetekende datavoorstellingsformaat · Ondersteun pypleiding met vaste uitsetvertraging
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
ISO 9001:2015 Geregistreer
9. ALTMEMMULT (Geheue-gebaseerde Konstante Koëffisiënt Vermenigvuldiger) IP Kern 683490 | 2020.10.05/XNUMX/XNUMX
· Stoor veelvoude konstantes in ewekansige toegang geheue (RAM)
· Verskaf 'n opsie om die RAM-bloktipe te kies
· Ondersteun opsionele sinchrone duidelike en lasbeheer-invoerpoorte
9.2. Verilog HDL-prototipe
Die volgende Verilog HDL-prototipe is in die Verilog-ontwerp geleë File (.v) altera_mf.v in die eda sintese gids.
module altmemmult #( parameter coeff_representation = "GETEKEN", parameter koëffisiënt0 = "ONGEBRUIK", parameter data_representation = "GETEKEN", parameter intended_device_family = "unused", parameter max_clock_cycles_per_result = 1, parameter number_of_coefficients = 1, parameter ram_block", parameter = "AUTOblock",_type = "AUTO total_latency = 1, parameter width_c = 1, parameter width_d = 1, parameter width_r = 1, parameter width_s = 1, parameter lpm_type = "altmemmult", parameter lpm_hint = "unused") (invoerdraadklok, invoerdraad [width_c-1: 0]coeff_in, insetdraad [width_d-1:0] data_in, uitsetdraad load_done, uitsetdraad [width_r-1:0] resultaat, uitsetdraadresultaat_valid, insetdraad sclr, insetdraad [width_s-1:0] sel, invoer draad sload_coeff, invoer draad sload_data)/* sintese syn_black_box=1 */; eindmodule
9.3. VHDL-komponentverklaring
Die VHDL-komponentverklaring is in die VHDL-ontwerp geleë File (.vhd) altera_mf_components.vhd in die librariesvhdlaltera_mf gids.
komponent altmemmult generies ( coeff_representation:string := "GETEKEN"; koëffisiënt0:string := "ONGEBRUIK"; data_voorstelling:string:= "GETEKEN"; bedoelde_toestelfamilie:string:= "ongebruik"; maksimum_kloksiklusse_per_resultaat:natuurlike_koëffisiënt:natuurlike_koëffisiënt:= := 1; ram_blok: string := “AUTO” "altmemmult"); poort (klok:in std_logic; coeff_in:in std_logic_vector(width_c-1 af na 1) := (ander => '1'); data_in:in std_logic_vector(width_d-0 af na 0);
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 58
Stuur terugvoer
9. ALTMEMMULT (Geheue-gebaseerde Konstante Koëffisiënt Vermenigvuldiger) IP Kern 683490 | 2020.10.05/XNUMX/XNUMX
load_done:out std_logic; resultaat: uit std_logic_vector (width_r-1 af na 0); result_valid:out std_logic; sclr:in std_logic:= '0'; sel:in std_logic_vector(width_s-1 af na 0) := (ander => '0'); sload_coeff:in std_logic:= '0'; sload_data:in std_logic:= '0'); eindkomponent;
9.4. Hawens
Die volgende tabelle lys die invoer- en uitvoerpoorte vir die ALTMEMMULT IP-kern.
Tabel 37. ALTMEMMULT Invoerpoorte
Port Naam
Vereis
Beskrywing
horlosie
Ja
Klokinvoer na die vermenigvuldiger.
coeff_in[]
Nee
Koëffisiënt-invoerpoort vir die vermenigvuldiger. Die grootte van die invoerpoort hang af van die WIDTH_C parameterwaarde.
data_in[]
Ja
Data-invoerpoort na die vermenigvuldiger. Die grootte van die invoerpoort hang af van die WIDTH_D parameterwaarde.
sclr
Nee
Sinchroniese duidelike invoer. Indien ongebruik, is die verstekwaarde aktief hoog.
sel[]
Nee
Vaste koëffisiënt seleksie. Die grootte van die invoerpoort hang af van die WIDTH_S
parameter waarde.
sload_coeff
Nee
Sinchroniese las koëffisiënt invoerpoort. Vervang die huidige geselekteerde koëffisiëntwaarde met die waarde gespesifiseer in die coeff_in-invoer.
laai_data
Nee
Sinchroniese laai data-invoerpoort. Sein wat nuwe vermenigvuldigingsbewerking spesifiseer en enige bestaande vermenigvuldigingsbewerking kanselleer. As die MAX_CLOCK_CYCLES_PER_RESULT parameter 'n waarde van 1 het, word die sload_data invoerpoort geïgnoreer.
Tabel 38. ALTMEMMULT Uitsetpoorte
Port Naam
Vereis
Beskrywing
resultaat[]
Ja
Vermenigvuldiger uitsetpoort. Die grootte van die invoerpoort hang af van die WIDTH_R parameterwaarde.
resultaat_geldig
Ja
Dui aan wanneer die uitset die geldige resultaat van 'n volledige vermenigvuldiging is. As die MAX_CLOCK_CYCLES_PER_RESULT parameter 'n waarde van 1 het, word die resultaat_geldige uitsetpoort nie gebruik nie.
laai_klaar
Nee
Dui aan wanneer die nuwe koëffisiënt klaar gelaai het. Die load_done sein bevestig wanneer 'n nuwe koëffisiënt klaar gelaai het. Tensy die load_done-sein hoog is, kan geen ander koëffisiëntwaarde in die geheue gelaai word nie.
9.5. Grense
Die volgende tabel lys die parameters vir die ALTMEMMULT IP-kern.
Tabel 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parameters
Parameter Naam
Tipe vereis
Beskrywing
Heelgetal Ja
Spesifiseer die breedte van die data_in[]-poort.
Heelgetal Ja
Spesifiseer die breedte van die coeff_in[]-poort. voortgesit …
Stuur terugvoer
Intel FPGA Integer Arithmetic IP Cores Gebruikersgids 59
9. ALTMEMMULT (Geheue-gebaseerde Konstante Koëffisiënt Vermenigvuldiger) IP Kern 683490 | 2020.10.05/XNUMX/XNUMX
Parameternaam WIDTH_R WIDTH
Dokumente / Hulpbronne
![]() |
intel FPGA Heelgetal Rekenkundige IP Cores [pdf] Gebruikersgids FPGA Heelgetal Rekenkundige IP Cores, Heelgetal Rekenkundige IP Cores, Rekenkundige IP Cores, IP Cores |