FPGA Integer Arithmetic IP Cores

Intel FPGA Integer Arithmetic IP Cores User Guide
Updated foar Intel® Quartus® Prime Design Suite: 20.3

Online Ferzje Ferstjoere Feedback

UG-01063

ID: 683490 Ferzje: 2020.10.05

Ynhâld
Ynhâld
1. Intel FPGA Integer Arithmetic IP Cores……………………………………………………………………….. 5
2. LPM_COUNTER (Teller) IP-kearn……………………………………………………………………………….. 7 2.1. Funksjes…………………………………………………………………………………………………………………7 2.2. Verilog HDL-prototype……………………………………………………………………………….. 8 2.3. Deklaraasje fan VHDL-komponinten……………………………………………………………………….8 2.4. VHDL LIBRARY_USE Ferklearring………………………………………………………………………………… 9 2.5. Havens…………………………………………………………………………………………………………………..9 2.6. Parameters……………………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divider) Intel FPGA IP Core……………………………………………………………….. 12 3.1. Funksjes………………………………………………………………………………………………………. 12 3.2. Verilog HDL-prototype……………………………………………………………………………………… 12 3.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 13 3.5. Havens……………………………………………………………………………………………………… 13 3.6. Parameters……………………………………………………………………………………………………… 14
4. LPM_MULT (multiplikator) IP-kearn………………………………………………………………………………………. 16 4.1. Funksjes………………………………………………………………………………………………………. 16 4.2. Verilog HDL Prototype……………………………………………………………………………… 17 4.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 17 4.5. Sinjalen………………………………………………………………………………………………… 18 4.6. Parameters foar Stratix V, Arria V, Cyclone V, en Intel Cyclone 10 LP-apparaten………………… 18 4.6.1. Algemien Tab …………………………………………………………………………………………………18 4.6.2. Algemien 2 Ljepblêd……………………………………………………………………………………… 19 4.6.3. Pipelining Tab……………………………………………………………………………… 19 4.7. Parameters foar Intel Stratix 10, Intel Arria 10, en Intel Cyclone 10 GX-apparaten……….. 20 4.7.1. Tab Algemien………………………………………………………………………………………20 4.7.2. Algemien 2 Ljepblêd……………………………………………………………………………………… 20 4.7.3. Pipelining………………………………………………………………………………………………21
5. LPM_ADD_SUB (Adder/Subtractor)………………………………………………………………………… 22 5.1. Funksjes………………………………………………………………………………………………………. 22 5.2. Verilog HDL Prototype……………………………………………………………………………… 23 5.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 23 5.5. Havens……………………………………………………………………………………………………………… 23 5.6. Parameters……………………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparator)………………………………………………………………………………………… 26 6.1. Funksjes………………………………………………………………………………………………………. 26 6.2. Verilog HDL-prototype……………………………………………………………………………… 27 6.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 27 6.5. Havens……………………………………………………………………………………………………………… 27 6.6. Parameters……………………………………………………………………………………………………… 28

Intel FPGA Integer Arithmetic IP Cores User Guide 2

Stjoer Feedback

Ynhâld

7. ALTECC (Flaterkorreksjekoade: Encoder/Decoder) IP Core………………………………………… 30
7.1. ALTECC Encoder Features………………………………………………………………………………………..31 7.2. Verilog HDL Prototype (ALTECC_ENCODER)…………………………………………………………………. 32 7.3. Verilog HDL Prototype (ALTECC_DECODER)…………………………………………………………………. 32 7.4. VHDL Component Declaration (ALTECC_ENCODER)…………………………………………………33 7.5. VHDL Component Declaration (ALTECC_DECODER)…………………………………………………33 7.6. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 33 7.7. Encoder-poarten……………………………………………………………………………………………… 33 7.8. Dekoderpoarten………………………………………………………………………………………………………34 7.9. Encoder Parameters……………………………………………………………………………… 34 7.10. Dekoderparameters ………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………………………. 36
8.1. Funksjes………………………………………………………………………………………………………. 37 8.1.1. Pre-adder……………………………………………………………………………………….. 38 8.1.2. Systolic Delay Register……………………………………………………………….. 40 8.1.3. Pre-load Constant……………………………………………………………………… 43 8.1.4. Dûbele accumulator……………………………………………………………………… 43
8.2. Verilog HDL Prototype……………………………………………………………………………… 44 8.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………. 44 8.5. Sinjalen………………………………………………………………………………………………… 44 8.6. Parameters……………………………………………………………………………………………………… 47
8.6.1. Algemien ljepper………………………………………………………………………………………………47 8.6.2. Ljepper Extra Modes ………………………………………………………………………………….. 47 8.6.3. Ljepblêd Multipliers……………………………………………………………………………………….. 49 8.6.4. Preadder Tab………………………………………………………………………………………. 51 8.6.5. Akkumulator ljepper……………………………………………………………………………….. 53 8.6.6. Systolic/Chainout Tab …………………………………………………………………………. 55 8.6.7. Pipelining Tab……………………………………………………………………………… 56
9. ALTMEMMULT (Memory-based Constant Coefficient Multiplier) IP Core………………………… 57
9.1. Funksjes………………………………………………………………………………………………………. 57 9.2. Verilog HDL Prototype……………………………………………………………………………… 58 9.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………….. 58 9.4. Havens……………………………………………………………………………………………………………… 59 9.5. Parameters……………………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (fermannichfâldigje-akkumulearje) IP-kearn……………………………………………………… 61
10.1. Funksjes……………………………………………………………………………………………………….. 62 10.2. Verilog HDL-prototype…………………………………………………………………………………………..62 10.3. VHDL Component Declaration……………………………………………………………… 63 10.4. VHDL LIBRARY_USE Ferklearring………………………………………………………………………………63 10.5. Havens …………………………………………………………………………………………………………. 63 10.6. Parameters………………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiply-Adder) IP Core…………………………………………………………………..69
11.1. Funksjes……………………………………………………………………………………………………….. 71 11.2. Verilog HDL-prototype…………………………………………………………………………………………..72 11.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………… 72 11.4. VHDL LIBRARY_USE Ferklearring………………………………………………………………………………72

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 3

Ynhâld
11.5. Havens …………………………………………………………………………………………………………. 72 11.6. Parameters………………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Komplekse Multiplier) IP-kearn……………………………………………………… 86 12.1. Komplekse fermannichfâldigje………………………………………………………………………………………. 86 12.2. Kanonike foarstelling………………………………………………………………………… 87 12.3. Konvinsjonele fertsjintwurdiging………………………………………………………………………. 87 12.4. Funksjes……………………………………………………………………………………………………….. 88 12.5. Verilog HDL Prototype………………………………………………………………………………………..88 12.6. Deklaraasje fan VHDL-komponinten………………………………………………………………………… 89 12.7. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………89 12.8. Sinjalen………………………………………………………………………………………………. 89 12.9. Parameters………………………………………………………………………………………………………. 90
13. ALTSQRT (Integer Square Root) IP Core…………………………………………………………………………92 13.1. Funksjes……………………………………………………………………………………………………….. 92 13.2. Verilog HDL Prototype…………………………………………………………………………………………..92 13.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………… 93 13.4. VHDL LIBRARY_USE-ferklearring………………………………………………………………………………93 13.5. Havens …………………………………………………………………………………………………………. 93 13.6. Parameters………………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Parallel Adder) IP Core………………………………………………………………….. 95 14.1. Feature……………………………………………………………………………………………………………….95 14.2. Verilog HDL-prototype…………………………………………………………………………………………..95 14.3. Deklaraasje fan VHDL-komponinten………………………………………………………………………… 96 14.4. VHDL LIBRARY_USE Ferklearring…………………………………………………………………………………96 14.5. Havens …………………………………………………………………………………………………………. 96 14.6. Parameters………………………………………………………………………………………………………. 97
15. Integer Arithmetic IP Cores User Guide Document Archives………………………………… 98
16. Dokumintferzjeskiednis foar Intel FPGA Integer Arithmetic IP Cores User Guide…. 99

Intel FPGA Integer Arithmetic IP Cores User Guide 4

Stjoer Feedback

683490 | 2020.10.05 Ferstjoere Feedback

1. Intel FPGA Integer Arithmetic IP Cores

Jo kinne de Intel® FPGA-integer IP-kearnen brûke om wiskundige operaasjes yn jo ûntwerp út te fieren.

Dizze funksjes biede effisjinter logyske synteze en ymplemintaasje fan apparaten dan it kodearjen fan jo eigen funksjes. Jo kinne de IP-kearnen oanpasse om oan jo ûntwerpeasken te foldwaan.

Intel integer arithmetic IP-kearnen wurde ferdield yn de folgjende twa kategoryen: · Biblioteek fan parameterisearre modules (LPM) IP-kearnen · Intel-spesifike (ALT) IP-kearnen

De folgjende tabel listet de folsleine arithmetyske IP-kearnen.

Tabel 1.

List fan IP Cores

IP Cores

LPM IP kearnen

LPM_COUNTER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Intel-spesifike (ALT) IP-kearnen ALTECC

Funksje oerview Counter Divider Multiplier
Adder of subtractor Comparator
ECC Encoder / Decoder

Stipe apparaat
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel 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 ferfolge ...

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

1. Intel FPGA Integer Arithmetic IP Cores 683490 | 2020.10.05

IP Cores Intel FPGA Multiply Adder of ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

Funksje oerview Multiplier-Adder
Unthâld-basearre Constant Coefficient Multiplier
Multiplier-akkumulator Multiplier-Adder
Komplekse multiplier
Integer Square-Root
Parallel Adder

Stipe apparaat
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

Related Information
· Intel FPGA's en programmeerbere apparaten Release Notes
· Yntroduksje ta Intel FPGA IP Cores Jout mear ynformaasje oer Intel FPGA IP Cores.
· Floating-Point IP Cores User Guide Jout mear ynformaasje oer Intel FPGA Floating-Point IP-kearnen.
· Yntroduksje ta Intel FPGA IP-kearnen Jout algemiene ynformaasje oer alle Intel FPGA IP-kearnen, ynklusyf parameterisearjen, generearjen, fernijen en simulearjen fan IP-kearnen.
· It meitsjen fan ferzje-ûnôfhinklike IP- en Qsys-simulaasjeskripts Meitsje simulaasjeskripts dy't gjin hânmjittige updates nedich binne foar software- of IP-ferzje-upgrades.
· Rjochtlinen foar bêste praktyk foar projektbehear foar effisjint behear en portabiliteit fan jo projekt en IP files.
· Integer Arithmetic IP Cores User Guide Document Archives op side 98 Jout in list mei brûkersgidsen foar eardere ferzjes fan de Integer Arithmetic IP-kearnen.

Intel FPGA Integer Arithmetic IP Cores User Guide 6

Stjoer Feedback

683490 | 2020.10.05 Ferstjoere Feedback

2. LPM_COUNTER (Counter) IP Core

figuer 1.

De LPM_COUNTER IP-kearn is in binêre teller dy't optellers, deltellers en op- of deltellers makket mei útgongen fan maksimaal 256 bits breed.

De folgjende figuer toant de havens foar de LPM_COUNTER IP-kearn.

LPM_COUNTER havens

LPM_COUNTER

ssclr sload sset data[]

q[]

updown

cout

aclr aload aset

clk_en cnt_en cin
ynst

2.1. Features
De LPM_COUNTER IP-kearn biedt de folgjende funksjes: · Genereart op-, del- en op-/needtellers · Generearret de folgjende tellersoarten:
- Plain binêr - de teller fergruttet begjinnend fan nul of ferminderet fanôf 255
- Modulus - de teller nimt ta of ferminderet fan 'e moduluswearde oantsjutte troch de brûker en werhellet
· Unterstützt opsjonele syngroane dúdlike, laden en ynstelde ynfierpoarten · Unterstützt opsjonele asynchrone dúdlike, laden en ynstelde ynfierpoarten · Unterstützt opsjonele count ynskeakelje en klok ynskeakelje ynfierpoarten · Unterstützt opsjonele carry-in en carry-out havens

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

2. LPM_COUNTER (Counter) IP Core
683490 | 2020.10.05
2.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
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 = "UNUSED"; parameter lpm_avalue = "UNUSED"; parameter lpm_svalue = "UNUSED"; parameter lpm_pvalue = "UNUSED"; parameter lpm_port_updown = "PORT_CONNECTIVITY"; parameter lpm_hint = "UNUSED"; útfier [lpm_width-1:0] q; útfier cout; útgong [15:0] eq; input cin; ynfier [lpm_width-1:0] gegevens; input klok, clk_en, cnt_en, updown; ynfier aset, aclr, aload; ynfier sset, sclr, sload; einmodule
2.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) LPM_PACK.vhd yn 'e librariesvhdllpm triemtafel.
komponint LPM_COUNTER generic ( LPM_WIDTH: natuerlik; LPM_MODULUS: natuerlik:= 0; LPM_DIRECTION: string:= "UNUSED"; LPM_AVALUE: string:= "UNUSED"; LPM_SVALUE: string:= "UNUSED"; string:= "UNUSED"; LPM_PORT:_IVN ; LPM_PVALUE : string := "UNUSED"; LPM_TYPE : string := L_COUNTER; LPM_HINT : string := "UNUSED"); poarte (DATA: yn std_logic_vector(LPM_WIDTH-1 oant 0):= (OARE =>
'0'); KLOK: yn 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: out std_logic:= '0'; Q: út std_logic_vector(LPM_WIDTH-1 nei 0); EQ : out std_logic_vector(15 downto 0));
ein komponint;

Intel FPGA Integer Arithmetic IP Cores User Guide 8

Stjoer Feedback

2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05

2.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTEK lpm; GEBRUK lpm.lpm_components.all;

2.5. Havens

De folgjende tabellen listje de ynfier- en útfierpoarten foar de LPM_COUNTER IP-kearn.

Tabel 2.

LPM_COUNTER Ynfierpoarten

Port Namme

Required

Beskriuwing

data[]

Nee

Parallelle gegevens ynfier nei de teller. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTH parameterwearde.

klok

Ja

Posityf-edge-triggered klok ynfier.

clk_en

Nee

Klok ynskeakelje ynfier om alle syngroane aktiviteiten yn te skeakeljen. As it weilitten is, is de standertwearde 1.

cnt_en

Nee

Count ynskeakelje ynfier om de telling út te skeakeljen as se leech beweard wurde sûnder ynfloed op sload, sset, of sclr. As it weilitten is, is de standertwearde 1.

updown

Nee

Kontrolearret de rjochting fan 'e telling. As beweard heech (1), is de telrjochting omheech, en as beweard leech (0), is de telrjochting omleech. As de parameter LPM_DIRECTION wurdt brûkt, kin de updown-poarte net ferbûn wurde. As LPM_DIRECTION net brûkt wurdt, is de updown-poarte opsjoneel. As weglitten, is de standertwearde omheech (1).

cin

Nee

Draach-yn nei it lege-oarder bit. Foar up counters is it gedrach fan 'e cin input

identyk oan it gedrach fan 'e cnt_en-ynfier. As it weilitten is, is de standertwearde 1

(VCC).

aclr

Nee

Asynchronous dúdlike ynfier. As sawol aset as aclr wurde brûkt en beweard, oerskriuwt aclr aset. As fuortlitten, is de standertwearde 0 (útskeakele).

aset

Nee

Asynchronous set ynfier. Spesifiseart de q[]-útgongen as alle 1s, of nei de wearde oantsjutte troch de LPM_AVALUE-parameter. As sawol de aset- as aclr-poarten wurde brûkt en beweard, oerskriuwt de wearde fan 'e aclr-poarte de wearde fan 'e aset-poarte. As fuortlitten, is de standertwearde 0, útskeakele.

aload

Nee

Asynchronous load input dat asynchronously laden de teller mei de wearde op de gegevens input. As de aload-poarte brûkt wurdt, moat de gegevens[]-poarte ferbûn wêze. As fuortlitten, is de standertwearde 0, útskeakele.

sclr

Nee

Syngroane dúdlike ynfier dy't de teller op 'e folgjende aktive klokrâne wisket. As sawol de sset- as sclr-poarten wurde brûkt en beweard, oerskriuwt de wearde fan 'e sclr-poarte de wearde fan 'e sset-poarte. As fuortlitten, is de standertwearde 0, útskeakele.

sset

Nee

Syngroane set ynfier dy't stelt de teller op de folgjende aktive klok râne. Spesifisearret de wearde fan 'e q-útgongen as alle 1's, of nei de wearde oantsjutte troch de LPM_SVALUE-parameter. As sawol de sset- as sclr-poarten wurde brûkt en beweard,
de wearde fan 'e sclr-poarte oerskriuwt de wearde fan 'e sset-poarte. As fuortlitten, is de standertwearde 0 (útskeakele).

sload

Nee

Syngroane load input dy't laden de teller mei gegevens [] op de folgjende aktive klok râne. As de sload-poarte brûkt wurdt, moat de gegevens[]-poarte ferbûn wêze. As fuortlitten, is de standertwearde 0 (útskeakele).

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 9

2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05

Tabel 3.

LPM_COUNTER útfierpoarten

Port Namme

Required

Beskriuwing

q[]

Nee

Gegevensútfier fan 'e teller. De grutte fan de útfier haven hinget ôf fan de

LPM_WIDTH parameterwearde. Of q[] of op syn minst ien fan 'e eq[15..0]-poarten

moat ferbûn wêze.

eq[15..0]

Nee

Counter decode útfier. De eq[15..0]-poarte is net tagonklik yn 'e parameterbewurker, om't de parameter allinich AHDL stipet.
Of de q[]-poarte of eq[]-poarte moat ferbûn wêze. Oant c eq-poarten kinne brûkt wurde (0 <= c <= 15). Allinnich de 16 leechste count wearden wurde dekodearre. As de telwearde c is, wurdt de eqc-útfier heech beweard (1). Bygelyksample, doe't de telling is 0, eq0 = 1, doe't de telling is 1, eq1 = 1, en as de telling is 15, eq 15 = 1. Dekodearre útfier foar count wearden fan 16 of grutter fereasket eksterne dekodearring. De eq[15..0]-útgongen binne asyngroan mei de q[]-útfier.

cout

Nee

Útfiere haven fan de teller syn MSB bit. It kin brûkt wurde om te ferbinen mei in oare teller om in gruttere teller te meitsjen.

2.6. Parameters

De folgjende tabel listet de parameters foar de LPM_COUNTER IP-kearn.

Tabel 4.

LPM_COUNTER Parameters

Parameter Namme

Type

LPM_WIDTH

Integer

LPM_DIRECTION

String

LPM_MODULUS LPM_AVALUE

Integer
Integer / String

LPM_SVALUE LPM_HINT

Integer / String
String

LPM_TYPE

String

Ferplicht Ja Nee Nee Nee
Nee Nei
Nee

Beskriuwing
Spesifisearret de breedte fan de gegevens [] en q [] havens, as se wurde brûkt.
Wearden binne UP, DOWN, en UNUSED. As de parameter LPM_DIRECTION wurdt brûkt, kin de updown-poarte net ferbûn wurde. As de updown-poarte net ferbûn is, is de LPM_DIRECTION parameter standertwearde UP.
De maksimale telling, plus ien. Oantal unike steaten yn 'e syklus fan' e teller. As de loadwearde grutter is as de parameter LPM_MODULUS, wurdt it gedrach fan 'e teller net oantsjutte.
Konstante wearde dy't wurdt laden as asset heech wurdt beweard. As de oantsjutte wearde grutter is as of gelyk oan , it gedrach fan de teller is in undefined (X) logika nivo, wêr is LPM_MODULUS, as oanwêzich, of 2 ^ LPM_WIDTH. Intel advisearret dat jo dizze wearde opjaan as in desimaal nûmer foar AHDL-ûntwerpen.
Konstante wearde dat wurdt laden op 'e opkommende râne fan' e klok haven doe't de sset haven wurdt asserted heech. Intel advisearret dat jo dizze wearde opjaan as in desimaal nûmer foar AHDL-ûntwerpen.
As jo ​​instantiate in bibleteek fan parameterized modules (LPM) funksje yn in VHDL Design File (.vhd), moatte jo de parameter LPM_HINT brûke om in Intel-spesifike parameter oan te jaan. Bygelyksample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = JA"
De standertwearde is UNUSED.
Identifisearret de bibleteek fan parameterisearre modules (LPM) entiteitsnamme yn VHDL-ûntwerp files.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 10

Stjoer Feedback

2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05

Parameternamme INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

Typ String String
String
String

Required No No
Nee
Nee

Beskriuwing
Dizze parameter wurdt brûkt foar modellering en gedrachssimulaasjedoelen. Dizze parameter wurdt brûkt foar modellering en gedrachssimulaasjedoelen. De parameter bewurker berekkent de wearde foar dizze parameter.
Intel-spesifike parameter. Jo moatte de LPM_HINT-parameter brûke om de CARRY_CNT_EN-parameter yn VHDL-ûntwerp op te jaan files. Wearden binne SMART, ON, OFF, en UNUSED. Stelt de LPM_COUNTER-funksje yn om it cnt_en-sinjaal troch de carry chain te propagearjen. Yn guon gefallen kin de CARRY_CNT_EN-parameterynstelling in lichte ynfloed hawwe op 'e snelheid, dus jo wolle it miskien útsette. De standertwearde is SMART, dy't de bêste ôfwikseling leveret tusken grutte en snelheid.
Intel-spesifike parameter. Jo moatte de LPM_HINT-parameter brûke om de LABWIDE_SCLR-parameter yn VHDL-ûntwerp op te jaan files. Wearden binne ON, OFF, of UNUSED. De standertwearde is ON. Stelt jo it gebrûk fan 'e LABwide sclr-funksje út te skeakeljen fûn yn ferâldere apparaatfamyljes. It útskeakeljen fan dizze opsje fergruttet de kânsen fan in folslein gebrûk fan de foar in part ynfolde LAB's, en kin dus hegere logika-tichtens tastean as SCLR net jildt foar in folslein LAB. Dizze parameter is beskikber foar efterkompatibiliteit, en Intel riedt jo oan om dizze parameter net te brûken.
Spesifisearret it gebrûk fan 'e updown-ynfierpoarte. As fuortlitten is de standertwearde PORT_CONNECTIVITY. As de poartewearde is ynsteld op PORT_USED, wurdt de poarte behannele as brûkt. As de poartewearde is ynsteld op PORT_UNUSED, wurdt de poarte behannele as net brûkt. As de poartewearde is ynsteld op PORT_CONNECTIVITY, wurdt it poartegebrûk bepaald troch de poarteferbining te kontrolearjen.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 11

683490 | 2020.10.05 Ferstjoere Feedback

3. LPM_DIVIDE (Divider) Intel FPGA IP Core

figuer 2.

De LPM_DIVIDE Intel FPGA IP-kearn ymplementearret in divider om in tellerynputwearde te dielen troch in neamerynputwearde om in kwotient en in rest te produsearjen.

De folgjende figuer toant de havens foar de LPM_DIVIDE IP-kearn.

LPM_DIVIDE Ports

LPM_DIVIDE

nûmer[] denom[] klok

quotient[] bliuwe[]

klyk aclr

ynst

3.1. Features
De LPM_DIVIDE IP-kearn biedt de folgjende funksjes: · Genereart in divider dy't in tellerynputwearde dielt troch in neamerynput
wearde om in kwotient en in rest te produsearjen. · Unterstützt gegevensbreedte fan 1 bits. · Unterstützt ûndertekene en net-ûndertekene gegevensfertsjintwurdigingsformaat foar sawol de teller
en neamer wearden. · Unterstützt gebiet- as snelheidsoptimalisaasje. · Jout in opsje om in positive restútfier oan te jaan. · Unterstützt pipelining konfigurearbere útfierlatinsje. · Unterstützt opsjonele asynchrone dúdlike en klok ynskeakelje havens.

3.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
module lpm_divide (quotient, bliuwe, nûmer, denom, klok, clken, aclr); parameter lpm_type = "lpm_divide"; parameter lpm_widthn = 1; parameter lpm_widthd = 1; parameter lpm_nrepresentation = "UNSIGNED"; parameter lpm_drepresentation = "UNSIGNED"; parameter lpm_remainderpositive = "TRUE"; parameter lpm_pipeline = 0;

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05

parameter lpm_hint = "UNUSED"; input klok; ynfier clken; ynfier aclr; ynfier [lpm_widthn-1:0] nûmer; ynfier [lpm_widthd-1:0] denom; útfier [lpm_widthn-1:0] kwotient; útfier [lpm_widthd-1:0] bliuwe; einmodule

3.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) LPM_PACK.vhd yn 'e librariesvhdllpm triemtafel.
komponint LPM_DIVIDE generic (LPM_WIDTHN: natuerlik; LPM_WIDTHD: natuerlik;
LPM_NREPRESENTATION : string := "UNSIGNED"; LPM_DREPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : natuerlik := 0; LPM_TYPE : string := L_DIVIDE; LPM_HINT : string := "UNUSED"); poarte (NUMER: yn std_logic_vector(LPM_WIDTHN-1 nei 0); DENOM: yn std_logic_vector(LPM_WIDTHD-1 nei 0); ACLR: yn std_logic:= '0'; KLOK: yn std_logic:= '0: yn std_logic := '1'; QUOTIENT: út std_logic_vector(LPM_WIDTHN-1 nei 0); REMAIN: út std_logic_vector(LPM_WIDTHD-1 nei 0)); ein komponint;

3.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTEK lpm; GEBRUK lpm.lpm_components.all;

3.5. Havens

De folgjende tabellen listje de ynfier- en útfierpoarten foar de LPM_DIVIDE IP-kearn.

Tabel 5.

LPM_DIVIDE Ynfier havens

Port Namme

Required

nûmer[]

Ja

denom[]

Ja

Beskriuwing
Teller gegevens ynfier. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTHN parameterwearde.
Noemer gegevens ynfier. De grutte fan de ynfier haven hinget ôf fan de LPM_WIDTHD parameter wearde.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 13

3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05

Port Namme klok clken
aclr

Required No No
Nee

Beskriuwing
Klokynfier foar pipelined gebrûk. Foar LPM_PIPELINE wearden oars as 0 (standert), moat de klok haven ynskeakele wurde.
Klok ynskeakelje pipelined gebrûk. Doe't de clken haven wurdt asserted heech, de divyzje operaasje fynt plak. As it sinjaal leech is, bart gjin operaasje. As it weilitten is, is de standertwearde 1.
Asynchronous dúdlike poarte brûkt op elk momint om de pipeline werom te setten nei alle '0's asynchroan nei de klokynfier.

Tabel 6.

LPM_DIVIDE útfier havens

Port Namme

Required

Beskriuwing

quotient[]

Ja

Data útfier. De grutte fan de útfierpoarte hinget ôf fan de LPM_WIDTHN

parameter wearde.

oerbliuwe[]

Ja

Data útfier. De grutte fan de útfier haven hinget ôf fan de LPM_WIDTHD

parameter wearde.

3.6. Parameters

De folgjende tabel listet de parameters foar de LPM_DIVIDE Intel FPGA IP-kearn.

Parameter Namme

Type

Required

Beskriuwing

LPM_WIDTHN

Integer

Ja

Spesifisearret de breedte fan it nûmer[] en

quotient[] havens. De wearden binne 1 oant 64.

LPM_WIDTHD

Integer

Ja

Spesifiseart de breedte fan 'e denom[] en

bliuwe[] havens. De wearden binne 1 oant 64.

LPM_NREPRESENTATION LPM_DREPRESENTATION

String String

Nee

Sign fertsjintwurdiging fan de teller ynfier.

Wearden binne SIGNED en UNSIGNED. Wannear't dit

parameter is ynsteld op SIGNED, de divider

ynterpretearret it getal[] ynfier as tekene twa's

oanfolling.

Nee

Sign fertsjintwurdiging fan de neamer ynfier.

Wearden binne SIGNED en UNSIGNED. Wannear't dit

parameter is ynsteld op SIGNED, de divider

ynterpretearret de denom[] ynfier as tekene twa's

oanfolling.

LPM_TYPE

String

Nee

Identifisearret de bibleteek fan parameterized

modules (LPM) entiteit namme yn VHDL design

files (.vhd).

LPM_HINT

String

Nee

As jo ​​instantiate in bibleteek fan

parameterized modules (LPM) funksje yn in

VHDL ûntwerp File (.vhd), moatte jo de

LPM_HINT parameter om in Intel-

spesifike parameter. Bygelyksample: LPM_HINT

= "CHAIN_SIZE = 8,

ONE_INPUT_IS_CONSTANT = JA" De

standertwearde is UNUSED.

LPM_REMAINDERPOSITIVE

String

Nee

Intel-spesifike parameter. Jo moatte gebrûk meitsje fan de

LPM_HINT parameter te spesifisearje de

LPM_REMAINDERPOSITIVE parameter yn

VHDL ûntwerp files. Wearden binne TRUE of FALSE.

As dizze parameter is ynsteld op TRUE, dan de

wearde fan de rest[] poarte moat grutter wêze

fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 14

Stjoer Feedback

3. LPM_DIVIDE (Divider) Intel FPGA IP Core 683490 | 2020.10.05

Parameter Namme

Type

MAXIMIZE_SPEED

Integer

LPM_PIPELINE

Integer

INTENDED_DEVICE_FAMILY SKIP_BITS

String Integer

Ferplicht nr
Nei Nei Nei

Beskriuwing
as of gelyk oan nul. As dizze parameter is ynsteld op TRUE, dan is de wearde fan 'e rest[] poarte of nul, of de wearde is itselde teken, itsij posityf as negatyf, as de wearde fan 'e nûmerpoarte. Om it gebiet te ferminderjen en de snelheid te ferbetterjen, advisearret Intel dizze parameter op TRUE yn te stellen yn operaasjes wêr't de rest posityf moat wêze of wêr't de rest net wichtich is.
Intel-spesifike parameter. Jo moatte de parameter LPM_HINT brûke om de parameter MAXIMIZE_SPEED yn VHDL-ûntwerp op te jaan files. Wearden binne [0..9]. As brûkt, besiket de Intel Quartus Prime-software in spesifyk eksimplaar fan 'e LPM_DIVIDE-funksje te optimalisearjen foar snelheid ynstee fan routabiliteit, en oerskriuwt de ynstelling fan 'e logika-opsje fan Optimisaasjetechnyk. As MAXIMIZE_SPEED net brûkt wurdt, wurdt de wearde fan 'e opsje Optimisaasjetechnyk ynstee brûkt. As de wearde fan MAXIMIZE_SPEED 6 of heger is, optimalisearret de kompilator de LPM_DIVIDE IP-kearn foar hegere snelheid troch it brûken fan draachketten; as de wearde 5 of minder is, ymplementearret de gearstaller it ûntwerp sûnder draachketten.
Spesifisearret it oantal kloksyklusen fan latency ferbûn mei it kwotient[] en bliuwe[] útgongen. In wearde fan nul (0) jout oan dat der gjin latency bestiet, en dat in suver kombinaasjefunksje wurdt ynstantiearre. As it weilitten is, is de standertwearde 0 (nonpipelined). Jo kinne gjin wearde opjaan foar de parameter LPM_PIPELINE dy't heger is as LPM_WIDTHN.
Dizze parameter wurdt brûkt foar modellering en gedrachssimulaasjedoelen. De parameter bewurker berekkent de wearde foar dizze parameter.
Meitsje effisjinter fraksjonele bitdieling mooglik om logika op 'e liedende bits te optimalisearjen troch it oantal liedende GND oan' e LPM_DIVIDE IP-kearn te jaan. Spesifisearje it oantal liedende GND op 'e kwotientútfier nei dizze parameter.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 15

683490 | 2020.10.05 Ferstjoere Feedback

4. LPM_MULT (multiplikator) IP Core

figuer 3.

De LPM_MULT IP-kearn ymplementearret in multiplier om twa ynfiergegevenswearden te fermannichfâldigjen om in produkt as útfier te produsearjen.

De folgjende figuer toant de havens foar de LPM_MULT IP-kearn.

LPM_Mult Ports

LPM_MULT klok dataa[] resultaat[] data[] aclr/sclr clken
ynst

Besibbe ynformaasjefunksjes op side 71

4.1. Features
De LPM_MULT IP-kearn biedt de folgjende funksjes: · Genereart in multiplier dy't twa ynfierdatawearden fermannichfâldiget · Unterstützt gegevensbreedte fan 1 bits · Unterstützt tekene en net-ûndertekene datafertsjintwurdigingsformaat · Unterstützt gebiet- of snelheidsoptimalisaasje · Unterstützt pipelining mei konfigurearbere útfierlatinsje · Biedt in opsje foar ymplemintaasje yn tawijd digitale sinjaalferwurking (DSP)
blokcircuits of logyske eleminten (LE's) Opmerking: By it bouwen fan multipliers grutter dan de natuerlik stipe grutte kin d'r /
sil in prestaasje-ynfloed wêze as gefolch fan it cascadearjen fan 'e DSP-blokken. · Unterstützt opsjonele asynchrone dúdlik en klok ynskeakelje ynfierpoarten · Unterstützt opsjonele syngroane dúdlik foar Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX-apparaten

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

4. LPM_MULT (multiplier) IP Core 683490 | 2020.10.05
4.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
module lpm_mult (resultaat, dataa, datab, sum, 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 = "UNSIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UNUSED"; input klok; ynfier clken; ynfier aclr; ynfier [lpm_widtha-1:0] dataa; ynfier [lpm_widthb-1:0] data; ynfier [lpm_widths-1:0] sum; útfier [lpm_widthp-1:0] resultaat; einmodule
4.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) LPM_PACK.vhd yn 'e librariesvhdllpm triemtafel.
komponint LPM_MULT generic (LPM_WIDTHA: natuerlik; LPM_WIDTHB: natuerlik; LPM_WIDTHS: natuerlik:= 1; LPM_WIDTHP: natuerlik;
LPM_REPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : natuerlik := 0; LPM_TYPE: string := L_MULT; LPM_HINT : string := "UNUSED"); poarte (DATAA: yn std_logic_vector(LPM_WIDTHA-1 nei 0); DATAB: yn std_logic_vector(LPM_WIDTHB-1 nei 0); ACLR: yn std_logic:= '0'; KLOK: yn std_logic:= '0 yn'; std_logic: yn std_logic: := '1'; SUM: yn std_logic_vector(LPM_WIDTHS-1 nei 0) := (OARE => '0'); RESULTAAT: út std_logic_vector(LPM_WIDTHP-1 nei 0)); ein komponint;
4.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTEK lpm; GEBRUK lpm.lpm_components.all;

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 17

4. LPM_MULT (multiplier) IP Core 683490 | 2020.10.05

4.5. Sinjalen

Tabel 7.

LPM_MULT Ynfier sinjalen

Sinjaal Namme

Required

Beskriuwing

dataa[]

Ja

Gegevens ynfier.

Foar Intel Stratix 10, Intel Arria 10, en Intel Cyclone 10 GX-apparaten hinget de grutte fan it ynfiersinjaal ôf fan 'e Dataa-breedteparameterwearde.

Foar âldere en Intel Cyclone 10 LP-apparaten hinget de grutte fan it ynfiersinjaal ôf fan 'e parameterwearde LPM_WIDTHA.

data[]

Ja

Gegevens ynfier.

Foar Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten hinget de grutte fan it ynfiersinjaal ôf fan 'e parameterwearde fan Databbreedte.

Foar âldere en Intel Cyclone 10 LP-apparaten hinget de grutte fan it ynfiersinjaal ôf

op de LPM_WIDTHB parameterwearde.

klok

Nee

Klokynfier foar pipelined gebrûk.

Foar âldere en Intel Cyclone 10 LP apparaten, de klok sinjaal moat wurde ynskeakele foar LPM_PIPELINE wearden oars as 0 (standert).

Foar Intel Stratix 10-, Intel Arria 10- en Intel Cyclone 10 GX-apparaten moat it kloksinjaal ynskeakele wurde as de Wachtwearde oars is as 1 (standert).

clken

Nee

Klok ynskeakelje foar pipelined gebrûk. Doe't de clken sinjaal wurdt asserted heech, de

adder / subtractor operaasje fynt plak. As it sinjaal is leech, gjin operaasje

komt foar. As it weilitten is, is de standertwearde 1.

aclr sclr

Nee

Asynchronous dúdlik sinjaal brûkt op elk momint om de pipeline werom te setten nei alle 0's,

asynchronysk nei it kloksinjaal. De pipeline initialisearret nei in ûndefiniearre (X)

logika nivo. De útgongen binne in konsekwint, mar net-nul wearde.

Nee

Syngroan dúdlik sinjaal brûkt op elk momint om de pipeline werom te setten nei alle 0's,

syngroan mei de klok sinjaal. De pipeline initialisearret nei in ûndefiniearre (X)

logika nivo. De útgongen binne in konsekwint, mar net-nul wearde.

Tabel 8.

LPM_MULT Utfier sinjalen

sinjaal Namme

Required

Beskriuwing

resultaat[]

Ja

Data útfier.

Foar âldere en Intel Cyclone 10 LP-apparaten hinget de grutte fan it útfiersinjaal ôf fan 'e LPM_WIDTHP parameterwearde. As LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) of (LPM_WIDTHA + LPM_WIDTHS), binne allinich de LPM_WIDTHP MSB's oanwêzich.

Foar Intel Stratix 10, Intel Arria 10 en Intel Cyclone 10 GX hinget de grutte fan 'e útfiersinjalen ôf fan' e parameter Resultaatbreedte.

4.6. Parameters foar Stratix V, Arria V, Cyclone V, en Intel Cyclone 10 LP-apparaten

4.6.1. Algemien Tab

Tabel 9.

Algemien Tab

Parameter

Wearde

Multiplier Konfiguraasje

Fermannichfâldigje 'dataa' ynfier mei 'datab' ynfier

Standert Wearde

Beskriuwing

Fermannichfâldigje 'dataa' ynfier mei 'datab' ynfier

Selektearje de winske konfiguraasje foar de multiplier.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 18

Stjoer Feedback

4. LPM_MULT (multiplier) IP Core 683490 | 2020.10.05

Parameter
Hoe breed moat de 'dataa'-ynput wêze? Hoe breed moat de 'datab'-ynput wêze? Hoe moat de breedte fan de 'resultaat' útfier wurde bepaald? Beheine de breedte

Wearde
Fermannichfâldigje 'dataa' ynfier troch himsels (squaring operaasje)
1-256 bits

Standert Wearde

Beskriuwing

8 byks

Spesifisearje de breedte fan de dataa[] haven.

1-256 bits

8 byks

Spesifisearje de breedte fan de datab[] haven.

Automatysk berekkenje de breedte Beheine de breedte
1-512 bits

Automatysk berekkenje de breedte

Selektearje de winske metoade om de breedte fan it resultaat[] poarte te bepalen.

16 byks

Spesifisearje de breedte fan it resultaat[] poarte.
Dizze wearde sil allinich effektyf wêze as jo de breedte beheine yn 'e parameter Type selektearje.

4.6.2. Algemien 2 Tab

Tabel 10. Algemien 2 Tab

Parameter

Wearde

Data Ynfier

Hat de 'datab' ynfierbus in konstante wearde?

Nee Ja

Multiplikaasje Type

Hokker soarte fan

Net ûndertekene

fermannichfâldigje wolle jo? Undertekene

Útfiering

Hokker ymplemintaasje fan multiplier moat brûkt wurde?

Brûk de standert ymplemintaasje
Brûk de tawijd multiplier circuitry (Net beskikber foar alle famyljes)
Brûk logyske eleminten

Standert Wearde

Beskriuwing

Nee

Selektearje Ja om de konstante wearde fan 'e oan te jaan

`datab' ynfier bus, as ien.

Net ûndertekene

Spesifisearje de represintaasje opmaak foar sawol dataa[] en datab[] inputs.

Brûk de standert ymplemintaasje

Selektearje de winske metoade om de breedte fan it resultaat[] poarte te bepalen.

4.6.3. Pipelining Tab

Tabel 11. Pipelining Tab

Parameter

Wolle jo de nr

funksje?

Ja

Wearde

Meitsje in 'aclr'

asynchronous dúdlik haven

Standert Wearde

Beskriuwing

Nee

Selektearje Ja om pipelineregister yn te skeakeljen nei de

multiplier syn útfier en spesifisearje de winske

útfier latency yn klok syklus. It ynskeakeljen fan de

pipeline register foeget ekstra latency oan de

útfier.

Net kontrolearre

Selektearje dizze opsje om de aclr-poarte yn te skeakeljen om asynchronous clear te brûken foar it pipelineregister.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 19

4. LPM_MULT (multiplier) IP Core 683490 | 2020.10.05

Parameter
Meitsje in 'clken' klok ynskeakelje klok
Optimalisaasje
Hokker type optimisaasje wolle jo?

Wearde -
Standert Speed ​​Area

Standert Wearde

Beskriuwing

Net kontrolearre

Spesifisearret aktive hege klok ynskeakelje foar de klokpoarte fan it pipelineregister

Standert

Spesifisearje de winske optimalisaasje foar de IP-kearn.
Selektearje Standert om Intel Quartus Prime-software te litten om de bêste optimalisaasje foar de IP-kearn te bepalen.

4.7. Parameters foar Intel Stratix 10, Intel Arria 10, en Intel Cyclone 10 GX-apparaten

4.7.1. Algemien Tab

Tabel 12. Algemien Tab

Parameter

Wearde

Standert Wearde

Beskriuwing

Multiplier Konfiguraasje Type
Data Port Breedten

Fermannichfâldigje 'dataa' ynfier mei 'datab' ynfier
Fermannichfâldigje 'dataa' ynfier troch himsels (squaring operaasje)

Fermannichfâldigje 'dataa' ynfier mei 'datab' ynfier

Selektearje de winske konfiguraasje foar de multiplier.

Data in breedte

1-256 bits

8 byks

Spesifisearje de breedte fan de dataa[] haven.

Databbreedte

1-256 bits

8 byks

Spesifisearje de breedte fan de datab[] haven.

Hoe moat de breedte fan de 'resultaat' útfier wurde bepaald?

Type

Automatysk berekkenje de breedte
Beheine de breedte

Automatysk berekkenje de breedte

Selektearje de winske metoade om de breedte fan it resultaat[] poarte te bepalen.

Wearde

1-512 bits

16 byks

Spesifisearje de breedte fan it resultaat[] poarte.
Dizze wearde sil allinich effektyf wêze as jo de breedte beheine yn 'e parameter Type selektearje.

Resultaat breedte

1-512 bits

Toant de effektive breedte fan it resultaat[] poarte.

4.7.2. Algemien 2 Tab

Tabel 13. Algemien 2 Tab

Parameter

Data Ynfier

Hat de 'datab' ynfierbus in konstante wearde?

Nee Ja

Wearde

Standert Wearde

Beskriuwing

Nee

Selektearje Ja om de konstante wearde fan 'e oan te jaan

`datab' ynfier bus, as ien.

fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 20

Stjoer Feedback

4. LPM_MULT (multiplier) IP Core 683490 | 2020.10.05

Parameter

Wearde

Wearde

Elke wearde grutter dan 0

Multiplikaasje Type

Hokker soarte fan

Net ûndertekene

fermannichfâldigje wolle jo? Undertekene

Ymplemintaasje Style

Hokker ymplemintaasje fan multiplier moat brûkt wurde?

Brûk de standert ymplemintaasje
Brûk de tawijd multiplier circuitry
Brûk logyske eleminten

Standert Wearde

Beskriuwing

0

Spesifisearje de konstante wearde fan datab[] haven.

Net ûndertekene

Spesifisearje de represintaasje opmaak foar sawol dataa[] en datab[] inputs.

Brûk de standert ymplemintaasje

Selektearje de winske metoade om de breedte fan it resultaat[] poarte te bepalen.

4.7.3. Pipelining

Tabel 14. Pipelining Tab

Parameter

Wearde

Wolle jo de funksje pipeline?

Pipeline

Nee Ja

Wachttiid Clear Signal Type

Elke wearde grutter dan 0.
NONE ACLR SCLR

Meitsje in 'clken' klok

ynskeakelje klok

Hokker type optimisaasje wolle jo?

Type

Standert Speed ​​Area

Standert Wearde

Beskriuwing

NR 1 GEEN

Selektearje Ja om pipelineregister yn te skeakeljen foar de útfier fan de multiplier. It ynskeakeljen fan it pipelineregister foeget ekstra latency ta oan de útfier.
Spesifisearje de winske útfier Wachttiid yn klok syklus.
Spesifisearje it type reset foar it pipelineregister. Selektearje NONE as jo gjin pipelineregister brûke. Selektearje ACLR om asynchronous clear te brûken foar it pipelineregister. Dit sil generearje ACLR haven. Selektearje SCLR om syngroane dúdlik te brûken foar it pipelineregister. Dit sil generearje SCLR haven.
Spesifisearret aktive hege klok ynskeakelje foar de klokpoarte fan it pipelineregister

Standert

Spesifisearje de winske optimalisaasje foar de IP-kearn.
Selektearje Standert om Intel Quartus Prime-software te litten om de bêste optimisaasje foar de IP-kearn te bepalen.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 21

683490 | 2020.10.05 Ferstjoere Feedback

5. LPM_ADD_SUB (adder/subtractor)

figuer 4.

De LPM_ADD_SUB IP-kearn lit jo in opteller of in subtractor ymplementearje om sets gegevens ta te foegjen of te subtractearjen om in útfier te produsearjen dy't de som of ferskil fan 'e ynfierwearden befettet.

De folgjende figuer toant de havens foar de LPM_ADD_SUB IP-kearn.

LPM_ADD_SUB-poarten

LPM_ADD_SUB add_sub cin

dataa[]

klok clken datab[] aclr

resultaat[] oerfloed cout

ynst

5.1. Features
De LPM_ADD_SUB IP-kearn biedt de folgjende funksjes: · Generearret opteller, subtractor en dynamysk konfigurearbere opteller/subtractor
funksjes. · Unterstützt gegevensbreedte fan 1 bits. · Unterstützt gegevensfertsjintwurdigingsformaat lykas ûndertekene en net ûndertekene. · Unterstützt opsjonele carry-in (liening), asynchrone dúdlik, en klok ynskeakelje
input havens. · Unterstützt opsjonele útfier- (liene-yn) en oerstreamingsútfierpoarten. · Assigns ien fan de ynfier gegevens bussen oan in konstante. · Unterstützt pipelining mei konfigurearbere útfierlatinsje.

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

5. LPM_ADD_SUB (Adder / Subtractor) 683490 | 2020.10.05
5.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
module lpm_add_sub (resultaat, cout, oerstreaming, add_sub, cin, dataa, datab, klok, clken, aclr); parameter lpm_type = "lpm_add_sub"; parameter lpm_width = 1; parameter lpm_direction = "UNUSED"; parameter lpm_representation = "SIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UNUSED"; ynfier [lpm_width-1:0] dataa, data; ynfier add_sub, cin; input klok; ynfier clken; ynfier aclr; útfier [lpm_width-1:0] resultaat; útfier cout, oerstreaming; einmodule
5.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) LPM_PACK.vhd yn 'e librariesvhdllpm triemtafel.
komponint LPM_ADD_SUB generic (LPM_WIDTH: natuerlik;
LPM_DIRECTION : string := "UNUSED"; LPM_REPRESENTATION: string := "ûndertekene"; LPM_PIPELINE : natuerlik := 0; LPM_TYPE : string := L_ADD_SUB; LPM_HINT : string := "UNUSED"); poarte (DATAA: yn std_logic_vector(LPM_WIDTH-1 nei 0); DATAB: yn std_logic_vector(LPM_WIDTH-1 nei 0); ACLR: yn std_logic:= '0'; KLOK: yn std_logic:= '0: yn std_logic := '1'; CIN: yn std_logic:= 'Z'; ADD_SUB: yn std_logic:= '1'; RESULT: út std_logic_vector (LPM_WIDTH-1 nei 0); COUT: út std_logic; OVERFLOW: út std_logic); ein komponint;
5.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTEK lpm; GEBRUK lpm.lpm_components.all;
5.5. Havens
De folgjende tabellen listje de ynfier- en útfierpoarten foar de LPM_ADD_SUB IP-kearn.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 23

5. LPM_ADD_SUB (Adder / Subtractor) 683490 | 2020.10.05

tabel 15. LPM_ADD_SUB IP Core Input Ports

Port Namme

Required

Beskriuwing

cin

Nee

Draach-yn nei it lege-oarder bit. Foar tafoegingsoperaasjes is de standertwearde 0. Foar

subtraksje operaasjes, de standertwearde is 1.

dataa[]

Ja

Data ynfier. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTH parameterwearde.

data[]

Ja

Data ynfier. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTH parameterwearde.

add_sub

Nee

Opsjonele ynfierpoarte om dynamysk wikseljen tusken de opteller en subtractor yn te skeakeljen

funksjes. As de parameter LPM_DIRECTION brûkt wurdt, kin add_sub net brûkt wurde. As

weilitten, is de standertwearde ADD. Intel riedt oan dat jo brûke de

LPM_DIRECTION parameter om de wurking fan de funksje LPM_ADD_SUB oan te jaan,

ynstee fan it tawizen fan in konstante oan de add_sub haven.

klok

Nee

Ynput foar pipelined gebrûk. De klok haven jout de klok ynfier foar in pipelined

operaasje. Foar LPM_PIPELINE wearden oars as 0 (standert), moat de klok haven wêze

ynskeakele.

clken

Nee

Klok ynskeakelje foar pipelined gebrûk. As de clken-poarte heech wurdt beweard, sil de adder/

subtractor operaasje fynt plak. As it sinjaal leech is, bart gjin operaasje. As

weilitten, de standertwearde is 1.

aclr

Nee

Asynchronous dúdlik foar pipelined gebrûk. De pipeline initialisearret nei in ûndefiniearre (X)

logika nivo. De aclr-poarte kin op elk momint brûkt wurde om de pipeline werom te setten nei alle 0's,

asynchronysk nei it kloksinjaal.

tabel 16. LPM_ADD_SUB IP Core Utfier Ports

Port Namme

Required

Beskriuwing

resultaat[]

Ja

Data útfier. De grutte fan de útfierpoarte hinget ôf fan de parameter LPM_WIDTH

wearde.

cout

Nee

Útfiere (liene) fan it meast wichtige bit (MSB). De cout haven hat in fysike

ynterpretaasje as de útfiering (liene) fan 'e MSB. De cout haven detektearret

oerstreaming yn UNSIGNED operaasjes. De cout haven wurket op deselde wize foar

SIGNED en UNSIGNED operaasjes.

oerstreame

Nee

Opsjoneel útsûndering útsûndering útfier. De oerstreaming haven hat in fysike ynterpretaasje as

de XOR fan 'e carry-in nei de MSB mei it útfieren fan 'e MSB. De oerfal haven

beweart as resultaten boppe de beskikbere presyzje, en wurdt allinnich brûkt as de

LPM_REPRESENTATION parameterwearde is SIGNED.

5.6. Parameters

De folgjende tabel listet de LPM_ADD_SUB IP-kearnparameters.

tabel 17. LPM_ADD_SUB IP Core Parameters

Parameternamme LPM_WIDTH

Typ Integer

Ferplicht Ja

Beskriuwing
Spesifisearret de breedte fan de dataa[], data[], en resultaat[] havens.

LPM_DIRECTION

String

Nee

Wearden binne ADD, SUB, en UNUSED. As it weilitten is, is de standertwearde DEFAULT, dy't de parameter rjochtet om syn wearde te nimmen fan 'e add_sub-poarte. De add_sub-poarte kin net brûkt wurde as LPM_DIRECTION wurdt brûkt. Intel advisearret dat jo de LPM_DIRECTION-parameter brûke om de wurking fan 'e LPM_ADD_SUB-funksje op te jaan, ynstee fan in konstante ta te jaan oan de add_sub-poarte.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 24

Stjoer Feedback

5. LPM_ADD_SUB (Adder / Subtractor) 683490 | 2020.10.05

Parameternamme LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

Type String Integer String String String Integer
String

Ferplicht Nee Nee Nee Nee Nee Nee Nee
Nee

Beskriuwing
Spesifisearret it type tafoeging útfierd. Wearden binne SIGNED en UNSIGNED. As weglitten, is de standertwearde SIGNED. As dizze parameter is ynsteld op SIGNED, ynterpretearret de opteller / subtractor de gegevensynfier as tekene twa's komplement.
Spesifiseart it oantal latencykloksyklusen dy't ferbûn binne mei it resultaat[]-útfier. In wearde fan nul (0) jout oan dat der gjin latency bestiet, en dat in suver kombinaasjefunksje sil instantiated wurde. As fuortlitten is de standertwearde 0 (net-pipelined).
Hjirmei kinne jo Intel-spesifike parameters opjaan yn VHDL-ûntwerp files (.vhd). De standertwearde is UNUSED.
Identifisearret de bibleteek fan parameterisearre modules (LPM) entiteitsnamme yn VHDL-ûntwerp files.
Intel-spesifike parameter. Jo moatte de parameter LPM_HINT brûke om de parameter ONE_INPUT_IS_CONSTANT yn VHDL-ûntwerp op te jaan files. Wearden binne JA, NEE, en NET GEBRUK. Biedt gruttere optimalisaasje as ien ynfier konstant is. As it weilitten is, is de standertwearde NO.
Intel-spesifike parameter. Jo moatte de parameter LPM_HINT brûke om de parameter MAXIMIZE_SPEED yn VHDL-ûntwerp op te jaan files. Jo kinne in wearde oantsjutte tusken 0 en 10. As brûkt wurdt, besiket de Intel Quartus Prime-software in spesifyk eksimplaar fan 'e LPM_ADD_SUB-funksje te optimalisearjen foar snelheid ynstee fan routabiliteit, en oerskriuwt de ynstelling fan 'e logika-opsje foar Optimisaasjetechnyk. As MAXIMIZE_SPEED net brûkt wurdt, wurdt de wearde fan 'e opsje Optimisaasjetechnyk ynstee brûkt. As de ynstelling foar MAXIMIZE_SPEED 6 of heger is, optimalisearret de kompilator de LPM_ADD_SUB IP-kearn foar hegere snelheid mei help fan draachketten; as de ynstelling 5 of minder is, ymplementearret de Compiler it ûntwerp sûnder drage keatlingen. Dizze parameter moat wurde oantsjutte foar Cyclone, Stratix, en Stratix GX apparaten allinnich as de add_sub haven wurdt net brûkt.
Dizze parameter wurdt brûkt foar modellering en gedrachssimulaasjedoelen. De parameter bewurker berekkent de wearde foar dizze parameter.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 25

683490 | 2020.10.05 Ferstjoere Feedback

6. LPM_COMPARE (Comparator)

figuer 5.

De LPM_COMPARE IP-kearn fergeliket de wearde fan twa sets gegevens om de relaasje tusken har te bepalen. Yn syn ienfâldichste foarm kinne jo in eksklusive-OR-poarte brûke om te bepalen oft twa databits gelyk binne.

De folgjende figuer toant de havens foar de LPM_COMPARE IP-kearn.

LPM_COMPARE Ports

LPM_COMPARE

clken

alb

aeb

dataa[]

agb

data[]

ageb

klok

aneb

aclr

aleb

ynst

6.1. Features
De LPM_COMPARE IP-kearn biedt de folgjende funksjes: · Genereart in komparatorfunksje om twa sets gegevens te fergelykjen · Unterstützt gegevensbreedte fan 1 bits · Unterstützt gegevensfertsjintwurdigingsformaat lykas tekene en net ûndertekene · Produsearret de folgjende útfiertypen:
- alb (ynfier A is minder as ynfier B) - aeb (ynput A is lyk oan ynfier B) - agb (ynput A is grutter as ynfier B) - ageb (ynput A is grutter as of lyk oan ynfier B) - aneb ( input A is net gelyk oan input B) - aleb (ynput A is minder as of gelyk oan input B) · Unterstützt opsjonele asynchrone dúdlike en klok ynskeakelje ynfierpoarten · Jout de datab[] ynfier oan in konstante · Unterstützt pipelining mei konfigurearbere útfierlatinsje

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

6. LPM_COMPARE (Comparator) 683490 | 2020.10.05
6.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
module lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr); parameter lpm_type = "lpm_compare"; parameter lpm_width = 1; parameter lpm_representation = "UNSIGNED"; parameter lpm_pipeline = 0; parameter lpm_hint = "UNUSED"; ynfier [lpm_width-1:0] dataa, data; input klok; ynfier clken; ynfier aclr; útgong alb, aeb, agb, aleb, aneb, ageb; einmodule
6.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) LPM_PACK.vhd yn 'e librariesvhdllpm triemtafel.
komponint LPM_COMPARE generic (LPM_WIDTH: natuerlik;
LPM_REPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : natuerlik := 0; LPM_TYPE: string := L_COMPARE; LPM_HINT : string := "UNUSED"); poarte (DATAA: yn std_logic_vector(LPM_WIDTH-1 nei 0); DATAB: yn std_logic_vector(LPM_WIDTH-1 nei 0); ACLR: yn std_logic:= '0'; KLOK: yn std_logic:= '0: yn std_logic := '1'; AGB: út std_logic; AGEB: út std_logic; AEB: út std_logic; ANEB: út std_logic; ALB: út std_logic; ALEB: út std_logic); ein komponint;
6.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTEK lpm; GEBRUK lpm.lpm_components.all;
6.5. Havens
De folgjende tabellen listje de ynfier- en útfierpoarten foar de LMP_COMPARE IP-kearn.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 27

6. LPM_COMPARE (Comparator) 683490 | 2020.10.05

tabel 18. LPM_COMPARE IP core Input Ports

Port Namme

Required

Beskriuwing

dataa[]

Ja

Data ynfier. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTH parameterwearde.

data[]

Ja

Data ynfier. De grutte fan 'e ynfierpoarte hinget ôf fan' e LPM_WIDTH parameterwearde.

klok

Nee

Klokynfier foar pipelined gebrûk. De klok haven jout de klok ynfier foar in pipelined

operaasje. Foar LPM_PIPELINE wearden oars as 0 (standert), moat de klok haven wêze

ynskeakele.

clken

Nee

Klok ynskeakelje foar pipelined gebrûk. Doe't de clken haven wurdt asserted heech, de

ferliking operaasje fynt plak. As it sinjaal leech is, bart gjin operaasje. As

weilitten, de standertwearde is 1.

aclr

Nee

Asynchronous dúdlik foar pipelined gebrûk. De pipeline initialisearret nei in undefinieare (X) logika

peil. De aclr-poarte kin op elk momint brûkt wurde om de pipeline werom te setten nei alle 0's,

asynchronysk nei it kloksinjaal.

tabel 19. LPM_COMPARE IP core Utfier Ports

Port Namme

Required

Beskriuwing

alb

Nee

Utfier haven foar de komparator. Beweard as ynfier A minder is as ynfier B.

aeb

Nee

Utfier haven foar de komparator. Beweard as ynfier A gelyk is oan ynfier B.

agb

Nee

Utfier haven foar de komparator. Beweard as ynfier A grutter is as ynfier B.

ageb

Nee

Utfier haven foar de komparator. Beweard as ynfier A grutter is as of gelyk is oan ynfier

B.

aneb

Nee

Utfier haven foar de komparator. Beweard as ynfier A net gelyk is oan ynfier B.

aleb

Nee

Utfier haven foar de komparator. Beweard as ynfier A minder as of gelyk is oan ynfier B.

6.6. Parameters

De folgjende tabel listet de parameters foar de LPM_COMPARE IP-kearn.

tabel 20. LPM_COMPARE IP core Parameters

Parameter Namme

Type

Required

LPM_WIDTH

Integer Ja

LPM_REPRESENTATION

String

Nee

LPM_PIPELINE

Integer No

LPM_HINT

String

Nee

Beskriuwing
Spesifisearret de breedte fan de dataa[] en datab[] havens.
Spesifisearret it type ferliking útfierd. Wearden binne SIGNED en UNSIGNED. As weglitten, is de standertwearde UNSIGNED. As dizze parameterwearde is ynsteld op SIGNED, ynterpretearret de komparator de gegevensynfier as tekene twa's komplement.
Spesifisearret it oantal kloksyklusen fan latency ferbûn mei de alb-, aeb-, agb-, ageb-, aleb- of aneb-útfier. In wearde fan nul (0) jout oan dat der gjin latency bestiet, en dat in suver kombinaasjefunksje sil instantiated wurde. As it weilitten is, is de standertwearde 0 (nonpipelined).
Hjirmei kinne jo Intel-spesifike parameters opjaan yn VHDL-ûntwerp files (.vhd). De standertwearde is UNUSED.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 28

Stjoer Feedback

6. LPM_COMPARE (Comparator) 683490 | 2020.10.05
Parameternamme LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT

Typ String String
String

Required No No
Nee

Beskriuwing
Identifisearret de bibleteek fan parameterisearre modules (LPM) entiteitsnamme yn VHDL-ûntwerp files.
Dizze parameter wurdt brûkt foar modellering en gedrachssimulaasjedoelen. De parameter bewurker berekkent de wearde foar dizze parameter.
Intel-spesifike parameter. Jo moatte de parameter LPM_HINT brûke om de parameter ONE_INPUT_IS_CONSTANT yn VHDL-ûntwerp op te jaan files. Wearden binne JA, NEE, of NET GEBRUK. Biedt gruttere optimalisaasje as in ynfier konstant is. As it weilitten is, is de standertwearde NO.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 29

683490 | 2020.10.05 Ferstjoere Feedback

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core

figuer 6.

Intel leveret de ALTECC IP-kearn om de ECC-funksjonaliteit út te fieren. ECC detektearret beskeadige gegevens dy't foarkomme oan 'e ûntfangerkant by gegevensoerdracht. Dizze metoade foar flaterkorreksje is it bêste geskikt foar situaasjes wêr't flaters willekeurich foarkomme yn plak fan yn bursts.

De ECC detektearret flaters troch it proses fan gegevenskodearjen en dekodearjen. Bygelyksample, doe't de ECC wurdt tapast yn in oerdracht applikaasje, gegevens lêzen út de boarne wurde kodearre foar stjoerd nei de ûntfanger. De útfier (koade wurd) fan de encoder bestiet út de rauwe gegevens taheakke mei it oantal parity bits. It krekte oantal taheakke paritybits hinget ôf fan it oantal bits yn 'e ynfiergegevens. It oanmakke koade wurd wurdt dan oerbrocht nei de bestimming.

De ûntfanger ûntfangt it koadewurd en dekodearret it. Ynformaasje krigen troch de dekoder bepaalt oft in flater ûntdutsen is. De dekoder detektearret single-bit en dûbel-bit flaters, mar kin allinnich reparearje single-bit flaters yn de beskeadige gegevens. Dit type ECC is single flaterkorreksje dûbele flaterdeteksje (SECDED).

Jo kinne encoder- en decoderfunksjes fan 'e ALTECC IP-kearn ynstelle. De gegevensynfier nei de kodearder wurdt kodearre om in koadewurd te generearjen dat in kombinaasje is fan 'e gegevensynfier en de oanmakke pariteitsbits. It oanmakke koade wurd wurdt oerdroegen oan de decoder module foar dekodearjen krekt foardat it berikken fan syn bestimming blok. De dekoder genereart in syndroomvektor om te bepalen oft der in flater is yn it ûntfongen koadewurd. De dekoder korrigearret de gegevens allinich as de single-bit flater fan 'e gegevensbits komt. Gjin sinjaal wurdt flagge as de single-bit flater komt fan de parity bits. De dekoder hat ek flaggesignalen om de status fan 'e ûntfongen gegevens te sjen en de aksje nommen troch de dekoder, as der ien is.

De folgjende sifers litte de havens foar de ALTECC IP-kearn sjen.

ALTECC Encoder havens

ALTECC_ENCODER

data[]

q[]

klok

klokken

aclr

ynst

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core 683490 | 2020.10.05

figuer 7. ALTECC Decoder Ports

ALTECC_DECODER

data[] klok clocken

q[] err_detected err_corrected
err_fatal

aclr

ynst

7.1. ALTECC Encoder Features

De IP-kearn fan 'e ALTECC-kodearder biedt de folgjende funksjes: · Fiert gegevenskodearring út mei it Hamming-kodearringskema · Unterstützt gegevensbreedte fan 2 bits · Unterstützt tekene en net-ûndertekene gegevensrepresentaasjeformaat · Stypje pipelining mei útfierlatinsje fan ien of twa kloksyklusen · Unterstützt opsjoneel asynchronous dúdlik en klok ynskeakelje havens

De IP-kearn fan 'e ALTECC-kodearder nimt en kodearret de gegevens mei it Hamming-kodearringskema. It Hamming Koderingsskema ûntliend de pariteitsbits en heakket se ta oan 'e orizjinele gegevens om it útfierkoadewurd te produsearjen. It oantal taheakke parity bits hinget ôf fan de breedte fan de gegevens.

De folgjende tabel lit it oantal parity bits taheakke foar ferskillende berik fan gegevens widths. De kolom Totaal bits stiet foar it totale oantal ynfierdatabits en taheakke pariteitsbits.

Tabel 21.

Oantal paritybits en koadewurd neffens gegevensbreedte

Data Breedte

Oantal Parity Bits

Totaal bits (koadewurd)

2-4

3+1

6-8

5-11

4+1

10-16

12-26

5+1

18-32

27-57

6+1

34-64

58-64

7+1

66-72

De ôflieding fan de pariteitsbit brûkt in evenpariteitskontrôle. De ekstra 1 bit (yn 'e tabel werjûn as +1) wurdt taheakke oan de pariteitsbits as de MSB fan it koadewurd. Dit soarget derfoar dat it koadewurd in even getal fan 1's hat. Bygelyksample, as de gegevens breedte is 4 bits, wurde 4 parity bits taheakke oan de gegevens te wurden in koade wurd mei in totaal fan 8 bits. As 7 bits fan 'e LSB fan it 8-bit koadewurd in ûneven oantal 1's hawwe, is de 8e bit (MSB) fan it koadewurd 1, wêrtroch it totale oantal 1's yn it koadewurd even is.
De folgjende figuer toant de oanmakke koade wurd en de regeling fan de parity bits en gegevens bits yn in 8-bit gegevens input.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 31

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core 683490 | 2020.10.05

figuer 8.

Arrangement fan pariteitsbits en gegevensbits yn in 8-bit generearre koadewurd

MSB

LSB

4 parity bits

4 databit

8

1

De ALTECC-encoder IP-kearn aksepteart allinich ynfierbreedten fan 2 oant 64 bits tagelyk. Ynfierbreedtes fan 12 bits, 29 bits en 64 bits, dy't by útstek geskikt binne foar Intel-apparaten, generearje útgongen fan respektivelik 18 bits, 36 bits en 72 bits. Jo kinne de bitseleksje-beheining kontrolearje yn 'e parameterbewurker.

7.2. Verilog HDL Prototype (ALTECC_ENCODER)
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
module altecc_encoder #(parameter intended_device_family = "net brûkt", parameter lpm_pipeline = 0, parameter width_codeword = 8, parameter width_dataword = 8, parameter lpm_type = "altecc_encoder", parameter lpm_hint = "net brûkt") (ynputdraadklok, input wire aclr, ynfierdraad wire clocken, input wire [width_dataword-1:0] data, output wire [width_codeword-1:0] q); einmodule

7.3. Verilog HDL-prototype (ALTECC_DECODER)
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) lpm.v yn 'e edasynthesis directory.
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") (ynput draad aclr, input wire aclr, input draad wire clocken, input wire [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, outut wire err_fatal, output wire [width_dataword-1:0] q); einmodule

Intel FPGA Integer Arithmetic IP Cores User Guide 32

Stjoer Feedback

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core 683490 | 2020.10.05
7.4. VHDL Component Declaration (ALTECC_ENCODER)
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) altera_mf_components.vhd yn de librariesvhdlaltera_mf directory.
komponint altecc_encoder generic (bedoeld_device_family:string:= "net brûkt"; lpm_pipeline:natuerlik:= 0; width_codeword:natuerlik:= 8; width_dataword:natuerlik:= 8; lpm_hint:string:= "UNGEBRUK: string:="UNType: _cc:encoderte "); poarte (aclr: yn std_logic:= '0'; klok: yn std_logic:= '0'; klok: yn std_logic:= '1'; data: yn std_logic_vector (width_dataword-1 nei 0); q: out std_logic_vector (width_codeword -1 oant 0)); ein komponint;
7.5. VHDL Component Declaration (ALTECC_DECODER)
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) altera_mf_components.vhd yn de librariesvhdlaltera_mf directory.
component altecc_decoder generic (bedoeld_device_family: string: = "net brûkt"; lpm_pipeline: natuerlik:= 0; width_codeword: natuerlik:= 8; width_dataword: natuerlik:= 8; lpm_hint:string:= "UNType: string:= "UNGEBRUK: string: _pm_coderte"; _pm_coderte "); poarte (aclr: yn std_logic:= '0'; klok: yn std_logic:= '0'; klok: yn std_logic:= '1'; data: yn std_logic_vector (width_codeword-1 nei 0); err_corrected: out std_logic; err_detected : out std_logic; q: out std_logic_vector(width_dataword-1 downto 0); syn_e: out std_logic); ein komponint;
7.6. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTHEEK altera_mf; GEBRUK altera_mf.altera_mf_components.all;
7.7. Encoder Ports
De folgjende tabellen listje de ynfier- en útfierpoarten foar de ALTECC-kodearder IP-kearn.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 33

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core 683490 | 2020.10.05

tabel 22. ALTECC Encoder Input Ports

Port Namme

Required

Beskriuwing

data[]

Ja

Data ynfier haven. De grutte fan de ynfierpoarte hinget ôf fan de WIDTH_DATAWORD

parameter wearde. De gegevens[]-poarte befettet de te kodearjen rauwe gegevens.

klok

Ja

Klokynputpoarte dy't it kloksinjaal leveret om de kodearringsoperaasje te syngronisearjen.

De klokpoarte is nedich as de LPM_PIPELINE-wearde grutter is as 0.

klokken

Nee

Klok ynskeakelje. As it weilitten is, is de standertwearde 1.

aclr

Nee

Asynchronous dúdlike ynfier. De aktive hege aclr sinjaal kin brûkt wurde op elts momint om

asynchronously wiskje de registers.

tabel 23. ALTECC Encoder Utfier Ports

Poortnamme q[]

Ferplicht Ja

Beskriuwing
Kodearre gegevens útfier haven. De grutte fan de útfierpoarte hinget ôf fan de WIDTH_CODEWORD parameterwearde.

7.8. Decoder havens

De folgjende tabellen listje de ynfier- en útfierpoarten foar de ALTECC-dekoder IP-kearn.

tabel 24. ALTECC Decoder Input Ports

Port Namme

Required

Beskriuwing

data[]

Ja

Data ynfier haven. De grutte fan de ynfierpoarte hinget ôf fan de WIDTH_CODEWORD parameterwearde.

klok

Ja

Klokynputpoarte dy't it kloksinjaal leveret om de kodearringsoperaasje te syngronisearjen. De klokpoarte is nedich as de LPM_PIPELINE-wearde grutter is as 0.

klokken

Nee

Klok ynskeakelje. As it weilitten is, is de standertwearde 1.

aclr

Nee

Asynchronous dúdlike ynfier. It aktive hege aclr-sinjaal kin op elk momint brûkt wurde om de registers asynchronysk te wiskjen.

tabel 25. ALTECC Decoder Utfier Ports

Poortnamme q[]

Ferplicht Ja

Beskriuwing
Dekodearre gegevens útfier haven. De grutte fan de útfierpoarte hinget ôf fan de WIDTH_DATAWORD parameterwearde.

err_detected Ja

Flaggesinjaal om de status fan ûntfongen gegevens te reflektearjen en spesifisearret alle fûnen flaters.

err_correcte Ja d

Flaggesinjaal om de status fan ûntfongen gegevens te reflektearjen. Jout ien-bit flater fûn en korrizjearre. Jo kinne de gegevens brûke om't se al korrizjearre binne.

err_fatal

Ja

Flaggesinjaal om de status fan ûntfongen gegevens te reflektearjen. Jout dûbel-bit flater fûn, mar net korrizjearre. Jo moatte de gegevens net brûke as dit sinjaal wurdt beweard.

syn_e

Nee

In útfiersinjaal dat heech sil gean as in single-bit flater wurdt ûntdutsen op 'e pariteit

bits.

7.9. Encoder Parameters
De folgjende tabel listet de parameters foar de ALTECC-encoder IP-kearn.

Intel FPGA Integer Arithmetic IP Cores User Guide 34

Stjoer Feedback

7. ALTECC (Flater korreksje Code: Encoder / Decoder) IP Core 683490 | 2020.10.05

tabel 26. ALTECC Encoder Parameters

Parameter Namme

Type

Required

Beskriuwing

WIDTH_DATAWORD

Integer Ja

Spesifisearret de breedte fan de rauwe gegevens. Wearden binne fan 2 oant 64. As it weilitten is, is de standertwearde 8.

WIDTH_CODEWORD

Integer Ja

Spesifisearret de breedte fan it oerienkommende koadewurd. Jildige wearden binne fan 6 oant 72, útsein 9, 17, 33 en 65. As it weilitten is, is de standertwearde 13.

LPM_PIPELINE

Integer No

Spesifiseart de pipeline foar it circuit. Wearden binne fan 0 oan 2. As de wearde is 0, binne de havens net registrearre. As de wearde 1 is, wurde de útfierpoarten registrearre. As de wearde 2 is, wurde de ynfier- en útfierpoarte registrearre. As fuortlitten is de standertwearde 0.

7.10. Decoder Parameters

De folgjende tabel listet de ALTECC-dekoder IP-kearnparameters.

tabel 27. ALTECC Decoder Parameters

Parameternamme WIDTH_DATAWORD

Typ Integer

Required

Beskriuwing

Ja

Spesifisearret de breedte fan de rauwe gegevens. Wearden binne 2 oan 64. De

standertwearde is 8.

WIDTH_CODEWORD

Integer

Ja

Spesifisearret de breedte fan it oerienkommende koadewurd. De wearden binne 6

oant 72, útsein 9, 17, 33 en 65. As it weilitten wurdt, is de standertwearde

is 13.

LPM_PIPELINE

Integer

Nee

Spesifiseart it register fan it circuit. Wearden binne fan 0 oan 2. As de

wearde is 0, gjin register wurdt útfierd. As de wearde is 1, de

útfier wurdt registrearre. As de wearde is 2, sawol de ynfier en de

útfier wurde registrearre. As de wearde grutter is as 2, ekstra

registers wurde ymplementearre by de útfier foar de ekstra

latencies. As fuortlitten is de standertwearde 0.

Meitsje in 'syn_e' poarte

Integer

Nee

Skeakelje dizze parameter oan om in syn_e-poarte te meitsjen.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 35

683490 | 2020.10.05 Ferstjoere Feedback

8. Intel FPGA Multiply Adder IP Core

figuer 9.

De Intel FPGA Multiply Adder (Intel Stratix 10, Intel Arria 10, en Intel Cyclone 10 GX-apparaten) of ALTERA_MULT_ADD (Arria V, Stratix V, en Cyclone V-apparaten) IP-kearn kinne jo in multiplier-adder ymplementearje.

De folgjende figuer toant de havens foar de Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kearn.

Intel FPGA Multiply Adder of ALTERA_MULT_ADD Ports

Intel FPGA Multiply Adder of ALTERA_MULT_ADD

dataa[] signa datab[] signb 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

ynst
In multiplier-adder akseptearret pearen fan ynputs, fermannichfâldiget de wearden byinoar en foeget dan ta oan of subtrahearret fan 'e produkten fan alle oare pearen.
As alle breedte fan ynfiergegevens 9-bits breed of lytser binne, brûkt de funksje de 9 x 9-bit-ynputmultiplikatorkonfiguraasje yn it DSP-blok foar apparaten dy't 9 x 9-konfiguraasje stypje. As net, brûkt it DSP-blok 18 × 18-bit input multipliers om gegevens te ferwurkjen mei breedtes tusken 10 bits en 18 bits. As meardere Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kearnen foarkomme yn in ûntwerp, wurde de funksjes ferdield nei as

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
in protte ferskillende DSP-blokken mooglik, sadat de rûte nei dizze blokken fleksibeler is. Minder multipliers per DSP blok tastean mear routing karren yn it blok troch minimalisearje paden nei de rest fan it apparaat.
De registers en ekstra pipelineregisters foar de folgjende sinjalen wurde ek yn it DSP-blok pleatst: · Gegevensinput · Undertekene as net-ûndertekene selektearje · Selektearje taheakje of subtractearje · Produkten fan multipliers
Yn it gefal fan it útfierresultaat wurdt it earste register yn it DSP-blok pleatst. De ekstra latencyregisters wurde lykwols pleatst yn logyske eleminten bûten it blok. Perifeare foar it DSP-blok, ynklusyf gegevensynputen nei de multiplier, kontrôlesinjaalynputen en útgongen fan 'e adder, brûke reguliere routing om te kommunisearjen mei de rest fan it apparaat. Alle ferbiningen yn 'e funksje brûke tawijd routing binnen it DSP-blok. Dizze tawijde routing omfettet de skiftregisterketen as jo de opsje selektearje om de registrearre ynfiergegevens fan in multiplier te ferpleatsen fan ien multiplier nei in neistlizzende multiplier.
Foar mear ynformaasje oer DSP-blokken yn ien fan 'e Stratix V- en Arria V-apparaatsearjes, ferwize nei it haadstik DSP-blokken fan' e respektivelike hânboeken op 'e side Literatuer en technyske dokumintaasje.
Related ynformaasje AN 306: Implementearje Multipliers yn FPGA Apparaten
Jout mear ynformaasje oer it útfieren fan multipliers mei help fan DSP en ûnthâld blokken yn Intel FPGA apparaten.
8.1. Features
De Intel FPGA Multiply Adder of ALTERA_MULT_ADD IP-kearn biedt de folgjende funksjes: · Genereart in multiplier om fermannichfâldigje operaasjes út te fieren fan twa komplekse
nûmers Opmerking: By it bouwen fan multipliers grutter dan de natuerlik stipe grutte kin
sil in prestaasje-ynfloed wêze as gefolch fan it cascadearjen fan 'e DSP-blokken. · Unterstützt gegevensbreedtes fan 1 256 bits · Unterstützt ûndertekene en net-ûndertekene gegevensfertsjintwurdigingsformaat · Unterstützt pipelining mei konfigurearbere ynfierlatens · Biedt in opsje om dynamysk te wikseljen tusken ûndertekene en net-ûndertekene gegevensstipe · Biedt in opsje om dynamysk te wikseljen tusken taheakjen en subtraktearje operaasje · Unterstützt opsjoneel asynchrone en syngroane dúdlik en klok ynskeakelje ynfier havens · Unterstützt systolyske fertraging register modus · Unterstützt pre-adder mei 8 pre-load koeffizienten per multiplier · Unterstützt pre-load konstante te foljen accumulator feedback

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 37

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.1. Pre-adder
Mei pre-adder wurde tafoegings of subtraksjes dien foar it fiedjen fan de multiplier.
D'r binne fiif pre-adder-modi: · Ienfâldige modus · Koëffisjintmodus · Ynfiermodus · Fjouwerkante modus · Konstante modus

Noat:

Wannear't pre-adder wurdt brûkt (pre-adder koëffisjint / ynfier / fjouwerkante modus), moatte alle gegevens yngongen oan de multiplier hawwe deselde klok ynstelling.

8.1.1.1. Pre-adder Simple Mode

Yn dizze modus binne beide operanden ôflaat fan 'e ynfierpoarten en pre-adder wurdt net brûkt of omjûn. Dit is de standert modus.

figuer 10. Pre-adder Simple Mode
a0 b0

Mult0

resultaat

8.1.1.2. Pre-adder Coefficient Mode
Yn dizze modus komt ien multiplikatoroperand ôf fan 'e pre-adder, en de oare operand komt fan' e ynterne koeffisientopslach. De koëffisjint opslach lit maksimaal 8 foarôf ynstelde konstanten ta. De koëffisjintseleksjesinjalen binne koefsel[0..3].
Dizze modus wurdt útdrukt yn de folgjende fergeliking.

It folgjende toant de pre-adder-koëffisjintmodus fan in multiplier.

figuer 11. Pre-adder Coefficient Mode

Preadder

a0

Mult0

+/-

resultaat

b0

coefsel0 coef

Intel FPGA Integer Arithmetic IP Cores User Guide 38

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Pre-adder-ynfiermodus Yn dizze modus komt ien multiplier-operand ôf fan 'e pre-adder, en de oare operand komt ôf fan 'e datac[]-ynputpoarte. Dizze modus wurdt útdrukt yn de folgjende fergeliking.

It folgjende toant de pre-adder ynfier modus fan in multiplier.

figuer 12. Pre-adder Input Mode
a0 b0

Mult0

+/-

resultaat

c0

8.1.1.4. Pre-adder Square Mode Dizze modus wurdt útdrukt yn de folgjende fergeliking.

It folgjende toant de pre-adder fjouwerkante modus fan twa multipliers.

figuer 13. Pre-adder Square Mode
a0 b0

Mult0

+/-

resultaat

8.1.1.5. Pre-adder Constant Mode
Yn dizze modus komt ien multiplier operand út de ynfier haven, en de oare operand ôflaat fan de ynterne koeffisient opslach. De koëffisjint opslach lit maksimaal 8 foarôf ynstelde konstanten ta. De koëffisjintseleksjesinjalen binne koefsel[0..3].
Dizze modus wurdt útdrukt yn de folgjende fergeliking.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 39

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

De folgjende figuer toant de pre-adder konstante modus fan in multiplier.

figuer 14. Pre-adder Constant Mode
a0

Mult0

resultaat

koefs0
coef
8.1.2. Systolic Delay Register
Yn in systolike arsjitektuer wurde de ynfiergegevens ynfierd yn in kaskade fan registers dy't fungearje as gegevensbuffer. Elts register leveret in ynfier sample nei in multiplier dêr't it wurdt fermannichfâldige mei de respektivelike koeffizient. De kettingadder bewarret de stadichoan kombineare resultaten fan 'e multiplier en it earder registrearre resultaat fan' e chainin[] ynfierpoarte om it definitive resultaat te foarmjen. Elts multiply-add elemint moat wurde fertrage troch in inkele syklus, sadat de resultaten syngronisearje passend as tafoege tegearre. Elke opfolgjende fertraging wurdt brûkt om sawol it koeffizientûnthâld as de gegevensbuffer fan har respektive multiply-add-eleminten oan te pakken. Bygelyksample, in inkele fertraging foar de twadde multiply add elemint, twa fertragings foar de tredde multiply-add elemint, ensfh.
figuer 15. Systolic Registers
Systolyske 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) stiet foar de resultaten fan in trochgeande stream fan ynfier samples en y(t)
stiet foar de gearfetting fan in set fan ynfier samples, en yn 'e tiid, fermannichfâldige mei harren
respektivelike koeffizienten. Sawol de ynfier- en útfierresultaten streame fan links nei rjochts. De c(0) oant c(N-1) jout de koeffizienten oan. De systolyske fertragingsregisters wurde oantsjutten mei S-1, wylst de 1 in inkele klokfertraging stiet. Systolic fertraging registers wurde tafoege by
de yn- en útgongen foar pipelining op in wize dy't soarget foar de resultaten út de
multiplier operand en de opboude sommen bliuwe yn synch. Dit ferwurkjen elemint
wurdt replikearre om in circuit te foarmjen dat de filterfunksje berekkent. Dizze funksje is
útdrukt yn de folgjende fergeliking.

Intel FPGA Integer Arithmetic IP Cores User Guide 40

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

N stiet foar it oantal syklusen fan gegevens dat is ynfierd yn de accumulator, y(t) stiet foar de útfier op tiid t, A(t) stiet foar de ynfier op tiid t, en B(i) binne de koeffizienten. De t en i yn 'e fergeliking komme oerien mei in bepaald momint yn' e tiid, dus om de útfier s te berekkenjenample y(t) op tiid t, in groep ynfier samples op N ferskillende tiidpunten, of A(n), A(n-1), A(n-2), … A(n-N+1) is fereaske. De groep fan N ynfier samples wurde fermannichfâldige mei N koeffizienten en gearfette tegearre te foarmjen it úteinlike resultaat y.
De systolike registerarsjitektuer is allinich beskikber foar som-fan-2 en som-fan-4-modi. Foar beide systolyske registerarsjitektuermodi moat it earste kettingsinjaal oan 0 wurde bûn.
De folgjende figuer toant de ymplemintaasje fan systolyske fertragingsregister fan 2 multipliers.
figuer 16. Systolic Delay Register Implementaasje fan 2 Multipliers
chainin

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

resultaat
De som fan twa multipliers wurdt útdrukt yn de folgjende fergeliking.
De folgjende figuer toant de ymplemintaasje fan systolyske fertragingsregister fan 4 multipliers.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 41

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

figuer 17. Systolic Delay Register Implementaasje fan 4 Multipliers
chainin

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

a2

Mult2

+/-

b2

a3

Mult3

+/-

b3

resultaat
De som fan fjouwer multipliers wurdt útdrukt yn de folgjende fergeliking. figuer 18. Som fan 4 multipliers
De folgjende list de advantages fan ymplemintaasje fan systolike registers: · Ferminderet DSP-boarnegebrûk · Aktivearret effisjinte mapping yn it DSP-blok mei de ketenadderstruktuer

Intel FPGA Integer Arithmetic IP Cores User Guide 42

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.3. Pre-load Constant
De pre-load konstante kontrolearret de accumulator operand en komplementearret de accumulator feedback. De jildige LOADCONST_VALUE fariearret fan 0. De konstante wearde is lyk oan 64N, dêr't N = LOADCONST_VALUE. As de LOADCONST_VALUE is ynsteld op 2, is de konstante wearde gelyk oan 64. Dizze funksje kin brûkt wurde as biased rounding.
De folgjende figuer toant de pre-load konstante ymplemintaasje.
figuer 19. Pre-load Constant

Accumulator feedback

konstant

a0

Mult0

+/-

b0

a1

Mult1

+/b1

resultaat

accum_sload sload_accum

Ferwize nei de folgjende IP-kearnen foar oare ymplemintaasje fan multiplier: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Dûbele accumulator
De dûbele accumulatorfunksje foeget in ekstra register ta yn it accumulatorfeedbackpaad. It dûbele akkumulatorregister folget it útfierregister, dat de klok, klok ynskeakelje, en aclr omfettet. It ekstra akkumulatorregister jout resultaat mei in fertraging fan ien syklus. Mei dizze funksje kinne jo twa akkumulatorkanalen hawwe mei itselde oantal boarnen.
De folgjende figuer toant de ymplemintaasje fan dûbele accumulator.

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 43

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

figuer 20. Double Accumulator

Dou ble Accu mulator Register

Accu mulator feedba ck

a0

Mult0

+/-

b0

a1

Mult1

+/b1

Utfier resultaat Utfier Register

8.2. Verilog HDL Prototype
Jo kinne de Intel FPGA Multiply Adder fine as ALTERA_MULT_ADD Verilog HDL prototype file (altera_mult_add_rtl.v) yn 'e librariesmegafunctions directory.
8.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn 'e altera_lnsim_components.vhd yn' e librariesvhdl altera_lnsim directory.
8.4. VHDL LIBRARY_USE-ferklearring
De VHDL LIBRARY-USE deklaraasje is net fereaske as jo de VHDL Component Declaration brûke.
BIBLIOTHEEK altera_mf; GEBRUK altera_mf.altera_mf_components.all;

8.5. Sinjalen

De folgjende tabellen listje de ynfier- en útfiersinjalen fan 'e Multiply Adder Intel FPGA IPor ALTERA_MULT_ADD IP-kearn.

Tabel 28. Multiply Adder Intel FPGA IPor ALTERA_MULT_ADD Ynfiersinjalen

Sinjaal

Required

Beskriuwing

dataa_0[]/dataa_1[]/

Ja

dataa_2[]/dataa_3[]

Gegevens ynfier nei de multiplier. Ynfierpoarte [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] breed
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 44

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Sinjaal 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] tekenje
tekenb
scanina[] accum_sload

Ferplicht Ja Nee
Nee Nei Nei Nei Nei
Nee
Nee Nei

Beskriuwing
It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Gegevens ynfier nei de multiplier. Ynfiersinjaal [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 ... 0] breed It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Gegevens ynfier nei de multiplier. Ynfiersinjaal [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] breed Selektearje INPUT foar Selektearje de parameter foar preaddermodus om dizze sinjalen yn te skeakeljen. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Klok ynfier haven nei de byhearrende register. Dit sinjaal kin brûkt wurde troch elk register yn 'e IP-kearn. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Asynchronous dúdlike ynfier nei de byhearrende register. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Syngroane dúdlike ynfier nei de byhearrende register. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde X foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen
Aktivearje sinjaal ynfier nei de oerienkommende register. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) foar dizze sinjalen. As jo ​​X-wearde oan dizze sinjalen leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Spesifisearret de numerike fertsjintwurdiging fan de multiplier input A. As de sinjaal sinjaal is heech, de multiplier behannelet de multiplier input A sinjaal as in tekene getal. As de sinjaal sinjaal is leech, de multiplier behannelet de multiplier input A sinjaal as in net ûndertekene getal. Selektearje VARIABLE foar Wat is de represintaasje opmaak foar Multipliers A input parameter te skeakeljen dit sinjaal. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Spesifisearret de numerike foarstelling fan de multiplier input B sinjaal. As it tekenb-sinjaal heech is, behannelet de multiplier it multiplier-ynput B-sinjaal as it komplementnûmer fan in tekene twa. As it tekenb-sinjaal leech is, behannelet de multiplier it multiplier-ynput B-sinjaal as in net-ûndertekene getal. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Ynfier foar scan ketting A. Ynfier sinjaal [WIDTH_A - 1, ... 0] breed. As de parameter INPUT_SOURCE_A in wearde hat fan SCANA, is it scanina[]-sinjaal fereaske.
Jout dynamysk oan oft de accumulatorwearde konstant is. As it sinjaal accum_sload leech is, dan wurdt de multiplierútfier yn 'e accumulator laden. Brûk accum_sload en sload_accum net tagelyk.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 45

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Sinjaal sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

Ferplicht nr
Nee Nei
Nee
Nee Nei Nei Nei

Beskriuwing
It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Jout dynamysk oan oft de accumulatorwearde konstant is. As it sinjaal sload_accum heech is, dan wurdt de multiplierútfier yn 'e accumulator laden. Brûk accum_sload en sload_accum net tagelyk. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Adder resultaat ynfier bus út de foargeande stage. Ynfiersinjaal [WIDTH_CHAININ – 1, … 0] breed.
Utfiere tafoeging of subtraksje nei de útgongen fan it earste pear multipliers. Ynfier 1 nei addnsub1-sinjaal om de útgongen fan it earste pear multipliers ta te foegjen. Ynfier 0 nei addnsub1-sinjaal om de útgongen fan it earste pear multipliers ôf te lûken. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Utfiere tafoeging of subtraksje nei de útgongen fan it earste pear multipliers. Ynfier 1 nei addnsub3-sinjaal om de útgongen fan it twadde pear multipliers ta te foegjen. Ynfier 0 nei addnsub3-sinjaal om de útgongen fan it earste pear multipliers ôf te lûken. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Koëffisjint ynfier sinjaal [0:3] nei de earste multiplier. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Koëffisjint ynfier sinjaal[0:3] nei de twadde multiplier. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Koëffisjint ynfier sinjaal[0:3] nei de tredde multiplier. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.
Koëffisjint input sinjaal [0:3] nei de fjirde multiplier. It simulaasjemodel foar dizze IP stipet ûnbepaalde ynfierwearde (X) nei dit sinjaal. As jo ​​X-wearde oan dizze ynfier leverje, wurdt de X-wearde propagearre op 'e útfiersinjalen.

tabel 29. Fermannichfâldigje Adder Intel FPGA IP útfier sinjalen

Sinjaal

Required

Beskriuwing

resultaat []

Ja

Multiplier útfier sinjaal. Utfiersinjaal [WIDTH_RESULT – 1 … 0] breed

It simulaasjemodel foar dizze IP stipet ûnbepaalde útfierwearde (X). As jo ​​X-wearde as ynfier leverje, wurdt de X-wearde propagearre op dit sinjaal.

scanouta [de]

Nee

Utfier fan scan ketting A. Utfier sinjaal [WIDTH_A - 1..0] breed.

Selektearje mear as 2 foar oantallen multipliers en kies Scan ketting ynfier foar Wat is de ynfier A fan de multiplier ferbûn oan parameter te skeakeljen dit sinjaal.

Intel FPGA Integer Arithmetic IP Cores User Guide 46

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6. Parameters

8.6.1. Algemien Tab

Tabel 30. Algemien Tab

Parameter

IP Generearre Parameter

Wearde

Wat is it oantal multipliers?

number_of_m 1 - 4 ultipliers

Hoe breed moatte de ynfierbussen A width_a wêze?

1 – 256

Hoe breed moatte de B width_b ynfierbussen wêze?

1 – 256

Hoe breed moat de 'resultaat' útfierbus wêze?

width_result

1 – 256

Meitsje in assosjearre klok ynskeakelje foar elke klok

gui_associate On d_clock_enabl Off e

8.6.2. Ekstra Modes Tab

tabel 31. Ekstra Modes Tab

Parameter

IP Generearre Parameter

Wearde

Outputs Konfiguraasje

Registrearje útfier fan de adder ienheid

gui_output_re Oan

gister

Út

Wat is de boarne foar klok ynfier?

gui_output_re gister_clock

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_output_re gister_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_output_re gister_sclr

NONE SCLR0 SCLR1

Adder Operaasje

Hokker operaasje moat wurde útfierd op útgongen fan it earste pear multipliers?

gui_multiplier 1_direction

ADD, SUB, VARIABEL

Standertwearde 1
16

Beskriuwing
Oantal multipliers wurde tafoege tegearre. Wearden binne 1 oant 4. Spesifisearje de breedte fan de dataa [] haven.

16

Spesifisearje de breedte fan de datab[] haven.

32

Spesifisearje de breedte fan it resultaat[] poarte.

Út

Selektearje dizze opsje om klok ynskeakelje te meitsjen

foar elke klok.

Standert Wearde

Beskriuwing

Off klok 0
NONE NONE

Selektearje dizze opsje om it útfierregister fan 'e addermodule yn te skeakeljen.
Selektearje Clock0 , Clock1 of Clock2 om de klokboarne foar útfierregisters yn te skeakeljen en op te jaan. Jo moatte Registrearje útfier fan 'e adder-ienheid selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de asynchrone dúdlike boarne foar it adder-útfierregister. Jo moatte Registrearje útfier fan 'e adder-ienheid selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it adder-útfierregister. Jo moatte Registrearje útfier fan 'e adder-ienheid selektearje om dizze parameter yn te skeakeljen.

ADD

Selektearje tafoeging of subtraksje operaasje om út te fieren foar de útgongen tusken de earste en twadde multipliers.
· Selektearje ADD om tafoegingsoperaasje út te fieren.
· Selektearje SUB om subtraksjeoperaasje út te fieren.
· Selektearje VARIABLE om addnsub1-poarte te brûken foar dynamyske kontrôle fan tafoeging / subtraksje.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 47

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP Generearre Parameter

Wearde

Registrearje 'addnsub1' ynfier

gui_addnsub_ On multiplier_reg Off ister1

Wat is de boarne foar klok ynfier?

gui_addnsub_ multiplier_reg ister1_clock

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_addnsub_ multiplier_aclr 1

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_addnsub_ multiplier_sclr 1

NONE SCLR0 SCLR1

Hokker operaasje moat wurde útfierd op útgongen fan it twadde pear multipliers?

gui_multiplier 3_direction

ADD, SUB, VARIABEL

Registrearje 'addnsub3' ynfier

gui_addnsub_ On multiplier_reg Off ister3

Wat is de boarne foar klok ynfier?

gui_addnsub_ multiplier_reg ister3_clock

Klok0 Klok1 Klok2

Standert Wearde
Off Clock0 GEEN GEEN ADD
Off klok 0

Beskriuwing
As VARIABELE wearde is selektearre: · Drive addnsub1 sinjaal nei heech foar
addition operaasje. · Drive addnsub1 sinjaal nei leech foar
subtraction operaasje. Jo moatte selektearje mear as twa multipliers foar in ynskeakelje dizze parameter.
Selektearje dizze opsje om ynfierregister foar addnsub1-poarte yn te skeakeljen. Jo moatte VARIABLE selektearje foar hokker operaasje moat wurde útfierd op útgongen fan it earste pear multipliers om dizze parameter yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal foar addnsub1-register op te jaan. Jo moatte Registrearje 'addnsub1' ynfier selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de asynchrone dúdlike boarne foar it addnsub1-register. Jo moatte Registrearje 'addnsub1' ynfier selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it addnsub1-register. Jo moatte Registrearje 'addnsub1' ynfier selektearje om dizze parameter yn te skeakeljen.
Selektearje tafoeging of subtraksje operaasje om út te fieren foar de útgongen tusken de tredde en fjirde multipliers. · Selektearje ADD om tafoeging út te fieren
operaasje. · Selektearje SUB om subtraksje út te fieren
operaasje. · Selektearje VARIABEL om addnsub1 te brûken
haven foar dynamyske tafoeging / subtraction control. As VARIABELE wearde is selektearre: · Drive addnsub1 sinjaal nei heech foar tafoeging operaasje. · Drive addnsub1-sinjaal nei leech foar subtraksjeoperaasje. Jo moatte selektearje de wearde 4 foar Wat is it oantal multipliers? om dizze parameter yn te skeakeljen.
Selektearje dizze opsje om ynfierregister yn te skeakeljen foar addnsub3-sinjaal. Jo moatte selektearje VARIABLE foar hokker operaasje moat wurde útfierd op útgongen fan it twadde pear multipliers om dizze parameter yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal foar addnsub3-register op te jaan. Jo moatte Registrearje 'addnsub3' ynfier selektearje om dizze parameter yn te skeakeljen.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 48

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Wat is de boarne foar asynchrone dúdlike ynfier?

IP Generearre Parameter

Wearde

gui_addnsub_ multiplier_aclr 3

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_addnsub_ multiplier_sclr 3

NONE SCLR0 SCLR1

Polariteit ynskeakelje `use_subadd'

gui_use_subn Oan

tafoegje

Út

8.6.3. Multipliers Tab

tabel 32. Multipliers Tab

Parameter

IP Generearre Parameter

Wearde

Wat is de

gui_represent

fertsjintwurdiging opmaak ation_a

foar Multipliers A yngongen?

ÛNTEKENEN, NETTEKENEN, VARIABEL

Registrearje 'signa' ynfier

gui_register_s Oan

igna

Út

Wat is de boarne foar klok ynfier?

gui_register_s igna_clock

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_register_s igna_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_register_s igna_sclr

NONE SCLR0 SCLR1

Wat is de

gui_represent

fertsjintwurdiging opmaak ation_b

foar Multipliers B yngongen?

ÛNTEKENEN, NETTEKENEN, VARIABEL

Registrearje `signb' ynfier

gui_register_s Oan

ignb

Út

Standert wearde NONE
GJIN

Beskriuwing
Spesifisearret de asynchrone dúdlike boarne foar it addnsub3-register. Jo moatte Registrearje 'addnsub3' ynfier selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it addnsub3-register. Jo moatte Registrearje 'addnsub3' ynfier selektearje om dizze parameter yn te skeakeljen.

Út

Selektearje dizze opsje om de funksje werom te kearen

fan addnsub ynfier haven.

Drive addnsub nei heech foar subtraksjeoperaasje.

Drive addnsub nei leech foar tafoeging operaasje.

Standert Wearde

Beskriuwing

UNSIGNED Spesifisearje de fertsjintwurdiging opmaak foar de multiplier A ynfier.

Út

Selektearje dizze opsje om teken yn te skeakeljen

register.

Jo moatte selektearje VARIABELE wearde foar Wat is de fertsjintwurdiging opmaak foar Multipliers A yngongen? parameter om dizze opsje yn te skeakeljen.

Klok 0

Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal foar tekenregister yn te skeakeljen en op te jaan.
Jo moatte Registrearje `signa' ynfier selektearje om dizze parameter yn te skeakeljen.

GJIN

Spesifisearret de asynchrone dúdlike boarne foar it tekenregister.
Jo moatte Registrearje `signa' ynfier selektearje om dizze parameter yn te skeakeljen.

GJIN

Spesifisearret de syngroane dúdlike boarne foar it tekenregister.
Jo moatte Registrearje `signa' ynfier selektearje om dizze parameter yn te skeakeljen.

UNSIGNED Spesifisearje de fertsjintwurdiging opmaak foar de multiplier B ynfier.

Út

Selektearje dizze opsje om signb yn te skeakeljen

register.

fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 49

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP Generearre Parameter

Wearde

Standert Wearde

Wat is de boarne foar klok ynfier?

gui_register_s ignb_clock

Klok0 Klok1 Klok2

Klok 0

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_register_s ignb_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_register_s ignb_sclr

NONE SCLR0 SCLR1

Ynfier konfiguraasje
Registrearje ynfier A fan de multiplier
Wat is de boarne foar klok ynfier?

gui_input_reg Oan

ister_a

Út

gui_input_reg ister_a_clock

Klok0 Klok1 Klok2

NONE NONE
Off klok 0

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_input_reg ister_a_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_input_reg ister_a_sclr

NONE SCLR0 SCLR1

Registrearje ynfier B fan de multiplier
Wat is de boarne foar klok ynfier?

gui_input_reg Oan

ister_b

Út

gui_input_reg ister_b_clock

Klok0 Klok1 Klok2

NONE NONE Off Clock0

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_input_reg ister_b_aclr

NONE ACLR0 ACLR1

GJIN

Wat is de boarne foar syngroane dúdlike ynfier?

gui_input_reg ister_b_sclr

NONE SCLR0 SCLR1

GJIN

Wat is de ynfier A fan de multiplier ferbûn mei?

gui_multiplier Multiplier input Multiplier

_a_ynfier

Scan ketting ynfier ynfier

Beskriuwing
Jo moatte selektearje VARIABELE wearde foar Wat is de fertsjintwurdiging opmaak foar Multipliers B yngongen? parameter om dizze opsje yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal foar tekenregister yn te skeakeljen en op te jaan. Jo moatte Registrearje `signb' ynfier selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de asynchrone dúdlike boarne foar it tekenregister. Jo moatte Registrearje `signb' ynfier selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it signb register. Jo moatte Registrearje `signb' ynfier selektearje om dizze parameter yn te skeakeljen.
Selektearje dizze opsje om ynfierregister yn te skeakeljen foar gegevens in ynfierbus.
Selektearje Clock0, Clock1 of Clock2 om it register-ynputkloksinjaal yn te skeakeljen en oan te jaan foar data in ynfierbus. Jo moatte selektearje Registrearje ynfier A fan de multiplier te skeakeljen dizze parameter.
Spesifisearret it register asynchrone dúdlike boarne foar de dataa input bus. Jo moatte selektearje Registrearje ynfier A fan de multiplier te skeakeljen dizze parameter.
Spesifisearret de register syngroane dúdlike boarne foar de dataa ynfier bus. Jo moatte selektearje Registrearje ynfier A fan de multiplier te skeakeljen dizze parameter.
Selektearje dizze opsje om ynfierregister yn te skeakeljen foar gegevensynfierbus.
Selektearje Clock0 , Clock1 of Clock2 om it registerynputkloksinjaal foar dataynputbus yn te skeakeljen en op te jaan. Jo moatte selektearje Registrearje ynfier B fan de multiplier foar in ynskeakelje dizze parameter.
Spesifiseart it register asynchrone dúdlike boarne foar de gegevensynputbus. Jo moatte selektearje Registrearje ynfier B fan de multiplier foar in ynskeakelje dizze parameter.
Spesifisearret de register syngroane dúdlike boarne foar de gegevens ynfier bus. Jo moatte selektearje Registrearje ynfier B fan de multiplier foar in ynskeakelje dizze parameter.
Selektearje de ynfier boarne foar ynfier A fan de multiplier.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 50

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP Generearre Parameter

Wearde

Scanout A Register Konfiguraasje

Registrearje útfier fan de scan keten

gui_scanouta Oan

_register

Út

Wat is de boarne foar klok ynfier?

gui_scanouta _register_klok k

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_scanouta _register_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_scanouta _register_sclr

NONE SCLR0 SCLR1

8.6.4. Preadder Tab

Tabel 33. Preadder Tab

Parameter

IP Generearre Parameter

Wearde

Selektearje preadder modus

preadder_mo de

Ienfâldich, COEF, INPUT, SQUARE, CONSTANT

Standert Wearde

Beskriuwing
Selektearje Multiplier-ynfier om gegevens in ynfierbus te brûken as de boarne foar de multiplier. Selektearje Scan chain input om scanin input bus te brûken as de boarne foar de multiplier en aktivearje de scanout output bus. Dizze parameter is beskikber as jo selektearje 2, 3 of 4 foar Wat is it oantal multipliers? parameter.

Off Clock0 NONE NONE

Selektearje dizze opsje om útfierregister yn te skeakeljen foar scanouta-útfierbus.
Jo moatte selektearje Scan ketting ynfier foar Wat is de ynfier A fan de multiplier ferbûn oan? parameter om dizze opsje yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it registeryngongskloksinjaal foar scanouta-útfierbus yn te skeakeljen en oan te jaan.
Jo moatte Registrearje útfier fan 'e scanketenparameter ynskeakelje om dizze opsje yn te skeakeljen.
Spesifiseart it register asynchrone dúdlike boarne foar de scanouta-útfierbus.
Jo moatte Registrearje útfier fan 'e scanketenparameter ynskeakelje om dizze opsje yn te skeakeljen.
Spesifisearret de register syngroane dúdlike boarne foar de scanouta útfier bus.
Jo moatte selektearje Registrearje útfier fan de scan keten parameter om dizze opsje ynskeakelje.

Standert Wearde
IENFÂLDICH

Beskriuwing
Spesifisearret de operaasje modus foar preadder module. SIMPLE: Dizze modus omgiet de preadder. Dit is de standert modus. COEF: Dizze modus brûkt de útfier fan 'e preadder- en coefsel-ynputbus as de yngongen nei de multiplier. INPUT: Dizze modus brûkt de útfier fan 'e preadder en datac input bus as de yngongen nei de multiplier. SQUARE: Dizze modus brûkt de útfier fan 'e preadder as beide yngongen nei de multiplier.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 51

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP Generearre Parameter

Wearde

Selektearje preadder rjochting

gui_preadder ADD,

_rjochting

SUB

Hoe breed moatte de C width_c ynfier bussen wêze?

1 – 256

Data C Input Register Konfiguraasje

Registrearje datac input

gui_datac_inp Oan

ut_register

Út

Wat is de boarne foar klok ynfier?

gui_datac_inp ut_register_cl ock

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_datac_inp ut_register_a clr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_datac_inp ut_register_sc lr

NONE SCLR0 SCLR1

Koëffisjinten
Hoe breed moat de koefbreedte wêze?

width_coef

1 – 27

Coef Register Konfiguraasje

Registrearje de coefsel ynfier

gui_coef_regi Oan

ster

Út

Wat is de boarne foar klok ynfier?

gui_coef_regi ster_clock

Klok0 Klok1 Klok2

Standert Wearde
ADD
16

Beskriuwing
KONSTANT: Dizze modus brûkt gegevens in ynfierbus mei preadder bypasse en coefsel ynfierbus as de yngongen nei de multiplier.
Spesifisearret de wurking fan 'e preadder. Om dizze parameter yn te skeakeljen, selektearje it folgjende foar Selektearje preadder-modus: · COEF · INPUT · FIERKANT of · KONSTANT
Spesifisearret it oantal bits foar C input bus. Jo moatte INPUT selektearje foar Preaddermodus selektearje om dizze parameter yn te skeakeljen.

Op Klok0 GEEN GEEN

Selektearje dizze opsje foar in ynskeakelje input register foar datac input bus. Jo moatte INPUT ynstelle op Selektearje preadder modus parameter om dizze opsje yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal te spesifisearje foar datac input register. Jo moatte Registrearje datac input selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de asynchrone dúdlike boarne foar it datac input register. Jo moatte Registrearje datac input selektearje om dizze parameter yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it datac input register. Jo moatte Registrearje datac input selektearje om dizze parameter yn te skeakeljen.

18

Spesifisearret it oantal bits foar

coefsel input bus.

Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.

op klok 0

Selektearje dizze opsje foar in ynskeakelje input register foar coefsel input bus. Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal foar coefsel-ynputregister op te jaan. Jo moatte selektearje Registrearje de coefsel ynfier foar in ynskeakelje dizze parameter.
fierder…

Intel FPGA Integer Arithmetic IP Cores User Guide 52

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Wat is de boarne foar asynchrone dúdlike ynfier?

IP Generearre Parameter

Wearde

gui_coef_regi ster_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier

gui_coef_regi ster_sclr

NONE SCLR0 SCLR1

Koëffisjint_0 Konfiguraasje

coef0_0 oant coef0_7

0x00000 0xFFFFFFF

Koëffisjint_1 Konfiguraasje

coef1_0 oant coef1_7

0x00000 0xFFFFFFF

Koëffisjint_2 Konfiguraasje

coef2_0 oant coef2_7

0x00000 0xFFFFFFF

Koëffisjint_3 Konfiguraasje

coef3_0 oant coef3_7

0x00000 0xFFFFFFF

8.6.5. Akkumulator Tab

Tabel 34. Akkumulator Tab

Parameter

IP Generearre Parameter

Wearde

Akkumulator ynskeakelje?

accumulator

JA, NEE

Wat is it type accumulator operaasje?

accum_directi ADD,

on

SUB

Standert wearde NONE
GJIN
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0

Beskriuwing
Spesifiseart de asynchrone dúdlike boarne foar it coefsel-ynputregister. Jo moatte selektearje Registrearje de coefsel ynfier foar in ynskeakelje dizze parameter.
Spesifisearret de syngroane dúdlike boarne foar de coefsel ynfier register. Jo moatte selektearje Registrearje de coefsel ynfier foar in ynskeakelje dizze parameter.
Spesifisearret de koeffizientwearden foar dizze earste multiplier. It oantal bits moat itselde wêze as oantsjutte yn Hoe breed moat de koefbreedte wêze? parameter. Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.
Spesifisearret de koeffisientwearden foar dizze twadde multiplier. It oantal bits moat itselde wêze as oantsjutte yn Hoe breed moat de koefbreedte wêze? parameter. Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.
Spesifiseart de koeffizientwearden foar dizze tredde multiplier. It oantal bits moat itselde wêze as oantsjutte yn Hoe breed moat de koefbreedte wêze? parameter. Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.
Spesifisearret de koeffizientwearden foar dizze fjirde multiplier. It oantal bits moat itselde wêze as oantsjutte yn Hoe breed moat de koefbreedte wêze? parameter. Jo moatte COEF of CONSTANT selektearje foar preaddermodus om dizze parameter yn te skeakeljen.

Standertwearde NO
ADD

Beskriuwing
Selektearje JA om de accumulator yn te skeakeljen. Jo moatte selektearje Registrearje útfier fan adder ienheid by it brûken fan accumulator funksje.
Spesifisearret de wurking fan de accumulator: · ADD foar tafoeging operaasje · SUB foar subtraction operaasje. Jo moatte JA selektearje foar Akkumulator ynskeakelje? parameter om dizze opsje yn te skeakeljen.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 53

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter
Preload Constant Aktivearje foarladen konstante

IP Generearre Parameter

Wearde

gui_ena_prelo Oan

ad_const

Út

Wat is de ynfier fan accumulate haven ferbûn oan?

gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM

Selektearje wearde foar preload loadconst_val 0 - 64

konstant

ue

Wat is de boarne foar klok ynfier?

gui_accum_sl oad_register_ klok

Klok0 Klok1 Klok2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_accum_sl oad_register_ aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_accum_sl oad_register_ sclr

NONE SCLR0 SCLR1

Aktivearje dûbele accumulator

gui_double_a Oan

ccum

Út

Standert Wearde

Beskriuwing

Út

Aktivearje de accum_sload of

sload_accum sinjalen en register ynfier

om dynamysk selektearje de ynfier nei de

accumulator.

As accum_sload leech is as sload_accum, wurdt de multiplierútfier yn 'e accumulator feed.

As accum_sload heech is as sload_accum, wurdt in brûker spesifisearre preloadkonstante feed yn 'e accumulator.

Jo moatte JA selektearje foar Akkumulator ynskeakelje? parameter om dizze opsje yn te skeakeljen.

ACCUM_SL OAD

Spesifisearret it gedrach fan accum_sload/ sload_accum-sinjaal.
ACCUM_SLOAD: Drive accum_sload leech om de multiplierútfier nei de accumulator te laden.
SLOAD_ACCUM: Ryd sload_accum heech om de multiplierútfier nei de accumulator te laden.
Jo moatte selektearje Foarladen konstante ynskeakelje opsje om dizze parameter yn te skeakeljen.

64

Spesifisearje de ynstelde konstante wearde.

Dizze wearde kin 2N wêze wêr't N de ynstelde konstante wearde is.

As N = 64, stiet it foar in konstante nul.

Jo moatte selektearje Foarladen konstante ynskeakelje opsje om dizze parameter yn te skeakeljen.

Klok 0

Selektearje Clock0, Clock1 of Clock2 om it ynfierkloksinjaal oan te jaan foar accum_sload/sload_accum register.
Jo moatte selektearje Foarladen konstante ynskeakelje opsje om dizze parameter yn te skeakeljen.

GJIN

Spesifisearret de asynchrone dúdlike boarne foar it register accum_sload/sload_accum.
Jo moatte selektearje Foarladen konstante ynskeakelje opsje om dizze parameter yn te skeakeljen.

GJIN

Spesifisearret de syngroane dúdlike boarne foar it register accum_sload/sload_accum.
Jo moatte selektearje Foarladen konstante ynskeakelje opsje om dizze parameter yn te skeakeljen.

Út

Aktivearret de dûbele accumulator register.

Intel FPGA Integer Arithmetic IP Cores User Guide 54

Stjoer Feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6.6. Systolic / Chainout Tab

tabel 35. Systolic / Chainout Adder Tab

Parameter Ynskeakelje chainout adder

IP Generearre Parameter

Wearde

chainout_add JA,

er

NEE

Wat is it type chainout adder operaasje?

chainout_add ADD,

er_rjochting

SUB

'negate' ynfier ynskeakelje foar chainout adder?

Port_negate

PORT_USED, PORT_UNUSED

'Negate' ynfier registrearje? negate_registrearje er

UNREGISTERED, KLOK0, KLOK1, KLOK2, KLOK3

Wat is de boarne foar asynchrone dúdlike ynfier?

negate_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

negate_sclr

NONE SCLR0 SCLR1

Systolike fertraging
Systolyske fertragingsregisters ynskeakelje

gui_systolic_d Oan

elay

Út

Wat is de boarne foar klok ynfier?

gui_systolic_d CLOCK0,

elay_clock

KLOK 1,

Standert Wearde
NEE

Beskriuwing
Selektearje JA om chainout adder module yn te skeakeljen.

ADD

Spesifisearret de chainout adder operaasje.
Foar subtraction operaasje, SIGNED moat wurde selektearre foar Wat is de fertsjintwurdiging opmaak foar Multipliers A yngongen? en Wat is de fertsjintwurdiging opmaak foar Multipliers B yngongen? yn de Multipliers Tab.

PORT_UN GEBRUK

Selektearje PORT_USED om negeare ynfiersinjaal yn te skeakeljen.
Dizze parameter is ûnjildich as chainout adder is útskeakele.

UNREGISTER ERED

Om ynskeakelje de ynfier register foar negate input sinjaal en spesifisearret de input klok sinjaal foar negate register.
Selektearje UNREGISTERED as it negearjende ynfierregister nei net nedich is
Dizze parameter is ûnjildich as jo selektearje:
· NO foar Ynskeakelje chainout adder of
· PORT_UNUSED foar 'negate' ynfier ynskeakelje foar chainout adder? parameter of

GJIN

Spesifisearret de asynchrone dúdlike boarne foar it negate register.
Dizze parameter is ûnjildich as jo selektearje:
· NO foar Ynskeakelje chainout adder of
· PORT_UNUSED foar 'negate' ynfier ynskeakelje foar chainout adder? parameter of

GJIN

Spesifisearret de syngroane dúdlike boarne foar de negate register.
Dizze parameter is ûnjildich as jo selektearje:
· NO foar Ynskeakelje chainout adder of
· PORT_UNUSED foar 'negate' ynfier ynskeakelje foar chainout adder? parameter of

OFF KLOK 0

Selektearje dizze opsje om systolyske modus yn te skeakeljen. Dizze parameter is beskikber as jo selektearje 2, of 4 foar Wat is it oantal multipliers? parameter. Jo moatte de Register-útfier fan 'e adder-ienheid ynskeakelje om de systolyske fertragingsregisters te brûken.
Spesifisearret de ynfier klok sinjaal foar systolic fertraging register.
fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 55

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parameter

IP Generearre Parameter

Wearde

KLOK 2,

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_systolic_d elay_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_systolic_d elay_sclr

NONE SCLR0 SCLR1

Standert Wearde
GJIN
GJIN

Beskriuwing
Jo moatte systolyske fertragingsregisters ynskeakelje selektearje om dizze opsje yn te skeakeljen.
Spesifisearret de asynchrone dúdlike boarne foar it systolyske fertragingsregister. Jo moatte systolyske fertragingsregisters ynskeakelje selektearje om dizze opsje yn te skeakeljen.
Spesifisearret de syngroane dúdlike boarne foar it systolyske fertragingsregister. Jo moatte systolyske fertragingsregisters ynskeakelje selektearje om dizze opsje yn te skeakeljen.

8.6.7. Pipelining Tab

Tabel 36. Pipelining Tab

Parameter Pipelining Konfiguraasje

IP Generearre Parameter

Wearde

Wolle jo pipelineregister tafoegje oan de ynfier?

gui_pipelining Nee, ja

Standert Wearde
Nee

Spesifisearje asjebleaft de

latency

oantal latency klok

cycles

Elke wearde grutter 0 as 0

Wat is de boarne foar klok ynfier?

gui_input_late ncy_clock

KLOK 0, KLOK 1, KLOK 2

Wat is de boarne foar asynchrone dúdlike ynfier?

gui_input_late ncy_aclr

NONE ACLR0 ACLR1

Wat is de boarne foar syngroane dúdlike ynfier?

gui_input_late ncy_sclr

NONE SCLR0 SCLR1

KLOK0 GEEN GEEN

Beskriuwing
Selektearje Ja om in ekstra nivo fan pipelineregister yn te skeakeljen foar de ynfiersinjalen. Jo moatte opjaan in wearde grutter as 0 foar Please spesifisearje it oantal latency klok syklus parameter.
Spesifiseart de winske latency yn kloksyklusen. Ien nivo fan pipelineregister = 1 latency yn kloksyklus. Jo moatte JA selektearje foar Wolle jo pipelineregister tafoegje oan de ynfier? om dizze opsje yn te skeakeljen.
Selektearje Clock0, Clock1 of Clock2 om it pipelineregister ynfierkloksinjaal yn te skeakeljen en op te jaan. Jo moatte JA selektearje foar Wolle jo pipelineregister tafoegje oan de ynfier? om dizze opsje yn te skeakeljen.
Spesifiseart it register asynchrone dúdlike boarne foar it ekstra pipelineregister. Jo moatte JA selektearje foar Wolle jo pipelineregister tafoegje oan de ynfier? om dizze opsje yn te skeakeljen.
Spesifiseart it register syngroane dúdlike boarne foar it ekstra pipelineregister. Jo moatte JA selektearje foar Wolle jo pipelineregister tafoegje oan de ynfier? om dizze opsje yn te skeakeljen.

Intel FPGA Integer Arithmetic IP Cores User Guide 56

Stjoer Feedback

683490 | 2020.10.05 Ferstjoere Feedback

9. ALTMEMMULT (Memory-basearre Constant Coefficient Multiplier) IP Core

Oandacht:

Intel hat de stipe fan dizze IP yn Intel Quartus Prime Pro Edition ferzje 20.3 fuortsmiten. As de IP-kearn yn jo ûntwerp apparaten yn Intel Quartus Prime Pro Edition rjochtet, kinne jo de IP ferfange mei LPM_MULT Intel FPGA IP of it IP opnij generearje en jo ûntwerp kompilearje mei Intel Quartus Prime Standard Edition-software.

De ALTMEMMULT IP-kearn wurdt brûkt om op ûnthâld basearre multipliers te meitsjen mei de onchip-ûnthâldblokken fûn yn Intel FPGA's (mei M512, M4K, M9K, en MLAB-ûnthâldblokken). Dizze IP-kearn is nuttich as jo net genôch middels hawwe om de multipliers yn logika-eleminten (LEs) of tawijde multiplier-boarnen út te fieren.
De ALTMEMMULT IP-kearn is in syngroane funksje dy't in klok fereasket. De ALTMEMMULT IP-kearn ymplementearret in multiplier mei de lytste trochput en latency mooglik foar in opjûne set fan parameters en spesifikaasjes.
De folgjende figuer toant de havens foar de ALTMEMMULT IP-kearn.

figuer 21. ALTMEMMULT Ports

ALTMEMMULT

data_in[] sload_data coeff_in[]

resultaat[] result_valid load_done

sload_coeff

sclr klok
ynst

Besibbe ynformaasjefunksjes op side 71

9.1. Features
De ALTMEMMULT IP-kearn biedt de folgjende funksjes: · Makket allinnich op ûnthâld-basearre multipliers mei help fan op-chip ûnthâld blokken fûn yn
Intel FPGA's · Unterstützt gegevensbreedte fan 1 bits · Unterstützt ûndertekene en net ûndertekene gegevensfertsjintwurdigingsformaat · Unterstützt pipelining mei fêste útfierlatinsje

Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.

ISO 9001:2015 Registrearre

9. ALTMEMMULT (Memory-basearre Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05
· Bewarret meardere konstanten yn willekeurige tagong ûnthâld (RAM)
· Biedt in opsje om it RAM-bloktype te selektearjen
· Unterstützt opsjonele syngroane dúdlike en load-kontrôle ynfierpoarten
9.2. Verilog HDL Prototype
It folgjende Verilog HDL-prototype leit yn it Verilog Design File (.v) altera_mf.v yn 'e eda synteze triemtafel.
module altmemmult #(parameter coeff_representation = "SIGNED", parameter coefficient0 = "UNUSED", parameter data_representation = "SIGNED", parameter intended_device_family = "unused", parameter max_clock_cycles_per_result = 1, parameter number_of_coefficients = 1, parameter ram_block",_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") (ynputdraadklok, ynfierdraad [width_c-1: 0]coeff_in, input wire [width_d-1:0] data_in, output wire load_done, output wire [width_r-1:0] result, output wire result_valid, input wire sclr, input wire [width_s-1:0] sel, input wire sload_coeff, input wire sload_data)/* synthesis syn_black_box=1 */; einmodule
9.3. VHDL Component Declaration
De VHDL-komponintdeklaraasje is te finen yn it VHDL-ûntwerp File (.vhd) altera_mf_components.vhd yn de librariesvhdlaltera_mf directory.
komponint altmemmult generic (coeff_representation: string: = "SIGNEED"; koëffisjint0: string: = "UNUSED"; data_representation: string: = "SIGNED"; intended_device_family: string: = "net brûkt"; max_clock_cycles_per_result:natuerlike_fan_natuerlike koëffisjint: = natuerlik koëffisjint := 1; ram_block_type:string:= "AUTO"; total_latency:natuerlik; width_c:natuerlik; width_d:natuerlik; width_r:natuerlik; width_s:natuerlik:= 1; lpm_hint:string:= "UNUSED"; lpm_type:string:= "altmemmult"); port(klok:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 1) := (oaren => '0'); data_in:in std_logic_vector(width_d-0 downto 1);

Intel FPGA Integer Arithmetic IP Cores User Guide 58

Stjoer Feedback

9. ALTMEMMULT (Memory-basearre Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05

load_done:út std_logic; resultaat: út std_logic_vector (width_r-1 nei 0); result_valid:out std_logic; sclr:in std_logic:= '0'; sel:in std_logic_vector(width_s-1 downto 0) := (oaren => '0'); sload_coeff:in std_logic:= '0'; sload_data:in std_logic:= '0'); ein komponint;

9.4. Havens

De folgjende tabellen listje de ynfier- en útfierpoarten foar de ALTMEMMULT IP-kearn.

tabel 37. ALTMEMMULT Input Ports

Port Namme

Required

Beskriuwing

klok

Ja

Klok ynfier nei de multiplier.

coeff_in[]

Nee

Koëffisjint ynfier haven foar de multiplier. De grutte fan de ynfierpoarte hinget ôf fan de WIDTH_C parameterwearde.

data_in[]

Ja

Data ynfier haven oan de multiplier. De grutte fan de ynfierpoarte hinget ôf fan de WIDTH_D parameterwearde.

sclr

Nee

Syngroane dúdlike ynfier. As net brûkt wurdt, is de standertwearde aktyf heech.

sel[]

Nee

Fêste koëffisjint seleksje. De grutte fan de ynfierpoarte hinget ôf fan de WIDTH_S

parameter wearde.

sload_coeff

Nee

Syngroane load koëffisjint ynfier haven. Ferfangt de aktuele selektearre koeffizientwearde mei de wearde oantsjutte yn de coeff_in-ynfier.

sload_data

Nee

Syngroane load gegevens ynfier haven. Sinjaal dat nije fermannichfâldigje operaasje spesifisearret en annulearret alle besteande fermannichfâldigjen operaasje. As de parameter MAX_CLOCK_CYCLES_PER_RESULT in wearde hat fan 1, wurdt de sload_data-ynfierpoarte negearre.

tabel 38. ALTMEMMULT Utfier havens

Port Namme

Required

Beskriuwing

resultaat[]

Ja

Multiplier útfier haven. De grutte fan de ynfier haven hinget ôf fan de WIDTH_R parameter wearde.

result_valid

Ja

Jout oan wannear't de útfier it jildich resultaat is fan in folsleine fermannichfâldigje. As de parameter MAX_CLOCK_CYCLES_PER_RESULT in wearde hat fan 1, wurdt de output_valide útfierpoarte net brûkt.

load_done

Nee

Jout oan wannear't de nije koeffizient klear is mei laden. It sinjaal load_done beweart as in nije koeffizient klear is mei it laden. Behalven as it load_done-sinjaal heech is, kin gjin oare koeffisientwearde yn it ûnthâld laden wurde.

9.5. Parameters

De folgjende tabel listet de parameters foar de ALTMEMMULT IP-kearn.

Tabel 39.
WIDTH_D WIDTH_C

ALTMEMMULT Parameters
Parameter Namme

Type Required

Beskriuwing

Integer Ja

Spesifisearret de breedte fan de data_in[] haven.

Integer Ja

Spesifisearret de breedte fan de coeff_in[] haven. fierder…

Stjoer Feedback

Intel FPGA Integer Arithmetic IP Cores User Guide 59

9. ALTMEMMULT (Memory-basearre Constant Coefficient Multiplier) IP Core 683490 | 2020.10.05

Parameternamme WIDTH_R WIDTH

Dokuminten / Resources

intel FPGA Integer Arithmetic IP Cores [pdf] Brûkersgids
FPGA Integer Arithmetic IP Cores, Integer Arithmetic IP Cores, Arithmetic IP Cores, IP Cores

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *