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

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 []

denom[]

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[]

A pruduzzioni di dati. A dimensione di u portu di output dipende da u LPM_WIDTHN

valore di paràmetru.

resta []

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

Specifica a larghezza di u numeru [] è

quotient[] porti. I valori sò da 1 à 64.

LPM_WIDTHD

Integer

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[]

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 []

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 []

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?

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[]

Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.

datab []

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 []

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[]

Input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru LPM_WIDTH.

datab []

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 []

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

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 []

Portu di input di dati. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_CODEWORD.

clock

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

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

Specifica a larghezza di i dati crudi. I valori sò 2 à 64. U

u valore predeterminatu hè 8.

WIDTH_CODEWORD

Integer

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[]/

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 []

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

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[]

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 []

Port di output multiplicatore. A dimensione di u portu di input dipende da u valore di u paràmetru WIDTH_R.

result_valid

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

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *