Nuclee IP aritmetice FPGA întregi

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic
Actualizat pentru Intel® Quartus® Prime Design Suite: 20.3

Versiunea online Trimite feedback

UG-01063

ID: 683490 Versiune: 2020.10.05

Cuprins
Cuprins
1. Intel FPGA Integer Arithmetic IP Cores…………………………………………………………………………….. 5
2. LPM_COUNTER (Contor) IP Core……………………………………………………………………………….. 7 2.1. Caracteristici…………………………………………………………………………………………………………7 2.2. Prototipul Verilog HDL……………………………………………………………………………….. 8 2.3. Declarația componentelor VHDL……………………………………………………………………………….8 2.4. Declarația VHDL LIBRARY_USE………………………………………………………………… 9 2.5. Porturi………………………………………………………………………………………………………………..9 2.6. Parametri…………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divizor) Intel FPGA IP Core………………………………………………………….. 12 3.1. Caracteristici………………………………………………………………………………………………. 12 3.2. Prototipul Verilog HDL……………………………………………………………………………… 12 3.3. Declarația componentelor VHDL…………………………………………………………………….. 13 3.4. Declarație VHDL LIBRARY_USE…………………………………………………………………. 13 3.5. Porturi………………………………………………………………………………………………………… 13 3.6. Parametri…………………………………………………………………………………………… 14
4. LPM_MULT (multiplicator) IP Core…………………………………………………………………………. 16 4.1. Caracteristici………………………………………………………………………………………………. 16 4.2. Prototipul Verilog HDL……………………………………………………………………………… 17 4.3. Declarația componentelor VHDL………………………………………………………………….. 17 4.4. Declarația VHDL LIBRARY_USE…………………………………………………………………. 17 4.5. Semnale………………………………………………………………………………………………………… 18 4.6. Parametri pentru dispozitivele Stratix V, Arria V, Cyclone V și Intel Cyclone 10 LP…………… 18 4.6.1. Fila Generale………………………………………………………………………………18 4.6.2. General 2 Fila……………………………………………………………………………… 19 4.6.3. Fila Conducte……………………………………………………………………………… 19 4.7. Parametri pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX……….. 20 4.7.1. Fila General………………………………………………………………………………20 4.7.2. General 2 Fila……………………………………………………………………………… 20 4.7.3. Conducte……………………………………………………………………………………………21
5. LPM_ADD_SUB (Adunator/Scăzător)……………………………………………………………………………… 22 5.1. Caracteristici………………………………………………………………………………………………. 22 5.2. Prototipul Verilog HDL……………………………………………………………………………… 23 5.3. Declarația componentelor VHDL…………………………………………………………………….. 23 5.4. Declarație VHDL LIBRARY_USE…………………………………………………………………. 23 5.5. Porturi………………………………………………………………………………………………………… 23 5.6. Parametri…………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparator)…………………………………………………………………………… 26 6.1. Caracteristici………………………………………………………………………………………………. 26 6.2. Prototipul Verilog HDL……………………………………………………………………………… 27 6.3. Declarația componentelor VHDL…………………………………………………………………….. 27 6.4. Declarația VHDL LIBRARY_USE…………………………………………………………………. 27 6.5. Porturi………………………………………………………………………………………………………… 27 6.6. Parametri…………………………………………………………………………………………… 28

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 2

Trimiteți feedback

Cuprins

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core……………………………………………… 30
7.1. Caracteristicile codificatorului ALTEC……………………………………………………………………………………..31 7.2. Prototip Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototip Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Declarația componentei VHDL (ALTECC_ENCODER)…………………………………………………33 7.5. Declarația componentei VHDL (ALTECC_DECODER)………………………………………………33 7.6. Declarația VHDL LIBRARY_USE…………………………………………………………………. 33 7.7. Porturi pentru codificator……………………………………………………………………………………………… 33 7.8. Porturi decodor……………………………………………………………………………………………………34 7.9. Parametrii codificatorului……………………………………………………………………………… 34 7.10. Parametrii decodorului ……………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………. 36
8.1. Caracteristici………………………………………………………………………………………………. 37 8.1.1. Preasumator………………………………………………………………………………….. 38 8.1.2. Registrul de întârziere sistolică………………………………………………………………….. 40 8.1.3. Constanta de preîncărcare……………………………………………………………………………… 43 8.1.4. Acumulator dublu……………………………………………………………………………… 43
8.2. Prototipul Verilog HDL……………………………………………………………………………… 44 8.3. Declarația componentelor VHDL………………………………………………………………….. 44 8.4. Declarația VHDL LIBRARY_USE…………………………………………………………………. 44 8.5. Semnale………………………………………………………………………………………………………… 44 8.6. Parametri…………………………………………………………………………………………… 47
8.6.1. Fila General……………………………………………………………………………………47 8.6.2. Fila Moduri suplimentare………………………………………………………………………………….. 47 8.6.3. Fila Multiplicatori…………………………………………………………………………………….. 49 8.6.4. Fila Preadder………………………………………………………………………………. 51 8.6.5. Fila Acumulator……………………………………………………………………………….. 53 8.6.6. Fila Sistolic/Chainout…………………………………………………………………. 55 8.6.7. Fila Conducte……………………………………………………………………………… 56
9. ALTMEMMULT (Multiplicator de coeficient constant bazat pe memorie) IP Core………… 57
9.1. Caracteristici………………………………………………………………………………………………. 57 9.2. Prototipul Verilog HDL……………………………………………………………………………… 58 9.3. Declarația componentelor VHDL…………………………………………………………………….. 58 9.4. Porturi………………………………………………………………………………………………………… 59 9.5. Parametri…………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (acumulare multiplă) IP Core………………………………………………… 61
10.1. Caracteristici…………………………………………………………………………………………….. 62 10.2. Prototipul Verilog HDL……………………………………………………………………………………..62 10.3. Declarația componentelor VHDL………………………………………………………………… 63 10.4. Declarația VHDL LIBRARY_USE…………………………………………………………………63 10.5. Porturile…………………………………………………………………………………………………. 63 10.6. Parametri…………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiplicare-adăugător) IP Core……………………………………………………………………..69
11.1. Caracteristici…………………………………………………………………………………………….. 71 11.2. Prototipul Verilog HDL……………………………………………………………………………………..72 11.3. Declarația componentelor VHDL………………………………………………………………… 72 11.4. Declarația VHDL LIBRARY_USE…………………………………………………………………72

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 3

Cuprins
11.5. Porturile…………………………………………………………………………………………………. 72 11.6. Parametri…………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Multiplicator complex) IP Core……………………………………………… 86 12.1. Înmulțirea complexă……………………………………………………………………………………. 86 12.2. Reprezentarea canonică……………………………………………………………………………… 87 12.3. Reprezentarea convențională……………………………………………………………………. 87 12.4. Caracteristici…………………………………………………………………………………………….. 88 12.5. Prototipul Verilog HDL……………………………………………………………………………………………..88 12.6. Declarația componentelor VHDL………………………………………………………………… 89 12.7. Declarația VHDL LIBRARY_USE…………………………………………………………………89 12.8. Semnale…………………………………………………………………………………………………………. 89 12.9. Parametri…………………………………………………………………………………………………. 90
13. ALTSQRT (rădăcină pătrată întreagă) IP Core……………………………………………………………92 13.1. Caracteristici…………………………………………………………………………………………….. 92 13.2. Prototipul Verilog HDL……………………………………………………………………………………………..92 13.3. Declarația componentelor VHDL………………………………………………………………… 93 13.4. Declarația VHDL LIBRARY_USE…………………………………………………………………93 13.5. Porturile…………………………………………………………………………………………………. 93 13.6. Parametri…………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Adăugător paralel) IP Core………………………………………………………….. 95 14.1. Caracteristica………………………………………………………………………………………………………….95 14.2. Prototipul Verilog HDL……………………………………………………………………………………………..95 14.3. Declarația componentelor VHDL………………………………………………………………… 96 14.4. Declarația VHDL LIBRARY_USE…………………………………………………………………96 14.5. Porturile…………………………………………………………………………………………………. 96 14.6. Parametri…………………………………………………………………………………………………. 97
15. Ghidul utilizatorului nuclee IP aritmetice întregi Arhive de documente………………………………… 98
16. Istoricul revizuirilor documentului pentru Ghidul utilizatorului de nuclee IP aritmetice Intel FPGA…. 99

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 4

Trimiteți feedback

683490 | 2020.10.05 Trimiteți feedback

1. Core Intel FPGA Integer Arithmetic IP

Puteți utiliza nucleele IP întregi Intel® FPGA pentru a efectua operații matematice în proiectarea dvs.

Aceste funcții oferă o sinteză logică și o implementare a dispozitivului mai eficiente decât codificarea propriilor funcții. Puteți personaliza nucleele IP pentru a se potrivi cerințelor dvs. de proiectare.

Miezurile IP aritmetice cu numere întregi Intel sunt împărțite în următoarele două categorii: · Bibliotecă de module parametrizate (LPM) Miezuri IP · Miezuri IP specifice Intel (ALT)

Următorul tabel listează nucleele IP aritmetice întregi.

Tabelul 1.

Lista de nuclee IP

Core IP

Miezuri IP LPM

LPM_COUNTER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Miezuri IP specifice Intel (ALT) ALTEC

Funcție terminatăview Multiplicator Counter Divider
Comparator sumator sau scător
Codificator/Decodor ECC

Dispozitiv acceptat
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 a continuat...

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

1. Intel FPGA Integer Arithmetic IP Cores 683490 | 2020.10.05

Nuclee IP Intel FPGA Multiply Adder sau ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

Funcție terminatăview Multiplicator-Adunator
Multiplicator de coeficient constant bazat pe memorie
Multiplicator-Acumulator Multiplicator-Adder
Multiplicator complex
Întregul pătrat-rădăcină
Adder paralel

Dispozitiv acceptat
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

Informații conexe
· Note de lansare pentru FPGA Intel și dispozitive programabile
· Introducere în Intel FPGA IP Cores Oferă mai multe informații despre Intel FPGA IP Cores.
· Ghidul utilizatorului de nuclee IP în virgulă mobilă Oferă mai multe informații despre nucleele IP în virgulă mobilă Intel FPGA.
· Introducere în nucleele Intel FPGA IP Oferă informații generale despre toate nucleele Intel FPGA IP, inclusiv parametrizarea, generarea, modernizarea și simularea nucleelor ​​IP.
· Crearea de scripturi de simulare IP și Qsys independente de versiune Creați scripturi de simulare care nu necesită actualizări manuale pentru actualizări de software sau IP.
· Orientări privind cele mai bune practici în managementul proiectelor pentru gestionarea eficientă și portabilitatea proiectului dumneavoastră și a IP files.
· Ghidul utilizatorului Integer Arithmetic IP Cores Arhive de documente la pagina 98 Oferă o listă de ghiduri ale utilizatorului pentru versiunile anterioare ale Integer Arithmetic IP Cores.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 6

Trimiteți feedback

683490 | 2020.10.05 Trimiteți feedback

2. LPM_COUNTER (Contor) IP Core

Figura 1.

Nucleul IP LPM_COUNTER este un contor binar care creează contoare ascendente, contoare negative și contoare ascendenți sau descendenți cu ieșiri de până la 256 de biți lățime.

Următoarea figură arată porturile pentru nucleul IP LPM_COUNTER.

LPM_COUNTER porturi

LPM_COUNTER

ssclr sload date sset[]

q[]

sus jos

cout

aclr încărcare aset

clk_en cnt_en cin
inst

2.1. Caracteristici
Nucleul IP LPM_COUNTER oferă următoarele caracteristici: · generează contoare sus, jos și sus/jos · generează următoarele tipuri de contoare:
— Binar simplu – contorul crește începând de la zero sau descrește începând de la 255
— Modul – contorul crește sau scade de la valoarea modulului specificată de utilizator și se repetă
· Suportă porturi de intrare opționale de ștergere, încărcare și setare sincrone. · Acceptă porturi de intrare opționale de ștergere, încărcare și setare asincrone.

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

2. LPM_COUNTER (Contor) IP Core
683490 | 2020.10.05
2.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
modul lpm_counter ( q, date, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); parametrul lpm_type = „lpm_counter”; parametrul lpm_width = 1; parametrul lpm_modulus = 0; parametrul lpm_direction = „NEUTILIZAT”; parametrul lpm_avalue = „NEUTILIZAT”; parametrul lpm_svalue = „NEUTILIZAT”; parametrul lpm_pvalue = „NEUTILIZAT”; parametrul lpm_port_updown = „PORT_CONNECTIVITY”; parametrul lpm_hint = „NEUTILIZAT”; ieșire [lpm_width-1:0] q; debit de ieșire; ieșire [15:0] eq; intrare cin; date de intrare [lpm_width-1:0]; ceas de intrare, clk_en, cnt_en, updown; input aset, aclr, aload; intrare sset, sclr, sload; modul final
2.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) LPM_PACK.vhd în directorul librariesvhdllpm.
componenta LPM_COUNTER generic ( LPM_WIDTH : natural; LPM_MODULUS : natural := 0; LPM_DIRECTION : șir := „UNUSED”; LPM_AVALUE : șir := „UNUSED”; LPM_SVALUE : șir := „UNUSED”; LPM_PORT_UPDOWN : șir:_CONNECTIVITY: ; LPM_PVALUE : string := „UNUSED” ; port (DATE: în std_logic_vector(LPM_WIDTH-1 până la 0):= (ALTE =>
„0”); CLOCK : în std_logic ; CLK_EN : în std_logic := '1'; CNT_EN : în std_logic := '1'; UPDOWN : în std_logic := '1'; SLOAD : în std_logic := '0'; SSET : în std_logic := '0'; SCLR : în std_logic := '0'; ÎNCĂRCARE : în std_logic := '0'; ASET : în std_logic := '0'; ACLR : în std_logic := '0'; CIN : în std_logic := '1'; COUT: out std_logic := '0'; Q: out std_logic_vector(LPM_WIDTH-1 până la 0); EQ: out std_logic_vector(15 până la 0));
componentă de capăt;

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 8

Trimiteți feedback

2. LPM_COUNTER (Contor) IP Core 683490 | 2020.10.05

2.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ lpm; UTILIZAȚI lpm.lpm_components.all;

2.5. Porturi

Următoarele tabele listează porturile de intrare și de ieșire pentru nucleul IP LPM_COUNTER.

Tabelul 2.

LPM_COUNTER porturi de intrare

Numele portului

Necesar

Descriere

date[]

Nu

Introducerea de date în paralel la contor. Mărimea portului de intrare depinde de valoarea parametrului LPM_WIDTH.

ceas

Da

Intrare de ceas declanșată de margine pozitivă.

clk_en

Nu

Intrare activare ceas pentru a activa toate activitățile sincrone. Dacă este omisă, valoarea implicită este 1.

cnt_en

Nu

Intrarea de activare a numărului pentru a dezactiva contorizarea atunci când este afirmată scăzut fără a afecta sload, sset sau sclr. Dacă este omisă, valoarea implicită este 1.

sus jos

Nu

Controlează direcția numărării. Când este afirmat ridicat (1), direcția de numărare este în sus, iar când este afirmată scăzut (0), direcția de numărare este în jos. Dacă este utilizat parametrul LPM_DIRECTION, portul updown nu poate fi conectat. Dacă LPM_DIRECTION nu este utilizat, portul sus în jos este opțional. Dacă este omisă, valoarea implicită este mai mare (1).

cin

Nu

Purtare la bitul de comandă scăzută. Pentru contoarele crescătoare, comportamentul intrării cin este

identic cu comportamentul intrării cnt_en. Dacă este omisă, valoarea implicită este 1

(VCC).

aclr

Nu

Intrare clară asincronă. Dacă atât aset, cât și aclr sunt folosite și afirmate, aclr înlocuiește aset. Dacă este omisă, valoarea implicită este 0 (dezactivată).

aset

Nu

Intrare set asincron. Specifică ieșirile q[] ca toate 1 sau la valoarea specificată de parametrul LPM_AVALUE. Dacă atât porturile aset, cât și aclr sunt utilizate și afirmate, valoarea portului aclr prevalează pe valoarea portului aset. Dacă este omisă, valoarea implicită este 0, dezactivată.

încărcat

Nu

Intrare de încărcare asincronă care încarcă asincron contorul cu valoarea de pe intrarea de date. Când este utilizat portul de încărcare, portul de date[] trebuie conectat. Dacă este omisă, valoarea implicită este 0, dezactivată.

sclr

Nu

Intrare clară sincronă care șterge contorul de pe următorul margine activă a ceasului. Dacă ambele porturi sset și sclr sunt utilizate și afirmate, valoarea portului sclr suprascrie valoarea portului sset. Dacă este omisă, valoarea implicită este 0, dezactivată.

setat

Nu

Intrare de setare sincronă care setează contorul pe următorul front activ al ceasului. Specifică valoarea ieșirilor q ca toate 1 sau la valoarea specificată de parametrul LPM_SVALUE. Dacă ambele porturi sset și sclr sunt utilizate și afirmate,
valoarea portului sclr suprascrie valoarea portului sset. Dacă este omisă, valoarea implicită este 0 (dezactivată).

sload

Nu

Intrare de încărcare sincronă care încarcă contorul cu date[] pe următorul front activ al ceasului. Când este utilizat portul de încărcare, portul de date[] trebuie conectat. Dacă este omisă, valoarea implicită este 0 (dezactivată).

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 9

2. LPM_COUNTER (Contor) IP Core 683490 | 2020.10.05

Tabelul 3.

LPM_COUNTER porturi de ieșire

Numele portului

Necesar

Descriere

q[]

Nu

Ieșire de date de la contor. Dimensiunea portului de ieșire depinde de

Valoarea parametrului LPM_WIDTH. Fie q[], fie cel puțin unul dintre porturile eq[15..0].

trebuie să fie conectat.

eq[15..0]

Nu

Ieșire de decodare a contorului. Portul eq[15..0] nu este accesibil în editorul de parametri deoarece parametrul acceptă doar AHDL.
Trebuie conectat fie portul q[], fie portul eq[]. Pot fi utilizate până la c eq porturi (0 <= c <= 15). Sunt decodificate doar cele 16 cele mai mici valori de numărare. Când valoarea numărului este c, ieșirea eqc este declarată ridicată (1). De example, când numărul este 0, eq0 = 1, când numărul este 1, eq1 = 1, iar când numărul este 15, eq 15 = 1. Ieșirea decodificată pentru valori de numărare de 16 sau mai mari necesită decodare externă. Ieșirile eq[15..0] sunt asincrone cu ieșirea q[].

cout

Nu

Portul de realizare al bitului MSB al contorului. Poate fi folosit pentru a se conecta la un alt contor pentru a crea un contor mai mare.

2.6. Parametrii

Următorul tabel listează parametrii pentru nucleul IP LPM_COUNTER.

Tabelul 4.

LPM_COUNTER Parametri

Nume parametru

Tip

LPM_WIDTH

Întreg

LPM_DIRECTION

Şir

LPM_MODULUS LPM_AVALUE

Întreg
Număr întreg/ șir

LPM_SVALUE LPM_HINT

Număr întreg/ șir
Şir

LPM_TYPE

Şir

Obligatoriu Da Nu Nu Nu
Nu Nu
Nu

Descriere
Specifică lățimile porturilor de date[] și q[], dacă sunt utilizate.
Valorile sunt SUS, JOS și NEUTILIZATE. Dacă este utilizat parametrul LPM_DIRECTION, portul updown nu poate fi conectat. Când portul updown nu este conectat, valoarea implicită a parametrului LPM_DIRECTION este UP.
Numărul maxim, plus unu. Numărul de stări unice din ciclul contorului. Dacă valoarea de încărcare este mai mare decât parametrul LPM_MODULUS, comportamentul contorului nu este specificat.
Valoare constantă care este încărcată atunci când activul este declarat ridicat. Dacă valoarea specificată este mai mare sau egală cu , comportamentul contorului este un nivel logic nedefinit (X), unde este LPM_MODULUS, dacă este prezent, sau 2 ^ LPM_WIDTH. Intel vă recomandă să specificați această valoare ca număr zecimal pentru modelele AHDL.
Valoare constantă care este încărcată pe marginea ascendentă a portului de ceas atunci când portul sset este declarat ridicat. Intel vă recomandă să specificați această valoare ca număr zecimal pentru modelele AHDL.
Când instanțiați o funcție de bibliotecă de module parametrizate (LPM) într-un proiect VHDL File (.vhd), trebuie să utilizați parametrul LPM_HINT pentru a specifica un parametru specific Intel. De exampfișier: LPM_HINT = „CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES”
Valoarea implicită este UNUSED.
Identifică numele entității bibliotecii de module parametrizate (LPM) în proiectarea VHDL files.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 10

Trimiteți feedback

2. LPM_COUNTER (Contor) IP Core 683490 | 2020.10.05

Nume parametru INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

Tastați String String
Şir
Şir

Necesar Nu Nu
Nu
Nu

Descriere
Acest parametru este utilizat în scopuri de modelare și simulare comportamentală. Acest parametru este utilizat în scopuri de modelare și simulare comportamentală. Editorul de parametri calculează valoarea acestui parametru.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul CARRY_CNT_EN în proiectarea VHDL files. Valorile sunt SMART, ON, OFF și UNUSED. Activează funcția LPM_COUNTER să propage semnalul cnt_en prin lanțul de transport. În unele cazuri, setarea parametrului CARRY_CNT_EN poate avea un impact ușor asupra vitezei, așa că este posibil să doriți să o dezactivați. Valoarea implicită este SMART, care oferă cel mai bun compromis între dimensiune și viteză.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul LABWIDE_SCLR în proiectarea VHDL files. Valorile sunt ON, OFF sau NEUTILIZATE. Valoarea implicită este ON. Vă permite să dezactivați utilizarea funcției LABwide sclr găsită în familiile de dispozitive învechite. Dezactivarea acestei opțiuni crește șansele de a utiliza complet LAB-urile parțial umplute și, astfel, poate permite o densitate logică mai mare atunci când SCLR nu se aplică unui LAB complet. Acest parametru este disponibil pentru compatibilitate inversă, iar Intel vă recomandă să nu utilizați acest parametru.
Specifică utilizarea portului de intrare sus în jos. Dacă este omisă, valoarea implicită este PORT_CONNECTIVITY. Când valoarea portului este setată la PORT_USED, portul este tratat ca fiind utilizat. Când valoarea portului este setată la PORT_UNUSED, portul este tratat ca neutilizat. Când valoarea portului este setată la PORT_CONNECTIVITY, utilizarea portului este determinată prin verificarea conectivității portului.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 11

683490 | 2020.10.05 Trimiteți feedback

3. LPM_DIVIDE (divizor) Intel FPGA IP Core

Figura 2.

Miezul IP LPM_DIVIDE Intel FPGA implementează un divizor pentru a împărți o valoare de intrare a numărătorului la o valoare a intrării numitorului pentru a produce un coeficient și un rest.

Următoarea figură arată porturile pentru nucleul IP LPM_DIVIDE.

LPM_DIVIDE Porturi

LPM_DIVIDE

număr[] denom[] ceas

coeficient[] rămâne[]

clken aclr

inst

3.1. Caracteristici
Nucleul IP LPM_DIVIDE oferă următoarele caracteristici: · generează un divizor care împarte o valoare de intrare a numărătorului la o intrare a numitorului
valoare pentru a produce un cot și un rest. · Acceptă lățimea datelor de 1 biți. · Acceptă formatul de reprezentare a datelor semnate și nesemnate atât pentru numărător
și valorile numitorului. · Sprijină optimizarea zonei sau a vitezei. · Oferă o opțiune pentru a specifica o ieșire pozitivă a restului. · Suportă pipelining configurabil latență de ieșire. · Acceptă porturi opționale asincrone clare și activare ceas.

3.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
modul lpm_divide ( quotient, remain, number, denom, clock, clken, aclr); parametrul lpm_type = „lpm_divide”; parametrul lpm_widthn = 1; parametrul lpm_widthd = 1; parametrul lpm_nrepresentation = „UNSIGNED”; parametrul lpm_drepresentation = „UNSIGNED”; parametrul lpm_remainderpositive = „TRUE”; parametrul lpm_pipeline = 0;

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

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

parametrul lpm_hint = „NEUTILIZAT”; ceas de intrare; clken de intrare; intrare aclr; intrare [lpm_widthn-1:0] număr; intrare [lpm_widthd-1:0] denom; ieșire [lpm_widthn-1:0] coeficient; ieșirea [lpm_widthd-1:0] rămâne; modul final

3.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) LPM_PACK.vhd în directorul librariesvhdllpm.
componenta LPM_DIVIDE generică (LPM_WIDTHN : natural; LPM_WIDTHD : natural;
LPM_NREPRESENTATION : șir := „UNSIGNED”; LPM_DREPRESENTATION : șir := „UNSIGNED”; LPM_PIPELINE : natural := 0; LPM_TYPE : șir := L_DIVIDE; LPM_HINT : șir := „NEUTILIZAT”); port (NUMER: în std_logic_vector(LPM_WIDTHN-1 până la 0); DENOM: în std_logic_vector(LPM_WIDTHD-1 până la 0); ACLR: în std_logic:= '0'; CLOCK: în std_logic:= '0'; CLKEN: în std_logic := '1'; QUOTIENT: out std_logic_vector(LPM_WIDTHN-1 downto 0 REMAIN: out std_logic_vector(LPM_WIDTHD-1 downto 0)); componentă de capăt;

3.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ lpm; UTILIZAȚI lpm.lpm_components.all;

3.5. Porturi

Următoarele tabele listează porturile de intrare și de ieșire pentru nucleul IP LPM_DIVIDE.

Tabelul 5.

LPM_DIVIDE Porturi de intrare

Numele portului

Necesar

număr[]

Da

denumire[]

Da

Descriere
Introducerea datelor de la numărător. Dimensiunea portului de intrare depinde de valoarea parametrului LPM_WIDTHN.
Introducerea datelor numitorului. Dimensiunea portului de intrare depinde de valoarea parametrului LPM_WIDTHD.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 13

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

Nume port ceas clken
aclr

Necesar Nu Nu
Nu

Descriere
Intrare ceas pentru utilizare pipeline. Pentru valorile LPM_PIPELINE altele decât 0 (implicit), portul de ceas trebuie să fie activat.
Ceasul permite utilizarea canalizată. Când portul clken este declarat ridicat, are loc operația de divizare. Când semnalul este scăzut, nu are loc nicio operațiune. Dacă este omisă, valoarea implicită este 1.
Port de golire asincron utilizat în orice moment pentru a reseta conducta la toate „0” asincron la intrarea ceasului.

Tabelul 6.

LPM_DIVIDE Porturi de ieșire

Numele portului

Necesar

Descriere

coeficient[]

Da

Ieșire de date. Mărimea portului de ieșire depinde de LPM_WIDTHN

valoarea parametrului.

rămâne[]

Da

Ieșire de date. Dimensiunea portului de ieșire depinde de LPM_WIDTHD

valoarea parametrului.

3.6. Parametrii

Următorul tabel listează parametrii pentru nucleul IP LPM_DIVIDE Intel FPGA.

Nume parametru

Tip

Necesar

Descriere

LPM_WIDTHN

Întreg

Da

Specifică lățimile numerelor[] și

coeficient[] porturi. Valorile sunt de la 1 la 64.

LPM_WIDTHD

Întreg

Da

Specifică lățimile denom[] și

rămân[] porturi. Valorile sunt de la 1 la 64.

LPM_NREPRESENTATION LPM_DREPRESENTATION

String String

Nu

Reprezentarea prin semn a introducerii numărătorului.

Valorile sunt SIGNED și UNSIGNED. Când aceasta

parametrul este setat la SIGNED, divizor

interpretează intrarea număr[] ca doi semnați

completa.

Nu

Reprezentarea prin semn a intrării numitorului.

Valorile sunt SIGNED și UNSIGNED. Când aceasta

parametrul este setat la SIGNED, divizor

interpretează intrarea denom[] ca doi semnați

completa.

LPM_TYPE

Şir

Nu

Identifică biblioteca parametrizată

nume de entitate module (LPM) în proiectarea VHDL

files (.vhd).

LPM_HINT

Şir

Nu

Când instanțiați o bibliotecă de

modulele parametrizate (LPM) funcţionează în a

Design VHDL File (.vhd), trebuie să utilizați

Parametrul LPM_HINT pentru a specifica un Intel-

parametru specific. De example: LPM_HINT

= „CHAIN_SIZE = 8,

ONE_INPUT_IS_CONSTANT = YES” The

valoarea implicită este NEUTILIZATĂ.

LPM_REMAINDERPOSITIVE

Şir

Nu

Parametru specific Intel. Trebuie să utilizați

Parametrul LPM_HINT pentru a specifica

Parametrul LPM_REMAINDERPOSITIVE în

Design VHDL files. Valorile sunt TRUE sau FALSE.

Dacă acest parametru este setat la TRUE, atunci

valoarea portului rămas[] trebuie să fie mai mare

a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 14

Trimiteți feedback

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

Nume parametru

Tip

MAXIMIZE_SPEED

Întreg

LPM_PIPELINE

Întreg

INTENDED_DEVICE_FAMILY SKIP_BITS

Șir întreg

Nr. obligatoriu
Nu Nu Nu

Descriere
decât sau egal cu zero. Dacă acest parametru este setat la TRUE, atunci valoarea portului rest[] este fie zero, fie valoarea este același semn, pozitiv sau negativ, ca și valoarea portului numeric. Pentru a reduce suprafața și a îmbunătăți viteza, Intel recomandă setarea acestui parametru la TRUE în operațiunile în care restul trebuie să fie pozitiv sau în care restul nu este important.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul MAXIMIZE_SPEED în proiectarea VHDL files. Valorile sunt [0..9]. Dacă este utilizat, software-ul Intel Quartus Prime încearcă să optimizeze o anumită instanță a funcției LPM_DIVIDE pentru viteză și nu pentru rutabilitate și anulează setarea opțiunii logice Tehnica de optimizare. Dacă MAXIMIZE_SPEED nu este folosită, se folosește în schimb valoarea opțiunii Tehnica de optimizare. Dacă valoarea MAXIMIZE_SPEED este 6 sau mai mare, compilatorul optimizează nucleul IP LPM_DIVIDE pentru o viteză mai mare prin utilizarea lanțurilor de transport; dacă valoarea este 5 sau mai mică, compilatorul implementează designul fără lanțuri de transport.
Specifică numărul de cicluri de ceas de latență asociate cu ieșirile coeficient[] și rest[]. O valoare de zero (0) indică faptul că nu există latență și că este instanțiată o funcție pur combinațională. Dacă este omisă, valoarea implicită este 0 (fără conducte). Nu puteți specifica o valoare pentru parametrul LPM_PIPELINE mai mare decât LPM_WIDTHN.
Acest parametru este utilizat în scopuri de modelare și simulare comportamentală. Editorul de parametri calculează valoarea acestui parametru.
Permite o divizare fracțională mai eficientă a biților pentru a optimiza logica pe biții conducători prin furnizarea numărului de GND conducători nucleului IP LPM_DIVIDE. Specificați numărul de GND lider pe ieșirea coeficientului pentru acest parametru.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 15

683490 | 2020.10.05 Trimiteți feedback

4. LPM_MULT (multiplicator) IP Core

Figura 3.

Nucleul IP LPM_MULT implementează un multiplicator pentru a multiplica două valori de date de intrare pentru a produce un produs ca rezultat.

Următoarea figură arată porturile pentru nucleul IP LPM_MULT.

LPM_Mult Ports

LPM_MULT date de ceasa[] rezultat[] datab[] aclr/sclr clken
inst

Informații înrudite Caracteristici la pagina 71

4.1. Caracteristici
Nucleul LPM_MULT IP oferă următoarele caracteristici: · Generează un multiplicator care înmulțește două valori de date de intrare · Acceptă lățimea datelor de 1 de biți · Acceptă formatul de reprezentare a datelor semnate și nesemnate · Acceptă optimizarea zonei sau a vitezei · Suportă pipeline cu latență de ieșire configurabilă · Oferă un opțiune pentru implementare în procesarea digitală a semnalului dedicată (DSP)
bloc de circuite sau elemente logice (LE) Notă: Când construiți multiplicatori mai mari decât dimensiunea suportată nativ, poate/
va fi un impact asupra performanței rezultat din cascada blocurilor DSP. · Suportă opționale clearance-ul asincron și porturile de intrare pentru activarea ceasului · Suportă opțional clearance-ul sincron pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

4. LPM_MULT (Multiplicator) IP Core 683490 | 2020.10.05
4.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
modul lpm_mult ( rezultat, dataa, datab, sum, clock, clken, aclr ) parametrul lpm_type = “lpm_mult”; parametrul lpm_widtha = 1; parametrul lpm_widthb = 1; parametrul lpm_widths = 1; parametrul lpm_widthp = 1; parametrul lpm_representation = „UNSIGNED”; parametrul lpm_pipeline = 0; parametrul lpm_hint = „NEUTILIZAT”; ceas de intrare; clken de intrare; intrare aclr; intrare [lpm_widtha-1:0] datea; intrare [lpm_widthb-1:0] datab; intrare [lpm_widths-1:0] suma; rezultat [lpm_widthp-1:0] rezultat; modul final
4.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) LPM_PACK.vhd în directorul librariesvhdllpm.
componenta LPM_MULT generic ( LPM_WIDTHA : natural; LPM_WIDTHB : natural; LPM_WIDTHS : natural := 1; LPM_WIDTHP : natural;
LPM_REPRESENTATION : șir := „UNSIGNED”; LPM_PIPELINE : natural := 0; LPM_TYPE: șir := L_MULT; LPM_HINT : șir := „NEUTILIZAT”); port ( DATAA: în std_logic_vector(LPM_WIDTHA-1 până la 0); DATAB: în std_logic_vector(LPM_WIDTHB-1 până la 0); ACLR: în std_logic:= '0'; CLOCK: în std_logic:= '0'; CLKEN: în std_logic := '1'; SUM : în std_logic_vector(LPM_WIDTHS-1 downto 0) := (OTHERS => '0': out std_logic_vector(LPM_WIDTHP-1 downto 0)); componentă de capăt;
4.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ lpm; UTILIZAȚI lpm.lpm_components.all;

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 17

4. LPM_MULT (Multiplicator) IP Core 683490 | 2020.10.05

4.5. Semnale

Tabelul 7.

Semnale de intrare LPM_MULT

Nume semnal

Necesar

Descriere

datea[]

Da

Intrarea datelor.

Pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX, dimensiunea semnalului de intrare depinde de valoarea parametrului Dataa width.

Pentru dispozitivele mai vechi și Intel Cyclone 10 LP, dimensiunea semnalului de intrare depinde de valoarea parametrului LPM_WIDTHA.

datab[]

Da

Intrarea datelor.

Pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX, dimensiunea semnalului de intrare depinde de valoarea parametrului Datab width.

Pentru dispozitivele mai vechi și Intel Cyclone 10 LP, dimensiunea semnalului de intrare depinde

pe valoarea parametrului LPM_WIDTHB.

ceas

Nu

Intrare ceas pentru utilizare pipeline.

Pentru dispozitivele mai vechi și Intel Cyclone 10 LP, semnalul de ceas trebuie să fie activat pentru alte valori LPM_PIPELINE decât 0 (implicit).

Pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX, semnalul de ceas trebuie să fie activat dacă valoarea Latenței este alta decât 1 (implicit).

clken

Nu

Activare ceas pentru utilizare pipeline. Când semnalul clken este afirmat ridicat,

are loc operația de adunare/scădere. Când semnalul este scăzut, nicio operațiune

apare. Dacă este omisă, valoarea implicită este 1.

aclr sclr

Nu

Semnal clar asincron utilizat în orice moment pentru a reseta conducta la toate 0,

asincron cu semnalul ceasului. Conducta se inițializează la un nedefinit (X)

nivel logic. Ieșirile sunt o valoare consistentă, dar diferită de zero.

Nu

Semnal clar sincron utilizat în orice moment pentru a reseta conducta la toate 0,

sincron cu semnalul ceasului. Conducta se inițializează la un nedefinit (X)

nivel logic. Ieșirile sunt o valoare consistentă, dar diferită de zero.

Tabelul 8.

LPM_MULT Semnale de ieșire

semnal Nume

Necesar

Descriere

rezultat[]

Da

Ieșire de date.

Pentru dispozitivele mai vechi și Intel Cyclone 10 LP, dimensiunea semnalului de ieșire depinde de valoarea parametrului LPM_WIDTHP. Dacă LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) sau (LPM_WIDTHA + LPM_WIDTHS), sunt prezente numai MSB-urile LPM_WIDTHP.

Pentru Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX, dimensiunea semnalelor de ieșire depinde de parametrul Lățimea rezultatului.

4.6. Parametri pentru dispozitivele Stratix V, Arria V, Cyclone V și Intel Cyclone 10 LP

4.6.1. Tab. General

Tabelul 9.

General Tab

Parametru

Valoare

Configurația multiplicatorului

Înmulțiți intrarea „dataa” cu intrarea „datab”.

Valoare implicită

Descriere

Înmulțiți intrarea „dataa” cu intrarea „datab”.

Selectați configurația dorită pentru multiplicator.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 18

Trimiteți feedback

4. LPM_MULT (Multiplicator) IP Core 683490 | 2020.10.05

Parametru
Cât de largă ar trebui să fie intrarea „dataa”? Cât de largă ar trebui să fie intrarea „datab”? Cum ar trebui să fie determinată lățimea ieșirii „rezultatului”? Limitați lățimea

Valoare
Înmulțiți intrarea „dataa” de la sine (operație de pătrare)
1 – 256 de biți

Valoare implicită

Descriere

8 biți

Specificați lățimea portului de datea[].

1 – 256 de biți

8 biți

Specificați lățimea portului datab[].

Calculați automat lățimea Restricționați lățimea
1 – 512 de biți

Calculați automat lățimea

Selectați metoda dorită pentru a determina lățimea portului rezultat[].

16 biți

Specificați lățimea portului rezultat[].
Această valoare va fi eficientă numai dacă selectați Restricționați lățimea în parametrul Tip.

4.6.2. General 2 Tab

Tabelul 10. General 2 Tab

Parametru

Valoare

Intrare date

Are magistrala de intrare „datab” o valoare constantă?

Nu Da

Tip de multiplicare

Ce tip de

Nesemnat

inmultire vrei? Semnat

Implementarea

Ce implementare a multiplicatorului ar trebui utilizată?

Utilizați implementarea implicită
Utilizați circuitul multiplicator dedicat (nu este disponibil pentru toate familiile)
Folosiți elemente logice

Valoare implicită

Descriere

Nu

Selectați Da pentru a specifica valoarea constantă a

magistrală de intrare `datab', dacă există.

Nesemnat

Specificați formatul de reprezentare pentru ambele intrări dataa[] și datab[].

Utilizați implementarea implicită

Selectați metoda dorită pentru a determina lățimea portului rezultat[].

4.6.3. Fila Conducte

Tabelul 11. Tab. Conducte

Parametru

Doriți să conductați Nr

funcţie?

Da

Valoare

Creați un „aclr”

port clar asincron

Valoare implicită

Descriere

Nu

Selectați Da pentru a activa înregistrarea conductei la

ieșirea multiplicatorului și specificați valoarea dorită

latența de ieșire în ciclul de ceas. Activarea

Registrul pipeline adaugă o latență suplimentară la

ieșire.

Nebifat

Selectați această opțiune pentru a activa portul aclr să utilizeze ștergerea asincronă pentru registrul conductei.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 19

4. LPM_MULT (Multiplicator) IP Core 683490 | 2020.10.05

Parametru
Creați un ceas „clken” pentru activarea ceasului
Optimizare
Ce tip de optimizare vrei?

Valoare —
Zona de viteză implicită

Valoare implicită

Descriere

Nebifat

Specifică activarea activă a ceasului ridicat pentru portul de ceas al registrului conductei

Implicit

Specificați optimizarea dorită pentru miezul IP.
Selectați Implicit pentru a permite software-ului Intel Quartus Prime să determine cea mai bună optimizare pentru nucleul IP.

4.7. Parametri pentru dispozitivele Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX

4.7.1. Tab. General

Tabelul 12. General Tab

Parametru

Valoare

Valoare implicită

Descriere

Tip de configurare a multiplicatorului
Lățimi porturi de date

Înmulțiți intrarea „dataa” cu intrarea „datab”.
Înmulțiți intrarea „dataa” de la sine (operație de pătrare)

Înmulțiți intrarea „dataa” cu intrarea „datab”.

Selectați configurația dorită pentru multiplicator.

Lățimea datelor

1 – 256 de biți

8 biți

Specificați lățimea portului de datea[].

Lățimea bazei de date

1 – 256 de biți

8 biți

Specificați lățimea portului datab[].

Cum ar trebui să fie determinată lățimea ieșirii „rezultatului”?

Tip

Calculați automat lățimea
Limitați lățimea

Calculați automat lățimea

Selectați metoda dorită pentru a determina lățimea portului rezultat[].

Valoare

1 – 512 de biți

16 biți

Specificați lățimea portului rezultat[].
Această valoare va fi eficientă numai dacă selectați Restricționați lățimea în parametrul Tip.

Lățimea rezultatului

1 – 512 de biți

Afișează lățimea efectivă a portului rezultat[].

4.7.2. General 2 Tab

Tabelul 13. General 2 Tab

Parametru

Intrare date

Are magistrala de intrare „datab” o valoare constantă?

Nu Da

Valoare

Valoare implicită

Descriere

Nu

Selectați Da pentru a specifica valoarea constantă a

magistrală de intrare `datab', dacă există.

a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 20

Trimiteți feedback

4. LPM_MULT (Multiplicator) IP Core 683490 | 2020.10.05

Parametru

Valoare

Valoare

Orice valoare mai mare decat 0

Tip de multiplicare

Ce tip de

Nesemnat

inmultire vrei? Semnat

Stilul de implementare

Ce implementare a multiplicatorului ar trebui utilizată?

Utilizați implementarea implicită
Utilizați circuitul multiplicator dedicat
Folosiți elemente logice

Valoare implicită

Descriere

0

Specificați valoarea constantă a portului datab[].

Nesemnat

Specificați formatul de reprezentare pentru ambele intrări dataa[] și datab[].

Utilizați implementarea implicită

Selectați metoda dorită pentru a determina lățimea portului rezultat[].

4.7.3. Conducte

Tabelul 14. Tab. Conducte

Parametru

Valoare

Doriți să canalizați funcția?

Conductă

Nu Da

Tip de semnal de latență

Orice valoare mai mare decat 0.
NIMIC ACLR SCLR

Creați un ceas „clken”.

activați ceasul

Ce tip de optimizare vrei?

Tip

Zona de viteză implicită

Valoare implicită

Descriere

Nu 1 NIMIC

Selectați Da pentru a activa registrul conductei la ieșirea multiplicatorului. Activarea registrului conductei adaugă o latență suplimentară la ieșire.
Specificați latența de ieșire dorită în ciclul de ceas.
Specificați tipul de resetare pentru registrul conductei. Selectați NIMIC dacă nu utilizați niciun registru de conducte. Selectați ACLR pentru a utiliza ștergerea asincronă pentru registrul conductei. Aceasta va genera portul ACLR. Selectați SCLR pentru a utiliza ștergerea sincronă pentru registrul conductei. Aceasta va genera portul SCLR.
Specifică activarea activă a ceasului ridicat pentru portul de ceas al registrului conductei

Implicit

Specificați optimizarea dorită pentru miezul IP.
Selectați Implicit pentru a permite software-ului Intel Quartus Prime să determine cea mai bună optimizare pentru nucleul IP.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 21

683490 | 2020.10.05 Trimiteți feedback

5. LPM_ADD_SUB (adunator/scăzător)

Figura 4.

Nucleul IP LPM_ADD_SUB vă permite să implementați un adunător sau un scător pentru a adăuga sau scădea seturi de date pentru a produce o ieșire care conține suma sau diferența valorilor de intrare.

Următoarea figură arată porturile pentru nucleul IP LPM_ADD_SUB.

LPM_ADD_SUB Porturi

LPM_ADD_SUB add_sub cin

datea[]

ceas clken datab[] aclr

rezultat[] overflow cout

inst

5.1. Caracteristici
Nucleul IP LPM_ADD_SUB oferă următoarele caracteristici: · Generează adunator, scădere și adunator/scăzător configurabil dinamic
funcții. · Acceptă lățimea datelor de 1 biți. · Acceptă formatul de reprezentare a datelor, cum ar fi semnat și nesemnat. · Acceptă transportul opțional (împrumut), ștergerea asincronă și activarea ceasului
porturi de intrare. · Sprijină porturi opționale de ieșire (împrumut) și overflow. · Atribuie unei constante oricare dintre magistralele de date de intrare. · Acceptă pipelining cu latență de ieșire configurabilă.

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

5. LPM_ADD_SUB (Adunator/Scăzător) 683490 | 2020.10.05
5.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
modul lpm_add_sub (rezultat, cout, overflow,add_sub, cin, dataa, datab, clock, clken, aclr); parametrul lpm_type = „lpm_add_sub”; parametrul lpm_width = 1; parametrul lpm_direction = „NEUTILIZAT”; parametrul lpm_representation = „SIGNED”; parametrul lpm_pipeline = 0; parametrul lpm_hint = „NEUTILIZAT”; intrare [lpm_width-1:0] dataa, datab; intrare add_sub, cin; ceas de intrare; clken de intrare; intrare aclr; rezultat [lpm_width-1:0] rezultat; ieșire, preaplin; modul final
5.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) LPM_PACK.vhd în directorul librariesvhdllpm.
componenta LPM_ADD_SUB generic (LPM_WIDTH : natural;
LPM_DIRECTION : șir := „NEUTILIZAT”; LPM_REPRESENTATION: string := „SIGNED”; LPM_PIPELINE : natural := 0; LPM_TYPE : șir := L_ADD_SUB; LPM_HINT : șir := „NEUTILIZAT”); port (DATAA: în std_logic_vector(LPM_WIDTH-1 până la 0); DATAB: în std_logic_vector(LPM_WIDTH-1 până la 0); ACLR: în std_logic:= '0'; CLOCK: în std_logic:= '0'; CLKEN: în std_logic := '1'; CIN : in std_logic := 'Z' : in std_logic := '1' : out std_logic_vector(LPM_WIDTH-1: out std_logic); componentă de capăt;
5.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ lpm; UTILIZAȚI lpm.lpm_components.all;
5.5. Porturi
Următoarele tabele listează porturile de intrare și de ieșire pentru nucleul IP LPM_ADD_SUB.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 23

5. LPM_ADD_SUB (Adunator/Scăzător) 683490 | 2020.10.05

Tabelul 15. Porturi de intrare LPM_ADD_SUB IP Core

Numele portului

Necesar

Descriere

cin

Nu

Purtare la bitul de comandă scăzută. Pentru operațiunile de adăugare, valoarea implicită este 0. Pentru

operațiuni de scădere, valoarea implicită este 1.

datea[]

Da

Intrarea datelor. Mărimea portului de intrare depinde de valoarea parametrului LPM_WIDTH.

datab[]

Da

Intrarea datelor. Mărimea portului de intrare depinde de valoarea parametrului LPM_WIDTH.

add_sub

Nu

Port de intrare opțional pentru a permite comutarea dinamică între adunator și scăzător

funcții. Dacă este utilizat parametrul LPM_DIRECTION, add_sub nu poate fi utilizat. Dacă

omisă, valoarea implicită este ADD. Intel vă recomandă să utilizați

parametrul LPM_DIRECTION pentru a specifica funcționarea funcției LPM_ADD_SUB,

mai degrabă decât să atribuiți o constantă portului add_sub.

ceas

Nu

Intrare pentru utilizare prin pipeline. Portul de ceas oferă intrarea de ceas pentru o conductă

operare. Pentru valorile LPM_PIPELINE altele decât 0 (implicit), portul ceasului trebuie să fie

activat.

clken

Nu

Activare ceas pentru utilizare pipeline. Când portul clken este afirmat ridicat, sumatorul/

are loc operația cu scădere. Când semnalul este scăzut, nu are loc nicio operațiune. Dacă

omisă, valoarea implicită este 1.

aclr

Nu

Clear asincron pentru utilizare prin conducte. Conducta se inițializează la un (X) nedefinit

nivel logic. Portul aclr poate fi folosit în orice moment pentru a reseta conducta la toate 0-urile,

asincron cu semnalul ceasului.

Tabelul 16. LPM_ADD_SUB IP Core Porturi de ieșire

Numele portului

Necesar

Descriere

rezultat[]

Da

Ieșire de date. Mărimea portului de ieșire depinde de parametrul LPM_WIDTH

valoare.

cout

Nu

Efectuarea (împrumutarea) bitului cel mai semnificativ (MSB). Portul cout are un fizic

interpretare ca executare (împrumutare) a MSB. Portul cout detectează

depășire în operațiuni NESEMNATE. Portul cout functioneaza in acelasi mod pt

Operațiuni SEMNATE și NESEMNATE.

preaplin

Nu

Ieșire opțională de excepție de depășire. Portul de preaplin are o interpretare fizică ca

XOR-ul transferului către MSB cu transferul MSB. Portul de preaplin

afirmă atunci când rezultatele depășesc precizia disponibilă și este utilizat numai atunci când

Valoarea parametrului LPM_REPRESENTATION este SEMNATĂ.

5.6. Parametrii

Următorul tabel listează parametrii de bază IP LPM_ADD_SUB.

Tabelul 17. LPM_ADD_SUB IP Core Parametri

Nume parametru LPM_WIDTH

Tastați Integer

Obligatoriu Da

Descriere
Specifică lățimile porturilor dataa[], datab[] și result[].

LPM_DIRECTION

Şir

Nu

Valorile sunt ADD, SUB și UNUSED. Dacă este omisă, valoarea implicită este DEFAULT, care direcționează parametrul să-și ia valoarea de la portul add_sub. Portul add_sub nu poate fi utilizat dacă se utilizează LPM_DIRECTION. Intel vă recomandă să utilizați parametrul LPM_DIRECTION pentru a specifica funcționarea funcției LPM_ADD_SUB, în loc să atribuiți o constantă portului add_sub.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 24

Trimiteți feedback

5. LPM_ADD_SUB (Adunator/Scăzător) 683490 | 2020.10.05

Nume parametru LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

Tip String Integer String String String Integer
Şir

Obligatoriu Nu Nu Nu Nu Nu Nu
Nu

Descriere
Specifică tipul de adăugare efectuată. Valorile sunt SIGNED și UNSIGNED. Dacă este omisă, valoarea implicită este SIGNED. Când acest parametru este setat la SIGNED, sumatorul/scădetorul interpretează datele introduse ca complement a doi cu semn.
Specifică numărul de cicluri de ceas de latență asociate cu rezultatul [] . O valoare de zero (0) indică faptul că nu există latență și că va fi instanțiată o funcție pur combinațională. Dacă este omisă, valoarea implicită este 0 (fără conducte).
Vă permite să specificați parametri specifici Intel în designul VHDL files (.vhd). Valoarea implicită este UNUSED.
Identifică numele entității bibliotecii de module parametrizate (LPM) în proiectarea VHDL files.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul ONE_INPUT_IS_CONSTANT în proiectarea VHDL files. Valorile sunt DA, NU și NEUTILIZATE. Oferă o optimizare mai mare dacă o intrare este constantă. Dacă este omisă, valoarea implicită este NU.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul MAXIMIZE_SPEED în proiectarea VHDL files. Puteți specifica o valoare între 0 și 10. Dacă este utilizat, software-ul Intel Quartus Prime încearcă să optimizeze o anumită instanță a funcției LPM_ADD_SUB pentru viteză și nu pentru rutabilitate și înlocuiește setarea opțiunii logice Tehnica de optimizare. Dacă MAXIMIZE_SPEED nu este folosită, se folosește în schimb valoarea opțiunii Tehnica de optimizare. Dacă setarea pentru MAXIMIZE_SPEED este 6 sau mai mare, compilatorul optimizează nucleul IP LPM_ADD_SUB pentru viteză mai mare utilizând lanțuri de transport; dacă setarea este 5 sau mai mică, compilatorul implementează designul fără lanțuri de transport. Acest parametru trebuie specificat pentru dispozitivele Cyclone, Stratix și Stratix GX numai atunci când portul add_sub nu este utilizat.
Acest parametru este utilizat în scopuri de modelare și simulare comportamentală. Editorul de parametri calculează valoarea acestui parametru.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 25

683490 | 2020.10.05 Trimiteți feedback

6. LPM_COMPARE (Comparator)

Figura 5.

Nucleul IP LPM_COMPARE compară valoarea a două seturi de date pentru a determina relația dintre ele. În forma sa cea mai simplă, puteți utiliza o poartă SAU exclusivă pentru a determina dacă doi biți de date sunt egali.

Următoarea figură arată porturile pentru nucleul IP LPM_COMPARE.

LPM_COMPARE Porturi

LPM_COMPARE

clken

alb

aeb

datea[]

agb

datab[]

ageb

ceas

sau

aclr

aleb

inst

6.1. Caracteristici
Nucleul LPM_COMPARE IP oferă următoarele caracteristici: · Generează o funcție de comparare pentru a compara două seturi de date.
— alb (intrarea A este mai mică decât intrarea B) — aeb (intrarea A este egală cu intrarea B) — agb (intrarea A este mai mare decât intrarea B) — ageb (intrarea A este mai mare sau egală cu intrarea B) — aneb ( intrarea A nu este egală cu intrarea B) — aleb (intrarea A este mai mică sau egală cu intrarea B) · Acceptă porturi de intrare opționale asincrone și activare a ceasului · Atribuie intrarea datab[] la o constantă · Acceptă pipelining cu latență de ieșire configurabilă

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

6. LPM_COMPARE (Comparator) 683490 | 2020.10.05
6.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
modul lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr ); parametrul lpm_type = „lpm_compare”; parametrul lpm_width = 1; parametrul lpm_representation = „UNSIGNED”; parametrul lpm_pipeline = 0; parametrul lpm_hint = „NEUTILIZAT”; intrare [lpm_width-1:0] dataa, datab; ceas de intrare; clken de intrare; intrare aclr; ieșire alb, aeb, agb, aleb, aneb, ageb; modul final
6.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) LPM_PACK.vhd în directorul librariesvhdllpm.
componenta LPM_COMPARE generic (LPM_WIDTH : natural;
LPM_REPRESENTATION : șir := „UNSIGNED”; LPM_PIPELINE : natural := 0; LPM_TYPE: șir := L_COMPARE; LPM_HINT : șir := „NEUTILIZAT”); port (DATAA: în std_logic_vector(LPM_WIDTH-1 până la 0); DATAB: în std_logic_vector(LPM_WIDTH-1 până la 0); ACLR: în std_logic:= '0'; CLOCK: în std_logic:= '0'; CLKEN: în std_logic := '1': out std_logic; out std_logic; componentă de capăt;
6.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ lpm; UTILIZAȚI lpm.lpm_components.all;
6.5. Porturi
Următoarele tabele listează porturile de intrare și de ieșire pentru nucleul IP LMP_COMPARE.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 27

6. LPM_COMPARE (Comparator) 683490 | 2020.10.05

Tabelul 18. Porturi de intrare LPM_COMPARE IP core

Numele portului

Necesar

Descriere

datea[]

Da

Intrarea datelor. Mărimea portului de intrare depinde de valoarea parametrului LPM_WIDTH.

datab[]

Da

Intrarea datelor. Mărimea portului de intrare depinde de valoarea parametrului LPM_WIDTH.

ceas

Nu

Intrare ceas pentru utilizare pipeline. Portul de ceas oferă intrarea de ceas pentru o conductă

operare. Pentru valorile LPM_PIPELINE altele decât 0 (implicit), portul ceasului trebuie să fie

activat.

clken

Nu

Activare ceas pentru utilizare pipeline. Când portul clken este afirmat ridicat,

are loc operația de comparație. Când semnalul este scăzut, nu are loc nicio operațiune. Dacă

omisă, valoarea implicită este 1.

aclr

Nu

Clear asincron pentru utilizare prin conducte. Conducta se inițializează la o logică nedefinită (X).

nivel. Portul aclr poate fi folosit în orice moment pentru a reseta conducta la toate 0-urile,

asincron cu semnalul ceasului.

Tabelul 19. LPM_COMPARE IP core Porturi de ieșire

Numele portului

Necesar

Descriere

alb

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A este mai mică decât intrarea B.

aeb

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A este egală cu intrarea B.

agb

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A este mai mare decât intrarea B.

ageb

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A este mai mare sau egală cu intrarea

B.

sau

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A nu este egală cu intrarea B.

aleb

Nu

Port de ieșire pentru comparator. Afirmat dacă intrarea A este mai mică sau egală cu intrarea B.

6.6. Parametrii

Următorul tabel listează parametrii pentru nucleul IP LPM_COMPARE.

Tabelul 20. LPM_COMPARE IP core Parametri

Nume parametru

Tip

Necesar

LPM_WIDTH

Număr întreg Da

LPM_REPRESENTATION

Şir

Nu

LPM_PIPELINE

Număr întreg

LPM_HINT

Şir

Nu

Descriere
Specifică lățimile porturilor dataa[] și datab[].
Specifică tipul de comparație efectuată. Valorile sunt SIGNED și UNSIGNED. Dacă este omisă, valoarea implicită este UNSIGNED. Când această valoare a parametrului este setată la SIGNED, comparatorul interpretează datele introduse ca complement a doi cu semn.
Specifică numărul de cicluri de ceas de latență asociate cu ieșirea alb, aeb, agb, ageb, aleb sau aneb. O valoare de zero (0) indică faptul că nu există latență și că va fi instanțiată o funcție pur combinațională. Dacă este omisă, valoarea implicită este 0 (fără conducte).
Vă permite să specificați parametri specifici Intel în designul VHDL files (.vhd). Valoarea implicită este UNUSED.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 28

Trimiteți feedback

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

Tastați String String
Şir

Necesar Nu Nu
Nu

Descriere
Identifică numele entității bibliotecii de module parametrizate (LPM) în proiectarea VHDL files.
Acest parametru este utilizat în scopuri de modelare și simulare comportamentală. Editorul de parametri calculează valoarea acestui parametru.
Parametru specific Intel. Trebuie să utilizați parametrul LPM_HINT pentru a specifica parametrul ONE_INPUT_IS_CONSTANT în proiectarea VHDL files. Valorile sunt DA, NU sau NEUTILIZATE. Oferă o optimizare mai mare dacă o intrare este constantă. Dacă este omisă, valoarea implicită este NU.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 29

683490 | 2020.10.05 Trimiteți feedback

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core

Figura 6.

Intel furnizează nucleul IP ALTECC pentru a implementa funcționalitatea ECC. ECC detectează datele corupte care apar la nivelul receptorului în timpul transmiterii datelor. Această metodă de corectare a erorilor este cea mai potrivită pentru situațiile în care erorile apar la întâmplare, mai degrabă decât în ​​rafale.

ECC detectează erori prin procesul de codificare și decodare a datelor. De exampatunci când ECC este aplicat într-o aplicație de transmisie, datele citite de la sursă sunt codificate înainte de a fi trimise la receptor. Ieșirea (cuvântul de cod) de la codificator constă din datele brute atașate cu numărul de biți de paritate. Numărul exact de biți de paritate atașați depinde de numărul de biți din datele de intrare. Cuvântul cod generat este apoi transmis la destinație.

Receptorul primește cuvântul cod și îl decodifică. Informațiile obținute de decodor determină dacă este detectată o eroare. Decodorul detectează erori pe un singur bit și pe dublu biți, dar poate remedia numai erori pe un singur bit din datele corupte. Acest tip de ECC este o singură eroare cu corectare a erorilor duble (SECDED).

Puteți configura funcțiile de codificare și decodor ale nucleului IP ALTEC. Datele de intrare în codificator sunt codificate pentru a genera un cuvânt cod care este o combinație a datelor de intrare și a biților de paritate generați. Cuvântul de cod generat este transmis către modulul decodor pentru decodare chiar înainte de a ajunge la blocul său de destinație. Decodorul generează un vector de sindrom pentru a determina dacă există vreo eroare în cuvântul de cod primit. Decodorul corectează datele numai dacă eroarea pe un singur bit provine din biții de date. Niciun semnal nu este marcat dacă eroarea pe un singur bit este de la biții de paritate. Decodorul are, de asemenea, semnale de semnalizare pentru a arăta starea datelor primite și acțiunea întreprinsă de decodor, dacă este cazul.

Următoarele figuri arată porturile pentru nucleul IP ALTEC.

Porturi pentru codificator ALTEC

ALTEC_ENCODER

date[]

q[]

ceas

ceas

aclr

inst

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core 683490 | 2020.10.05

Figura 7. Porturi pentru decodor ALTEC

ALTEC_DECODER

data[] clock clock

q[] err_detected err_corrected
err_fatal

aclr

inst

7.1. Caracteristici codificatorului ALTEC

Nucleul IP al codificatorului ALTECC oferă următoarele caracteristici: · Efectuează codificarea datelor utilizând schema Hamming Coding · Acceptă lățimea datelor de 2 de biți · Acceptă formatul de reprezentare a datelor semnate și nesemnate · Suportă pipelining cu latență de ieșire de unul sau două cicluri de ceas · Acceptă opțional porturi asincrone clear și activare ceas

Nucleul IP al codificatorului ALTECC preia și codifică datele folosind schema Hamming Coding. Schema Hamming Coding derivă biții de paritate și îi adaugă la datele originale pentru a produce cuvântul cod de ieșire. Numărul de biți de paritate atașați depinde de lățimea datelor.

Următorul tabel listează numărul de biți de paritate atașați pentru diferite game de lățimi de date. Coloana Biți totali reprezintă numărul total de biți de date de intrare și biți de paritate adauși.

Tabelul 21.

Numărul de biți de paritate și cuvântul cod în funcție de lățimea datelor

Lățimea datelor

Numărul de biți de paritate

Total biți (cuvânt de cod)

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

Derivarea biților de paritate utilizează o verificare a parității parității. 1 bit suplimentar (indicat în tabel ca +1) este atașat biților de paritate ca MSB al cuvântului de cod. Acest lucru asigură că cuvântul cod are un număr par de 1. De exampdacă lățimea datelor este de 4 biți, 4 biți de paritate sunt atașați datelor pentru a deveni un cuvânt cod cu un total de 8 biți. Dacă 7 biți din LSB al cuvântului de cod de 8 biți au un număr impar de 1, al 8-lea bit (MSB) al cuvântului de cod este 1, făcând numărul total de 1 din cuvântul de cod par.
Următoarea figură prezintă cuvântul de cod generat și aranjarea biților de paritate și a biților de date într-o intrare de date de 8 biți.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 31

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core 683490 | 2020.10.05

Figura 8.

Aranjarea biților de paritate și a biților de date într-un cuvânt cod generat de 8 biți

MSB

LSB

4 biți de paritate

4 biți de date

8

1

Nucleul IP al codificatorului ALTEC acceptă numai lățimi de intrare de la 2 la 64 de biți simultan. Lățimi de intrare de 12 biți, 29 de biți și 64 de biți, care sunt potrivite în mod ideal pentru dispozitivele Intel, generează ieșiri de 18 biți, 36 de biți și, respectiv, 72 de biți. Puteți controla limitarea selecției de biți în editorul de parametri.

7.2. Prototip Verilog HDL (ALTECC_ENCODER)
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
module altecc_encoder #( parametru destinat_device_family = „unused”, parametrul lpm_pipeline = 0, parametrul width_codeword = 8, parametrul width_dataword = 8, parametrul lpm_type = „altecc_encoder”, parametrul lpm_hint = „unused”) ( input wire aclr, input wire clock, input wire clock wire clock, fir de intrare [width_dataword-1:0] date, fir de ieșire [width_codeword-1:0] q); modul final

7.3. Prototip Verilog HDL (ALTECC_DECODER)
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) lpm.v în directorul de edasinteză.
module altecc_decoder #( parametru destinat_device_family = „neutilizat”, parametrul lpm_pipeline = 0, parametrul width_codeword = 8, parametrul width_dataword = 8, parametrul lpm_type = „altecc_decoder”, parametrul lpm_hint = „neutilizat”) ( intrare fir aclr, intrare fir aclr, intrare wire clocken, fir de intrare [width_codeword-1:0] date, fir de ieșire err_corrected, fir de ieșire err_detected, outut wire err_fatal, fir de ieșire [width_dataword-1:0] q); modul final

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 32

Trimiteți feedback

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. Declarația componentei VHDL (ALTECC_ENCODER)
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) altera_mf_components.vhd în directorul librariesvhdlaltera_mf.
componenta altecc_encoder generic (intentioned_device_family:string := „unused”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „NEUSED”; lpm_type:string := „altecc_encoder ”); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clock:in std_logic := '1'; data:in std_logic_vector(width_dataword-1 downto 0); q:out std_logic_vector(width_codeword -1 până la 0)); componentă de capăt;
7.5. Declarația componentei VHDL (ALTECC_DECODER)
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) altera_mf_components.vhd în directorul librariesvhdlaltera_mf.
componenta altecc_decoder generic (intentioned_device_family:string := „unused”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „NEUSED”; lpm_type:string := „altecc_decoder ”); port( aclr:in std_logic:= '0'; clock:in std_logic:= '0'; clock:in std_logic:= '1'; date:in std_logic_vector(width_codeword-1 downto 0); err_corrected: out std_logic; err_detected : out std_logic q:out std_logic_vector(width_dataword-1 downto 0: out std_logic); componentă de capăt;
7.6. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ altera_mf; USE altera_mf.altera_mf_components.all;
7.7. Porturi pentru codificator
Următoarele tabele listează porturile de intrare și de ieșire pentru miezul IP al codificatorului ALTECC.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 33

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core 683490 | 2020.10.05

Tabelul 22. Porturi de intrare a codificatorului ALTECC

Numele portului

Necesar

Descriere

date[]

Da

Port de introducere a datelor. Mărimea portului de intrare depinde de WIDTH_DATAWORD

valoarea parametrului. Portul de date[] conține datele brute care trebuie codificate.

ceas

Da

Port de intrare pentru ceas care furnizează semnalul de ceas pentru a sincroniza operația de codificare.

Portul de ceas este necesar atunci când valoarea LPM_PIPELINE este mai mare decât 0.

ceas

Nu

Activare ceas. Dacă este omisă, valoarea implicită este 1.

aclr

Nu

Intrare clară asincronă. Semnalul activ aclr ridicat poate fi utilizat în orice moment pentru

ștergeți asincron registrele.

Tabelul 23. Porturi de ieșire a codificatorului ALTECC

Nume port q[]

Obligatoriu Da

Descriere
Port de ieșire a datelor codificate. Mărimea portului de ieșire depinde de valoarea parametrului WIDTH_CODEWORD.

7.8. Porturi pentru decodor

Următoarele tabele listează porturile de intrare și de ieșire pentru miezul IP al decodorului ALTEC.

Tabelul 24. Porturi de intrare pentru decodor ALTEC

Numele portului

Necesar

Descriere

date[]

Da

Port de introducere a datelor. Mărimea portului de intrare depinde de valoarea parametrului WIDTH_CODEWORD.

ceas

Da

Port de intrare pentru ceas care furnizează semnalul de ceas pentru a sincroniza operația de codificare. Portul de ceas este necesar atunci când valoarea LPM_PIPELINE este mai mare decât 0.

ceas

Nu

Activare ceas. Dacă este omisă, valoarea implicită este 1.

aclr

Nu

Intrare clară asincronă. Semnalul activ aclr ridicat poate fi utilizat în orice moment pentru a șterge asincron registrele.

Tabelul 25. Porturi de ieșire a decodorului ALTEC

Nume port q[]

Obligatoriu Da

Descriere
Port de ieșire a datelor decodificate. Mărimea portului de ieșire depinde de valoarea parametrului WIDTH_DATAWORD.

err_detected Da

Semnal semnal pentru a reflecta starea datelor primite și specifică orice erori găsite.

err_correcte Da d

Semnal de semnalizare pentru a reflecta starea datelor primite. Indică o eroare pe un singur bit găsită și corectată. Puteți utiliza datele deoarece au fost deja corectate.

err_fatal

Da

Semnal de semnalizare pentru a reflecta starea datelor primite. Indică o eroare pe dublu biți găsită, dar neremediată. Nu trebuie să utilizați datele dacă acest semnal este afirmat.

syn_e

Nu

Un semnal de ieșire care va crește ori de câte ori este detectată o eroare pe un singur bit pe paritate

biți.

7.9. Parametrii codificatorului
Următorul tabel listează parametrii pentru miezul IP al codificatorului ALTECC.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 34

Trimiteți feedback

7. ALTEC (Cod de corectare a erorilor: Encoder/Decoder) IP Core 683490 | 2020.10.05

Tabelul 26. Parametrii codificatorului ALTECC

Nume parametru

Tip

Necesar

Descriere

WIDTH_DATAWORD

Număr întreg Da

Specifică lățimea datelor brute. Valorile sunt de la 2 la 64. Dacă sunt omise, valoarea implicită este 8.

WIDTH_CODEWORD

Număr întreg Da

Specifică lățimea cuvântului de cod corespunzător. Valorile valide sunt de la 6 la 72, excluzând 9, 17, 33 și 65. Dacă sunt omise, valoarea implicită este 13.

LPM_PIPELINE

Număr întreg

Specifică conducta pentru circuit. Valorile sunt de la 0 la 2. Dacă valoarea este 0, porturile nu sunt înregistrate. Dacă valoarea este 1, porturile de ieșire sunt înregistrate. Dacă valoarea este 2, porturile de intrare și de ieșire sunt înregistrate. Dacă este omisă, valoarea implicită este 0.

7.10. Parametrii decodorului

Următorul tabel listează parametrii de bază IP a decodorului ALTEC.

Tabelul 27. Parametrii decodorului ALTECC

Nume parametru WIDTH_DATAWORD

Tastați Integer

Necesar

Descriere

Da

Specifică lățimea datelor brute. Valorile sunt de la 2 la 64

valoarea implicită este 8.

WIDTH_CODEWORD

Întreg

Da

Specifică lățimea cuvântului de cod corespunzător. Valorile sunt 6

la 72, excluzând 9, 17, 33 și 65. Dacă este omisă, valoarea implicită

este 13.

LPM_PIPELINE

Întreg

Nu

Specifică registrul circuitului. Valorile sunt de la 0 la 2. Dacă

valoarea este 0, nu este implementat niciun registru. Dacă valoarea este 1,

ieșirea este înregistrată. Dacă valoarea este 2, atât intrarea, cât și

ieșirile sunt înregistrate. Dacă valoarea este mai mare de 2, suplimentar

registrele sunt implementate la ieșire pentru adițional

latențe. Dacă este omisă, valoarea implicită este 0.

Creați un port „syn_e”.

Întreg

Nu

Activați acest parametru pentru a crea un port syn_e.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 35

683490 | 2020.10.05 Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core

Figura 9.

Nucleul IP Intel FPGA Multiply Adder (dispozitive Intel Stratix 10, Intel Arria 10 și Intel Cyclone 10 GX) sau ALTERA_MULT_ADD (dispozitive Arria V, Stratix V și Cyclone V) vă permite să implementați un multiplicator-adăugător.

Următoarea figură arată porturile pentru Intel FPGA Multiply Adder sau nucleul IP ALTERA_MULT_ADD.

Intel FPGA Multiply Adder sau porturi ALTERA_MULT_ADD

Intel FPGA Multiply Adder sau ALTERA_MULT_ADD

dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] clock0 clock1 clock2 ena0 ena1 ena2 sload_accum
accum_sload chainin[]

scanouta[] rezultat[]

aclr0 aclr1

inst
Un multiplicator-adunator acceptă perechi de intrări, înmulțește valorile împreună și apoi adaugă sau scade din produsele tuturor celorlalte perechi.
Dacă toate lățimile datelor de intrare sunt de 9 biți sau mai mici, funcția utilizează configurația multiplicatorului de intrare de 9 x 9 biți din blocul DSP pentru dispozitivele care acceptă configurația 9 x 9. Dacă nu, blocul DSP utilizează multiplicatori de intrare de 18 × 18 biți pentru a procesa date cu lățimi între 10 și 18 biți. Dacă într-un proiect apar mai multe nuclee Intel FPGA Multiply Adder sau ALTERA_MULT_ADD, funcțiile sunt distribuite ca

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
cât mai multe blocuri DSP diferite, astfel încât rutarea către aceste blocuri să fie mai flexibilă. Mai puțini multiplicatori per bloc DSP permit mai multe opțiuni de rutare în bloc, reducând la minimum căile către restul dispozitivului.
Registrele și registrele extra pipeline pentru următoarele semnale sunt, de asemenea, plasate în interiorul blocului DSP: · Intrare de date · Selectare semnată sau nesemnată · Selectare adăugare sau scădere · Produse multiplicatoare
În cazul rezultatului de ieșire, primul registru este plasat în blocul DSP. Cu toate acestea, registrele de latență suplimentară sunt plasate în elemente logice în afara blocului. Periferic la blocul DSP, inclusiv intrările de date către multiplicator, intrările de semnal de control și ieșirile agregatorului, utilizează rutarea obișnuită pentru a comunica cu restul dispozitivului. Toate conexiunile din funcție folosesc rutare dedicată în interiorul blocului DSP. Această rutare dedicată include lanțurile de registru de schimbare atunci când selectați opțiunea de a muta datele de intrare înregistrate ale unui multiplicator de la un multiplicator la un multiplicator adiacent.
Pentru mai multe informații despre blocurile DSP din oricare dintre seriile de dispozitive Stratix V și Arria V, consultați capitolul Blocuri DSP din manualele respective de pe pagina Literatură și documentație tehnică.
Informații înrudite AN 306: Implementarea multiplicatorilor în dispozitivele FPGA
Oferă mai multe informații despre implementarea multiplicatorilor folosind DSP și blocuri de memorie în dispozitivele Intel FPGA.
8.1. Caracteristici
Nucleul Intel FPGA Multiply Adder sau ALTERA_MULT_ADD IP oferă următoarele caracteristici: · Generează un multiplicator pentru a efectua operații de multiplicare a două
numere Notă: Când construiți multiplicatori mai mari decât dimensiunea acceptată nativ, este posibil/
va fi un impact asupra performanței rezultat din cascada blocurilor DSP. · Acceptă lățimi de date de 1 256 de biți · Acceptă formatul de reprezentare a datelor semnate și nesemnate · Acceptă pipelining cu latență de intrare configurabilă · Oferă o opțiune de comutare dinamică între suport pentru date semnate și nesemnate · Oferă o opțiune de comutare dinamică între operația de adăugare și scădere · Suportă porturi de intrare opționale asincrone și sincrone și activarea ceasului · Suportă modul de înregistrare a întârzierii sistolice · Suportă pre-adunator cu 8 coeficienți de preîncărcare per multiplicator · Suportă constantă de preîncărcare pentru a completa feedback-ul acumulatorului

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 37

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.1. Preasumator
Cu pre-adunator, adunările sau scăderile se fac înainte de alimentarea multiplicatorului.
Există cinci moduri de pre-adunare: · Modul simplu · Modul coeficient · Modul de intrare · Modul pătrat · Modul constant

Nota:

Când se folosește pre-adunator (coeficient de pre-adunator/mod de intrare/pătrat), toate intrările de date către multiplicator trebuie să aibă aceeași setare de ceas.

8.1.1.1. Modul simplu pre-adăugător

În acest mod, ambii operanzi derivă din porturile de intrare și pre-adunatorul nu este utilizat sau ocolit. Acesta este modul implicit.

Figura 10. Modul simplu pre-adăugător
a0 b0

Mult0

rezultat

8.1.1.2. Modul coeficient de pre-adunator
În acest mod, un operand multiplicator derivă din pre-adunator, iar celălalt operand derivă din stocarea coeficientului intern. Stocarea coeficientului permite până la 8 constante prestabilite. Semnalele de selecție a coeficienților sunt coefsel[0..3].
Acest mod este exprimat în următoarea ecuație.

Următoarele arată modul de pre-adunator al coeficientului unui multiplicator.

Figura 11. Modul coeficient pre-adunator

Preader

a0

Mult0

+/-

rezultat

b0

coefsel0 coef

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 38

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Modul de intrare pre-adunator În acest mod, un operand multiplicator derivă din pre-adunator, iar celălalt operand derivă din portul de intrare datac[]. Acest mod este exprimat în următoarea ecuație.

Următoarele arată modul de intrare pre-adăugător al unui multiplicator.

Figura 12. Modul de intrare pre-adăugător
a0 b0

Mult0

+/-

rezultat

c0

8.1.1.4. Modul pătrat pre-adunator Acest mod este exprimat în următoarea ecuație.

Următoarele arată modul pătrat pre-adunator a doi multiplicatori.

Figura 13. Modul pătrat pre-adăugător
a0 b0

Mult0

+/-

rezultat

8.1.1.5. Modul constant pre-adăugător
În acest mod, un operand multiplicator derivă din portul de intrare, iar celălalt operand derivă din stocarea coeficientului intern. Stocarea coeficientului permite până la 8 constante prestabilite. Semnalele de selecție a coeficienților sunt coefsel[0..3].
Acest mod este exprimat în următoarea ecuație.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 39

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Următoarea figură arată modul constant de pre-adunator al unui multiplicator.

Figura 14. Modul constant pre-adăugător
a0

Mult0

rezultat

coefsel0
coef
8.1.2. Registrul de întârziere sistolică
Într-o arhitectură sistolică, datele de intrare sunt introduse într-o cascadă de registre care acționează ca un buffer de date. Fiecare registru furnizează o intrare sample la un multiplicator unde se înmulțește cu coeficientul respectiv. Adăugătorul în lanț stochează rezultatele combinate treptat de la multiplicator și rezultatul înregistrat anterior de la portul de intrare chainin[] pentru a forma rezultatul final. Fiecare element de multiplicare-adăugare trebuie amânat cu un singur ciclu, astfel încât rezultatele să se sincronizeze corespunzător atunci când sunt adăugate împreună. Fiecare întârziere succesivă este utilizată pentru a adresa atât memoria coeficienților, cât și memoria tampon de date ale elementelor de înmulțire-adunare respective. De example, o singură întârziere pentru al doilea element de adăugare înmulțire, două întârzieri pentru al treilea element de înmulțire-adăugare și așa mai departe.
Figura 15. Registrele sistolice
Registrele sistolice

x(t) c(0)

S -1

S -1

c(1)

S -1

S -1

c(2)

S -1

S -1

c(N-1)

S -1

S -1

S -1

S -1 y(t)

x(t) reprezintă rezultatele dintr-un flux continuu de intrare samples și y(t)
reprezintă însumarea unui set de intrări samples, iar în timp, înmulțit cu lor
coeficienții respectivi. Atât rezultatele de intrare, cât și cele de ieșire curg de la stânga la dreapta. De la c(0) la c(N-1) se desemnează coeficienții. Registrele de întârziere sistolice sunt notate cu S-1, în timp ce 1 reprezintă o singură întârziere de ceas. Registrele de întârziere sistolice sunt adăugate la
intrările și ieșirile pentru conducte într-un mod care să asigure rezultatele de la
operand multiplicator și sumele acumulate rămân sincronizate. Acest element de prelucrare
este replicat pentru a forma un circuit care calculează funcția de filtrare. Această funcție este
exprimată în următoarea ecuație.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 40

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

N reprezintă numărul de cicluri de date care au intrat în acumulator, y(t) reprezintă ieșirea la momentul t, A(t) reprezintă intrarea la momentul t și B(i) sunt coeficienții. T și i din ecuație corespund unui anumit moment de timp, deci pentru a calcula rezultatul sample y(t) la momentul t, un grup de intrare sampsunt necesare în N momente diferite de timp sau A(n), A(n-1), A(n-2), … A(n-N+1). Grupul de N intrare sampchirii sunt înmulțiți cu N coeficienți și însumați pentru a forma rezultatul final y.
Arhitectura registrului sistolic este disponibilă numai pentru modurile sum-of-2 și sum-of-4. Pentru ambele moduri de arhitectură a registrului sistolic, primul semnal în lanț trebuie să fie legat la 0.
Următoarea figură arată implementarea registrului de întârziere sistolică a 2 multiplicatori.
Figura 16. Implementarea registrului de întârziere sistolică a 2 multiplicatori
lanț

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

rezultat
Suma a doi multiplicatori este exprimată în următoarea ecuație.
Următoarea figură arată implementarea registrului de întârziere sistolică a 4 multiplicatori.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 41

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Figura 17. Implementarea registrului de întârziere sistolică a 4 multiplicatori
lanț

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

a2

Mult2

+/-

b2

a3

Mult3

+/-

b3

rezultat
Suma a patru multiplicatori este exprimată în următoarea ecuație. Figura 18. Suma a 4 multiplicatori
Următoarele listează avansultagimplementarea registrului sistolic: · Reduce utilizarea resurselor DSP · Permite maparea eficientă în blocul DSP utilizând structura de adăugare în lanț

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 42

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.1.3. Pre-încărcare constantă
Constanta de preîncărcare controlează operandul acumulatorului și completează feedback-ul acumulatorului. Valoarea LOADCONST_VALUE validă variază de la 0. Valoarea constantă este egală cu 64N, unde N = LOADCONST_VALUE. Când LOADCONST_VALUE este setat la 2, valoarea constantă este egală cu 64. Această funcție poate fi utilizată ca rotunjire părtinitoare.
Următoarea figură arată implementarea constantă de pre-încărcare.
Figura 19. Constanta de preîncărcare

Feedback al acumulatorului

constant

a0

Mult0

+/-

b0

a1

Mult1

+/b1

rezultat

accum_sload sload_accum

Consultați următoarele nuclee IP pentru alte implementări ale multiplicatorului: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Acumulator dublu
Caracteristica acumulatorului dublu adaugă un registru suplimentar în calea de feedback al acumulatorului. Registrul dublu acumulator urmează registrul de ieșire, care include ceasul, activarea ceasului și aclr. Registrul suplimentar al acumulatorului returnează rezultatul cu o întârziere de un ciclu. Această caracteristică vă permite să aveți două canale de acumulator cu același număr de resurse.
Figura următoare arată implementarea acumulatorului dublu.

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 43

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Figura 20. Acumulator dublu

Registrul acumulatorului dublu

Feedback acumulator

a0

Mult0

+/-

b0

a1

Mult1

+/b1

Rezultat de ieșire Registrul de ieșire

8.2. Prototip Verilog HDL
Puteți găsi prototipul Intel FPGA Multiply Adder sau ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) în directorul bibliotecimegafuncții.
8.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în altera_lnsim_components.vhd din fișierul directorul librariesvhdl altera_lnsim.
8.4. Declarație VHDL LIBRARY_USE
Declarația VHDL LIBRARY-USE nu este necesară dacă utilizați Declarația componentei VHDL.
BIBLIOTECĂ altera_mf; USE altera_mf.altera_mf_components.all;

8.5. Semnale

Următoarele tabele listează semnalele de intrare și de ieșire ale nucleului IP Multiply Adder Intel FPGA IP sau ALTERA_MULT_ADD.

Tabelul 28. Multiplicarea Adder Intel FPGA IPor ALTERA_MULT_ADD semnale de intrare

Semnal

Necesar

Descriere

dataa_0[]/dataa_1[]/

Da

dataa_2[]/dataa_3[]

Introducerea datelor în multiplicator. Port de intrare [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] lățime
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 44

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Semnal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] semnă
semnb
scanina[] accum_sload

Obligatoriu Da Nu
Nu Nu NU NU NU
Nu
Nu Nu

Descriere
Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) la aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Introducerea datelor în multiplicator. Semnal de intrare [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] lățime Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Introducerea datelor în multiplicator. Semnal de intrare [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] wide Selectați INPUT pentru parametrul Selectare mod predder pentru a activa aceste semnale. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) la aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Portul de intrare a ceasului în registrul corespunzător. Acest semnal poate fi folosit de orice registru din nucleul IP. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) la aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Intrare clară asincronă în registrul corespunzător. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) la aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Intrare clară sincronă în registrul corespunzător. Modelul de simulare pentru acest IP acceptă valoarea de intrare X nedeterminată pentru aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire
Activați intrarea semnalului în registrul corespunzător. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) la aceste semnale. Când furnizați valoare X acestor semnale, valoarea X este propagată pe semnalele de ieșire.
Specifică reprezentarea numerică a multiplicatorului de intrare A. Dacă semnalul de semnal este mare, multiplicatorul tratează semnalul de multiplicare de intrare A ca un număr cu semn. Dacă semnalul de semnal este scăzut, multiplicatorul tratează semnalul de intrare a multiplicatorului A ca un număr fără semn. Selectați VARIABLE pentru Care este formatul de reprezentare pentru parametrul de intrare Multipliers A pentru a activa acest semnal. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Specifică reprezentarea numerică a semnalului de intrare B a multiplicatorului. Dacă semnalul semnb este ridicat, multiplicatorul tratează semnalul de intrare B al multiplicatorului ca un număr de complement a doi cu semn. Dacă semnalul semnb este scăzut, multiplicatorul tratează semnalul de intrare B al multiplicatorului ca un număr fără semn. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Intrare pentru lanțul de scanare A. Semnal de intrare [WIDTH_A – 1, … 0] lățime. Când parametrul INPUT_SOURCE_A are valoarea SCANA, este necesar semnalul scanina[].
Specifică dinamic dacă valoarea acumulatorului este constantă. Dacă semnalul accum_sload este scăzut, atunci ieșirea multiplicatorului este încărcată în acumulator. Nu utilizați accum_sload și sload_accum simultan.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 45

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Semnal sload_accum
lanț[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

Nr. obligatoriu
Nu Nu
Nu
Nu Nu NU NU

Descriere
Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Specifică dinamic dacă valoarea acumulatorului este constantă. Dacă semnalul sload_accum este ridicat, atunci ieșirea multiplicatorului este încărcată în acumulator. Nu utilizați accum_sload și sload_accum simultan. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
magistrala de intrare a rezultatului sumătorului din s-ul precedenttage. Semnal de intrare [WIDTH_CHAININ – 1, … 0] lat.
Efectuați adunarea sau scăderea la ieșirile din prima pereche de multiplicatori. Intrarea 1 la semnalul addnsub1 pentru a adăuga ieșirile de la prima pereche de multiplicatori. Introduceți 0 la semnalul addnsub1 pentru a scădea ieșirile din prima pereche de multiplicatori. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Efectuați adunarea sau scăderea la ieșirile din prima pereche de multiplicatori. Intrarea 1 la semnalul addnsub3 pentru a adăuga ieșirile de la a doua pereche de multiplicatori. Introduceți 0 la semnalul addnsub3 pentru a scădea ieșirile din prima pereche de multiplicatori. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Semnal de intrare coeficient[0:3] la primul multiplicator. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Semnal de intrare coeficient[0:3]la al doilea multiplicator. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Semnal de intrare coeficient[0:3]la al treilea multiplicator. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.
Semnal de intrare coeficient [0:3] la al patrulea multiplicator. Modelul de simulare pentru acest IP acceptă o valoare de intrare nedeterminată (X) pentru acest semnal. Când furnizați valoare X acestei intrări, valoarea X este propagată pe semnalele de ieșire.

Tabelul 29. Multiplicarea semnalelor de ieșire IP Intel FPGA Adder

Semnal

Necesar

Descriere

rezultat []

Da

Semnal de ieșire multiplicator. Semnal de ieșire [WIDTH_RESULT – 1 … 0] lățime

Modelul de simulare pentru acest IP acceptă valoarea de ieșire nedeterminată (X). Când furnizați valoarea X ca intrare, valoarea X este propagată pe acest semnal.

scanouta []

Nu

Ieșirea lanțului de scanare A. Semnal de ieșire [WIDTH_A – 1..0] lățime.

Selectați mai mult de 2 pentru numărul de multiplicatori și alegeți Scanare intrare în lanț pentru Care este intrarea A a multiplicatorului conectat la parametrul pentru a activa acest semnal.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 46

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6. Parametrii

8.6.1. Tab. General

Tabelul 30. General Tab

Parametru

Parametru generat de IP

Valoare

Care este numărul multiplicatorilor?

număr_de_m 1 – 4 multiplicatori

Cât de lățime ar trebui să fie magistralele de intrare A width_a?

1 – 256

Cât de lățime ar trebui să fie magistralele de intrare B width_b?

1 – 256

Cât de largă ar trebui să fie magistrala de ieșire pentru „rezultat”?

width_result

1 – 256

Creați o activare asociată ceasului pentru fiecare ceas

gui_associate On d_clock_enbl Off e

8.6.2. Fila Moduri suplimentare

Tabelul 31. Tabul Moduri suplimentare

Parametru

Parametru generat de IP

Valoare

Configurare ieșiri

Înregistrați ieșirea unității de adunare

gui_output_re Pornit

gister

Oprit

Care este sursa pentru intrarea ceasului?

gui_output_re gister_clock

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_output_re gister_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_output_re gister_sclr

NIMIC SCLR0 SCLR1

Operațiunea Adder

Ce operație ar trebui efectuată la ieșirile primei perechi de multiplicatori?

gui_multiplicator 1_direcție

ADAUGĂ, SUB, VARIABIL

Valoarea implicită 1
16

Descriere
Numărul de multiplicatori care se adună. Valorile sunt de la 1 la 4. Specificați lățimea portului de datea[].

16

Specificați lățimea portului datab[].

32

Specificați lățimea portului rezultat[].

Oprit

Selectați această opțiune pentru a activa ceasul

pentru fiecare ceas.

Valoare implicită

Descriere

Ceas oprit0
NIMIC NIMIC

Selectați această opțiune pentru a activa registrul de ieșire al modulului de adunare.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica sursa ceasului pentru registrele de ieșire. Trebuie să selectați Înregistrare ieșire a unității de adunare pentru a activa acest parametru.
Specifică sursa clară asincronă pentru registrul de ieșire a sumătorului. Trebuie să selectați Înregistrare ieșire a unității de adunare pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul de ieșire a sumătorului. Trebuie să selectați Înregistrare ieșire a unității de adunare pentru a activa acest parametru.

ADĂUGA

Selectați operația de adunare sau scădere de efectuat pentru ieșirile dintre primul și al doilea multiplicator.
· Selectați ADD pentru a efectua operația de adăugare.
· Selectați SUB pentru a efectua operația de scădere.
· Selectați VARIABIL pentru a utiliza portul addnsub1 pentru controlul dinamic al adunării/scăderii.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 47

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru

Parametru generat de IP

Valoare

Înregistrați intrarea „addnsub1”.

gui_addnsub_ On multiplier_reg Off ister1

Care este sursa pentru intrarea ceasului?

gui_addnsub_ multiplier_reg ster1_clock

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_addnsub_ multiplicator_aclr 1

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_addnsub_ multiplicator_sclr 1

NIMIC SCLR0 SCLR1

Ce operațiune ar trebui efectuată la ieșirile celei de-a doua perechi de multiplicatori?

gui_multiplicator 3_direcție

ADAUGĂ, SUB, VARIABIL

Înregistrați intrarea „addnsub3”.

gui_addnsub_ On multiplier_reg Off ister3

Care este sursa pentru intrarea ceasului?

gui_addnsub_ multiplier_reg ster3_clock

Ceas0 Ceas1 Ceas2

Valoare implicită
Off Clock0 NIMIC NIMIC ADAUGĂ
Ceas oprit0

Descriere
Când este selectată valoarea VARIABILĂ: · Drive addnsub1 semnal la mare pentru
operatie de adaugare. · Conduceți semnalul addnsub1 la scăzut pentru
operația de scădere. Trebuie să selectați mai mult de doi multiplicatori pentru a activa acest parametru.
Selectați această opțiune pentru a activa registrul de intrare pentru portul addnsub1. Trebuie să selectați VARIABIL pentru Ce operație trebuie efectuată pe ieșirile primei perechi de multiplicatori pentru a activa acest parametru.
Selectați Clock0 , Clock1 sau Clock2 pentru a specifica semnalul de ceas de intrare pentru registrul addnsub1. Trebuie să selectați Register 'addnsub1' input pentru a activa acest parametru.
Specifică sursa clară asincronă pentru registrul addnsub1. Trebuie să selectați Register 'addnsub1' input pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul addnsub1. Trebuie să selectați Register 'addnsub1' input pentru a activa acest parametru.
Selectați operația de adunare sau scădere de efectuat pentru ieșirile dintre al treilea și al patrulea multiplicator. · Selectați ADD pentru a efectua adăugarea
operare. · Selectați SUB pentru a efectua scăderea
operare. · Selectați VARIABIL pentru a utiliza addnsub1
port pentru controlul dinamic de adunare/scădere. Când este selectată valoarea VARIABILĂ: · Conduceți semnalul addnsub1 la nivel ridicat pentru operarea de adăugare. · Conduceți semnalul addnsub1 la scăzut pentru operația de scădere. Trebuie să selectați valoarea 4 pentru Care este numărul de multiplicatori? pentru a activa acest parametru.
Selectați această opțiune pentru a activa registrul de intrare pentru semnalul addnsub3. Trebuie să selectați VARIABIL pentru Ce operațiune trebuie efectuată pe ieșirile celei de-a doua perechi de multiplicatori pentru a activa acest parametru.
Selectați Clock0 , Clock1 sau Clock2 pentru a specifica semnalul de ceas de intrare pentru registrul addnsub3. Trebuie să selectați Înregistrați intrarea „addnsub3” pentru a activa acest parametru.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 48

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru
Care este sursa pentru intrare clară asincronă?

Parametru generat de IP

Valoare

gui_addnsub_ multiplicator_aclr 3

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_addnsub_ multiplicator_sclr 3

NIMIC SCLR0 SCLR1

Activare polaritate `use_subadd'

gui_use_subn Activat

adăuga

Oprit

8.6.3. Fila Multiplicatori

Tabelul 32. Tab. Multiplicatori

Parametru

Parametru generat de IP

Valoare

Ce este

gui_reprezentare

format de reprezentare ation_a

pentru intrări Multiplicatori A?

SEMNAT, NESEMNAT, VARIABIL

Înregistrați intrarea „signa”.

gui_register_s Pornit

igna

Oprit

Care este sursa pentru intrarea ceasului?

gui_register_s igna_clock

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_register_s igna_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_register_s igna_sclr

NIMIC SCLR0 SCLR1

Ce este

gui_reprezentare

format de reprezentare ation_b

pentru intrări Multiplicatori B?

SEMNAT, NESEMNAT, VARIABIL

Înregistrați intrarea „signb”.

gui_register_s Pornit

ignb

Oprit

Valoarea implicită NIMIC
NICI UNUL

Descriere
Specifică sursa clară asincronă pentru registrul addnsub3. Trebuie să selectați Register 'addnsub3' input pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul addnsub3. Trebuie să selectați Înregistrați intrarea „addnsub3” pentru a activa acest parametru.

Oprit

Selectați această opțiune pentru a inversa funcția

a portului de intrare addnsub.

Drive addnsub la mare pentru operația de scădere.

Drive addnsub la scăzut pentru operațiune de adăugare.

Valoare implicită

Descriere

UNSIGNED Specificați formatul de reprezentare pentru intrarea multiplicatorului A.

Oprit

Selectați această opțiune pentru a activa signa

registru.

Trebuie să selectați valoarea VARIABILĂ pentru Care este formatul de reprezentare pentru intrările Multipliers A? parametru pentru a activa această opțiune.

Ceas0

Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica semnalul de ceas de intrare pentru registrul de semnal.
Trebuie să selectați Register `signa' input pentru a activa acest parametru.

NICI UNUL

Specifică sursa clară asincronă pentru registrul signa.
Trebuie să selectați Register `signa' input pentru a activa acest parametru.

NICI UNUL

Specifică sursa clară sincronă pentru registrul signa.
Trebuie să selectați Register `signa' input pentru a activa acest parametru.

UNSIGNED Specificați formatul de reprezentare pentru intrarea multiplicatorului B.

Oprit

Selectați această opțiune pentru a activa signb

registru.

a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 49

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru

Parametru generat de IP

Valoare

Valoare implicită

Care este sursa pentru intrarea ceasului?

gui_register_s ignb_clock

Ceas0 Ceas1 Ceas2

Ceas0

Care este sursa pentru intrare clară asincronă?

gui_register_s ignb_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_register_s ignb_sclr

NIMIC SCLR0 SCLR1

Configurație de intrare
Înregistrați intrarea A a multiplicatorului
Care este sursa pentru intrarea ceasului?

gui_input_reg Activat

ister_a

Oprit

gui_input_reg ister_a_clock

Ceas0 Ceas1 Ceas2

NIMIC NIMIC
Ceas oprit0

Care este sursa pentru intrare clară asincronă?

gui_input_reg ister_a_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_input_reg ister_a_sclr

NIMIC SCLR0 SCLR1

Înregistrați intrarea B a multiplicatorului
Care este sursa pentru intrarea ceasului?

gui_input_reg Activat

ister_b

Oprit

gui_input_reg ister_b_clock

Ceas0 Ceas1 Ceas2

NIMIC NIMIC Oprit Ceas0

Care este sursa pentru intrare clară asincronă?

gui_input_reg ister_b_aclr

NIMIC ACLR0 ACLR1

NICI UNUL

Care este sursa pentru intrare clară sincronă?

gui_input_reg ister_b_sclr

NIMIC SCLR0 SCLR1

NICI UNUL

La ce este conectată intrarea A a multiplicatorului?

gui_multiplier Multiplicator input Multiplicator

_o_intrare

Intrare de intrare în lanț de scanare

Descriere
Trebuie să selectați valoarea VARIABILĂ pentru Care este formatul de reprezentare pentru intrările Multipliers B? parametru pentru a activa această opțiune.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica semnalul de ceas de intrare pentru registrul de semnătură. Trebuie să selectați Înregistrare intrare `signb' pentru a activa acest parametru.
Specifică sursa clară asincronă pentru registrul signb. Trebuie să selectați Înregistrare intrare `signb' pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul signb. Trebuie să selectați Înregistrare intrare `signb' pentru a activa acest parametru.
Selectați această opțiune pentru a activa registrul de intrare pentru magistrala de intrare a datelor.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica semnalul de ceas de intrare a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare A a multiplicatorului pentru a activa acest parametru.
Specifică sursa clară asincronă a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare A a multiplicatorului pentru a activa acest parametru.
Specifică sursa de ștergere sincronă a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare A a multiplicatorului pentru a activa acest parametru.
Selectați această opțiune pentru a activa registrul de intrare pentru magistrala de intrare de date.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica semnalul de ceas de intrare a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare B a multiplicatorului pentru a activa acest parametru.
Specifică sursa clară asincronă a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare B a multiplicatorului pentru a activa acest parametru.
Specifică sursa de ștergere sincronă a registrului pentru magistrala de intrare a datelor. Trebuie să selectați Înregistrare intrare B a multiplicatorului pentru a activa acest parametru.
Selectați sursa de intrare pentru intrarea A a multiplicatorului.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 50

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru

Parametru generat de IP

Valoare

Scanout A Register Configuration

Înregistrați ieșirea lanțului de scanare

gui_scanouta On

_registru

Oprit

Care este sursa pentru intrarea ceasului?

gui_scanouta _register_cloc k

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_scanouta _register_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_scanouta _register_sclr

NIMIC SCLR0 SCLR1

8.6.4. Fila Preadder

Tabelul 33. Fila Preadder

Parametru

Parametru generat de IP

Valoare

Selectați modul Preader

predder_mo de

SIMPLU, COEF, INTRARE, PATRAT, CONSTANT

Valoare implicită

Descriere
Selectați Intrarea multiplicatorului pentru a utiliza magistrala de intrare a datelor ca sursă pentru multiplicator. Selectați Scanare intrare în lanț pentru a utiliza magistrala de intrare de scanare ca sursă pentru multiplicator și pentru a activa magistrala de ieșire a scanării. Acest parametru este disponibil când selectați 2, 3 sau 4 pentru Care este numărul de multiplicatori? parametru.

Off Clock0 NIMIC NIMIC

Selectați această opțiune pentru a activa registrul de ieșire pentru magistrala de ieșire scanouta.
Trebuie să selectați Scanare intrare în lanț pentru La ce este conectată intrarea A a multiplicatorului? parametru pentru a activa această opțiune.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și a specifica semnalul de ceas de intrare a registrului pentru magistrala de ieșire scanouta.
Trebuie să activați înregistrarea ieșirii parametrului lanțului de scanare pentru a activa această opțiune.
Specifică sursa de ștergere asincronă a registrului pentru magistrala de ieșire scanouta.
Trebuie să activați înregistrarea ieșirii parametrului lanțului de scanare pentru a activa această opțiune.
Specifică sursa de ștergere sincronă a registrului pentru magistrala de ieșire scanouta.
Trebuie să selectați Înregistrare ieșire a parametrului lanțului de scanare pentru a activa această opțiune.

Valoare implicită
SIMPLU

Descriere
Specifică modul de funcționare pentru modulul preadder. SIMPLU: Acest mod ocolește preadder-ul. Acesta este modul implicit. COEF: Acest mod folosește ieșirea magistralei de intrare preadder și coefsel ca intrări pentru multiplicator. INTRARE: Acest mod folosește ieșirea predder-ului și magistralei de intrare de date ca intrări pentru multiplicator. SQUARE: Acest mod folosește ieșirea preadder-ului ca ambele intrări pentru multiplicator.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 51

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru

Parametru generat de IP

Valoare

Selectați direcția preadderului

gui_preadder ADD,

_direcţie

SUB

Cât de lățime ar trebui să fie magistralele de intrare C width_c?

1 – 256

Date C Configurare registru de intrare

Înregistrați intrarea de date

gui_datac_inp Activat

ut_register

Oprit

Care este sursa pentru intrarea ceasului?

gui_datac_inp ut_register_cl ock

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_datac_inp ut_register_a clr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_datac_inp ut_register_sc lr

NIMIC SCLR0 SCLR1

Coeficienți
Cât de largă ar trebui să fie lățimea coefului?

width_coef

1 – 27

Configurarea registrului Coef

Înregistrați intrarea coefsel

gui_coef_regi On

ster

Oprit

Care este sursa pentru intrarea ceasului?

gui_coef_regi ster_clock

Ceas0 Ceas1 Ceas2

Valoare implicită
ADĂUGA
16

Descriere
CONSTANT: Acest mod folosește o magistrală de intrare de date cu predder ocolit și magistrală de intrare coefsel ca intrări pentru multiplicator.
Specifică funcționarea preadder-ului. Pentru a activa acest parametru, selectați următoarele pentru modul Select predder: · COEF · INPUT · SQUARE sau · CONSTANT
Specifică numărul de biți pentru magistrala de intrare C. Trebuie să selectați INPUT pentru Select predder mode pentru a activa acest parametru.

On Clock0 NIMIC NIMIC

Selectați această opțiune pentru a activa registrul de intrare pentru magistrala de intrare de date. Trebuie să setați INPUT la parametrul Selectare mod predder pentru a activa această opțiune.
Selectați Clock0 , Clock1 sau Clock2 pentru a specifica semnalul de ceas de intrare pentru registrul de intrare de date. Trebuie să selectați Register datac input pentru a activa acest parametru.
Specifică sursa clară asincronă pentru registrul de intrare datac. Trebuie să selectați Register datac input pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul de intrare datac. Trebuie să selectați Register datac input pentru a activa acest parametru.

18

Specifică numărul de biți pentru

magistrală de intrare coefsel.

Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.

Pe Ceas0

Selectați această opțiune pentru a activa registrul de intrare pentru magistrala de intrare coefsel. Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.
Selectați Clock0 , Clock1 sau Clock2 pentru a specifica semnalul de ceas de intrare pentru registrul de intrare coefsel. Trebuie să selectați Înregistrați intrarea coefsel pentru a activa acest parametru.
a continuat…

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 52

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru
Care este sursa pentru intrare clară asincronă?

Parametru generat de IP

Valoare

gui_coef_regi ster_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă

gui_coef_regi ster_sclr

NIMIC SCLR0 SCLR1

Configurație Coeficient_0

coef0_0 până la coef0_7

0x00000 0xFFFFFFF

Configurație Coeficient_1

coef1_0 până la coef1_7

0x00000 0xFFFFFFF

Configurație Coeficient_2

coef2_0 până la coef2_7

0x00000 0xFFFFFFF

Configurație Coeficient_3

coef3_0 până la coef3_7

0x00000 0xFFFFFFF

8.6.5. Tab. Acumulator

Tabelul 34. Tab. Acumulator

Parametru

Parametru generat de IP

Valoare

Activați acumulatorul?

acumulator

DA NU

Care este tipul de funcționare a acumulatorului?

accum_directi ADD,

on

SUB

Valoarea implicită NIMIC
NICI UNUL
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0

Descriere
Specifică sursa clară asincronă pentru registrul de intrare coefsel. Trebuie să selectați Înregistrați intrarea coefsel pentru a activa acest parametru.
Specifică sursa clară sincronă pentru registrul de intrare coefsel. Trebuie să selectați Înregistrați intrarea coefsel pentru a activa acest parametru.
Specifică valorile coeficientului pentru acest prim multiplicator. Numărul de biți trebuie să fie același cu cel specificat în Cât de largă ar trebui să fie lățimea coefului? parametru. Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.
Specifică valorile coeficientului pentru acest al doilea multiplicator. Numărul de biți trebuie să fie același cu cel specificat în Cât de largă ar trebui să fie lățimea coefului? parametru. Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.
Specifică valorile coeficientului pentru acest al treilea multiplicator. Numărul de biți trebuie să fie același cu cel specificat în Cât de largă ar trebui să fie lățimea coefului? parametru. Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.
Specifică valorile coeficientului pentru acest al patrulea multiplicator. Numărul de biți trebuie să fie același cu cel specificat în Cât de largă ar trebui să fie lățimea coefului? parametru. Trebuie să selectați COEF sau CONSTANT pentru modul Predder pentru a activa acest parametru.

Valoarea implicită NR
ADĂUGA

Descriere
Selectați DA pentru a activa acumulatorul. Trebuie să selectați Înregistrare ieșire a unității de adunare când utilizați caracteristica acumulator.
Specifică funcționarea acumulatorului: · ADD pentru operația de adunare · SUB pentru operația de scădere. Trebuie să selectați DA pentru Activare acumulator? parametru pentru a activa această opțiune.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 53

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru
Preload Constant Activați constanta de preîncărcare

Parametru generat de IP

Valoare

gui_ena_prelo On

ad_const

Oprit

La ce este conectat intrarea portului de acumulare?

gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM

Selectați valoarea pentru preîncărcare loadconst_val 0 – 64

constant

ue

Care este sursa pentru intrarea ceasului?

gui_accum_sl oad_register_ ceas

Ceas0 Ceas1 Ceas2

Care este sursa pentru intrare clară asincronă?

gui_accum_sl oad_register_ aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_accum_sl oad_register_ sclr

NIMIC SCLR0 SCLR1

Activați acumulatorul dublu

gui_double_a On

ccum

Oprit

Valoare implicită

Descriere

Oprit

Activați accum_sload sau

semnalele sload_accum și intrarea registrului

pentru a selecta dinamic intrarea în

acumulator.

Când accum_sload este scăzut sau sload_accum, ieșirea multiplicatorului este alimentată în acumulator.

Când accum_sload este mare sau sload_accum, o constantă de preîncărcare specificată de utilizator este alimentată în acumulator.

Trebuie să selectați DA pentru Activare acumulator? parametru pentru a activa această opțiune.

ACCUM_SL OAD

Specifică comportamentul semnalului accum_sload/sload_accum.
ACCUM_SLOAD: Drive accum_sload low pentru a încărca ieșirea multiplicatorului la acumulator.
SLOAD_ACCUM: conduceți sload_accum la nivel ridicat pentru a încărca ieșirea multiplicatorului în acumulator.
Trebuie să selectați opțiunea Enable preload constant pentru a activa acest parametru.

64

Specificați valoarea constantă prestabilită.

Această valoare poate fi 2N, unde N este valoarea constantă prestabilită.

Când N=64, acesta reprezintă un zero constant.

Trebuie să selectați opțiunea Enable preload constant pentru a activa acest parametru.

Ceas0

Selectați Clock0 , Clock1 sau Clock2 pentru a specifica semnalul de ceas de intrare pentru registrul accum_sload/sload_accum.
Trebuie să selectați opțiunea Enable preload constant pentru a activa acest parametru.

NICI UNUL

Specifică sursa clară asincronă pentru registrul accum_sload/sload_accum.
Trebuie să selectați opțiunea Enable preload constant pentru a activa acest parametru.

NICI UNUL

Specifică sursa clară sincronă pentru registrul accum_sload/sload_accum.
Trebuie să selectați opțiunea Enable preload constant pentru a activa acest parametru.

Oprit

Activează registrul dublu acumulator.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 54

Trimiteți feedback

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

8.6.6. Tabă Sistolic/Chainout

Tabelul 35. Fila Adder Sistolic/Chainout

Parametrul Activare adaugătorului de lanț

Parametru generat de IP

Valoare

chainout_add DA,

er

NU

Care este tipul de operație pentru adăugarea în lanț?

chainout_add ADD,

er_direction

SUB

Activați intrarea „negație” pentru adaosul chainout?

Port_negate

PORT_USED, PORT_UNUSED

Înregistrați intrarea „negație”? negate_regist er

NEÎNREGISTRAT, CLOCK0, CLOCK1, CLOCK2, CLOCK3

Care este sursa pentru intrare clară asincronă?

negate_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

negate_sclr

NIMIC SCLR0 SCLR1

Întârziere sistolică
Activați registrele de întârziere sistolice

gui_sistolic_d On

elay

Oprit

Care este sursa pentru intrarea ceasului?

gui_systolic_d CLOCK0,

elay_clock

CLOCK1,

Valoare implicită
NU

Descriere
Selectați DA pentru a activa modulul de adăugare în lanț.

ADĂUGA

Specifică operațiunea de adăugare în lanț.
Pentru operația de scădere, trebuie selectat SIGNED pentru Care este formatul de reprezentare pentru intrările Multipliers A? și Care este formatul de reprezentare pentru intrările Multipliers B? în fila Multiplicatori.

PORT_UN FOLOSIT

Selectați PORT_USED pentru a activa semnalul de intrare de negare.
Acest parametru este invalid atunci când adaugătorul chainout este dezactivat.

NEÎNREGISTRARE ERED

Pentru a activa registrul de intrare pentru semnalul de intrare de negare și specifică semnalul de ceas de intrare pentru registrul de negare.
Selectați NEÎNREGISTRAT dacă nu este necesar registrul de intrare de negare la
Acest parametru este invalid atunci când selectați:
· NU pentru Enable Chainout Adder sau
· PORT_UNUSED pentru Activați intrarea „negație” pentru adaosul chainout? parametru sau

NICI UNUL

Specifică sursa clară asincronă pentru registrul de negare.
Acest parametru este invalid atunci când selectați:
· NU pentru Enable Chainout Adder sau
· PORT_UNUSED pentru Activați intrarea „negație” pentru adaosul chainout? parametru sau

NICI UNUL

Specifică sursa clară sincronă pentru registrul de negare.
Acest parametru este invalid atunci când selectați:
· NU pentru Enable Chainout Adder sau
· PORT_UNUSED pentru Activați intrarea „negație” pentru adaosul chainout? parametru sau

Oprit CLOCK0

Selectați această opțiune pentru a activa modul sistolic. Acest parametru este disponibil când selectați 2 sau 4 pentru Care este numărul de multiplicatori? parametru. Trebuie să activați ieșirea Register a unității sumatoare pentru a utiliza registrele de întârziere sistolice.
Specifică semnalul de ceas de intrare pentru registrul de întârziere sistolic.
a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 55

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05

Parametru

Parametru generat de IP

Valoare

CLOCK2,

Care este sursa pentru intrare clară asincronă?

gui_systolic_d elay_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_systolic_d elay_sclr

NIMIC SCLR0 SCLR1

Valoare implicită
NICI UNUL
NICI UNUL

Descriere
Trebuie să selectați Enable Systolic Delay registers pentru a activa această opțiune.
Specifică sursa clară asincronă pentru registrul de întârziere sistolică. Trebuie să selectați Enable Systolic Delay registers pentru a activa această opțiune.
Specifică sursa clară sincronă pentru registrul de întârziere sistolică. Trebuie să selectați Enable Systolic Delay registers pentru a activa această opțiune.

8.6.7. Fila Conducte

Tabelul 36. Tab. Conducte

Configurație de canalizare a parametrilor

Parametru generat de IP

Valoare

Doriți să adăugați un registru pipeline la intrare?

gui_pipelining Nu, da

Valoare implicită
Nu

Vă rugăm să specificați

latenta

numărul de ceas de latență

cicluri

Orice valoare mai mare de 0 decât 0

Care este sursa pentru intrarea ceasului?

gui_input_late ncy_clock

CLOCK0, CLOCK1, CLOCK2

Care este sursa pentru intrare clară asincronă?

gui_input_late ncy_aclr

NIMIC ACLR0 ACLR1

Care este sursa pentru intrare clară sincronă?

gui_input_late ncy_sclr

NIMIC SCLR0 SCLR1

CLOCK0 NIMIC NIMIC

Descriere
Selectați Da pentru a activa un nivel suplimentar de registru de conducte pentru semnalele de intrare. Trebuie să specificați o valoare mai mare decât 0 pentru parametrul Vă rugăm să specificați numărul de cicluri de ceas de latență.
Specifică latența dorită în ciclurile de ceas. Un nivel al registrului conductei = 1 latență în ciclul de ceas. Trebuie să selectați DA pentru Doriți să adăugați registrul conductei la intrare? pentru a activa această opțiune.
Selectați Clock0 , Clock1 sau Clock2 pentru a activa și specifica semnalul de ceas de intrare al registrului conductei. Trebuie să selectați DA pentru Doriți să adăugați registrul conductei la intrare? pentru a activa această opțiune.
Specifică sursa clară asincronă a registrului pentru registrul pipeline suplimentar. Trebuie să selectați DA pentru Doriți să adăugați registrul conductei la intrare? pentru a activa această opțiune.
Specifică sursa clară sincronă a registrului pentru registrul suplimentar al conductei. Trebuie să selectați DA pentru Doriți să adăugați registrul conductei la intrare? pentru a activa această opțiune.

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 56

Trimiteți feedback

683490 | 2020.10.05 Trimiteți feedback

9. ALTMEMMULT (Multiplicator de coeficient constant bazat pe memorie) IP Core

Atenţie:

Intel a eliminat suportul pentru acest IP în versiunea 20.3 Intel Quartus Prime Pro Edition. Dacă nucleul IP din designul dvs. vizează dispozitivele din Intel Quartus Prime Pro Edition, puteți înlocui IP-ul cu LPM_MULT Intel FPGA IP sau să regenerați IP-ul și să vă compilați designul utilizând software-ul Intel Quartus Prime Standard Edition.

Nucleul ALTMEMMULT IP este folosit pentru a crea multiplicatori bazați pe memorie folosind blocurile de memorie onchip găsite în FPGA-urile Intel (cu blocuri de memorie M512, M4K, M9K și MLAB). Acest nucleu IP este util dacă nu aveți resurse suficiente pentru a implementa multiplicatorii în elemente logice (LE) sau resurse multiplicatoare dedicate.
Nucleul ALTMEMMULT IP este o funcție sincronă care necesită un ceas. Nucleul ALTMEMMULT IP implementează un multiplicator cu cel mai mic debit și latență posibil pentru un anumit set de parametri și specificații.
Următoarea figură arată porturile pentru nucleul IP ALTMEMMULT.

Figura 21. Porturi ALTMEMMULT

ALTMEMMULT

data_in[] sload_data coeff_in[]

rezultat[] result_valid load_done

sload_coeff

ceas sclr
inst

Informații înrudite Caracteristici la pagina 71

9.1. Caracteristici
Nucleul ALTMEMMULT IP oferă următoarele caracteristici: · Creează numai multiplicatori bazați pe memorie folosind blocuri de memorie pe cip găsite în
Intel FPGA · Suportă lățimea datelor de 1 biți · Acceptă formatul de reprezentare a datelor semnate și nesemnate · Suportă pipelining cu latență fixă ​​de ieșire

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Înregistrat ISO 9001: 2015

9. ALTMEMMULT (Multiplicator de coeficient constant bazat pe memorie) IP Core 683490 | 2020.10.05
· Stochează mai multe constante în memoria cu acces aleatoriu (RAM)
· Oferă o opțiune pentru a selecta tipul de bloc RAM
· Suportă opționale porturi de intrare clare și de control al încărcării sincrone
9.2. Prototip Verilog HDL
Următorul prototip Verilog HDL este situat în Verilog Design File (.v) altera_mf.v în directorul de sinteză eda.
module altmemmult #( parametru coeff_representation = „SIGNED”, parametru coeficient0 = „NEUTILIZAT”, parametru data_representation = „SIGNED”, parametru destinat_device_family = „nefolosit”, parametru max_clock_cycles_per_result = 1, parametru number_of_coefficients = „AUT_O_, parameters = ram” total_latency = 1, parametrul width_c = 1, parametrul width_d = 1, parametrul width_r = 1, parametrul width_s = 1, parametrul lpm_type = „altmemmult”, parametrul lpm_hint = „unused”) ( ceas fir de intrare, fir de intrare [width_c-1: 1]coeff_in, fir de intrare [width_d-0:1] data_in, fir de ieșire load_done, fir de ieșire [width_r-0:1] rezultat, fir de ieșire result_valid, fir de intrare sclr, fir de intrare [width_s-0:1] sel, intrare wire sload_coeff, input wire sload_data)/* sinteza syn_black_box=0 */; modul final
9.3. Declarația componentelor VHDL
Declarația componentei VHDL este localizată în proiectarea VHDL File (.vhd) altera_mf_components.vhd în directorul librariesvhdlaltera_mf.
component altmemmult generic ( coeff_representation:string := „SIGNED”; coeficient0:string := „NEUSED”; data_representation:string := „SIGNED”; reason_device_family:string := „nefolosit”; max_clock_cycles_per_result:natural := 1; := 1; ram_block_type:= „AUTO”; „altmemmult”); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 1) := (altele => '0'); data_in:in std_logic_vector(width_d-0 downto 1);

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 58

Trimiteți feedback

9. ALTMEMMULT (Multiplicator de coeficient constant bazat pe memorie) IP Core 683490 | 2020.10.05

load_done:out std_logic; rezultat:out std_logic_vector(width_r-1 downto 0); result_valid:out std_logic; sclr:in std_logic := '0'; sel:in std_logic_vector(width_s-1 downto 0) := (altele => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); componentă de capăt;

9.4. Porturi

Următoarele tabele listează porturile de intrare și de ieșire pentru nucleul IP ALTMEMMULT.

Tabelul 37. Porturi de intrare ALTMEMMULT

Numele portului

Necesar

Descriere

ceas

Da

Ceas de intrare la multiplicator.

coeff_in[]

Nu

Port de intrare coeficient pentru multiplicator. Mărimea portului de intrare depinde de valoarea parametrului WIDTH_C.

date_in[]

Da

Portul de intrare a datelor la multiplicator. Mărimea portului de intrare depinde de valoarea parametrului WIDTH_D.

sclr

Nu

Intrare clară sincronă. Dacă nu este utilizată, valoarea implicită este activă ridicată.

sel[]

Nu

Selectarea coeficientului fix. Dimensiunea portului de intrare depinde de WIDTH_S

valoarea parametrului.

sload_coeff

Nu

Port de intrare pentru coeficientul de sarcină sincron. Înlocuiește valoarea coeficientului selectată curent cu valoarea specificată în intrarea coeff_in.

sload_data

Nu

Port de intrare a datelor de încărcare sincronă. Semnal care specifică o nouă operație de înmulțire și anulează orice operație de înmulțire existentă. Dacă parametrul MAX_CLOCK_CYCLES_PER_RESULT are valoarea 1, portul de intrare sload_data este ignorat.

Tabelul 38. Porturi de ieșire ALTMEMMULT

Numele portului

Necesar

Descriere

rezultat[]

Da

Port de ieșire a multiplicatorului. Mărimea portului de intrare depinde de valoarea parametrului WIDTH_R.

rezultat_valid

Da

Indică când rezultatul este rezultatul valid al unei înmulțiri complete. Dacă parametrul MAX_CLOCK_CYCLES_PER_RESULT are valoarea 1, portul de ieșire result_valid nu este utilizat.

încărcare_terminat

Nu

Indică când noul coeficient sa terminat de încărcat. Semnalul load_done se afirmă când un nou coeficient s-a terminat de încărcat. Cu excepția cazului în care semnalul load_done este mare, nicio altă valoare a coeficientului nu poate fi încărcată în memorie.

9.5. Parametrii

Următorul tabel listează parametrii pentru nucleul IP ALTMEMMULT.

Tabelul 39.
WIDTH_D WIDTH_C

ALTMEMMULT Parametri
Nume parametru

Tip Necesar

Descriere

Număr întreg Da

Specifică lățimea portului data_in[].

Număr întreg Da

Specifică lățimea portului coeff_in[]. a continuat…

Trimiteți feedback

Ghid de utilizare a nucleelor ​​IP Intel FPGA Integer Arithmetic 59

9. ALTMEMMULT (Multiplicator de coeficient constant bazat pe memorie) IP Core 683490 | 2020.10.05

Nume parametru WIDTH_R WIDTH

Documente/Resurse

Intel FPGA Integer Arithmetic IP Cores [pdfGhid de utilizare
FPGA nuclee IP aritmetice întregi, nuclee IP aritmetice întregi, nuclee IP aritmetice, nuclee IP

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *