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

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *