Core IP FPGA Integer Arithmetic
Guida per l'utente Intel FPGA Integer Arithmetic IP Cores
Aghjurnatu per Intel® Quartus® Prime Design Suite: 20.3
Versione Online Mandate Feedback
UG-01063
ID: 683490 Versione: 2020.10.05
Cuntenuti
Cuntenuti
1. Intel FPGA Integer Arithmetic IP Cores…………………………………………………………………………….. 5
2. LPM_COUNTER (Counter) IP Core……………………………………………………………………………….. 7 2.1. Funzionalità………………………………………………………………………………………………………… 7 2.2. Prototipu Verilog HDL…………………………………………………………………………………………….. 8 2.3. Dichjarazione di cumpunenti VHDL……………………………………………………………………………….8 2.4. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 9 2.5. Porti………………………………………………………………………………………………………………..9 2.6. Parametri…………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core…………………………………………………………………….. 12 3.1. Features…………………………………………………………………………………………………………. 12 3.2. Prototipu Verilog HDL……………………………………………………………………………… 12 3.3. Dichjarazione di cumpunenti VHDL……………………………………………………………………………….. 13 3.4. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 13 3.5. Porti………………………………………………………………………………………………… 13 3.6. Parametri…………………………………………………………………………………………… 14
4. LPM_MULT (Multiplicatore) IP Core………………………………………………………………………………………. 16 4.1. Features…………………………………………………………………………………………………………. 16 4.2. Prototipu Verilog HDL……………………………………………………………………………… 17 4.3. Dichjarazione di cumpunenti VHDL…………………………………………………………………….. 17 4.4. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 17 4.5. Signali………………………………………………………………………………………………………… 18 4.6. Parametri per i dispositi Stratix V, Arria V, Cyclone V è Intel Cyclone 10 LP…………… 18 4.6.1. Tabulazione Generale………………………………………………………………………………18 4.6.2. Generale 2 Tabulazione……………………………………………………………………………… 19 4.6.3. Tabulazione Pipelining……………………………………………………………………………… 19 4.7. Parametri per Intel Stratix 10, Intel Arria 10, è Intel Cyclone 10 GX Dispositivi……….. 20 4.7.1. Tabulazione Generale……………………………………………………………………………… 20 4.7.2. Generale 2 Tabulazione……………………………………………………………………………… 20 4.7.3. Pipeline…………………………………………………………………………………… 21
5. LPM_ADD_SUB (Adder/Subtractor)………………………………………………………………… 22 5.1. Features…………………………………………………………………………………………………………. 22 5.2. Prototipu Verilog HDL……………………………………………………………………………… 23 5.3. Dichjarazione di cumpunenti VHDL…………………………………………………………………….. 23 5.4. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 23 5.5. Porti………………………………………………………………………………………………… 23 5.6. Parametri…………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparatore)……………………………………………………………………………… 26 6.1. Features…………………………………………………………………………………………………………. 26 6.2. Prototipu Verilog HDL……………………………………………………………………………… 27 6.3. Dichjarazione di cumpunenti VHDL…………………………………………………………………….. 27 6.4. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 27 6.5. Ports………………………………………………………………………………………………………… 27 6.6. Parametri…………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 2
Mandate Feedback
Cuntenuti
7. ALTEC (Codice di Correzione di Errore: Encoder/Decoder) IP Core……………………………………………… 30
7.1. Funzioni di l'encoder ALTEC……………………………………………………………………………………..31 7.2. Prototipu Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototipu Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Dichjarazione di cumpunenti VHDL (ALTECC_ENCODER) …………………………………………………… 33 7.5. Dichjarazione di cumpunenti VHDL (ALTECC_DECODER) …………………………………………………… 33 7.6. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 33 7.7. Porti di codificatore…………………………………………………………………………………………… 33 7.8. Porti di decodificatore…………………………………………………………………………………………… 34 7.9. Parametri Encoder…………………………………………………………………………………………… 34 7.10. Parametri di Decoder ……………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………………………. 36
8.1. Features…………………………………………………………………………………………………………. 37 8.1.1. Pre-additore…………………………………………………………………………………………….. 38 8.1.2. Registru di Delay Systolic………………………………………………………………….. 40 8.1.3. Custante di precarica………………………………………………………………………………… 43 8.1.4. Doppiu accumulatore……………………………………………………………………………… 43
8.2. Prototipu Verilog HDL……………………………………………………………………………… 44 8.3. Dichjarazione di cumpunenti VHDL…………………………………………………………………….. 44 8.4. Dichjarazione VHDL LIBRARY_USE…………………………………………………………………. 44 8.5. Signali………………………………………………………………………………………………………… 44 8.6. Parametri…………………………………………………………………………………………… 47
8.6.1. Tabulazione Generale……………………………………………………………………………… 47 8.6.2. Scheda Modi Extra…………………………………………………………………………………………….. 47 8.6.3. Scheda Multiplicatori……………………………………………………………………………… 49 8.6.4. Tabulazione Preadder………………………………………………………………………………. 51 8.6.5. Accumulator Tab………………………………………………………………………………….. 53 8.6.6. Tabulazione Sistolica/Chainout …………………………………………………………………………………. 55 8.6.7. Tabulazione Pipelining……………………………………………………………………………… 56
9. ALTMEMMULT (Multiplicatore di Coefficienti Constant Basatu in Memoria) IP Core………… 57
9.1. Features…………………………………………………………………………………………………………. 57 9.2. Prototipu Verilog HDL……………………………………………………………………………… 58 9.3. Dichjarazione di cumpunenti VHDL…………………………………………………………………….. 58 9.4. Ports………………………………………………………………………………………………………… 59 9.5. Parametri…………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (multiplicazione-accumulazione) IP Core………………………………………………………… 61
10.1. Funzioni………………………………………………………………………………………………………….. 62 10.2. Prototipu Verilog HDL…………………………………………………………………………………………………..62 10.3. Dichjarazione di cumpunenti VHDL………………………………………………………………… 63 10.4. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 63 10.5. Porti ……………………………………………………………………………………………………………. 63 10.6. Parametri…………………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiply-Adder) IP Core………………………………………………………………………..69
11.1. Funzioni………………………………………………………………………………………………………….. 71 11.2. Prototipu Verilog HDL…………………………………………………………………………………………………..72 11.3. Dichjarazione di cumpunenti VHDL………………………………………………………………… 72 11.4. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 72
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 3
Cuntenuti
11.5. Porti ……………………………………………………………………………………………………………. 72 11.6. Parametri…………………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Multiplicatore cumplessu) IP Core…………………………………………………… 86 12.1. Multiplicazione cumplessa ………………………………………………………………………………… 86 12.2. Ripresentazione Canonica……………………………………………………………………………… 87 12.3. Rappresentazione convenzionale …………………………………………………………………………………. 87 12.4. Funzioni………………………………………………………………………………………………………….. 88 12.5. Prototipu Verilog HDL……………………………………………………………………………………………..88 12.6. Dichjarazione di cumpunenti VHDL………………………………………………………………… 89 12.7. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 89 12.8. Segnali ……………………………………………………………………………………………………………. 89 12.9. Parametri…………………………………………………………………………………………………. 90
13. ALTSQRT (Integer Square Root) IP Core………………………………………………………………………92 13.1. Funzioni………………………………………………………………………………………………………….. 92 13.2. Prototipu Verilog HDL………………………………………………………………………………………………..92 13.3. Dichjarazione di cumpunenti VHDL………………………………………………………………… 93 13.4. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 93 13.5. Porti ……………………………………………………………………………………………………………. 93 13.6. Parametri…………………………………………………………………………………………………. 94
14. PARALLEL_ADD (Adder Parallel) IP Core………………………………………………………….. 95 14.1. Caratteristica………………………………………………………………………………………………………….95 14.2. Prototipu Verilog HDL………………………………………………………………………………………………..95 14.3. Dichjarazione di cumpunenti VHDL………………………………………………………………… 96 14.4. Dichjarazione VHDL LIBRARY_USE………………………………………………………………… 96 14.5. Porti ……………………………………………………………………………………………………………. 96 14.6. Parametri…………………………………………………………………………………………………. 97
15. Integer Arithmetic IP Cores Guida di l'Usuariu Archivi di Documenti……………………………………… 98
16. Storia di Revisione di Documenti per Intel FPGA Integer Arithmetic IP Cores Guida d'Usuariu .... 99
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 4
Mandate Feedback
683490 | 2020.10.05 Mandate Feedback
1. Intel FPGA Integer Arithmetic IP Cores
Pudete utilizà l'Intel® FPGA integer IP cores per fà operazioni matematiche in u vostru disignu.
Queste funzioni offrenu una sintesi logica più efficace è l'implementazione di u dispositivu chè codificà e vostre funzioni. Pudete persunalizà i core IP per accoglie i vostri bisogni di cuncepimentu.
I nuclei IP aritmetici interi Intel sò divisi in e duie categorie seguenti: · Biblioteca di moduli parametrizzati (LPM) Core IP · Core IP Intel-specific (ALT)
A tavula seguente lista i nuclei IP aritmetici interi.
Tabella 1.
Lista di i Core IP
Core IP
Core IP LPM
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Cores IP Intel-specific (ALT) ALTEC
Funzione Finitaview Counter Divider Multiplicatore
Comparatore di sumatore o sottrattore
Encoder/Decoder ECC
Dispositivu supportatu
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 cuntinueghja ...
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
1. Intel FPGA Integer Aritmetica IP Cores 683490 | 2020.10.05
Core IP Intel FPGA Multiply Adder o ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD
Funzione Finitaview Multiplicatore-Adder
Multiplicatore di Coefficient Constant Basatu in Memoria
Multiplier-Accumulator Multiplier-Adder
Multiplicatore cumplessu
Integer Square-Root
Adder Parallel
Dispositivu supportatu
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
Information Related
· Note di rilascio di Intel FPGA è Dispositivi programmabili
· Introduzione à i Core IP Intel FPGA Fornisce più infurmazione nantu à i Core IP Intel FPGA.
· Floating-Point IP Cores User Guide Fornisce più infurmazione nantu à i core IP Floating-Point Intel FPGA.
· Introduzione à i nuclei IP Intel FPGA Fornisce infurmazione generale nantu à tutti i core IP Intel FPGA, cumprese a parametrizzazione, a generazione, l'aghjurnamentu è a simulazione di i nuclei IP.
· Creazione di Scripts di Simulazione IP è Qsys Indipendenti da Versione Crea script di simulazione chì ùn necessitanu micca aghjurnamenti manuali per l'aghjurnamenti di u software o di a versione IP.
· Linee di Prughjetti di Prughjetti di Gestione di Prughjetti per una gestione efficiente è portabilità di u vostru prughjettu è IP files.
· Guida per l'utente di Integer Arithmetic IP Cores Document Archives a pagina 98 Fornisce una lista di guide per l'utilizatori per versioni precedenti di i core Integer Arithmetic IP.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 6
Mandate Feedback
683490 | 2020.10.05 Mandate Feedback
2. LPM_COUNTER (Counter) IP Core
Figura 1.
U core IP LPM_COUNTER hè un contatore binariu chì crea contatori up, down counters e up o down counters cù outputs finu à 256 bits di larghezza.
A figura seguente mostra i porti per u core IP LPM_COUNTER.
LPM_COUNTER Porti
LPM_COUNTER
ssclr sload sset data[]
q[]
aghjurnamentu
coutu
aclr carica l'asset
clk_en cnt_en cin
inst
2.1. Features
U core IP LPM_COUNTER offre e seguenti funzioni: · Genera contatori up, down, up/down counters · Genera i seguenti tipi di contatori:
- Binariu pianu - u contatore aumenta da zero o diminuisce da 255
- Modulu - u contatore aumenta o diminuisce da u valore di u modulu specificatu da l'utilizatore è si ripete
· Supporta i porti di input sincroni opzionali di cancellazione, carica, è impostate · Supporta i porti di input asincroni opzionali di cancellazione, carica è set di porti d'input · Supporta l'attivazione di u conte opzionale è l'attivazione di l'orologio · Supporta i porti opzionali di trasportu è trasportu
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
2. LPM_COUNTER (Counter) IP Core
683490 | 2020.10.05
2.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu lpm_counter (q, data, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq); paràmetru lpm_type = "lpm_counter"; paràmetru lpm_width = 1; paràmetru lpm_modulus = 0; paràmetru lpm_direction = "UNUSED"; paràmetru lpm_avalue = "UNUSED"; paràmetru lpm_svalue = "UNUSED"; paràmetru lpm_pvalue = "UNUSED"; paràmetru lpm_port_updown = "PORT_CONNECTIVITY"; paràmetru lpm_hint = "UNUSED"; output [lpm_width-1:0] q; pruduzzione di pruduzzioni; output [15: 0] eq; input cin; input [lpm_width-1:0] dati; input clock, clk_en, cnt_en, updown; input aset, aclr, aload; input sset, sclr, sload; modulu finale
2.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) LPM_PACK.vhd in u repertoriu librariesvhdllpm.
cumpunente LPM_COUNTER generic ( LPM_WIDTH : naturale ; LPM_MODULUS : naturale := 0 ; LPM_DIRECTION : string := " UNUSED " ; LPM_AVALUE : string := " UNUSED " ; LPM_SVALUE : string := " UNUSED " ; LPM_PORT_UPDOWN : string := " UNUSED " ; ; LPM_PVALUE : stringa := “UNUSED” ; portu (DATA: in std_logic_vector (LPM_WIDTH-1 downto 0):= (OTHERS =>
'0'); CLOCK : in std_logic ; CLK_EN : in std_logic := '1'; CNT_EN : in std_logic := '1'; UPDOWN : in std_logic := '1'; SLOAD : in std_logic := '0'; SSET : in std_logic := '0'; SCLR : in std_logic := '0'; ALOAD : in std_logic := '0'; ASET : in std_logic := '0'; ACLR : in std_logic := '0'; CIN : in std_logic := '1'; COUT : out std_logic := '0'; Q: out std_logic_vector (LPM_WIDTH-1 finu à 0); EQ: out std_logic_vector (15 finu à 0));
cumpunente finale;
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 8
Mandate Feedback
2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05
2.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
2.5. Porti
I seguenti tabelle listanu i porti di input è output per u core IP LPM_COUNTER.
Tabella 2.
LPM_COUNTER Porti d'Input
Nome di u portu
Ubligatoriu
Descrizzione
dati []
Innò
Input di dati paralleli à u contatore. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.
clock
Iè
Ingressu di u clock attivatu da u latu pusitivu.
clk_fr
Innò
Clock enable input per attivà tutte l'attività sincrone. Se omessa, u valore predeterminatu hè 1.
cnt_fr
Innò
Count enable input per disattivà u count quandu affirmatu bassu senza affettà sload, sset, o sclr. Se omessa, u valore predeterminatu hè 1.
aghjurnamentu
Innò
Cuntrolla a direzzione di u conte. Quandu hè affirmatu altu (1), a direzzione di cunti hè alta, è quandu affirmata bassa (0), a direzzione di cunti hè in calata. Se u paràmetru LPM_DIRECTION hè utilizatu, u portu updown ùn pò micca esse cunnessu. Se LPM_DIRECTION ùn hè micca utilizatu, u portu updown hè opzionale. Se omessa, u valore predeterminatu hè up (1).
cin
Innò
Purtate à u pocu di pocu ordine. Per i contatori up, u cumpurtamentu di l'input cin hè
identica à u cumpurtamentu di l'input cnt_en. Se omessa, u valore predeterminatu hè 1
(VCC).
aclr
Innò
Ingressu chjaru asincronu. Se l'asset è l'aclr sò usati è affirmati, aclr overrides aset. Se omessa, u valore predeterminatu hè 0 (disabilitatu).
assetu
Innò
Input set asincronu. Spécifie les sorties q[] comme toutes les 1, ou à la valeur spécifiée par le paramètre LPM_AVALUE. Se i porti aset è aclr sò usati è affirmati, u valore di u portu aclr annulla u valore di u portu di l'asset. Se omessa, u valore predeterminatu hè 0, disattivatu.
carica
Innò
Ingressu di carica asincrona chì carica in modu asincronu u contatore cù u valore nantu à l'input di dati. Quandu u portu di carica hè utilizatu, u portu di dati [] deve esse cunnessu. Se omessa, u valore predeterminatu hè 0, disattivatu.
sclr
Innò
Ingressu chjaru sincronu chì sguassate u contatore nantu à u prossimu bordu di u clock attivu. Se i porti sset è sclr sò usati è affirmati, u valore di u portu sclr annulla u valore di u portu sset. Se omessa, u valore predeterminatu hè 0, disattivatu.
assetu
Innò
Ingressu di set sincronu chì stabilisce u contatore nantu à a prossima punta di u clock attivu. Spécifie la valeur des sorties q comme tous les 1, ou à la valeur spécifiée par le paramètre LPM_SVALUE. Sì i dui porti sset è sclr sò usati è affirmati,
u valore di u portu sclr overrides u valore di u portu sset. Se omessa, u valore predeterminatu hè 0 (disabilitatu).
carica
Innò
Ingressu di carica sincrona chì carica u contatore cù dati [] nantu à u prossimu bordu di u clock attivu. Quandu u portu sload hè utilizatu, u portu di dati [] deve esse cunnessu. Se omessa, u valore predeterminatu hè 0 (disabilitatu).
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 9
2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05
Tabella 3.
LPM_COUNTER Porti di Output
Nome di u portu
Ubligatoriu
Descrizzione
q[]
Innò
Dati uscita da u contatore. A dimensione di u portu di output dipende da u
U valore di u paràmetru LPM_WIDTH. Sia q[] o almenu unu di i porti eq[15..0].
deve esse cunnessu.
eq[15..0]
Innò
Counter decode output. U portu eq [15..0] ùn hè micca accessibile in l'editore di paràmetri perchè u paràmetru solu sustene l'AHDL.
U portu q[] o u portu eq[] deve esse cunnessu. Finu à i porti c eq ponu esse utilizati (0 <= c <= 15). Solu i 16 valori più bassi sò decodificati. Quandu u valore di u conte hè c, l'output eqc hè affirmatu altu (1). Per esample, quandu u conte hè 0, eq0 = 1, quandu u cuntu hè 1, eq1 = 1, è quandu u cuntu hè 15, eq 15 = 1. L'output decodificatu per i valori di cunti di 16 o più grande necessitanu decodificazione esterna. L'output eq[15..0] sò asincroni à l'output q[].
coutu
Innò
Porta di esecuzione di u bit MSB di u contatore. Pò esse usatu per cunnette à un altru contatore per creà un contatore più grande.
2.6. Parametri
A tavula seguente lista i paràmetri per u core IP LPM_COUNTER.
Tabella 4.
LPM_COUNTER Parametri
Nome di u paràmetru
Tipu
LPM_WIDTH
Integer
LPM_DIRECTION
Stringa
LPM_MODULUS LPM_AVALUE
Integer
Integer / String
LPM_SVALUE LPM_HINT
Integer / String
Stringa
LPM_TYPE
Stringa
Ubligatoriu Iè No No No
No No
Innò
Descrizzione
Specifica a larghezza di i porti di dati [] è q[], se sò usati.
I valori sò UP, DOWN è UNUSED. Se u paràmetru LPM_DIRECTION hè utilizatu, u portu updown ùn pò micca esse cunnessu. Quandu u portu updown ùn hè micca cunnessu, u valore predeterminatu di u paràmetru LPM_DIRECTION hè UP.
U numeru massimu, più unu. Numaru di stati unichi in u ciculu di u contatore. Se u valore di carica hè più grande di u paràmetru LPM_MODULUS, u cumpurtamentu di u contatore ùn hè micca specificatu.
Valore constante chì hè caricatu quandu l'asset hè affirmatu altu. Se u valore specificatu hè più grande o uguale à , u cumpurtamentu di u cuntatore hè un livellu logicu indefinitu (X), induve hè LPM_MODULUS, se presente, o 2 ^ LPM_WIDTH. Intel ricumanda di specificà stu valore cum'è un numeru decimale per i disinni AHDL.
Valore constante chì hè caricatu nantu à u latu rising di u portu di u clock quandu u portu sset hè affirmatu altu. Intel ricumanda di specificà stu valore cum'è un numeru decimale per i disinni AHDL.
Quandu istanziate una biblioteca di moduli parametrizzati (LPM) funzione in un Disegnu VHDL File (.vhd), duvete aduprà u paràmetru LPM_HINT per specificà un paràmetru specificu di Intel. Per esample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
U valore predeterminatu hè UNUSED.
Identifica a biblioteca di moduli parametrizzati (LPM) nome di l'entità in u disignu VHDL files.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 10
Mandate Feedback
2. LPM_COUNTER (Counter) IP Core 683490 | 2020.10.05
Parametru Nome INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Type String String
Stringa
Stringa
Ubligatoriu No No
Innò
Innò
Descrizzione
Stu paràmetru hè utilizatu per u mudellu è a simulazione di cumportamentu. Stu paràmetru hè utilizatu per u mudellu è a simulazione di cumportamentu. L'editore di paràmetri calcula u valore per stu paràmetru.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru CARRY_CNT_EN in u disignu VHDL. files. I valori sò SMART, ON, OFF è UNUSED. Permette a funzione LPM_COUNTER per propagate u signalu cnt_en attraversu a catena di trasportu. In certi casi, u paràmetru CARRY_CNT_EN pò avè un ligeru impattu nantu à a vitezza, cusì pudete vulete disattivà. U valore predeterminatu hè SMART, chì furnisce u megliu scambiu trà dimensione è velocità.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru LABWIDE_SCLR in u disignu VHDL. files. I valori sò ON, OFF, o UNUSED. U valore predeterminatu hè ON. Permette di disattivà l'usu di a funzione LABwide sclr truvata in famiglie di dispositivi obsoleti. A disattivazione di sta opzione aumenta e probabilità di utilizà cumplettamente i LAB parzialmente pienu, è cusì pò permette una densità logica più alta quandu SCLR ùn hè micca applicatu à un LAB cumpletu. Stu paràmetru hè dispunibule per a cumpatibilità inversa, è Intel ricumanda micca di utilizà stu paràmetru.
Specifica l'usu di u portu di input updown. Se omesso, u valore predeterminatu hè PORT_CONNECTIVITY. Quandu u valore di u portu hè stabilitu à PORT_USED, u portu hè trattatu cum'è utilizatu. Quandu u valore di u portu hè stabilitu à PORT_UNUSED, u portu hè trattatu cum'è micca utilizatu. Quandu u valore di u portu hè stabilitu à PORT_CONNECTIVITY, l'usu di u portu hè determinatu da cuntrollà a cunnessione di u portu.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 11
683490 | 2020.10.05 Mandate Feedback
3. LPM_DIVIDE (Divider) Intel FPGA IP Core
Figura 2.
U core LPM_DIVIDE Intel FPGA IP implementa un divisore per dividisce un valore di input di numeratore per un valore di input di denominatore per pruduce un quotient è un restu.
A figura seguente mostra i porti per u core IP LPM_DIVIDE.
LPM_DIVIDE Porti
LPM_DIVIDE
numeru [] denom [] clock
quotient[] resta[]
clken aclr
inst
3.1. Features
U core IP LPM_DIVIDE offre e seguenti caratteristiche: · Genera un divisore chì divide un valore di input di numeratore per un input di denominatore
valore per pruduce un quotient è un restu. · Supporta a larghezza di dati di 1 bits. · Supporta u furmatu di rapprisintazioni di dati firmati è micca firmati sia per u numeratore
è i valori di denominatori. · Supporta l'optimizazione di l'area o di a velocità. · Fornisce una opzione per specificà un output di restu pusitivu. · Supporta a latenza di output configurabile di pipelining. · Supporta i porti asincroni opzionali è l'attivazione di l'orologio.
3.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu lpm_divide (quotient, stay, number, denom, clock, clken, aclr); paràmetru lpm_type = "lpm_divide"; paràmetru lpm_widthn = 1; paràmetru lpm_widthd = 1; paràmetru lpm_nrepresentation = "UNSIGNED"; paràmetru lpm_drepresentation = "UNSIGNED"; paràmetru lpm_remainderpositive = "TRUE"; paràmetru lpm_pipeline = 0;
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
paràmetru lpm_hint = "UNUSED"; clock input; input clken; input aclr; input [lpm_widthn-1:0] numeru; input [lpm_widthd-1:0] denom; output [lpm_widthn-1:0] quotient; output [lpm_widthd-1:0] resta; modulu finale
3.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) LPM_PACK.vhd in u repertoriu librariesvhdllpm.
cumpunente LPM_DIVIDE genericu (LPM_WIDTHN: naturale; LPM_WIDTHD: naturale;
LPM_NREPRESENTATION : string := "UNSIGNED"; LPM_DREPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : naturale := 0; LPM_TYPE : stringa := L_DIVIDE; LPM_HINT : string := "UNUSED"); portu (NUMER: in std_logic_vector (LPM_WIDTHN-1 downto 0); DENOM: in std_logic_vector (LPM_WIDTHD-1 downto 0); ACLR: in std_logic := '0'; CLOCK: in std_logic := '0'; CLKEN : in std_logic := '1'; QUOTIENT : out std_logic_vector (LPM_WIDTHN-1 downto 0 REMAIN : out std_logic_vector (LPM_WIDTHD-1 downto 0)); cumpunente finale;
3.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
3.5. Porti
I seguenti tabelle listanu i porti di input è output per u core IP LPM_DIVIDE.
Tabella 5.
LPM_DIVIDE Input Ports
Nome di u portu
Ubligatoriu
numeru []
Iè
denom[]
Iè
Descrizzione
Input di dati di numeratore. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTHN.
Input di dati di denominatori. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTHD.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 13
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
Port Name clock clken
aclr
Ubligatoriu No No
Innò
Descrizzione
Input di u clock per l'usu pipeline. Per i valori LPM_PIPELINE diversi da 0 (predeterminatu), u portu di u clock deve esse attivatu.
L'orologio permette l'usu pipeline. Quandu u portu clken hè affirmatu altu, u funziunamentu di divisione si faci. Quandu u signale hè bassu, ùn ci hè micca operazione. Se omessa, u valore predeterminatu hè 1.
U portu chjaru asincronu utilizatu in ogni mumentu per resettate a pipeline à tutti i '0 in modu asincronu à l'input di u clock.
Tabella 6.
LPM_DIVIDE Porti di Output
Nome di u portu
Ubligatoriu
Descrizzione
quotient[]
Iè
A pruduzzioni di dati. A dimensione di u portu di output dipende da u LPM_WIDTHN
valore di paràmetru.
resta []
Iè
A pruduzzioni di dati. A dimensione di u portu di output dipende da u LPM_WIDTHD
valore di paràmetru.
3.6. Parametri
A tavula seguente lista i paràmetri per u core IP LPM_DIVIDE Intel FPGA.
Nome di u paràmetru
Tipu
Ubligatoriu
Descrizzione
LPM_WIDTHN
Integer
Iè
Specifica a larghezza di u numeru [] è
quotient[] porti. I valori sò da 1 à 64.
LPM_WIDTHD
Integer
Iè
Specifica a larghezza di u denom[] è
resta [] porti. I valori sò da 1 à 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
String String
Innò
Rappresentazione di signu di l'input di u numeratore.
I valori sò SIGNED è UNSIGNED. Quandu questu
u paràmetru hè stabilitu à SIGNED, u divisore
interpreta u numeru [] input cum'è dui firmati
cumplementu.
Innò
Rappresentazione di signu di u denominatore input.
I valori sò SIGNED è UNSIGNED. Quandu questu
u paràmetru hè stabilitu à SIGNED, u divisore
interpreta l'input denom[] cum'è dui signati
cumplementu.
LPM_TYPE
Stringa
Innò
Identifica a biblioteca di parametrizzata
moduli (LPM) nome di l'entità in u disignu VHDL
files (.vhd).
LPM_HINT
Stringa
Innò
Quandu istanziate una biblioteca di
moduli parametrizzati (LPM) funzione in a
Disegnu VHDL File (.vhd), duvete aduprà u
LPM_HINT paràmetru per specificà un Intel-
paràmetru specificu. Per esample: LPM_HINT
= "CHAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = YES "The
u valore predeterminatu hè UNUSED.
LPM_REMAINDERPOSITIVE
Stringa
Innò
Parametru specificu di Intel. Duvete aduprà u
LPM_HINT paràmetru per specificà u
LPM_REMAINDERPOSITIVE paràmetru in
Disegnu VHDL files. I valori sò TRUE o FALSE.
Se stu paràmetru hè impostatu à TRUE, allora u
u valore di u portu restu [] deve esse più grande
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 14
Mandate Feedback
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
Nome di u paràmetru
Tipu
MAXIMIZE_SPEED
Integer
LPM_PIPELINE
Integer
INTENDED_DEVICE_FAMILY SKIP_BITS
String Integer
Nr
No No No
Descrizzione
chè o uguali à zero. Se stu paràmetru hè impostatu à TRUE, allura u valore di u portu restu [] hè o cero, o u valore hè u stessu signu, pusitivu o negativu, cum'è u valore di u portu numericu. Per riduce l'area è migliurà a velocità, Intel ricumanda di stabilisce stu paràmetru à TRUE in operazioni induve u restu deve esse pusitivu o induve u restu ùn hè micca impurtante.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru MAXIMIZE_SPEED in u disignu VHDL. files. I valori sò [0..9]. Se s'utilice, u software Intel Quartus Prime prova à ottimisà un esempiu specificu di a funzione LPM_DIVIDE per a rapidità piuttostu chè a routability, è annulla l'impostazione di l'opzione logica di Tecnica di Ottimizazione. Se MAXIMIZE_SPEED ùn hè micca utilizatu, u valore di l'opzione Optimization Technique hè utilizatu invece. Se u valore di MAXIMIZE_SPEED hè 6 o più altu, u Compiler optimizeghja u core IP LPM_DIVIDE per una velocità più alta usendu catene di trasportu; se u valore hè 5 o menu, u compilatore implementa u disignu senza catene di trasportu.
Specifica u numeru di cicli di clock di latenza assuciati cù u quotient [] è restà [] outputs. Un valore di cero (0) indica chì ùn esiste micca una latenza, è chì una funzione puramente cumminativa hè instanziata. Se omessa, u valore predeterminatu hè 0 (non pipelined). Ùn pudete micca specificà un valore per u paràmetru LPM_PIPELINE chì hè più altu di LPM_WIDTHN.
Stu paràmetru hè utilizatu per scopi di modellazione è di simulazione di cumportamentu. L'editore di paràmetri calcula u valore per stu paràmetru.
Permette una divisione frazionaria di bit più efficaci per ottimisà a logica nantu à i bits principali fornendu u numeru di GND principali à u core IP LPM_DIVIDE. Specificate u numeru di GND principali nantu à u quotient output à stu paràmetru.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 15
683490 | 2020.10.05 Mandate Feedback
4. LPM_MULT (Multiplicatore) IP Core
Figura 3.
U core LPM_MULT IP implementa un multiplicatore per multiplicà dui valori di dati di input per pruduce un pruduttu cum'è output.
A figura seguente mostra i porti per u core IP LPM_MULT.
LPM_Mult Ports
LPM_MULT clock dataa[] result[] datab[] aclr/sclr clken
inst
Funzioni d'infurmazioni correlate à a pagina 71
4.1. Features
U core LPM_MULT IP offre e seguenti caratteristiche: · Genera un multiplicatore chì multiplica dui valori di dati di input · Supporta a larghezza di dati di 1 bit · Supporta u formatu di rapprisintazioni di dati firmati è senza firma · Supporta l'optimizazione di l'area o di a velocità · Supporta pipelining cù latenza di output configurabile · Fornisce un opzione per l'implementazione in u processu di signale digitale dedicatu (DSP)
bloccu circuiti o elementi lògichi (LE) Nota: Quandu si custruiscenu multiplicatori più grande di a dimensione supportata nativamente, ci ponu /
serà un impattu di rendiment risultatu da a cascata di i blocchi DSP. · Supporta i porti di input asincroni opzionali è l'attivazione di l'orologio · Supporta i cancelli sincroni opzionali per i dispositivi Intel Stratix 10, Intel Arria 10 è Intel Cyclone 10 GX
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
4. LPM_MULT (Multiplicatore) IP Core 683490 | 2020.10.05
4.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu lpm_mult (risultatu, dataa, datab, sum, clock, clken, aclr) paràmetru lpm_type = "lpm_mult"; paràmetru lpm_widtha = 1; paràmetru lpm_widthb = 1; paràmetru lpm_widths = 1; paràmetru lpm_widthp = 1; paràmetru lpm_representation = "UNSIGNED"; paràmetru lpm_pipeline = 0; paràmetru lpm_hint = "UNUSED"; clock di input; input clken; input aclr; input [lpm_widtha-1:0] dataa; input [lpm_widthb-1:0] datab; input [lpm_widths-1:0] summa; output [lpm_widthp-1: 0] risultatu; modulu finale
4.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) LPM_PACK.vhd in u repertoriu librariesvhdllpm.
cumpunente LPM_MULT genericu ( LPM_WIDTHA : naturale; LPM_WIDTHB : naturale; LPM_WIDTHS : naturale := 1; LPM_WIDTHP : naturale;
LPM_REPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : naturale := 0; LPM_TYPE: stringa := L_MULT; LPM_HINT : string := "UNUSED"); portu (DATAA: in std_logic_vector (LPM_WIDTHA-1 downto 0); DATAB: in std_logic_vector (LPM_WIDTHB-1 downto 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; SUM : in std_logic_vector (LPM_WIDTHS-1 downto 0) := (OTHERS => '0' RESULT : out std_logic_vector (LPM_WIDTHP-1 downto 0)); cumpunente finale;
4.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 17
4. LPM_MULT (Multiplicatore) IP Core 683490 | 2020.10.05
4.5. Segnali
Tabella 7.
LPM_MULT Segnali di input
Signal Name
Ubligatoriu
Descrizzione
datia[]
Iè
Input di dati.
Per i dispositi Intel Stratix 10, Intel Arria 10 è Intel Cyclone 10 GX, a dimensione di u signale di input dipende da u valore di u parametru di larghezza di Dataa.
Per i dispositi più vechji è Intel Cyclone 10 LP, a dimensione di u signale di input dipende da u valore di u paràmetru LPM_WIDTHA.
datab []
Iè
Input di dati.
Per i dispositi Intel Stratix 10, Intel Arria 10 è Intel Cyclone 10 GX, a dimensione di u signale di input dipende da u valore di u parametru di larghezza di Datab.
Per i dispositi più vechji è Intel Cyclone 10 LP, a dimensione di u signale di input dipende
nantu à u valore di u paràmetru LPM_WIDTHB.
clock
Innò
Input di u clock per l'usu pipeline.
Per i dispositi più vechji è Intel Cyclone 10 LP, u signale di u clock deve esse attivatu per i valori LPM_PIPELINE altru da 0 (predeterminatu).
Per i dispositi Intel Stratix 10, Intel Arria 10 è Intel Cyclone 10 GX, u signale di u clock deve esse attivatu se u valore di Latenza hè altru da 1 (predeterminatu).
clken
Innò
Abilitazione di l'orologio per l'usu pipeline. Quandu u signale clken hè affirmatu altu, u
L'operazione di somma/sottrazione si svolge. Quandu u signale hè bassu, nisuna operazione
accade. Se omessa, u valore predeterminatu hè 1.
aclr sclr
Innò
Segnale chjaru asincronu utilizatu in ogni mumentu per resettà u pipeline à tutti i 0,
asynchronously à u signale di u clock. U pipeline inizializza à un indefinitu (X)
livellu logicu. I outputs sò un valore coherente, ma micca zero.
Innò
Segnale chjaru sincronu utilizatu in ogni mumentu per resettate u pipeline à tutti i 0,
sincronicamente à u signale di u clock. U pipeline inizializza à un indefinitu (X)
livellu logicu. I outputs sò un valore coherente, ma micca zero.
Tabella 8.
LPM_MULT Segnali di uscita
Signal Name
Ubligatoriu
Descrizzione
risultatu []
Iè
A pruduzzioni di dati.
Per i dispositi più vechji è Intel Cyclone 10 LP, a dimensione di u signale di output dipende da u valore di u paràmetru LPM_WIDTHP. Se LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) o (LPM_WIDTHA + LPM_WIDTHS), solu i LPM_WIDTHP MSB sò prisenti.
Per l'Intel Stratix 10, l'Intel Arria 10 è l'Intel Cyclone 10 GX, a dimensione di i segnali di output dipende da u paràmetru di larghezza di u risultatu.
4.6. Parametri per i dispositi Stratix V, Arria V, Cyclone V è Intel Cyclone 10 LP
4.6.1. Tabulazione generale
Tabella 9.
Tabulazione generale
Parametru
Valore
Configurazione di multiplicatori
Multiplicà l'input 'dataa' per l'input 'datab'
Valore predeterminatu
Descrizzione
Multiplicà l'input 'dataa' per l'input 'datab'
Selezziunate a cunfigurazione desiderata per u multiplicatore.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 18
Mandate Feedback
4. LPM_MULT (Multiplicatore) IP Core 683490 | 2020.10.05
Parametru
Quantu deve esse largu l'input 'dataa'? Quantu deve esse largu l'input "datab"? Cumu deve esse determinata a larghezza di l'output "risultatu"? Limità a larghezza
Valore
Multiplicà l'input 'dataa' da ellu stessu (operazione di quadratura)
1-256 bits
Valore predeterminatu
Descrizzione
8 bits
Specificate a larghezza di u portu di datia[].
1-256 bits
8 bits
Specificate a larghezza di u portu di datab[].
Calculate automaticamente a larghezza Limita a larghezza
1-512 bits
Calculate automaticamente a larghezza
Selezziunate u metudu desideratu per determinà a larghezza di u risultatu [] portu.
16 bits
Specificate a larghezza di u risultatu [] portu.
Stu valore serà efficace solu s'ellu selezziunate Restrict the width in the Type paràmetru.
4.6.2. General 2 Tab
Table 10. General 2 Tab
Parametru
Valore
Input di dati
U bus di input "datab" hà un valore constante?
No Iè
Tipu di multiplicazione
Quale tipu di
Unsigned
a multiplicazione vulete ? Firmatu
Implementazione
Chì implementazione multiplicatore deve esse usata?
Aduprate l'implementazione predeterminata
Aduprà u circuitu multiplicatore dedicatu (micca dispunibule per tutte e famiglie)
Aduprà elementi lògichi
Valore predeterminatu
Descrizzione
Innò
Selezziunà Sì per specificà u valore constante di u
bus di input `datab', se ne esiste.
Unsigned
Specificate u formatu di rapprisentazione per l'input dataa[] è datab[].
Aduprate l'implementazione predeterminata
Selezziunate u metudu desideratu per determinà a larghezza di u risultatu [] portu.
4.6.3. Tabulazione Pipelining
Table 11. Pipelining Tab
Parametru
Vulete pipeline u No
funzione?
Iè
Valore
Crea un 'aclr'
—
portu chjaru asincronu
Valore predeterminatu
Descrizzione
Innò
Sceglite Sì per attivà u registru di pipeline à u
pruduzzione di u multiplicatore è specificà u desideratu
latenza di output in u ciclu di u clock. Attivà u
U registru di pipeline aghjunghje una latenza extra à u
output.
Unchecked
Selezziunate questa opzione per attivà u portu aclr per aduprà a sincronia asincrona per u registru di pipeline.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 19
4. LPM_MULT (Multiplicatore) IP Core 683490 | 2020.10.05
Parametru
Crea un 'clken' clock attivatu clock
Optimization
Chì tippu di ottimisazione vulete?
valore -
Zona di velocità predeterminata
Valore predeterminatu
Descrizzione
Unchecked
Specifica l'attivazione attiva di u clock altu per u portu di clock di u registru di pipeline
Default
Specificate l'ottimisazione desiderata per u core IP.
Selezziunate Default per lascià u software Intel Quartus Prime per determinà a megliu ottimisazione per u core IP.
4.7. Parametri per i dispositivi Intel Stratix 10, Intel Arria 10 è Intel Cyclone 10 GX
4.7.1. Tabulazione generale
Table 12. General Tab
Parametru
Valore
Valore predeterminatu
Descrizzione
Tipu di cunfigurazione multiplicatore
Larghezza di u portu di dati
Multiplicà l'input 'dataa' per l'input 'datab'
Multiplicà l'input 'dataa' da ellu stessu (operazione di quadratura)
Multiplicà l'input 'dataa' per l'input 'datab'
Selezziunate a cunfigurazione desiderata per u multiplicatore.
A larghezza di dati
1-256 bits
8 bits
Specificate a larghezza di u portu di datia[].
larghezza di dati
1-256 bits
8 bits
Specificate a larghezza di u portu di datab[].
Cumu deve esse determinata a larghezza di l'output "risultatu"?
Tipu
Calculate automaticamente a larghezza
Limità a larghezza
Calculate automaticamente a larghezza
Selezziunate u metudu desideratu per determinà a larghezza di u risultatu [] portu.
Valore
1-512 bits
16 bits
Specificate a larghezza di u risultatu [] portu.
Stu valore serà efficace solu s'ellu selezziunate Restrict the width in the Type paràmetru.
Larghezza di u risultatu
1-512 bits
—
Mostra a larghezza effettiva di u risultatu [] portu.
4.7.2. General 2 Tab
Table 13. General 2 Tab
Parametru
Input di dati
U bus di input "datab" hà un valore constante?
No Iè
Valore
Valore predeterminatu
Descrizzione
Innò
Selezziunà Sì per specificà u valore constante di u
bus di input `datab', se ne esiste.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 20
Mandate Feedback
4. LPM_MULT (Multiplicatore) IP Core 683490 | 2020.10.05
Parametru
Valore
Valore
Ogni valore più grande di 0
Tipu di multiplicazione
Quale tipu di
Unsigned
a multiplicazione vulete ? Firmatu
Stile di implementazione
Chì implementazione multiplicatore deve esse usata?
Aduprate l'implementazione predeterminata
Aduprà u circuitu multiplicatore dedicatu
Aduprà elementi lògichi
Valore predeterminatu
Descrizzione
0
Specificate u valore constante di u portu di datab[].
Unsigned
Specificate u formatu di rapprisentazione per l'input dataa[] è datab[].
Aduprate l'implementazione predeterminata
Selezziunate u metudu desideratu per determinà a larghezza di u risultatu [] portu.
4.7.3. Pipeline
Table 14. Pipelining Tab
Parametru
Valore
Vulete pipeline a funzione?
Pipeline
No Iè
Latenza Clear Signal Type
Ogni valore più grande di 0.
NONE ACLR SCLR
Crea un clock "clken".
—
attivà u clock
Chì tippu di ottimisazione vulete?
Tipu
Zona di velocità predeterminata
Valore predeterminatu
Descrizzione
No 1 NONE
—
Selezziunà Sì per attivà u registru di pipeline à l'output di u multiplicatore. L'attivazione di u registru di pipeline aghjunghje una latenza extra à l'output.
Specificate a latenza di output desiderata in u ciclu di u clock.
Specificate u tipu di reset per u registru di pipeline. Selezziunate NONE s'ellu ùn aduprate micca un registru di pipeline. Selezziunate ACLR per aduprà a sincronia asincrona per u registru di pipeline. Questu generà u portu ACLR. Selezziunate SCLR per utilizà a sincronia di sincronia per u registru di pipeline. Questu generà u portu SCLR.
Specifica l'attivazione attiva di u clock altu per u portu di clock di u registru di pipeline
Default
Specificate l'ottimisazione desiderata per u core IP.
Selezziunate Default per lascià u software Intel Quartus Prime per determinà a megliu ottimizazione per u core IP.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 21
683490 | 2020.10.05 Mandate Feedback
5. LPM_ADD_SUB (Adder/Subtractor)
Figura 4.
U core IP LPM_ADD_SUB vi permette di implementà un sommatore o un subtractor per aghjunghje o sottrae setti di dati per pruduce un output chì cuntene a somma o a diferenza di i valori di input.
A figura seguente mostra i porti per u core IP LPM_ADD_SUB.
LPM_ADD_SUB Ports
LPM_ADD_SUB add_sub cin
datia[]
clock clken datab[] aclr
risultatu [] overflow cout
inst
5.1. Features
U core IP LPM_ADD_SUB offre e seguenti caratteristiche: · Genera sommatore, sottrattore è sommatore / sottrattore configurabile dinamicamente
funzioni. · Supporta a larghezza di dati di 1 bits. · Supporta u furmatu di rapprisentazione di dati cum'è firmatu è unsigned. · Supporta u trasportu facultativu (prestatu-out), clarifica asincrona, è attivazione di u clock
porti di input. · Supporta i porti di output opzionali (prestazioni) è overflow. · Assegna unu di i bus di dati di input à una constante. · Supporta pipelining cù latenza di output configurabile.
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
5.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu lpm_add_sub (resultatu, cout, overflow, add_sub, cin, dataa, datab, clock, clken, aclr); paràmetru lpm_type = "lpm_add_sub"; paràmetru lpm_width = 1; paràmetru lpm_direction = "UNUSED"; paràmetru lpm_representation = "SIGNED"; paràmetru lpm_pipeline = 0; paràmetru lpm_hint = "UNUSED"; input [lpm_width-1:0] dataa, datab; input add_sub, cin; clock di input; input clken; input aclr; output [lpm_width-1: 0] risultatu; output cout, overflow; modulu finale
5.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) LPM_PACK.vhd in u repertoriu librariesvhdllpm.
cumpunente LPM_ADD_SUB genericu (LPM_WIDTH : naturale;
LPM_DIRECTION : string := "UNUSED"; LPM_REPRESENTATION: stringa := "SIGNED"; LPM_PIPELINE : naturale := 0; LPM_TYPE : stringa := L_ADD_SUB; LPM_HINT : string := "UNUSED"); portu (DATAA: in std_logic_vector (LPM_WIDTH-1 downto 0); DATAB: in std_logic_vector (LPM_WIDTH-1 downto 0); ACLR: in std_logic := '0'; CLOCK: in std_logic := '0'; CLKEN : in std_logic := '1'; CIN : in std_logic := 'Z' : in std_logic := '1' : out std_logic_vector (LPM_WIDTH-1 : out std_logic); cumpunente finale;
5.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
5.5. Porti
I seguenti tabelle listanu i porti di input è output per u core IP LPM_ADD_SUB.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 23
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
Table 15. LPM_ADD_SUB IP Core Input Ports
Nome di u portu
Ubligatoriu
Descrizzione
cin
Innò
Purtate à u pocu di pocu ordine. Per l'operazioni di addizzioni, u valore predeterminatu hè 0. Per
operazioni di sottrazione, u valore predeterminatu hè 1.
datia[]
Iè
Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.
datab []
Iè
Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.
add_sub
Innò
Portu di input opzionale per attivà u cambiamentu dinamicu trà l'additore è u sottrattore
funzioni. Se u paràmetru LPM_DIRECTION hè utilizatu, add_sub ùn pò micca esse usatu. Se
omessa, u valore predeterminatu hè ADD. Intel consiglia di aduprà u
Parametru LPM_DIRECTION per specificà u funziunamentu di a funzione LPM_ADD_SUB,
piuttostu chè d'assignà una constante à u portu add_sub.
clock
Innò
Input per l'usu pipeline. U portu di clock furnisce l'input di clock per un pipelined
funziunamentu. Per i valori LPM_PIPELINE altri chè 0 (predeterminatu), u portu di u clock deve esse
attivatu.
clken
Innò
Abilitazione di l'orologio per l'usu pipeline. Quandu u portu clken hè affirmatu altu, l'adder /
L'operazione di sottrattore si svolge. Quandu u signale hè bassu, ùn ci hè micca operazione. Se
omessa, u valore predeterminatu hè 1.
aclr
Innò
Asynchronous clear for pipelined use. U pipeline inizializza à un indefinitu (X)
livellu logicu. U portu aclr pò esse usatu in ogni mumentu per resettate u pipeline à tutti i 0,
asynchronously à u signale di u clock.
Table 16. LPM_ADD_SUB IP Core Output Ports
Nome di u portu
Ubligatoriu
Descrizzione
risultatu []
Iè
A pruduzzioni di dati. A dimensione di u portu di output dipende da u paràmetru LPM_WIDTH
valore.
coutu
Innò
Eseguimentu (prestamentu) di u bit più significativu (MSB). U portu cout hà un fisicu
interpretazione cum'è l'effettu (prestu) di u MSB. U portu cout detecta
overflow in operazioni UNSIGNED. U portu cout opera in u listessu modu per
Operazioni SIGNED è UNSIGNED.
overflow
Innò
Output opzionale di eccezzioni di overflow. U portu di overflow hà una interpretazione fisica cum'è
u XOR di u trasportu à u MSB cù u trasportu di u MSB. U portu di overflow
afferma quandu i risultati superanu a precisione dispunibile, è hè utilizatu solu quandu u
U valore di u paràmetru LPM_REPRESENTATION hè SIGNED.
5.6. Parametri
A tavula seguente lista i paràmetri di core IP LPM_ADD_SUB.
Table 17. LPM_ADD_SUB IP Core Parameters
Parametru Nome LPM_WIDTH
Type Integer
Ubligatoriu Iè
Descrizzione
Specifica l'larghezza di i porti dataa[], datab[], è risultatu[].
LPM_DIRECTION
Stringa
Innò
I valori sò ADD, SUB, è UNUSED. Se omessi, u valore predeterminatu hè DEFAULT, chì dirige u paràmetru per piglià u so valore da u portu add_sub. U portu add_sub ùn pò esse usatu se LPM_DIRECTION hè utilizatu. Intel ricumanda d'utilizà u paràmetru LPM_DIRECTION per specificà l'operazione di a funzione LPM_ADD_SUB, invece di assignà una constante à u portu add_sub.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 24
Mandate Feedback
5. LPM_ADD_SUB (Adder/Subtractor) 683490 | 2020.10.05
Nome paràmetru LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Type String Integer String String String Integer
Stringa
Ubligatoriu No No No No No No No
Innò
Descrizzione
Specifica u tipu d'aghjunzione realizatu. I valori sò SIGNED è UNSIGNED. Se omessa, u valore predeterminatu hè SIGNED. Quandu stu paràmetru hè stabilitu à SIGNED, l'additore / subtractor interpreta l'input di dati cum'è un cumplementu di dui firmati.
Specifica u numeru di cicli di clock di latenza assuciati cù u risultatu [] output. Un valore di cero (0) indica chì ùn esiste micca una latenza, è chì una funzione puramente cumminativa serà instanziata. Se omessa, u valore predeterminatu hè 0 (non-pipelined).
Permette di specificà parametri specifichi Intel in u disignu VHDL files (.vhd). U valore predeterminatu hè UNUSED.
Identifica a biblioteca di moduli parametrizzati (LPM) nome di l'entità in u disignu VHDL files.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru ONE_INPUT_IS_CONSTANT in u disignu VHDL files. I valori sò SI, NO è NON USATI. Fornisce una ottimisazione più grande se un input hè constante. Se omessa, u valore predeterminatu hè NO.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru MAXIMIZE_SPEED in u disignu VHDL. files. Pudete specificà un valore trà 0 è 10. Se s'utilice, u software Intel Quartus Prime prova d'ottimisà un esempiu specificu di a funzione LPM_ADD_SUB per a velocità in quantu à a routability, è annunzià a paràmetra di l'opzione logica di Tecnica di Optimization. Se MAXIMIZE_SPEED ùn hè micca utilizatu, u valore di l'opzione Optimization Technique hè utilizatu invece. Se u paràmetru per MAXIMIZE_SPEED hè 6 o più altu, u Compiler ottimisimu u core IP LPM_ADD_SUB per una velocità più alta usendu catene di trasportu; se l'impostazione hè 5 o menu, u Cumpilatore implementa u disignu senza catene di trasportu. Stu paràmetru deve esse specificatu per i dispositi Cyclone, Stratix è Stratix GX solu quandu u portu add_sub ùn hè micca usatu.
Stu paràmetru hè utilizatu per scopi di modellazione è di simulazione di cumportamentu. L'editore di paràmetri calcula u valore per stu paràmetru.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 25
683490 | 2020.10.05 Mandate Feedback
6. LPM_COMPARE (Comparatore)
Figura 5.
U core IP LPM_COMPARE compara u valore di dui setti di dati per determinà a relazione trà elli. In a so forma più simplice, pudete aduprà una porta esclusiva-OR per stabilisce se dui bits di dati sò uguali.
A figura seguente mostra i porti per u core IP LPM_COMPARE.
LPM_COMPARE Ports
LPM_COMPARE
clken
alb
aeb
datia[]
agb
datab []
ageb
clock
aneb
aclr
aleb
inst
6.1. Features
U core IP LPM_COMPARE offre e seguenti caratteristiche: · Genera una funzione di comparatore per paragunà dui gruppi di dati · Supporta a larghezza di dati di 1 bit · Supporta u formatu di rapprisintazioni di dati cum'è firmatu è senza firma · Produce i seguenti tipi di output:
— alb (l'ingresso A è minore di l'ingresso B) — aeb (l'ingresso A è uguale all'ingresso B) — agb (l'ingresso A è più grande dell'ingresso B) — ageb (l'ingresso A è più grande o uguale all'ingresso B) — aneb ( L'input A ùn hè micca uguale à l'input B) - aleb (l'input A hè menu o uguale à l'input B) · Supporta i porti di input asincroni asincroni opzionali e l'attivazione di l'orologio · Assegna l'input di datab[] à una constante · Supporta pipelining cun latenza di output configurabile
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
6. LPM_COMPARE (Comparatore) 683490 | 2020.10.05
6.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr); paràmetru lpm_type = "lpm_compare"; paràmetru lpm_width = 1; paràmetru lpm_representation = "UNSIGNED"; paràmetru lpm_pipeline = 0; paràmetru lpm_hint = "UNUSED"; input [lpm_width-1:0] dataa, datab; clock input; input clken; input aclr; output alb, aeb, agb, aleb, aneb, ageb; modulu finale
6.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) LPM_PACK.vhd in u repertoriu librariesvhdllpm.
cumpunente LPM_COMPARE genericu (LPM_WIDTH : naturale;
LPM_REPRESENTATION : string := "UNSIGNED"; LPM_PIPELINE : naturale := 0; LPM_TYPE: stringa := L_COMPARE; LPM_HINT : string := "UNUSED"); portu (DATAA: in std_logic_vector (LPM_WIDTH-1 finu à 0); DATAB: in std_logic_vector (LPM_WIDTH-1 finu à 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic := '0'; CLKEN: in std_logic := '1' : out std_logic ; out std_logic ; cumpunente finale;
6.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
6.5. Porti
I seguenti tabelle listanu i porti di input è output per u core IP LMP_COMPARE.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 27
6. LPM_COMPARE (Comparatore) 683490 | 2020.10.05
Table 18. LPM_COMPARE IP core Input Ports
Nome di u portu
Ubligatoriu
Descrizzione
datia[]
Iè
Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.
datab []
Iè
Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.
clock
Innò
Input di u clock per l'usu pipeline. U portu di clock furnisce l'input di clock per un pipelined
funziunamentu. Per i valori LPM_PIPELINE altri chè 0 (predeterminatu), u portu di u clock deve esse
attivatu.
clken
Innò
Abilitazione di l'orologio per l'usu pipeline. Quandu u portu clken hè affirmatu altu, u
L'operazione di paragone si svolge. Quandu u signale hè bassu, ùn ci hè micca operazione. Se
omessa, u valore predeterminatu hè 1.
aclr
Innò
Asynchronous clear for pipelined use. U pipeline inizializza à una logica indefinita (X).
livellu. U portu aclr pò esse usatu in ogni mumentu per resettate u pipeline à tutti i 0,
asynchronously à u signale di u clock.
Table 19. LPM_COMPARE IP core Output Ports
Nome di u portu
Ubligatoriu
Descrizzione
alb
Innò
Port di output per u comparatore. Assertu se l'input A hè menu di l'input B.
aeb
Innò
Port di output per u comparatore. Assertu se l'input A hè uguale à l'input B.
agb
Innò
Port di output per u comparatore. Assertu se l'input A hè più grande di l'input B.
ageb
Innò
Port di output per u comparatore. Assertu se l'input A hè più grande o uguale à l'input
B.
aneb
Innò
Port di output per u comparatore. Assertu se l'input A ùn hè micca uguale à l'input B.
aleb
Innò
Port di output per u comparatore. Assertioné si l'entrée A est inférieure ou égale à l'entrée B.
6.6. Parametri
A tavula seguente lista i paràmetri per u core IP LPM_COMPARE.
Table 20. LPM_COMPARE IP core Parameters
Nome di u paràmetru
Tipu
Ubligatoriu
LPM_WIDTH
Integer Sì
LPM_REPRESENTATION
Stringa
Innò
LPM_PIPELINE
Integer No
LPM_HINT
Stringa
Innò
Descrizzione
Specifica a larghezza di i porti dataa[] è datab[].
Specifica u tipu di paragone realizatu. I valori sò SIGNED è UNSIGNED. Se omessa, u valore predeterminatu hè UNSIGNED. Quandu u valore di u paràmetru hè stabilitu à SIGNED, u comparatore interpreta l'input di dati cum'è un cumplementu di dui firmati.
Specifica u numeru di cicli di clock di latenza assuciati cù l'output alb, aeb, agb, ageb, aleb o aneb. Un valore di cero (0) indica chì ùn esiste micca una latenza, è chì una funzione puramente cumminativa serà instanziata. Se omessa, u valore predeterminatu hè 0 (non pipelined).
Permette di specificà parametri specifichi Intel in u disignu VHDL files (.vhd). U valore predeterminatu hè UNUSED.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 28
Mandate Feedback
6. LPM_COMPARE (Comparatore) 683490 | 2020.10.05
Parametru Nome LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Type String String
Stringa
Ubligatoriu No No
Innò
Descrizzione
Identifica a biblioteca di moduli parametrizzati (LPM) nome di l'entità in u disignu VHDL files.
Stu paràmetru hè utilizatu per scopi di modellazione è di simulazione di cumportamentu. L'editore di paràmetri calcula u valore per stu paràmetru.
Parametru specificu di Intel. Duvete aduprà u paràmetru LPM_HINT per specificà u paràmetru ONE_INPUT_IS_CONSTANT in u disignu VHDL files. I valori sò SI, NO, o NON USATI. Fornisce una ottimisazione più grande se un input hè custante. Se omessa, u valore predeterminatu hè NO.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 29
683490 | 2020.10.05 Mandate Feedback
7. ALTEC (Codice Correction Errore: Encoder / Decoder) IP Core
Figura 6.
Intel furnisce u core IP ALTEC per implementà a funziunalità ECC. ECC rileva dati corrotti chì si trovanu à u latu di u receptore durante a trasmissione di dati. Stu metudu di currezzione d'errore hè più adattatu per situazioni induve l'errori si verificanu à l'aleatoriu piuttostu chè in raffiche.
L'ECC detecta l'errori attraversu u prucessu di codificazione è decodificazione di dati. Per esample, quandu l'ECC hè appiicata in una dumanda di trasmissioni, i dati letti da a fonte sò codificati prima di esse mandati à u ricevitore. L'output (parola di codice) da u codificatore hè custituitu da i dati crudi appiccicati cù u numeru di bit di parità. U numeru esattu di bit di parità appiccicati dipende da u numeru di bit in i dati di input. A parolla di codice generata hè dopu trasmessa à u destinazione.
U ricevitore riceve a parolla di codice è a decodifica. L'infurmazione ottenuta da u decodificatore determina se un errore hè rilevatu. U decodificatore detecta l'errori di un bit è di u doppiu bit, ma pò solu solu l'errore di un bit in i dati corrotti. Stu tipu di ECC hè una correzione d'errore unica di deteczione d'errore doppia (SECDED).
Pudete cunfigurà e funzioni di codificatore è decodificatore di u core IP ALTECC. L'input di dati à l'encoder hè codificatu per generà una parolla di codice chì hè una cumminazione di l'input di dati è i bits di parità generati. A parolla di codice generata hè trasmessa à u modulu di decodificatore per decodificà appena prima di ghjunghje à u so bloccu di destinazione. U decodificatore genera un vettore di sindromu per determinà s'ellu ci hè un errore in a parolla di codice ricevuta. U decodificatore corregge i dati solu s'ellu l'errore unicu bit hè da i bits di dati. Nisun signalu hè marcatu se l'errore di un bit hè da i bits di parità. U decodificatore hà ancu signali di bandiera per vede u statutu di e dati ricevuti è l'azzione pigliata da u decodificatore, s'ellu ci hè.
I seguenti figuri mostranu i porti per u core IP ALTECC.
Porti di codificatore ALTECC
ALTEC_ENCODER
dati []
q[]
clock
orologio
aclr
inst
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
7. ALTEC (Codice Correction Errore: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figura 7. Ports Decoder ALTECC
ALTEC_DECODER
data[] clock clock
q[] err_detected err_corrected
err_fatal
aclr
inst
7.1. Funzioni di l'encoder ALTECC
U core IP di codificatore ALTECC offre e seguenti caratteristiche: · Esegue a codificazione di dati utilizendu u schema di codificazione Hamming · Supporta a larghezza di dati di 2 bit · Supporta u formatu di rappresentazione di dati firmati è senza firma · Supporta pipelining cù latenza di output di unu o dui cicli di clock · Supporta opzionale puri asincroni e porte attivate di clock
U core IP di codificatore ALTECC piglia è codifica i dati utilizendu u schema Hamming Coding. U schema di codificazione di Hamming deriva i bits di parità è li aghjunghje à i dati originali per pruduce a parolla di codice di output. U numaru di bits di parità appiccicati dipende da a larghezza di e dati.
A tavula seguente elenca u numeru di bit di parità appiccicati per diversi intervalli di larghezza di dati. A colonna Total Bits rapprisenta u numeru tutale di bit di dati di input è bit di parità annessi.
Tabella 21.
Numeru di Parità Bits è Code Word Secondu Data Width
Larghezza di dati
Numaru di Bits di Parità
Bit totali (parola di codice)
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
A derivazione di bit di parità usa una verificazione di parità pari. U bit 1 supplementu (mostratu in a tavula cum'è +1) hè appiccicatu à i bits di parità cum'è u MSB di a parolla di codice. Questu assicura chì a parolla di codice hà un numeru pari di 1. Per esample, se a larghezza di dati hè 4 bits, 4 bits parità sò appiccicati à i dati per diventà una parolla di codice cù un totale di 8 bits. Se 7 bits da u LSB di a parolla di codice di 8 bit anu un numeru imparu di 1, l'8 bit (MSB) di a parolla di codice hè 1 facendu u numeru tutale di 1 in a parola di codice pari.
A figura seguente mostra a parolla di codice generata è a disposizione di i bit di parità è di i bit di dati in un input di dati di 8-bit.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 31
7. ALTEC (Codice Correction Errore: Encoder/Decoder) IP Core 683490 | 2020.10.05
Figura 8.
Disposizione di bit di parità e bit di dati in una parola di codice generata a 8 bit
MSB
LSB
4 bit di parità
4 bit di dati
8
1
U core IP di l'encoder ALTECC accetta solu larghezze di input da 2 à 64 bits à un tempu. Larghezze di input di 12 bit, 29 bit e 64 bit, ideali per i dispositivi Intel, generano output rispettivamente di 18 bit, 36 bit e 72 bit. Pudete cuntrullà a limitazione di selezzione di bit in l'editore di paràmetri.
7.2. Prototipu Verilog HDL (ALTECC_ENCODER)
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
module altecc_encoder # (parametru destinatu_device_family = "unused", paràmetru lpm_pipeline = 0, paràmetru width_codeword = 8, paràmetru width_dataword = 8, paràmetru lpm_type = "altecc_encoder", parametru lpm_hint = "unused") ( input wire aclr, input wire clock filu clock, filu input [width_dataword-1: 0] dati, filu output [width_codeword-1: 0] q); modulu finale
7.3. Prototipu Verilog HDL (ALTECC_DECODER)
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) lpm.v in u repertoriu edasynthesis.
modulu altecc_decoder # (parametru destinatu_device_family = "unused", paràmetru lpm_pipeline = 0, paràmetru width_codeword = 8, paràmetru width_dataword = 8, parametru lpm_type = "altecc_decoder", paràmetru lpm_hint = "unused") ( input wire aclr, input wire aclr, input wire aclr filu clock, filu input [width_codeword-1: 0] dati, output wire err_corrected, output wire err_detected, outut wire err_fatal, output wire [width_dataword-1:0] q); modulu finale
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 32
Mandate Feedback
7. ALTEC (Codice Correction Errore: Encoder/Decoder) IP Core 683490 | 2020.10.05
7.4. Dichjarazione di cumpunenti VHDL (ALTECC_ENCODER)
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) altera_mf_components.vhd in u repertoriu librariesvhdlaltera_mf.
componente altecc_encoder generic (intention_device_family:string:= "unused"; lpm_pipeline:natural:= 0; width_codeword:natural:= 8; width_dataword:natural:= 8; lpm_hint:string:= "UNUSED"; lpm_type:string:= "altecc_encoder" ”); port (aclr: in std_logic := '0'; clock: in std_logic := '0'; clock: in std_logic := '1'; dati: in std_logic_vector (width_dataword-1 downto 0); q: out std_logic_vector (width_codeword) -1 à 0)); cumpunente finale;
7.5. Dichjarazione di cumpunenti VHDL (ALTECC_DECODER)
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) altera_mf_components.vhd in u repertoriu librariesvhdlaltera_mf.
componente altecc_decoder generic (intention_device_family:string:= "unused"; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := "UNUSED"; lpm_type:string:= "altecc_decoder" ”); port (aclr: in std_logic := '0'; clock: in std_logic := '0'; clock: in std_logic := '1'; dati: 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); cumpunente finale;
7.6. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA altera_mf; USE altera_mf.altera_mf_components.all;
7.7. Porti di codificatore
I seguenti tabelle listanu i porti di input è output per u core IP di codificatore ALTECC.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 33
7. ALTEC (Codice Correction Errore: Encoder/Decoder) IP Core 683490 | 2020.10.05
Table 22. Ports d'ingressu di l'encoder ALTECC
Nome di u portu
Ubligatoriu
Descrizzione
dati []
Iè
Portu di input di dati. A dimensione di u portu di input dipende da u WIDTH_DATAWORD
valore di paràmetru. U portu di dati [] cuntene i dati crudi per esse codificati.
clock
Iè
U portu di input di u clock chì furnisce u signale di u clock per sincronizà l'operazione di codificazione.
U portu di u clock hè necessariu quandu u valore LPM_PIPELINE hè più grande di 0.
orologio
Innò
Abilita l'orologio. Se omessa, u valore predeterminatu hè 1.
aclr
Innò
Ingressu chjaru asincronu. U signale attivu high aclr pò ièssiri usatu in ogni mumentu à
sguassate in modu asincronu i registri.
Tabella 23. Porti di output di l'encoder ALTECC
Nome di portu q[]
Ubligatoriu Iè
Descrizzione
Portu di output di dati codificati. A dimensione di u portu di output dipende da u valore di u paràmetru WIDTH_CODEWORD.
7.8. Porti di decodificatore
I seguenti tabelle listanu i porti di input è output per u core IP di decodificatore ALTECC.
Table 24. Ports d'Input Decoder ALTECC
Nome di u portu
Ubligatoriu
Descrizzione
dati []
Iè
Portu di input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_CODEWORD.
clock
Iè
U portu di input di u clock chì furnisce u signale di u clock per sincronizà l'operazione di codificazione. U portu di u clock hè necessariu quandu u valore LPM_PIPELINE hè più grande di 0.
orologio
Innò
Abilita l'orologio. Se omessa, u valore predeterminatu hè 1.
aclr
Innò
Ingressu chjaru asincronu. U signale attivu high aclr pò esse usatu in ogni mumentu per sguassà asincronamente i registri.
Table 25. Porti di Output Decoder ALTECC
Nome di portu q[]
Ubligatoriu Iè
Descrizzione
Port di output di dati decodificati. A dimensione di u portu di output dipende da u valore di u paràmetru WIDTH_DATAWORD.
err_detected Iè
Segnale di bandiera per riflette u statutu di e dati ricevuti è specifica ogni errore trovu.
err_correcte Iè d
Segnale di bandiera per riflette u statutu di e dati ricevuti. Denota l'errore unicu bit trovu è currettu. Pudete aduprà i dati perchè hè digià statu currettu.
err_fatal
Iè
Segnale di bandiera per riflette u statutu di e dati ricevuti. Denota un errore di doppiu bit trovu, ma micca currettu. Ùn deve micca aduprà i dati se stu signale hè affirmatu.
syn_e
Innò
Un signalu di output chì andarà altu ogni volta chì un errore unicu bit hè rilevatu nantu à a parità
bits.
7.9. Parametri Encoder
A tavula seguente lista i paràmetri per u core IP di l'encoder ALTEC.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 34
Mandate Feedback
7. ALTEC (Codice Correction Errore: Encoder/Decoder) IP Core 683490 | 2020.10.05
Table 26. Parametri di l'encoder ALTEC
Nome di u paràmetru
Tipu
Ubligatoriu
Descrizzione
WIDTH_DATAWORD
Integer Sì
Specifica a larghezza di i dati crudi. I valori sò da 2 à 64. Se omessi, u valore predeterminatu hè 8.
WIDTH_CODEWORD
Integer Sì
Specifica a larghezza di a parolla di codice currispundente. I valori validi sò da 6 à 72, senza 9, 17, 33 è 65. Se omessi, u valore predeterminatu hè 13.
LPM_PIPELINE
Integer No
Specifica u pipeline per u circuitu. I valori sò da 0 à 2. Se u valore hè 0, i porti ùn sò micca registrati. Se u valore hè 1, i porti di output sò registrati. Se u valore hè 2, i porti di input è output sò registrati. Se omessa, u valore predeterminatu hè 0.
7.10. Parametri di Decoder
A tavula seguente lista i paràmetri di core IP decoder ALTEC.
Table 27. ALTEC Decoder Parameters
Parametru Nome WIDTH_DATAWORD
Type Integer
Ubligatoriu
Descrizzione
Iè
Specifica a larghezza di i dati crudi. I valori sò 2 à 64. U
u valore predeterminatu hè 8.
WIDTH_CODEWORD
Integer
Iè
Specifica a larghezza di a parolla di codice currispundente. I valori sò 6
à 72, senza 9, 17, 33 è 65. Se omessi, u valore predeterminatu
hè 13.
LPM_PIPELINE
Integer
Innò
Specifica u registru di u circuitu. I valori sò da 0 à 2. Se u
u valore hè 0, nisun registru hè implementatu. Se u valore hè 1, u
l'output hè registratu. Se u valore hè 2, l'input è u
l'output sò registrati. Se u valore hè più grande di 2, supplementu
i registri sò implementati à l'output per u supplementu
latenza. Se omessa, u valore predeterminatu hè 0.
Crea un portu 'syn_e'
Integer
Innò
Accende stu paràmetru per creà un portu syn_e.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 35
683490 | 2020.10.05 Mandate Feedback
8. Intel FPGA Multiply Adder IP Core
Figura 9.
L'Intel FPGA Multiply Adder (Dispositivi Intel Stratix 10, Intel Arria 10, è Intel Cyclone 10 GX) o ALTERA_MULT_ADD (dispositivi Arria V, Stratix V è Cyclone V) IP core permette di implementà un multiplicatore-adder.
A figura seguente mostra i porti per l'Intel FPGA Multiply Adder o ALTERA_MULT_ADD core IP.
Intel FPGA Multiply Adder o Porti ALTERA_MULT_ADD
Intel FPGA Multiply Adder o 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[] résultat[]
aclr0 aclr1
inst
Un multiplicatore-adder accetta coppiu di inputs, multiplica i valori inseme è poi aghjunghje o sottrae da i prudutti di tutti l'altri coppie.
Se tutte e larghezze di dati di input sò 9-bit larghe o più chjuche, a funzione usa a cunfigurazione di multiplicatore di input 9 x 9 bit in u bloccu DSP per i dispositi chì supportanu a cunfigurazione 9 x 9. Se no, u bloccu DSP usa multiplicatori di input 18 × 18-bit per processà e dati cù larghezza trà 10 bits è 18 bits. Se più core Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP si verificanu in un disignu, e funzioni sò distribuite cum'è
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
parechji blocchi DSP diffirenti pussibule per chì u routing à questi blocchi hè più flexible. Meno multiplicatori per bloccu DSP permettenu più scelte di routing in u bloccu minimizendu i camini à u restu di u dispusitivu.
I registri è i registri di pipeline extra per i seguenti signali sò ancu posti in u bloccu DSP: · Input di dati · Selezzione firmata o micca firmata · Aghjunghje o sottrae selezziunate · Prodotti di multiplicatori
In u casu di u risultatu di output, u primu registru hè situatu in u bloccu DSP. Tuttavia, i registri di latenza extra sò posti in elementi lògichi fora di u bloccu. Perifèricu à u bloccu DSP, cumpresi l'input di dati à u multiplicatore, l'input di signale di cuntrollu è l'output di l'additivu, utilizate un routing regular per cumunicà cù u restu di u dispusitivu. Tutte e cunnessione in a funzione utilizanu routing dedicatu in u bloccu DSP. Questu routing dedicatu include e catene di registru di shift quandu selezziunate l'opzione per trasfurmà e dati di input registrati di un multiplicatore da un multiplicatore à un multiplicatore adiacente.
Per più infurmazione nantu à i blocchi DSP in qualsiasi di a serie di dispositivi Stratix V, è Arria V, riferite à u capitulu Blocchi DSP di i rispettivi manuali nantu à a pagina Literatura è Documentazione Tecnica.
Informazione Relativa AN 306: Implementazione di Multiplicatori in Dispositivi FPGA
Fornisce più infurmazione nantu à l'implementazione di multiplicatori cù DSP è blocchi di memoria in i dispositi Intel FPGA.
8.1. Features
L'Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP core offre e seguenti caratteristiche: · Genera un multiplicatore per fà operazioni di multiplicazione di dui cumplessi.
numeri Nota: Quandu custruendu multiplicatori più grande di a dimensione supportata nativamente ci pò /
serà un impattu di rendiment risultatu da a cascata di i blocchi DSP. · Supporta larghezze di dati di 1 256 bit · Supporta u formatu di rapprisintazioni di dati firmati è senza firma · Supporta pipelining cù latenza di input configurabile · Fornisce un'opzione per cambià dinamicamente trà supportu di dati firmati è micca firmati · Fornisce una opzione per cambià dinamicamente trà l'operazione di aggiunta è sottrazione · Supporta Optional asincronu è sincronu chjaru è clock abilitanu porti di input · Supporta u modu di registru di ritardu sistolicu · Supporta pre-adder cù 8 coefficienti di pre-carica per multiplicatore · Supporta custanti di pre-carica per cumplementà i feedback di l'accumulatore
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 37
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1. Pre-adder
Cù pre-adder, addizzioni o sottrazzioni sò fatti prima di alimentà u multiplicatore.
Ci sò cinque modi di pre-adder: · Modu simplice · Modu di coefficient · Modu di input · Modu quadratu · Modu constante
Nota:
Quandu u pre-adder hè utilizatu (pre-adder coefficient/input/square mode), tutti l'inputs di dati à u multiplicatore devenu avè u listessu paràmetru di clock.
8.1.1.1. Modu simplice di pre-adder
In questu modu, i dui operandi derivanu da i porti di input è u pre-adder ùn hè micca usatu o bypassed. Questu hè u modu predeterminatu.
Figura 10. Pre-adder Mode Simple
a0 b0
Mult0
risultatu
8.1.1.2. Modu di Coefficient Pre-adder
In questu modu, un operandu multiplicatore deriva da u pre-adder, è l'altru operandu deriva da u almacenamentu di coefficienti internu. L'almacenamiento di coefficienti permette finu à 8 custanti predefiniti. I signali di selezzione di coefficienti sò coefsel [0..3].
Stu modu hè spressione in l'equazioni seguenti.
I seguenti mostra u modu di coefficient di pre-adder di un multiplicatore.
Figura 11. Modu di Coefficient Pre-adder
Preadder
a0
Mult0
+/-
risultatu
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 38
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.1.3. Modu di Input Pre-adder In questu modu, un operandu multiplicatore deriva da u pre-adder, è l'altru operandu deriva da u portu di input datac[]. Stu modu hè spressione in l'equazioni seguenti.
I seguenti mostra u modu di input pre-adder di un multiplicatore.
Figura 12. Modu di Input Pre-adder
a0 b0
Mult0
+/-
risultatu
c0
8.1.1.4. Modu Square Pre-adder Stu modu hè spressu in l'equazioni seguenti.
I seguenti mostra u modu quadru pre-adder di dui multiplicatori.
Figura 13. Modu Square Pre-adder
a0 b0
Mult0
+/-
risultatu
8.1.1.5. Modu constante di pre-adder
In questu modu, un operandu multiplicatore deriva da u portu di input, è l'altru operandu deriva da u almacenamentu di coefficienti internu. L'almacenamiento di coefficienti permette finu à 8 custanti predefiniti. I signali di selezzione di coefficienti sò coefsel [0..3].
Stu modu hè spressione in l'equazioni seguenti.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 39
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
A figura seguente mostra u modu custanti pre-adder di un multiplicatore.
Figura 14. Modu Constant Pre-adder
a0
Mult0
risultatu
coefsel 0
coef
8.1.2. Registru di ritardu sistolicu
In una architettura sistolica, i dati di input sò alimentati in una cascata di registri chì facenu cum'è un buffer di dati. Ogni registru furnisce un input sample à un multiplicatore induve hè multiplicatu da u rispittivu coefficient. L'additore di a catena almacena i risultati cumminati gradualmente da u multiplicatore è u risultatu registratu prima da u portu di input chainin[] per furmà u risultatu finali. Ogni elementu di multiplicazione-aghjunghje deve esse ritardatu da un ciculu unicu in modu chì i risultati si sincronizzanu in modu adattatu quandu aghjunghjenu. Ogni ritardu successivu hè utilizatu per affruntà a memoria di coefficienti è u buffer di dati di i so rispettivi elementi multiplici-aghjunghje. Per esample, un solu ritardu per u sicondu elementu di multiplicazione aghjunghje, dui ritardi per u terzu elementu di multiplicazione-aghjunghje, è cusì.
Figura 15. Registers Systolic
I registri sistolici
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) rapprisenta i risultati da un flussu cuntinuu di input samples è y (t)
rapprisenta a somma di un inseme di input samples, è in u tempu, multiplicate da i so
coefficienti rispettivi. I risultati di input è output scorrenu da sinistra à diritta. Da c(0) a c(N-1) denota i coefficienti. I registri di ritardu sistolicu sò indicati da S-1, mentri l'1 rapprisenta un unicu ritardu di clock. I registri di ritardu sistolicu sò aghjuntu à
l'inputs è outputs per pipelining in una manera chì assicura i risultati da u
l'operandu multiplicatore è i sume accumulati restanu in sincronia. Stu elementu di trasfurmazioni
hè replicatu per furmà un circuitu chì calcula a funzione di filtrazione. Sta funzione hè
spressione in l'equazioni seguenti.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 40
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
N rapprisenta u numeru di ciculi di dati chì sò intruti in l'accumulatore, y (t) rapprisenta l'output à u tempu t, A (t) rapprisenta l'input à u tempu t, è B (i) sò i coefficienti. U t è i in l'equazioni currispondenu à un istante particulare in u tempu, cusì per calculà l'output sample y(t) à u tempu t, un gruppu di input sampi in N punti di tempu differenti, o A(n), A(n-1), A(n-2), ... A(n-N+1) hè necessariu. U gruppu di N input sampi sò multiplicati da N coefficienti è sommati per furmà u risultatu finali y.
L'architettura di u registru sistolicu hè dispunibule solu per i modi sum-of-2 è sum-of-4. Per i dui modi di l'architettura di u registru sistolicu, u primu signalu di catena deve esse ligatu à 0.
A figura seguente mostra l'implementazione di u registru di ritardu sistolicu di 2 multiplicatori.
Figura 16. Implementazione di u Registru di Delay Systolic di 2 Multiplicatori
catena
a0
Mult0
+/-
b0
a1
Mult1
+/-
b1
risultatu
A somma di dui multiplicatori hè spressione in l'equazioni seguenti.
A figura seguente mostra l'implementazione di u registru di ritardu sistolicu di 4 multiplicatori.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 41
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figura 17. Implementazione di u Registru di Delay Systolic di 4 Multiplicatori
catena
a0
Mult0
+/-
b0
a1
Mult1
+/-
b1
a2
Mult2
+/-
b2
a3
Mult3
+/-
b3
risultatu
A somma di quattru multiplicatori hè spressione in l'equazioni seguenti. Figura 18. Suma di 4 Multiplicatori
I seguenti liste l'avanzatutages di implementazione di u registru sistolicu: · Reduce l'usu di risorse DSP · Permette una mappatura efficiente in u bloccu DSP utilizendu a struttura di a catena adder.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 42
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.1.3. Pre-load Constant
A custante di pre-carica cuntrolla l'operandu di l'accumulatore è cumplementa u feedback di l'accumulatore. U LOADCONST_VALUE validu varieghja da 0. U valore constante hè uguali à 64N, induve N = LOADCONST_VALUE. Quandu u LOADCONST_VALUE hè stabilitu à 2, u valore constante hè uguali à 64. Questa funzione pò esse usata cum'è arrotondamentu biased.
A figura seguente mostra l'implementazione constante di pre-load.
Figura 19. Pre-load Constant
Feedback di l'accumulatore
custanti
a0
Mult0
+/-
b0
a1
Mult1
+/b1
risultatu
accum_sload sload_accum
Fate riferimentu à i seguenti core IP per altre implementazioni di multiplicatori: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Doppiu accumulatore
A funzione di doppiu accumulatore aghjusta un registru supplementu in u percorsu di feedback di l'accumulatore. U registru doppiu accumulatore seguita u registru di output, chì include u clock, clock enable, è aclr. U registru di l'accumulatore supplementu torna u risultatu cù un ritardu di un ciclu. Sta funziunalità vi permette di avè dui canali accumulatori cù u listessu numeru di risorse.
A figura seguente mostra l'implementazione di a doppia accumulatore.
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 43
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Figura 20. Doppiu Accumulator
Doppiu Registru di l'accumulatore
Feedback di l'accumulatore
a0
Mult0
+/-
b0
a1
Mult1
+/b1
Risultato di output Registru di output
8.2. Prototipu Verilog HDL
Pudete truvà u prototipu Intel FPGA Multiply Adder o ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) in u repertoriu di biblioteche megafunzioni.
8.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u altera_lnsim_components.vhd in u librariesvhdl altera_lnsim directory.
8.4. Dichjarazione VHDL LIBRARY_USE
A dichjarazione VHDL LIBRARY-USE ùn hè micca necessariu se utilizate a Dichjarazione di Componente VHDL.
BIBLIOTECA altera_mf; USE altera_mf.altera_mf_components.all;
8.5. Segnali
I seguenti tabelle listanu i signali di input è output di Multiply Adder Intel FPGA IPor ALTERA_MULT_ADD core IP.
Tabella 28. Multiplicazione Adder Intel FPGA IPor ALTERA_MULT_ADD Segnali di Input
Segnale
Ubligatoriu
Descrizzione
dataa_0[]/dataa_1[]/
Iè
dataa_2[]/dataa_3[]
Input di dati à u multiplicatore. Portu di input [NUMBER_OF_MULTIPLIERS * WIDTH_A - 1 ... 0] largu
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 44
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signal 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] signu
signu b
scanina[] accum_sload
Ubligatoriu Iè No
No No No Nò No
Innò
No No
Descrizzione
U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
Input di dati à u multiplicatore. Segnale di input [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] wide U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
Input di dati à u multiplicatore. Segnale di input [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] wide Selezziunà INPUT per u paràmetru Select predder mode per attivà sti signali. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
U portu di input di u clock à u registru currispundente. Stu signalu pò esse usatu da ogni registru in u core IP. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
Ingressu chjaru asincronu à u registru currispundente. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
Ingressu chjaru sincronu à u registru currispundente. U mudellu di simulazione per questa IP sustene u valore di input X indeterminatu à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output
Abilita l'ingressu di signale à u registru currispundente. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à questi signali. Quandu furnisce u valore X à questi signali, u valore X hè propagatu nantu à i signali di output.
Specifica a rapprisintazioni numerica di u multiplicatore input A. Sè u signale signa hè altu, u multiplicatore tratta u multiplier input A signale cum'è un numeru firmatu. Sè u signali signa hè bassu, u multiplicatore tratta u signale input multiplicatore A cum'è un numeru unsigned. Selezziunate VARIABILE per Quale hè u formatu di rapprisintazioni per Multiplicatori A paràmetru di input per attivà stu signale. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Specifica a rapprisintazioni numerica di u signale di ingressu multiplicatore B. Se u signale signb hè altu, u multiplicatore tratta u signale di input multiplicatore B cum'è un numeru cumplementu di dui firmati. Se u signale signb hè bassu, u multiplicatore tratta u signale di input B di multiplicatore cum'è un numeru senza signu. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Input per a catena di scansione A. Segnale d'ingressu [WIDTH_A – 1, … 0] wide. Quandu u paràmetru INPUT_SOURCE_A hà un valore di SCANA, u signale scanina[] hè necessariu.
Specifica dinamicamente se u valore di l'accumulatore hè constantu. Sè u signali accum_sload hè bassu, allura l 'output multiplier hè carricu in l' accumulateur. Ùn aduprate micca accum_sload è sload_accum simultaneamente.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 45
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Signal sload_accum
catena[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Nr
No No
Innò
No No No No
Descrizzione
U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Specifica dinamicamente se u valore di l'accumulatore hè constantu. Sè u signali sload_accum hè altu, allura l 'output multiplier hè carricu in u accumulateur. Ùn aduprate micca accum_sload è sload_accum simultaneamente. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Adder result input bus from the precedente stage. Segnale di input [WIDTH_CHAININ – 1, … 0] wide.
Eseguite l'aghjunzione o a sottrazione à l'outputs da u primu paru di multiplicatori. Input 1 à addnsub1 signale per aghjunghje i outputs da u primu paru di multiplicatori. Input 0 to addnsub1 signale per sottrae i outputs da u primu paru di multiplicatori. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Eseguite l'aghjunzione o a sottrazione à l'outputs da u primu paru di multiplicatori. Input 1 à addnsub3 signale per aghjunghje i outputs da u sicondu paru di multiplicatori. Input 0 to addnsub3 signale per sottrae i outputs da u primu paru di multiplicatori. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Coefficient input signal [0:3] à u primu multiplicatore. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Coefficient input signal [0:3]à u sicondu multiplicatore. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Coefficient input signal [0:3]à u terzu multiplicatore. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Coefficient input signal [0: 3] à u quartu multiplicatore. U mudellu di simulazione per questa IP sustene un valore di input indeterminatu (X) à stu signale. Quandu furnisce u valore X à questu input, u valore X hè propagatu nantu à i signali di output.
Table 29. Multiply Adder Intel FPGA IP Output Signals
Segnale
Ubligatoriu
Descrizzione
risultatu []
Iè
Segnale di output multiplicatore. Segnale di output [WIDTH_RESULT – 1 … 0] wide
U mudellu di simulazione per questa IP sustene un valore di output indeterminatu (X). Quandu furnisce u valore X cum'è input, u valore X hè propagatu nantu à stu signale.
scanouta []
Innò
Output of scan chain A. Segnale di output [WIDTH_A - 1..0] wide.
Selezziunate più di 2 per i numeri di multiplicatori è sceglite l'ingressu di a catena di Scansione per Quale hè l'ingressu A di u multiplicatore cunnessu à u paràmetru per attivà stu signale.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 46
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6. Parametri
8.6.1. Tabulazione generale
Table 30. General Tab
Parametru
Parametru IP Generatu
Valore
Chì ghjè u numeru di multiplicatori?
numeru_di_m 1 - 4 multiplicatori
Quantu deve esse largu i busi di input A width_a ?
1 - 256
Quantu deve esse largu i bus di input B width_b ?
1 - 256
Quantu deve esse largu u bus di output "risultatu"?
width_result
1 - 256
Crea un clock associatu attivatu per ogni clock
gui_associate On d_clock_enbl Off e
8.6.2. Modi extra Tab
Table 31. Modi Extra Tab
Parametru
Parametru IP Generatu
Valore
Configurazione Outputs
Registra l'output di l'unità di sommatore
gui_output_re On
gister
Off
Chì ghjè a fonte per l'input di u clock?
gui_output_re gister_clock
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_output_re gister_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_output_re gister_sclr
NONE SCLR0 SCLR1
Operazione Adder
Chì operazione deve esse realizatu nantu à i risultati di u primu paru di multiplicatori?
gui_multiplicatore 1_direzzione
ADD, SUB, VARIABLE
Valeur par défaut 1
16
Descrizzione
Numero di multiplicatori da aghjunghje. I valori sò da 1 à 4. Specificate a larghezza di u portu di datia[].
16
Specificate a larghezza di u portu di datab[].
32
Specificate a larghezza di u risultatu [] portu.
Off
Selezziunate sta opzione per creà attivazione di l'orologio
per ogni clock.
Valore predeterminatu
Descrizzione
Off Clock 0
NIMU NIMENU
Selezziunate sta opzione per attivà u registru di output di u modulu adder.
Selezziunà Clock0 , Clock1 o Clock2 per attivà è specificà a fonte di clock per i registri di output. Per attivà stu paràmetru, vi tocca à selezziunà u registru output di l'unità di sommatore.
Specifica a fonte libera asincrona per u registru di output di sommatore. Per attivà stu paràmetru, vi tocca à selezziunà u registru output di l'unità di sommatore.
Specifica a fonte chjara sincrona per u registru di output di sommatore. Per attivà stu paràmetru, vi tocca à selezziunà u registru output di l'unità di sommatore.
ADD
Selezziunate l'operazione di addizione o sottrazione per eseguisce per i risultati trà u primu è u sicondu multiplicatore.
· Selezziunate ADD per eseguisce l'operazione di addizione.
· Selezziunà SUB per fà l'operazione di sottrazione.
· Selezziunà VARIABILE per aduprà u portu addnsub1 per u cuntrollu dinamicu di addizione / sottrazione.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 47
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Parametru IP Generatu
Valore
Registra l'input 'addnsub1'
gui_addnsub_ On multiplier_reg Off ister1
Chì ghjè a fonte per l'input di u clock?
gui_addnsub_ multiplier_reg ister1_clock
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_addnsub_multiplicator_aclr 1
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_addnsub_multiplicator_sclr 1
NONE SCLR0 SCLR1
Chì operazione deve esse realizatu nantu à i risultati di a seconda coppia di multiplicatori?
gui_multiplicatore 3_direzzione
ADD, SUB, VARIABLE
Registra l'input 'addnsub3'
gui_addnsub_ On multiplier_reg Off ister3
Chì ghjè a fonte per l'input di u clock?
gui_addnsub_ multiplier_reg ister3_clock
Clock0 Clock1 Clock2
Valore predeterminatu
Off Clock0 NONE NONE ADD
Off Clock 0
Descrizzione
Quandu u valore VARIABLE hè sceltu: · Drive addnsub1 signal to high for
funziunamentu di addizzioni. · Drive addnsub1 signale à bassu per
operazione di sottrazione. Duvete selezziunà più di dui multiplicatori per attivà stu paràmetru.
Selezziunate sta opzione per attivà u registru di input per u portu addnsub1. Duvete selezziunà VARIABILE per Chì operazione deve esse realizatu nantu à i risultati di u primu paru di multiplicatori per attivà stu paràmetru.
Selezziunà Clock0 , Clock1 o Clock2 per specificà u signalu di clock input per u registru addnsub1. Duvete selezziunate Register 'addnsub1' input per attivà stu paràmetru.
Specifica a fonte libera asincrona per u registru addnsub1. Duvete selezziunate Register 'addnsub1' input per attivà stu paràmetru.
Specifica a fonte chjara sincrona per u registru addnsub1. Duvete selezziunate Register 'addnsub1' input per attivà stu paràmetru.
Selezziunate l'operazione di addizione o sottrazione per eseguisce per i risultati trà u terzu è u quartu multiplicatori. · Selezziunà ADD per fà l'addizione
funziunamentu. · Selezziunà SUB per fà a sottrazione
funziunamentu. · Selezziunà VARIABILE per aduprà addnsub1
portu per u cuntrollu dinamicu di addizione / sottrazione. Quandu u valore VARIABLE hè sceltu: · Drive addnsub1 signal to high per l'operazione di addizione. · Cunduce u signale addnsub1 à bassu per l'operazione di sottrazione. Duvete selezziunà u valore 4 per Quale hè u numeru di multiplicatori? per attivà stu paràmetru.
Selezziunate sta opzione per attivà u registru di input per u signale addnsub3. Duvete selezziunà VARIABILE per Quale operazione deve esse realizatu nantu à l'outputs di a seconda coppia di multiplicatori per attivà stu paràmetru.
Selezziunà Clock0 , Clock1 o Clock2 per specificà u signale di clock input per u registru addnsub3. Duvete selezziunà u Register 'addnsub3' input per attivà stu paràmetru.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 48
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Chì ghjè a fonte per l'input chjaru asincronu?
Parametru IP Generatu
Valore
gui_addnsub_multiplicator_aclr 3
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_addnsub_multiplicator_sclr 3
NONE SCLR0 SCLR1
Attivazione di polarità "use_subadd"
gui_use_subn On
aghjunghje
Off
8.6.3. Multiplicatori Tab
Table 32. Multiplicatori Tab
Parametru
Parametru IP Generatu
Valore
Chì ghjè u
gui_rappresentà
formatu di rapprisintazzioni ation_a
per i multiplicatori A inputs?
FIRMATA, NON FIRMATA, VARIABILE
Registra l'input "signa".
gui_register_s On
igna
Off
Chì ghjè a fonte per l'input di u clock?
gui_register_s igna_clock
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_register_s igna_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_register_s igna_sclr
NONE SCLR0 SCLR1
Chì ghjè u
gui_rappresentà
formatu di rapprisintazzioni ation_b
per l'input di i Multiplicatori B?
FIRMATA, NON FIRMATA, VARIABILE
Registrate l'input "signb".
gui_register_s On
ignb
Off
Valore predeterminatu NONE
NIMU
Descrizzione
Specifica a fonte libera asincrona per u registru addnsub3. Duvete selezziunate Register 'addnsub3' input per attivà stu paràmetru.
Specifica a fonte chjara sincrona per u registru addnsub3. Duvete selezziunà u Register 'addnsub3' input per attivà stu paràmetru.
Off
Selezziunate sta opzione per annunzià a funzione
di u portu di input addnsub.
Drive addnsub à altu per l'operazione di sottrazione.
Drive addnsub à bassu per l'operazione di addizzioni.
Valore predeterminatu
Descrizzione
UNSIGNED Specificate u formatu di rapprisintazioni per u multiplicatore A input.
Off
Selezziunate sta opzione per attivà signa
iscrizzione.
Duvete selezziunà u valore VARIABLE per Quale hè u formatu di rapprisintazioni per l'input Multiplicatori A? paràmetru per attivà sta opzione.
Orologio 0
Selezziunate Clock0 , Clock1 o Clock2 per attivà è specificà u signalu di clock d'ingressu per u registru di signa.
Duvete selezziunà l'input Register `signa' per attivà stu paràmetru.
NIMU
Specifica a fonte libera asincrona per u registru signa.
Duvete selezziunà l'input Register `signa' per attivà stu paràmetru.
NIMU
Specifica a fonte chjara sincrona per u registru signa.
Duvete selezziunà l'input Register `signa' per attivà stu paràmetru.
UNSIGNED Specificate u formatu di rapprisentazione per l'input multiplicatore B.
Off
Sceglite sta opzione per attivà signb
iscrizzione.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 49
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Parametru IP Generatu
Valore
Valore predeterminatu
Chì ghjè a fonte per l'input di u clock?
gui_register_s ignb_clock
Clock0 Clock1 Clock2
Orologio 0
Chì ghjè a fonte per l'input chjaru asincronu?
gui_register_s ignb_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_register_s ignb_sclr
NONE SCLR0 SCLR1
Configurazione di input
Register input A di u multiplicatore
Chì ghjè a fonte per l'input di u clock?
gui_input_reg On
ister_a
Off
gui_input_reg ister_a_clock
Clock0 Clock1 Clock2
NIMU NIMENU
Off Clock 0
Chì ghjè a fonte per l'input chjaru asincronu?
gui_input_reg ister_a_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_input_reg ister_a_sclr
NONE SCLR0 SCLR1
Register input B di u multiplicatore
Chì ghjè a fonte per l'input di u clock?
gui_input_reg On
ister_b
Off
gui_input_reg ister_b_clock
Clock0 Clock1 Clock2
NONE NONE Off Clock0
Chì ghjè a fonte per l'input chjaru asincronu?
gui_input_reg ister_b_aclr
NONE ACLR0 ACLR1
NIMU
Chì ghjè a fonte per l'input chjaru sincronu?
gui_input_reg ister_b_sclr
NONE SCLR0 SCLR1
NIMU
Chì ghjè l'input A di u multiplicatore cunnessu à ?
gui_multiplier Multiplicatore input Multiplicatore
_a_input
Input input di a catena di scansione
Descrizzione
Duvete selezziunà u valore VARIABILE per Quale hè u formatu di rapprisintazioni per l'input Multipliers B? paràmetru per attivà sta opzione.
Selezziunà Clock0, Clock1 o Clock2 per attivà è specificà u signalu di clock d'ingressu per u registru signb. Duvete selezziunà l'input Register `signb' per attivà stu paràmetru.
Specifica a fonte libera asincrona per u registru signb. Duvete selezziunà l'input Register `signb' per attivà stu paràmetru.
Specifica a fonte chjara sincrona per u registru signb. Duvete selezziunà l'input Register `signb' per attivà stu paràmetru.
Selezziunate sta opzione per attivà u registru di input per u bus di input di dati.
Selezziunà Clock0 , Clock1 o Clock2 per attivà è specificà u signale di clock d'ingressu di u registru per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà Register input A di u multiplicatore.
Specifica a fonte libera asincrona di u registru per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà Register input A di u multiplicatore.
Specifica a fonte libera di registru sincrona per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà Register input A di u multiplicatore.
Sceglite sta opzione per attivà u registru di input per u bus di input di dati.
Selezziunate Clock0 , Clock1 o Clock2 per attivà è specificà u signale di clock d'ingressu di u registru per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà l'ingressu B di u multiplicatore.
Specifica a fonte libera asincrona di u registru per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà l'ingressu B di u multiplicatore.
Specifica a fonte libera di registru sincrona per u bus di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà l'ingressu B di u multiplicatore.
Selezziunate a fonte di input per l'input A di u multiplicatore.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 50
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Parametru IP Generatu
Valore
Scanout A Configurazione di u Registru
Registrate l'output di a catena di scansione
gui_scanouta On
_registru
Off
Chì ghjè a fonte per l'input di u clock?
gui_scanouta _register_cloc k
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_scanouta _register_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_scanouta _register_sclr
NONE SCLR0 SCLR1
8.6.4. Preadder Tab
Table 33. Preadder Tab
Parametru
Parametru IP Generatu
Valore
Selezziunà u modu di preadder
predder_mo de
SIMPLU, COEF, INPUT, SQUARE, COSTANT
Valore predeterminatu
Descrizzione
Selezziunà l'input Multiplicatore per utilizà un bus di input di dati cum'è fonte à u multiplicatore. Selezziunà l'input di a catena di scansione per aduprà u bus di input di scanin cum'è a fonte à u multiplicatore è attivà u bus di output di scanout. Stu paràmetru hè dispunibule quandu selezziunate 2, 3 o 4 per Quale hè u numeru di multiplicatori? paràmetru.
Off Clock0 NONE NONE
Sceglite questa opzione per attivà u registru di output per u bus di output di scanouta.
Duvete selezziunà l'ingressu di a catena di Scansione per Quale hè l'input A di u multiplicatore cunnessu à? paràmetru per attivà sta opzione.
Selezziunà Clock0, Clock1 o Clock2 per attivà è specificà u signale di clock d'ingressu di u registru per u bus di output di scanouta.
Per attivà sta opzione, duvete attivà u Register output di u paràmetru di a catena di scansione.
Specifica a fonte libera asincrona di registru per u bus di output di scanouta.
Per attivà sta opzione, duvete attivà u Register output di u paràmetru di a catena di scansione.
Specifica a fonte libera sincrona di registru per u bus di output di scanouta.
Per attivà sta opzione, duvete selezziunà u Register output di u paràmetru di a catena di scansione.
Valore predeterminatu
SIMPLU
Descrizzione
Specifica u modu di operazione per u modulu di preadder. SIMPLE: Stu modu ignora u preadder. Questu hè u modu predeterminatu. COEF: Stu modu usa l'output di u bus di input di preadder è coefsel cum'è input à u multiplicatore. INPUT: Stu modu usa l'output di u preadder è u bus di input di datac cum'è input à u multiplicatore. SQUARE: Stu modu usa l'output di u preadder cum'è l'inputs à u multiplicatore.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 51
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Parametru IP Generatu
Valore
Selezziunà a direzzione di preadder
gui_predder ADD,
_direzzione
SUB
Quantu deve esse largu i bus di input C width_c ?
1 - 256
Data C Input Register Configuration
Registrate l'input di dati
gui_datac_inp On
ut_registru
Off
Chì ghjè a fonte per l'input di u clock?
gui_datac_inp ut_register_cl ock
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_datac_inp ut_register_a clr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_datac_inp ut_register_sc lr
NONE SCLR0 SCLR1
Coefficienti
Quantu deve esse a larghezza di u coef?
larghezza_coef
1 - 27
Cunfigurazione di u Registru Coef
Registrate l'input coefsel
gui_coef_regi On
ster
Off
Chì ghjè a fonte per l'input di u clock?
gui_coef_regi ster_clock
Clock0 Clock1 Clock2
Valore predeterminatu
ADD
16
Descrizzione
CONSTANT: Stu modu usa un bus d'input di dati cù preadder bypassed è bus d'input coefsel cum'è input à u multiplicatore.
Specifica u funziunamentu di u preadder. Per attivà stu paràmetru, selezziunà i seguenti per selezziunà u modu di preadder: · COEF · INPUT · SQUARE o · CONSTANT
Specifica u numeru di bit per u bus di input C. Duvete selezziunà INPUT per Select mode predder per attivà stu paràmetru.
On Clock0 NONE NONE
Selezziunate questa opzione per attivà u registru di input per u bus di input di dati. Duvete stabilisce INPUT à Selezziunà u paràmetru di modalità di preadder per attivà sta opzione.
Selezziunà Clock0 , Clock1 o Clock2 per specificà u signalu di clock di input per u registru di input di dati. Per attivà stu paràmetru, vi tocca à selezziunà l'input di i dati.
Specifica a fonte libera asincrona per u registru di input di datac. Per attivà stu paràmetru, vi tocca à selezziunà l'input di i dati.
Specifica a fonte chjara sincrona per u registru di input di datac. Per attivà stu paràmetru, vi tocca à selezziunà l'input di i dati.
18
Specifica u numeru di bit per
bus di input coefsel.
Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
On Clock0
Selezziunate questa opzione per attivà u registru di input per u bus di input coefsel. Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
Selezziunate Clock0, Clock1 o Clock2 per specificà u signalu di clock d'ingressu per u registru di input coefsel. Per attivà stu paràmetru, duvete selezziunate Registra l'input coefsel.
cuntinuò…
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 52
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Chì ghjè a fonte per l'input chjaru asincronu?
Parametru IP Generatu
Valore
gui_coef_regi ster_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per un input chjaru sincronu
gui_coef_regi ster_sclr
NONE SCLR0 SCLR1
Cunfigurazione Coefficient_0
coef0_0 à coef0_7
0x00000 0xFFFFFFF
Cunfigurazione Coefficient_1
coef1_0 à coef1_7
0x00000 0xFFFFFFF
Cunfigurazione Coefficient_2
coef2_0 à coef2_7
0x00000 0xFFFFFFF
Cunfigurazione Coefficient_3
coef3_0 à coef3_7
0x00000 0xFFFFFFF
8.6.5. Accumulator Tab
Table 34. Accumulator Tab
Parametru
Parametru IP Generatu
Valore
Attivà l'accumulatore?
accumulateur
SI, NO
Chì ghjè u tipu di funziunamentu di l'accumulatore?
accum_directi ADD,
on
SUB
Valore predeterminatu NONE
NIMU
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Descrizzione
Specifica a fonte libera asincrona per u registru di input coefsel. Per attivà stu paràmetru, duvete selezziunate Registra l'input coefsel.
Specifica a fonte libera sincrona per u registru di input coefsel. Per attivà stu paràmetru, duvete selezziunate Registra l'input coefsel.
Specifica i valori di coefficienti per stu primu multiplicatore. U numaru di bits deve esse u listessu cum'è specificatu in Quantu deve esse u largu di coef? paràmetru. Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
Specifica i valori di coefficienti per stu secondu multiplicatore. U numaru di bits deve esse u listessu cum'è specificatu in Quantu deve esse u largu di coef? paràmetru. Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
Specifica i valori di coefficienti per stu terzu multiplicatore. U numaru di bits deve esse u listessu cum'è specificatu in Quantu deve esse u largu di coef? paràmetru. Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
Specifica i valori di coefficienti per stu quartu multiplicatore. U numaru di bits deve esse u listessu cum'è specificatu in Quantu deve esse u largu di coef? paràmetru. Duvete selezziunà COEF o CONSTANT per u modu di preadder per attivà stu paràmetru.
Valore predeterminatu NO
ADD
Descrizzione
Selezziunà SI per attivà l'accumulatore. Duvete selezziunà Registrà l'output di l'unità di sommatore quandu si usa a funzione di accumulatore.
Specifica u funziunamentu di l'accumulatore: · ADD per l'operazione di addizzioni · SUB per l'operazione di sottrazione. Duvete selezziunà SI per Abilita l'accumulatore? paràmetru per attivà sta opzione.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 53
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Preload Constant Abilita a constant preload
Parametru IP Generatu
Valore
gui_ena_prelo On
ad_const
Off
Chì ghjè l'input di u portu accumule cunnessu?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Selezziunate u valore per preload loadconst_val 0 - 64
custanti
ue
Chì ghjè a fonte per l'input di u clock?
gui_accum_sl oad_register_ clock
Clock0 Clock1 Clock2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_accum_sl oad_register_ aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_accum_sl oad_register_ sclr
NONE SCLR0 SCLR1
Abilita l'accumulatore doppiu
gui_double_a On
ccum
Off
Valore predeterminatu
Descrizzione
Off
Attiva l'accum_sload o
sload_accum signali è registru input
per selezziunà dinamicamente l'input à u
accumulatore.
Quandu accum_sload hè bassu o sload_accum, l'output multiplicatore hè alimentatu in l'accumulatore.
Quandu accum_sload hè altu o sload_accum, una constante di preload specificata da l'utilizatore hè alimentata in l'accumulatore.
Duvete selezziunà SI per Abilita l'accumulatore? paràmetru per attivà sta opzione.
ACCUM_SL OAD
Specifica u cumpurtamentu di u signale accum_sload/sload_accum.
ACCUM_SLOAD: Drive accum_sload low per carica l'output multiplicatore à l'accumulatore.
SLOAD_ACCUM: Drive sload_accum high per carricà l'output multiplicatore à l'accumulatore.
Duvete selezziunà l'opzione Enable preload constant per attivà stu paràmetru.
64
Spécifiez la valeur constante prédéfinie.
Stu valore pò esse 2N induve N hè u valore constante predeterminatu.
Quandu N = 64, rapprisenta un zero constantu.
Duvete selezziunà l'opzione Enable preload constant per attivà stu paràmetru.
Orologio 0
Selezziunà Clock0 , Clock1 o Clock2 per specificà u signalu di clock input per u registru accum_sload/sload_accum.
Duvete selezziunà l'opzione Enable preload constant per attivà stu paràmetru.
NIMU
Specifica a fonte libera asincrona per u registru accum_sload/sload_accum.
Duvete selezziunà l'opzione Enable preload constant per attivà stu paràmetru.
NIMU
Specifica a fonte chjara sincrona per u registru accum_sload/sload_accum.
Duvete selezziunà l'opzione Enable preload constant per attivà stu paràmetru.
Off
Abilita u registru doppiu accumulatore.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 54
Mandate Feedback
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
8.6.6. Tabulazione Sistolica / Chainout
Table 35. Systolic / Chainout Adder Tab
Paràmetru Habilita l'addizione di chainout
Parametru IP Generatu
Valore
chainout_add SI,
er
INNÒ
Chì ghjè u tipu di funziunamentu di l'addizione di chainout?
chainout_add ADD,
er_direzzione
SUB
Abilita l'input "negate" per l'additore di chainout?
Port_negate
PORT_USED, PORT_UNUSED
Registrate l'input "negatu"? negate_regist er
NON REGISTRATA, CLOCK0, CLOCK1, CLOCK2, CLOCK3
Chì ghjè a fonte per l'input chjaru asincronu?
negate_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
negate_sclr
NONE SCLR0 SCLR1
Ritardo sistolicu
Abilita i registri di ritardu sistolicu
gui_systolic_d On
elay
Off
Chì ghjè a fonte per l'input di u clock?
gui_systolic_d CLOCK0,
elay_clock
CLOCK1,
Valore predeterminatu
INNÒ
Descrizzione
Selezziunate SÌ per attivà u modulu di sommatore di chainout.
ADD
Specifica l'operazione di sommatore di chainout.
Per l'operazione di sottrazione, SIGNED deve esse sceltu per Quale hè u formatu di rapprisintazioni per l'input Multipliers A ? è Quale hè u formatu di rapprisintazioni per l'inputs Multipliers B? in a Tabulazione Multiplicatori.
PORT_UN USED
Selezziunate PORT_USED per attivà u signale di ingressu di negazione.
Stu paràmetru ùn hè micca validu quandu l'additore di chainout hè disattivatu.
UNREGIST ERED
Per attivà u registru d'ingressu per u signale d'ingressu di negazione è specifica u signale di clock d'ingressu per u registru di negazione.
Selezziunà UNREGISTERED se u registru di entrata di negazione ùn hè micca necessariu
Stu paràmetru ùn hè micca validu quandu selezziunate:
· NO per Abilita l'addizione di catena o
· PORT_UNUSED per Abilità l'input "negate" per l'addizione di chainout? paràmetru o
NIMU
Specifica a fonte libera asincrona per u registru di negazione.
Stu paràmetru ùn hè micca validu quandu selezziunate:
· NO per Abilita l'addizione di catena o
· PORT_UNUSED per Abilità l'input "negate" per l'addizione di chainout? paràmetru o
NIMU
Specifica a fonte chjara sincrona per u registru di negazione.
Stu paràmetru ùn hè micca validu quandu selezziunate:
· NO per Abilita l'addizione di catena o
· PORT_UNUSED per Abilità l'input "negate" per l'addizione di chainout? paràmetru o
Off CLOCK0
Selezziunate sta opzione per attivà u modu sistolicu. Stu paràmetru hè dispunibule quandu selezziunate 2, o 4 per Quale hè u numeru di multiplicatori? paràmetru. Avete da attivà l'output di Registru di l'unità di sommatore per utilizà i registri di ritardu sistolicu.
Specifica u signalu di clock d'ingressu per u registru di ritardu sistolicu.
cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 55
8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05
Parametru
Parametru IP Generatu
Valore
CLOCK2,
Chì ghjè a fonte per l'input chjaru asincronu?
gui_systolic_d elay_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_systolic_d elay_sclr
NONE SCLR0 SCLR1
Valore predeterminatu
NIMU
NIMU
Descrizzione
Duvete selezziunà l'attivazione di i registri di ritardu sistolicu per attivà sta opzione.
Specifica a fonte libera asincrona per u registru di ritardu sistolicu. Duvete selezziunà l'attivazione di i registri di ritardu sistolicu per attivà sta opzione.
Specifica a fonte chjara sincrona per u registru di ritardu sistolicu. Duvete selezziunà l'attivazione di i registri di ritardu sistolicu per attivà sta opzione.
8.6.7. Tabulazione Pipelining
Table 36. Pipelining Tab
Configurazione di Pipelining Parametru
Parametru IP Generatu
Valore
Vulete aghjunghje un registru di pipeline à l'input?
gui_pipelining No, Iè
Valore predeterminatu
Innò
Per piacè specificate u
latenza
numeru di clock di latenza
ciculi
Ogni valore più grande di 0 chè 0
Chì ghjè a fonte per l'input di u clock?
gui_input_late ncy_clock
CLOCK0, CLOCK1, CLOCK2
Chì ghjè a fonte per l'input chjaru asincronu?
gui_input_late ncy_aclr
NONE ACLR0 ACLR1
Chì ghjè a fonte per l'input chjaru sincronu?
gui_input_late ncy_sclr
NONE SCLR0 SCLR1
CLOCK0 NONE NONE
Descrizzione
Selezziunate Sì per attivà un livellu supplementu di registru di pipeline à i segnali di input. Duvete specificà un valore più grande di 0 per Per piacè specificate u paràmetru di u numeru di cicli di clock di latenza.
Specifica a latenza desiderata in cicli di clock. Un livellu di registru di pipeline = 1 latenza in u ciclu di clock. Duvete selezziunà SI per Vulete aghjunghje registru di pipeline à l'input? per attivà sta opzione.
Selezziunate Clock0 , Clock1 o Clock2 per attivà è specificà u signale di clock di input di u registru di pipeline. Duvete selezziunà SI per Vulete aghjunghje registru di pipeline à l'input? per attivà sta opzione.
Specifica a fonte clara asincrona di u registru per u registru di pipeline supplementu. Duvete selezziunà SI per Vulete aghjunghje registru di pipeline à l'input? per attivà sta opzione.
Specifica a fonte chjara sincrona di u registru per u registru di pipeline supplementu. Duvete selezziunà SI per Vulete aghjunghje registru di pipeline à l'input? per attivà sta opzione.
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 56
Mandate Feedback
683490 | 2020.10.05 Mandate Feedback
9. ALTMEMMULT (Multiplicatore di Coefficient Constant Basatu in Memoria) IP Core
Attenzione:
Intel hà eliminatu u supportu di sta IP in Intel Quartus Prime Pro Edition versione 20.3. Se u core IP in u vostru disignu mira à i dispositi in Intel Quartus Prime Pro Edition, pudete rimpiazzà l'IP cù LPM_MULT Intel FPGA IP o rigenerate l'IP è compilà u vostru disignu cù u software Intel Quartus Prime Standard Edition.
U core ALTMEMMULT IP hè utilizatu per creà multiplicatori basati in memoria utilizendu i blocchi di memoria onchip truvati in Intel FPGA (cù blocchi di memoria M512, M4K, M9K è MLAB). Stu core IP hè utile si ùn avete micca abbastanza risorse per implementà i multiplicatori in elementi lògichi (LE) o risorse multiplicatori dedicate.
U core ALTMEMMULT IP hè una funzione sincrona chì richiede un clock. U core ALTMEMMULT IP implementa un multiplicatore cù u più chjucu throughput è latenza pussibule per un determinatu settore di parametri è specificazioni.
A figura seguente mostra i porti per u core IP ALTMEMMULT.
Figura 21. Porti ALTMEMMULT
ALTMEMMULT
data_in[] sload_data coeff_in[]
result [] result_valid load_done
sload_coeff
sclr clock
inst
Funzioni d'infurmazioni correlate à a pagina 71
9.1. Features
U core ALTMEMMULT IP offre e seguenti caratteristiche: · Crea solu multiplicatori basati in memoria utilizendu blocchi di memoria in chip truvati in
Intel FPGA · Supporta a larghezza di dati di 1 bit · Supporta u formatu di rapprisentazione di dati firmati è senza firma · Supporta pipelining cù latenza di output fissa
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
ISO 9001: 2015 Registratu
9. ALTMEMMULT (Multiplicatore di Coefficient Constant Basatu in Memoria) IP Core 683490 | 2020.10.05
· Memorizza parechje custanti in memoria d'accessu aleatoriu (RAM)
· Fornisce una opzione per selezziunà u tipu di bloccu RAM
· Supporta i porti di input sincroni opzionali è di cuntrollu di carica
9.2. Prototipu Verilog HDL
U seguente prototipu Verilog HDL si trova in u Verilog Design File (.v) altera_mf.v in u annuariu di sintesi eda.
modulu altmemmult #( parametru coeff_representation = "SIGNED", paràmetru coefficient0 = "UNUSED", paràmetru data_representation = "SIGNED", paràmetru destinatu_device_family = "unused", paràmetru max_clock_cycles_per_result = 1, paràmetru number_of_coefficients = "_1, parameters = "_Block", paràmetru total_latency = 1, paràmetru width_c = 1, paràmetru width_d = 1, paràmetru width_r = 1, paràmetru width_s = 1, paràmetru lpm_type = "altmemmult", paràmetru lpm_hint = "unused") (clock di filu di input, filu di input [width_c-1: 0]coeff_in, input wire [width_d-1:0] data_in, output wire load_done, output wire [width_r-1:0] result, output wire result_valid, input wire sclr, input wire [width_s-1:0] sel, input wire sload_coeff, input wire sload_data)/* sintesi syn_black_box=1 */; modulu finale
9.3. Dichjarazione di cumpunenti VHDL
A dichjarazione di cumpunenti VHDL si trova in u VHDL Design File (.vhd) altera_mf_components.vhd in u repertoriu librariesvhdlaltera_mf.
component altmemmult generic (coeff_representation:string:= "SIGNED"; coefficient0:string:= "UNUSED"; data_representation:string:= "SIGNED"; purpose_device_family:string:= "unused"; max_clock_cycles_per_result:natural := 1;numbers_coefficients:_of := 1; ram_block_type := “AUTO” width_c: natural width_s: stringa := “UNUSED”; "altmemmult"); port (clock: in std_logic; coeff_in: in std_logic_vector (width_c-1 downto 1) := (altri => '0'); data_in: in std_logic_vector (width_d-0 downto 1);
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 58
Mandate Feedback
9. ALTMEMMULT (Multiplicatore di Coefficient Constant Basatu in Memoria) IP Core 683490 | 2020.10.05
load_done:out std_logic; risultatu: 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) := (altri => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); cumpunente finale;
9.4. Porti
I seguenti tabelle listanu i porti di input è output per u core IP ALTMEMMULT.
Table 37. ALTMEMMULT Input Ports
Nome di u portu
Ubligatoriu
Descrizzione
clock
Iè
Clock input à u multiplicatore.
coeff_in[]
Innò
Coefficient input portu per u multiplicatore. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_C.
data_in[]
Iè
U portu di input di dati à u multiplicatore. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_D.
sclr
Innò
Input chjaru sincronu. Se ùn hè micca utilizatu, u valore predeterminatu hè attivu altu.
sel[]
Innò
Selezzione di coefficienti fissi. A dimensione di u portu di input dipende da u WIDTH_S
valore di paràmetru.
sload_coeff
Innò
Portu di input di coefficienti di carica sincrona. Sustituisce u valore di coefficientu attuale selezziunatu cù u valore specificatu in l'input coeff_in.
sload_data
Innò
Portu di input di dati di carica sincrona. Segnale chì specifica una nova operazione di multiplicazione è annulla ogni operazione di multiplicazione esistente. Se u paràmetru MAX_CLOCK_CYCLES_PER_RESULT hà un valore di 1, u portu di input sload_data hè ignoratu.
Table 38. ALTMEMMULT Output Ports
Nome di u portu
Ubligatoriu
Descrizzione
risultatu []
Iè
Port di output multiplicatore. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_R.
result_valid
Iè
Indica quandu l'output hè u risultatu validu di una multiplicazione cumpleta. Se u paràmetru MAX_CLOCK_CYCLES_PER_RESULT hà un valore di 1, u portu di output result_valid ùn hè micca usatu.
carica_fatta
Innò
Indica quandu u novu coefficient hà finitu di carica. U signale load_done affirmeghja quandu un novu coefficientu hà finitu di carica. A menu chì u signale load_done hè altu, nisun altru valore di coefficienti pò esse caricatu in a memoria.
9.5. Parametri
A tavula seguente lista i paràmetri per u core ALTMEMMULT IP.
Tabella 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parametri
Nome di u paràmetru
Tipu Obligatu
Descrizzione
Integer Sì
Specifica a larghezza di u portu di data_in [].
Integer Sì
Specifica a larghezza di u portu coeff_in []. cuntinuò…
Mandate Feedback
Intel FPGA Integer Arithmetic IP Cores Guida per l'utente 59
9. ALTMEMMULT (Multiplicatore di Coefficient Constant Basatu in Memoria) IP Core 683490 | 2020.10.05
Parametru Nome WIDTH_R WIDTH
Documenti / Risorse
![]() |
Intel FPGA Integer Arithmetic Core IP [pdfGuida di l'utente FPGA Core IP aritmetici interi, Core IP aritmetici interi, Core IP aritmetici, Core IP |