Core IP aritmetici interi FPGA
Intel FPGA Integer IP Core Guida per l'utente
Aggiornato per Intel® Quartus® Prime Design Suite: 20.3
Versione online Invia feedback
UG-01063
ID: 683490 Versione: 2020.10.05
Contenuto
Contenuto
1. Core IP aritmetici interi FPGA Intel……………………………………………………………….. 5
2. LPM_COUNTER (contatore) IP Core……………………………………………………………………….. 7 2.1. Caratteristiche…………………………………………………………………………………………………7 2.2. Prototipo Verilog HDL……………………………………………………………………………….. 8 2.3. Dichiarazione dei componenti VHDL……………………………………………………………………….8 2.4. VHDL LIBRARY_USE Dichiarazione………………………………………………… 9 2.5. Porti……………………………………………………………………………………………………..9 2.6. Parametri…………………………………………………………………………………………… 10
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core………………………………………………………….. 12 3.1. Caratteristiche………………………………………………………………………………………………. 12 3.2. Verilog HDL Prototipo……………………………………………………………………………… 12 3.3. Dichiarazione dei componenti VHDL………………………………………………….. 13 3.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 13 3.5. Porti…………………………………………………………………………………………………… 13 3.6. Parametri…………………………………………………………………………………………… 14
4. LPM_MULT (Moltiplicatore) IP Core…………………………………………………………………………. 16 4.1. Caratteristiche………………………………………………………………………………………………. 16 4.2. Verilog HDL Prototipo……………………………………………………………………………… 17 4.3. Dichiarazione dei componenti VHDL………………………………………………….. 17 4.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 17 4.5. Segnali………………………………………………………………………………………………… 18 4.6. Parametri per i dispositivi Stratix V, Arria V, Cyclone V e Intel Cyclone 10 LP…………… 18 4.6.1. Scheda Generale…………………………………………………………………………………18 4.6.2. Scheda Generale 2……………………………………………………………………………… 19 4.6.3. Scheda Pipelining……………………………………………………………………………… 19 4.7. Parametri per i dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX……….. 20 4.7.1. Scheda Generale…………………………………………………………………………………20 4.7.2. Scheda Generale 2……………………………………………………………………………… 20 4.7.3. Pipeline…………………………………………………………………………………………………………21
5. LPM_ADD_SUB (Sommatore/Sottrattore)…………………………………………………………………… 22 5.1. Caratteristiche………………………………………………………………………………………………. 22 5.2. Prototipo Verilog HDL……………………………………………………………………………… 23 5.3. Dichiarazione dei componenti VHDL………………………………………………….. 23 5.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 23 5.5. Porti…………………………………………………………………………………………………… 23 5.6. Parametri…………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparatore)…………………………………………………………………………… 26 6.1. Caratteristiche………………………………………………………………………………………………. 26 6.2. Verilog HDL Prototipo……………………………………………………………………………… 27 6.3. Dichiarazione dei componenti VHDL………………………………………………….. 27 6.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 27 6.5. Porti…………………………………………………………………………………………………… 27 6.6. Parametri…………………………………………………………………………………………… 28
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 2
Invia feedback
Contenuto
7. ALTECC (Codice correzione errore: Encoder/Decoder) IP Core……………… 30
7.1. Caratteristiche Encoder ALTECC…………………………………………………………………………..31 7.2. Prototipo Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototipo Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Dichiarazione Componente VHDL (ALTECC_ENCODER)……………………………………………33 7.5. Dichiarazione componenti VHDL (ALTECC_DECODER)……………………………………………33 7.6. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 33 7.7. Porte Encoder………………………………………………………………………………………… 33 7.8. Porte del decodificatore………………………………………………………………34 7.9. Parametri Encoder………………………………………………………………………… 34 7.10. Parametri del decoder ……………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core…………………………………………………. 36
8.1. Caratteristiche………………………………………………………………………………………………. 37 8.1.1. Pre-addizionatore……………………………………………………………………………….. 38 8.1.2. Registro del ritardo sistolico………………………………………………………………….. 40 8.1.3. Costante di precarico………………………………………………………………… 43 8.1.4. Doppio accumulatore……………………………………………………………………… 43
8.2. Verilog HDL Prototipo……………………………………………………………………………… 44 8.3. Dichiarazione dei componenti VHDL………………………………………………….. 44 8.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………. 44 8.5. Segnali………………………………………………………………………………………………… 44 8.6. Parametri…………………………………………………………………………………………… 47
8.6.1. Scheda Generale…………………………………………………………………………………47 8.6.2. Scheda Modalità extra………………………………………………………………………….. 47 8.6.3. Scheda Moltiplicatori………………………………………………………………….. 49 8.6.4. Scheda Preadder………………………………………………………………………………. 51 8.6.5. Scheda Accumulatore………………………………………………………………………….. 53 8.6.6. Scheda Sistolica/Chainout……………………………………………………………………. 55 8.6.7. Scheda Pipeline……………………………………………………………………………… 56
9. ALTMEMMULT (moltiplicatore di coefficiente costante basato sulla memoria) IP Core…………………… 57
9.1. Caratteristiche………………………………………………………………………………………………. 57 9.2. Verilog HDL Prototipo……………………………………………………………………………… 58 9.3. Dichiarazione dei componenti VHDL………………………………………………….. 58 9.4. Porti…………………………………………………………………………………………………… 59 9.5. Parametri…………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Moltiplica-Accumula) IP Core…………………… 61
10.1. Funzionalità…………………………………………………………………………………………….. 62 10.2. Verilog HDL Prototipo……………………………………………………………………………..62 10.3. Dichiarazione dei componenti VHDL………………………………………………… 63 10.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………63 10.5. Porti …………………………………………………………………………………. 63 10.6. Parametri…………………………………………………………………………………………. 64
11. ALTMULT_ADD (Sommatore multiplo) IP Core…………………..69
11.1. Funzionalità…………………………………………………………………………………………….. 71 11.2. Verilog HDL Prototipo……………………………………………………………………………..72 11.3. Dichiarazione dei componenti VHDL………………………………………………… 72 11.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………72
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 3
Contenuto
11.5. Porti …………………………………………………………………………………. 72 11.6. Parametri…………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (moltiplicatore complesso) IP Core……………………………………………… 86 12.1. Moltiplicazione complessa……………………………………………………………………………. 86 12.2. Rappresentanza canonica………………………………………………………………………… 87 12.3. Rappresentanza Convenzionale……………………………………………………………………. 87 12.4. Caratteristiche…………………………………………………………………………………………….. 88 12.5. Verilog HDL Prototipo……………………………………………………………………………..88 12.6. Dichiarazione dei componenti VHDL………………………………………………… 89 12.7. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………89 12.8. Segnali………………………………………………………………………………………………. 89 12.9. Parametri…………………………………………………………………………………………. 90
13. ALTSQRT (Integer Square Root) IP Core……………………………………………………………92 13.1. Funzionalità…………………………………………………………………………………………….. 92 13.2. Verilog HDL Prototipo……………………………………………………………………………..92 13.3. Dichiarazione dei componenti VHDL………………………………………………… 93 13.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………93 13.5. Porti …………………………………………………………………………………. 93 13.6. Parametri…………………………………………………………………………………………. 94
14. PARALLEL_ADD (Sommatore Parallelo) IP Core………………………………………………………….. 95 14.1. Caratteristica……………………………………………………………………………………………….95 14.2. Verilog HDL Prototipo……………………………………………………………………………..95 14.3. Dichiarazione dei componenti VHDL………………………………………………… 96 14.4. VHDL LIBRARY_USE Dichiarazione…………………………………………………………………96 14.5. Porti …………………………………………………………………………………. 96 14.6. Parametri…………………………………………………………………………………………. 97
15. Integer Aritmetic IP Cores User Guide Document Archives………………………………… 98
16. Cronologia delle revisioni del documento per Intel FPGA Integer Arithmetic IP Core Guida per l'utente…. 99
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 4
Invia feedback
683490 | 2020.10.05 Invia feedback
1. Core IP aritmetici interi Intel FPGA
È possibile utilizzare i core IP interi FPGA Intel® per eseguire operazioni matematiche nel progetto.
Queste funzioni offrono una sintesi logica e un'implementazione del dispositivo più efficienti rispetto alla codifica delle proprie funzioni. È possibile personalizzare i core IP per soddisfare i requisiti di progettazione.
I core IP aritmetici interi Intel sono suddivisi nelle seguenti due categorie: · Core IP libreria di moduli parametrizzati (LPM) · Core IP specifici per Intel (ALT)
La tabella seguente elenca i core IP aritmetici interi.
Tabella 1.
Elenco dei core IP
Core IP
Core IP LPM
LPM_COUNTER
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Core IP specifici per Intel (ALT) ALTECC
Funzione finitaview Moltiplicatore del divisore del contatore
Sommatore o sottrattore Comparatore
Codificatore/decodificatore ECC
Dispositivo supportato
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, Ciclone IV E, Ciclone IV GX,
Ciclone V, Intel Ciclone 10 LP, Intel Ciclone 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, Ciclone IV E, Ciclone IV GX,
Ciclone V, Intel Ciclone 10 LP, Intel Ciclone 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, Ciclone IV E, Ciclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V continua...
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
1. Core IP aritmetici interi FPGA Intel 683490 | 2020.10.05
Core IP Intel FPGA Multiply Adder o ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTQRT
PARALLELO_ADD
Funzione finitaview Moltiplicatore-sommatore
Moltiplicatore di coefficiente costante basato sulla memoria
Moltiplicatore-accumulatore Moltiplicatore-sommatore
Moltiplicatore complesso
Radice quadrata intera
sommatore parallelo
Dispositivo supportato
Arria V, Stratix V, Ciclone V, Intel Stratix 10, Intel Arria 10, Intel Ciclone
10 GS
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
Ciclone 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, Ciclone IV E, Ciclone IV GX, Ciclone V, Intel
Ciclone 10 GX, Intel Ciclone 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Ciclone IV E, Ciclone IV GX,
Ciclone V, Intel Ciclone 10 LP, Intel Ciclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Ciclone IV E, Ciclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Informazioni correlate
· Note sulla versione di dispositivi programmabili e FPGA Intel
· Introduzione ai core IP FPGA Intel Fornisce ulteriori informazioni sui core IP FPGA Intel.
· Guida dell'utente sui core IP a virgola mobile Fornisce ulteriori informazioni sui core IP a virgola mobile Intel FPGA.
· Introduzione ai core IP FPGA Intel Fornisce informazioni generali su tutti i core IP FPGA Intel, inclusa la parametrizzazione, la generazione, l'aggiornamento e la simulazione dei core IP.
· Creazione di script di simulazione IP e Qsys indipendenti dalla versione Creare script di simulazione che non richiedono aggiornamenti manuali per il software o gli aggiornamenti della versione IP.
· Linee guida sulle migliori pratiche per la gestione dei progetti per una gestione efficiente e la portabilità del progetto e della PI files.
· Integer Arithmetic IP Cores User Guide Document Archives on page 98 Fornisce un elenco di guide per l'utente per le versioni precedenti di Integer Arithmetic IP cores.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 6
Invia feedback
683490 | 2020.10.05 Invia feedback
2. Core IP LPM_COUNTER (contatore).
Figura 1.
Il core IP LPM_COUNTER è un contatore binario che crea contatori avanti, contatori indietro e contatori avanti o indietro con uscite fino a 256 bit di larghezza.
La figura seguente mostra le porte per il core IP LPM_COUNTER.
LPM_COUNTER porte
LPM_COUNTER
ssclr carica i dati del set[]
Q[]
sottosopra
corte
aclr carica un set
clk_it cnt_it cin
istruendo
2.1 Caratteristiche
Il core IP LPM_COUNTER offre le seguenti funzionalità: · Genera contatori avanti, indietro e su/giù · Genera i seguenti tipi di contatore:
— Binario normale: il contatore aumenta a partire da zero o diminuisce a partire da 255
— Modulo: il contatore aumenta o diminuisce dal valore del modulo specificato dall'utente e si ripete
· Supporta le porte di ingresso opzionali di cancellazione, caricamento e impostazione sincrone · Supporta le porte di ingresso opzionali di cancellazione, caricamento e impostazione asincrone · Supporta le porte di ingresso opzionali di abilitazione conteggio e abilitazione orologio · Supporta le porte opzionali carry-in e carry-out
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
2. Core IP LPM_COUNTER (contatore).
Italiano: 683490 | 2020.10.05
2.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
modulo lpm_counter ( q, data, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); parametro lpm_type = “contatore_lpm”; parametro lpm_width = 1; parametro lpm_modulus = 0; parametro lpm_direction = “UNUSED”; parametro lpm_avalue = “UNUSED”; parametro lpm_svalue = “UNUSED”; parametro lpm_pvalue = “UNUSED”; parametro lpm_port_updown = “PORT_CONNECTIVITY”; parametro lpm_hint = “UNUSED”; uscita [lpm_width-1:0] q; uscita cout; uscita [15:0] eq; ingresso cin; inserire [lpm_width-1:0] dati; ingresso orologio, clk_en, cnt_en, updown; input aset, aclr, aload; input sset, sclr, sload; endmodule
2.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) LPM_PACK.vhd nel file directory librerievhdllpm.
componente LPM_COUNTER generico ( LPM_WIDTH : naturale; LPM_MODULUS : naturale := 0; LPM_DIRECTION : stringa := “UNUSED”; LPM_AVALUE : stringa := “UNUSED”; LPM_SVALUE : stringa := “UNUSED”; LPM_PORT_UPDOWN : stringa := “PORT_CONNECTIVITY” ; LPM_PVALUE : stringa := “UNUSED”; LPM_TYPE : stringa := L_COUNTER; LPM_HINT : string := “UNUSED”); porta (DATI: in std_logic_vector(LPM_WIDTH-1 fino a 0):= (ALTRI =>
'0'); OROLOGIO: in std_logic; CLK_EN : in std_logic := '1'; CNT_EN : in std_logic := '1'; UPDOWN : in std_logic := '1'; SCARICAMENTO : in std_logic := '0'; SSET : in std_logic := '0'; SCLR : in std_logic := '0'; CARICA : 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 fino a 0); EQ : out std_logic_vector(15 downto 0));
componente finale;
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 8
Invia feedback
2. LPM_COUNTER (contatore) IP Core 683490 | 2020.10.05
2.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
2.5. Porte
Le seguenti tabelle elencano le porte di input e output per il core IP LPM_COUNTER.
Tabella 2.
LPM_COUNTER Porte di ingresso
Nome della porta
Necessario
Descrizione
dati[]
NO
Ingresso dati parallelo al contatore. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.
orologio
SÌ
Ingresso di clock attivato dal fronte positivo.
clk_it
NO
Ingresso abilitazione orologio per abilitare tutte le attività sincrone. Se omesso, il valore predefinito è 1.
cnt_it
NO
Count enable input per disabilitare il conteggio quando asserito basso senza influire su sload, sset o sclr. Se omesso, il valore predefinito è 1.
sottosopra
NO
Controlla la direzione del conteggio. Quando asserito alto (1), la direzione del conteggio è verso l'alto, e quando asserito basso (0), la direzione del conteggio è verso il basso. Se viene utilizzato il parametro LPM_DIRECTION, la porta updown non può essere collegata. Se LPM_DIRECTION non viene utilizzato, la porta updown è facoltativa. Se omesso, il valore predefinito è up (1).
cinghiale
NO
Carry-in al bit di ordine inferiore. Per i contatori in avanti, il comportamento dell'ingresso cin è
identico al comportamento dell'input cnt_en. Se omesso, il valore predefinito è 1
(VCC).
aclr
NO
Ingresso chiaro asincrono. Se vengono utilizzati e affermati sia aset che aclr, aclr sovrascrive aset. Se omesso, il valore predefinito è 0 (disabilitato).
insieme
NO
Ingresso insieme asincrono. Specifica gli output q[] come tutti 1 o sul valore specificato dal parametro LPM_AVALUE. Se vengono utilizzate e dichiarate entrambe le porte aset e aclr, il valore della porta aclr sovrascrive il valore della porta aset. Se omesso, il valore predefinito è 0, disabilitato.
un carico
NO
Input di caricamento asincrono che carica in modo asincrono il contatore con il valore sull'input di dati. Quando viene utilizzata la porta aload, la porta data[] deve essere connessa. Se omesso, il valore predefinito è 0, disabilitato.
scrl
NO
Ingresso di azzeramento sincrono che azzera il contatore al successivo fronte di clock attivo. Se entrambe le porte sset e sclr vengono utilizzate e dichiarate, il valore della porta sclr sovrascrive il valore della porta sset. Se omesso, il valore predefinito è 0, disabilitato.
isset
NO
Ingresso set sincrono che imposta il contatore sul successivo fronte di clock attivo. Specifica il valore degli output q come tutti 1 o sul valore specificato dal parametro LPM_SVALUE. Se entrambe le porte sset e sclr vengono utilizzate e dichiarate,
il valore della porta sclr sovrascrive il valore della porta sset. Se omesso, il valore predefinito è 0 (disabilitato).
scarica
NO
Ingresso di caricamento sincrono che carica il contatore con data[] sul successivo fronte di clock attivo. Quando viene utilizzata la porta sload, la porta data[] deve essere collegata. Se omesso, il valore predefinito è 0 (disabilitato).
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 9
2. LPM_COUNTER (contatore) IP Core 683490 | 2020.10.05
Tabella 3.
LPM_COUNTER Porte di uscita
Nome della porta
Necessario
Descrizione
Q[]
NO
Uscita dati dal contatore. La dimensione della porta di uscita dipende dal
Valore del parametro LPM_WIDTH. O q[] o almeno una delle porte eq[15..0].
deve essere collegato.
eq[15..0]
NO
Uscita decodifica contatore. La porta eq[15..0] non è accessibile nell'editor dei parametri perché il parametro supporta solo AHDL.
Deve essere collegata la porta q[] o la porta eq[]. È possibile utilizzare fino a porte c eq (0 <= c <= 15). Vengono decodificati solo i 16 valori di conteggio più bassi. Quando il valore di conteggio è c, l'uscita eqc viene dichiarata alta (1). Per esample, quando il conteggio è 0, eq0 = 1, quando il conteggio è 1, eq1 = 1 e quando il conteggio è 15, eq 15 = 1. L'uscita decodificata per valori di conteggio di 16 o superiori richiede la decodifica esterna. Le uscite eq[15..0] sono asincrone rispetto all'uscita q[].
corte
NO
Porta di riporto del bit MSB del contatore. Può essere utilizzato per connettersi a un altro contatore per creare un contatore più grande.
2.6. Parametri
La tabella seguente elenca i parametri per il core IP LPM_COUNTER.
Tabella 4.
LPM_COUNTER Parametri
Nome del parametro
Tipo
LPM_LARGHEZZA
Intero
DIREZIONE_LPM
Corda
LPM_MODULO LPM_AVALUE
Intero
Numero intero/ Stringa
LPM_SVALUE LPM_SUGGERIMENTO
Numero intero/ Stringa
Corda
LPM_TYPE
Corda
Obbligatorio Sì No No No
Non-non
NO
Descrizione
Specifica le larghezze delle porte data[] e q[], se utilizzate.
I valori sono UP, DOWN e UNUSED. Se viene utilizzato il parametro LPM_DIRECTION, la porta updown non può essere collegata. Quando la porta updown non è connessa, il valore predefinito del parametro LPM_DIRECTION è UP.
Il conteggio massimo, più uno. Numero di stati univoci nel ciclo del contatore. Se il valore di caricamento è maggiore del parametro LPM_MODULUS, il comportamento del contatore non viene specificato.
Valore costante che viene caricato quando l'asset viene asserito alto. Se il valore specificato è maggiore o uguale a , il comportamento del contatore è un livello logico (X) non definito, dove è LPM_MODULUS, se presente, oppure 2^LPM_WIDTH. Intel consiglia di specificare questo valore come numero decimale per i progetti AHDL.
Valore costante che viene caricato sul fronte di salita della porta di clock quando la porta sset viene dichiarata alta. Intel consiglia di specificare questo valore come numero decimale per i progetti AHDL.
Quando si crea un'istanza di una libreria di moduli parametrizzati (LPM) in un progetto VHDL File (.vhd), è necessario utilizzare il parametro LPM_HINT per specificare un parametro specifico di Intel. Per esample: LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
Il valore predefinito è NON UTILIZZATO.
Identifica il nome dell'entità della libreria dei moduli parametrizzati (LPM) nella progettazione VHDL files.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 10
Invia feedback
2. LPM_COUNTER (contatore) IP Core 683490 | 2020.10.05
Nome parametro INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Digitare Stringa Stringa
Corda
Corda
Richiesto No No
NO
NO
Descrizione
Questo parametro viene utilizzato per scopi di modellazione e simulazione comportamentale. Questo parametro viene utilizzato per scopi di modellazione e simulazione comportamentale. L'editor dei parametri calcola il valore per questo parametro.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro CARRY_CNT_EN nella progettazione VHDL fileS. I valori sono SMART, ON, OFF e UNUSED. Consente alla funzione LPM_COUNTER di propagare il segnale cnt_en attraverso la catena di riporto. In alcuni casi, l'impostazione del parametro CARRY_CNT_EN potrebbe avere un leggero impatto sulla velocità, quindi è consigliabile disattivarla. Il valore predefinito è SMART, che fornisce il miglior compromesso tra dimensioni e velocità.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro LABWIDE_SCLR nella progettazione VHDL fileS. I valori sono ON, OFF o NON UTILIZZATO. Il valore predefinito è attivato. Consente di disabilitare l'uso della funzione LABwide sclr presente nelle famiglie di dispositivi obsoleti. La disattivazione di questa opzione aumenta le possibilità di utilizzare completamente i LAB parzialmente riempiti e quindi può consentire una maggiore densità logica quando SCLR non si applica a un LAB completo. Questo parametro è disponibile per compatibilità con le versioni precedenti e Intel consiglia di non utilizzare questo parametro.
Specifica l'utilizzo della porta di input updown. Se omesso, il valore predefinito è PORT_CONNECTIVITY. Quando il valore della porta è impostato su PORT_USED, la porta viene trattata come utilizzata. Quando il valore della porta è impostato su PORT_UNUSED, la porta viene considerata inutilizzata. Quando il valore della porta è impostato su PORT_CONNECTIVITY, l'utilizzo della porta viene determinato controllando la connettività della porta.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 11
683490 | 2020.10.05 Invia feedback
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core
Figura 2.
Il core IP FPGA Intel LPM_DIVIDE implementa un divisore per dividere un valore di input del numeratore per un valore di input del denominatore per produrre un quoziente e un resto.
La figura seguente mostra le porte per il core IP LPM_DIVIDE.
Porte LPM_DIVIDE
LPM_DIVIDE
numero[] denaro[] orologio
quoziente[] resta[]
clken aclr
istruendo
3.1 Caratteristiche
Il core IP LPM_DIVIDE offre le seguenti funzionalità: · Genera un divisore che divide un valore di input del numeratore per un input del denominatore
valore per produrre un quoziente e un resto. · Supporta una larghezza di dati di 1 bit. · Supporta il formato di rappresentazione dei dati firmato e non firmato sia per il numeratore
e valori al denominatore. · Supporta l'ottimizzazione dell'area o della velocità. · Fornisce un'opzione per specificare un output di resto positivo. · Supporta la latenza di output configurabile del pipelining. · Supporta porte di abilitazione clock e clear asincrone opzionali.
3.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
modulo lpm_divide (quoziente, resto, numer, denom, clock, clken, aclr); parametro lpm_type = "lpm_divide"; parametro lpm_widthn = 1; parametro lpm_widthd = 1; parametro lpm_nrepresentation = “UNSIGNED”; parametro lpm_drepresentation = “UNSIGNED”; parametro lpm_remainderpositive = “TRUE”; parametro lpm_pipeline = 0;
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
parametro lpm_hint = “UNUSED”; orologio di ingresso; input clken; ingresso aclr; input [lpm_widthn-1:0] numero; input [lpm_widthd-1:0] nome; output [lpm_widthn-1:0] quoziente; output [lpm_widthd-1:0] rimangono; endmodule
3.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) LPM_PACK.vhd nel file directory librerievhdllpm.
componente LPM_DIVIDE generico (LPM_WIDTHN : naturale; LPM_WIDTHD : naturale;
LPM_NREPRESENTATION : stringa := “UNSIGNED”; LPM_DREPRESENTATION : stringa := “UNSIGNED”; LPM_PIPELINE : naturale := 0; LPM_TYPE : stringa := L_DIVIDE; LPM_HINT : stringa := “UNUSED”); port (NUMER : in std_logic_vector(LPM_WIDTHN-1 fino a 0); DENOM : in std_logic_vector(LPM_WIDTHD-1 fino a 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; QUOZIENTE : out std_logic_vector(LPM_WIDTHN-1 fino a 0); REMAIN : out std_logic_vector(LPM_WIDTHD-1 fino a 0)); componente finale;
3.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
3.5. Porte
Le seguenti tabelle elencano le porte di input e output per il core IP LPM_DIVIDE.
Tabella 5.
Porte di ingresso LPM_DIVIDE
Nome della porta
Necessario
numero[]
SÌ
denominazione[]
SÌ
Descrizione
Immissione dei dati del numeratore. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTHN.
Inserimento dati denominatore. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTHD.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 13
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
Nome porta clock clken
aclr
Richiesto No No
NO
Descrizione
Input di clock per l'utilizzo in pipeline. Per valori LPM_PIPELINE diversi da 0 (predefinito), la porta dell'orologio deve essere abilitata.
L'orologio abilita l'utilizzo della pipeline. Quando la porta clken viene dichiarata alta, ha luogo l'operazione di divisione. Quando il segnale è basso, non si verifica alcuna operazione. Se omesso, il valore predefinito è 1.
Porta di cancellazione asincrona utilizzata in qualsiasi momento per reimpostare la pipeline su tutti gli "0" in modo asincrono rispetto all'input di clock.
Tabella 6.
Porte di uscita LPM_DIVIDE
Nome della porta
Necessario
Descrizione
quoziente[]
SÌ
Uscita dati. La dimensione della porta di uscita dipende da LPM_WIDTHN
valore del parametro.
rimanere[]
SÌ
Uscita dati. La dimensione della porta di uscita dipende da LPM_WIDTHD
valore del parametro.
3.6. Parametri
La tabella seguente elenca i parametri per il core IP FPGA Intel LPM_DIVIDE.
Nome del parametro
Tipo
Necessario
Descrizione
LPM_LARGHEZZAN
Intero
SÌ
Specifica le larghezze di numer[] e
quoziente[] porte. I valori sono da 1 a 64.
LPM_WIDTHD
Intero
SÌ
Specifica le larghezze del denom[] e
rimangono[] porti. I valori sono da 1 a 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
Stringa Stringa
NO
Rappresentazione del segno dell'input del numeratore.
I valori sono SIGNED e UNSIGNED. Quando questo
parametro è impostato su SIGNED, il divisore
interpreta l'input numer[] come due con segno
complemento.
NO
Rappresentazione del segno dell'input del denominatore.
I valori sono SIGNED e UNSIGNED. Quando questo
parametro è impostato su SIGNED, il divisore
interpreta l'input denom[] come due con segno
complemento.
LPM_TYPE
Corda
NO
Identifica la libreria di parametri
moduli (LPM) nome entità nella progettazione VHDL
files (.vhd).
LPM_SUGGERIMENTO
Corda
NO
Quando crei un'istanza di una libreria di
funzione dei moduli parametrizzati (LPM) in a
Progettazione VHDL File (.vhd), è necessario utilizzare l'estensione
Parametro LPM_HINT per specificare un Intel-
parametro specifico. Per esampfile: LPM_HINT
= “CAIN_SIZE = 8,
ONE_INPUT_IS_CONSTANT = SI” Il
il valore predefinito è NON UTILIZZATO.
LPM_REMAINDERPOSITIVE
Corda
NO
Parametro specifico di Intel. Devi usare il
Parametro LPM_HINT per specificare il file
Parametro LPM_REMAINDERPOSITIVE in
Progettazione VHDL fileS. I valori sono VERO o FALSO.
Se questo parametro è impostato su TRUE, allora il
il valore della porta stay[] deve essere maggiore
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 14
Invia feedback
3. LPM_DIVIDE (Divisore) Intel FPGA IP Core 683490 | 2020.10.05
Nome del parametro
Tipo
MASSIMIZZA_VELOCITÀ
Intero
LPM_PIPELINE
Intero
INTENDED_DEVICE_FAMILY SKIP_BITS
Stringa Intero
Richiesto n
Non no non
Descrizione
maggiore o uguale a zero. Se questo parametro è impostato su TRUE, il valore della porta stay[] è zero oppure il valore è lo stesso segno, positivo o negativo, del valore della porta numerica. Per ridurre l'area e migliorare la velocità, Intel consiglia di impostare questo parametro su TRUE nelle operazioni in cui il resto deve essere positivo o in cui il resto non è importante.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro MAXIMIZE_SPEED nella progettazione VHDL fileS. I valori sono [0..9]. Se utilizzato, il software Intel Quartus Prime tenta di ottimizzare un'istanza specifica della funzione LPM_DIVIDE per la velocità piuttosto che per l'instradabilità e ignora l'impostazione dell'opzione logica Optimization Technique. Se MAXIMIZE_SPEED non è utilizzato, viene invece utilizzato il valore dell'opzione Optimization Technique. Se il valore di MAXIMIZE_SPEED è 6 o superiore, il compilatore ottimizza il core IP LPM_DIVIDE per una maggiore velocità utilizzando catene di riporto; se il valore è pari o inferiore a 5, il compilatore implementa il progetto senza catene di riporto.
Specifica il numero di cicli di clock di latenza associati agli output quoziente[] e rimanenti[]. Un valore pari a zero (0) indica che non esiste alcuna latenza e che viene istanziata una funzione puramente combinatoria. Se omesso, il valore predefinito è 0 (senza pipeline). Non è possibile specificare un valore per il parametro LPM_PIPELINE superiore a LPM_WIDTHN.
Questo parametro viene utilizzato per scopi di modellazione e simulazione comportamentale. L'editor dei parametri calcola il valore per questo parametro.
Consente una divisione di bit frazionaria più efficiente per ottimizzare la logica sui bit iniziali fornendo il numero di GND iniziale al core IP LPM_DIVIDE. Specificare il numero di GND iniziale sull'output del quoziente in questo parametro.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 15
683490 | 2020.10.05 Invia feedback
4. Core IP LPM_MULT (moltiplicatore).
Figura 3.
Il core IP LPM_MULT implementa un moltiplicatore per moltiplicare due valori di dati di input per produrre un prodotto come output.
La figura seguente mostra le porte per il core IP LPM_MULT.
LPM_Porte multiple
LPM_MULT orologio dataa[] risultato[] datab[] aclr/sclr clken
istruendo
Informazioni correlate Funzionalità a pagina 71
4.1 Caratteristiche
Il core IP LPM_MULT offre le seguenti caratteristiche: · Genera un moltiplicatore che moltiplica due valori di dati di input · Supporta la larghezza dei dati di 1 bit · Supporta il formato di rappresentazione dei dati con e senza segno · Supporta l'ottimizzazione dell'area o della velocità · Supporta il pipelining con latenza di output configurabile · Fornisce un opzione per l'implementazione nell'elaborazione del segnale digitale dedicata (DSP)
circuiti a blocchi o elementi logici (LE) Nota: quando si creano moltiplicatori più grandi delle dimensioni supportate nativamente, potrebbero
sarà un impatto sulle prestazioni derivante dalla cascata dei blocchi DSP. · Supporta la cancellazione asincrona opzionale e le porte di ingresso abilitazione clock · Supporta la cancellazione sincrona opzionale per i dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
4. LPM_MULT (Moltiplicatore) IP Core 683490 | 2020.10.05
4.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
modulo lpm_mult ( result, dataa, datab, sum, clock, clken, aclr ) parametro lpm_type = “lpm_mult”; parametro lpm_widtha = 1; parametro lpm_widthb = 1; parametro lpm_widths = 1; parametro lpm_widthp = 1; parametro lpm_representation = “UNSIGNED”; parametro lpm_pipeline = 0; parametro lpm_hint = “UNUSED”; orologio di ingresso; input clken; ingresso aclr; input [lpm_widtha-1:0] datia; input [lpm_widthb-1:0] datab; input [lpm_widths-1:0] somma; output [lpm_widthp-1:0] risultato; endmodule
4.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) LPM_PACK.vhd nel file directory librerievhdllpm.
componente LPM_MULT generico ( LPM_LARGHEZZA : naturale; LPM_LARGHEZZA : naturale; LPM_LARGHEZZE : naturale := 1; LPM_LARGHEZZA : naturale;
LPM_REPRESENTATION : stringa := “UNSIGNED”; LPM_PIPELINE : naturale := 0; LPM_TYPE: stringa := L_MULT; LPM_HINT : stringa := “UNUSED”); port ( DATAA : in std_logic_vector(LPM_WIDTHA-1 fino a 0); DATAB : in std_logic_vector(LPM_WIDTHB-1 fino a 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; SUM : in std_logic_vector(LPM_WIDTHS-1 fino a 0) := (OTHERS => '0'); RESULT : out std_logic_vector(LPM_WIDTHP-1 fino a 0)); componente finale;
4.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 17
4. LPM_MULT (Moltiplicatore) IP Core 683490 | 2020.10.05
4.5. Segnali
Tabella 7.
LPM_MULT Segnali di ingresso
Nome del segnale
Necessario
Descrizione
datia[]
SÌ
Inserimento dati.
Per i dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, la dimensione del segnale di ingresso dipende dal valore del parametro Dataa width.
Per i dispositivi meno recenti e Intel Cyclone 10 LP, la dimensione del segnale di ingresso dipende dal valore del parametro LPM_WIDTHA.
database[]
SÌ
Inserimento dati.
Per i dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, la dimensione del segnale di ingresso dipende dal valore del parametro Datab width.
Per i dispositivi meno recenti e Intel Cyclone 10 LP, la dimensione del segnale di ingresso dipende
sul valore del parametro LPM_WIDTHB.
orologio
NO
Input di clock per l'utilizzo in pipeline.
Per i dispositivi meno recenti e Intel Cyclone 10 LP, il segnale di clock deve essere abilitato per valori LPM_PIPELINE diversi da 0 (impostazione predefinita).
Per i dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, il segnale di clock deve essere abilitato se il valore Latenza è diverso da 1 (impostazione predefinita).
clken
NO
Abilitazione dell'orologio per l'utilizzo in pipeline. Quando il segnale clken viene asserito alto, il
ha luogo l'operazione sommatore/sottrattore. Quando il segnale è basso, nessuna operazione
si verifica. Se omesso, il valore predefinito è 1.
aclr sclr
NO
Segnale chiaro asincrono utilizzato in qualsiasi momento per reimpostare la pipeline su tutti gli 0,
in modo asincrono rispetto al segnale di clock. La pipeline viene inizializzata su un valore indefinito (X)
livello logico. Le uscite sono un valore coerente, ma diverso da zero.
NO
Segnale chiaro sincrono utilizzato in qualsiasi momento per reimpostare la pipeline su tutti gli 0,
in modo sincrono al segnale di clock. La pipeline viene inizializzata su un valore indefinito (X)
livello logico. Le uscite sono un valore coerente, ma diverso da zero.
Tabella 8.
LPM_MULT Segnali di uscita
segnale Nome
Necessario
Descrizione
risultato[]
SÌ
Uscita dati.
Per i dispositivi meno recenti e Intel Cyclone 10 LP, la dimensione del segnale di uscita dipende dal valore del parametro LPM_WIDTHP. Se LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) o (LPM_WIDTHA + LPM_WIDTHS), sono presenti solo gli MSB LPM_WIDTHP.
Per Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX, la dimensione dei segnali di output dipende dal parametro Result width.
4.6. Parametri per dispositivi Stratix V, Arria V, Cyclone V e Intel Cyclone 10 LP
4.6.1. Scheda Generale
Tabella 9.
Scheda Generale
Parametro
Valore
Configurazione del moltiplicatore
Moltiplica l'input 'dataa' per l'input 'datab'
Valore predefinito
Descrizione
Moltiplica l'input 'dataa' per l'input 'datab'
Selezionare la configurazione desiderata per il moltiplicatore.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 18
Invia feedback
4. LPM_MULT (Moltiplicatore) IP Core 683490 | 2020.10.05
Parametro
Quanto deve essere ampio l'input 'dataa'? Quanto deve essere ampio l'input 'datab'? Come dovrebbe essere determinata la larghezza dell'output del "risultato"? Limita la larghezza
Valore
Moltiplica l'input 'dataa' per se stesso (operazione di quadratura)
1 – 256 bit
Valore predefinito
Descrizione
8 bit
Specificare la larghezza della porta dataa[].
1 – 256 bit
8 bit
Specificare la larghezza della porta datab[].
Calcola automaticamente la larghezza Limita la larghezza
1 – 512 bit
Calcola automaticamente la larghezza
Selezionare il metodo desiderato per determinare la larghezza della porta result[].
16 bit
Specificare la larghezza della porta result[].
Questo valore sarà effettivo solo se selezioni Limita la larghezza nel parametro Tipo.
4.6.2. Generale 2 Tab
Tabella 10. Generale 2 Tab
Parametro
Valore
Ingresso database
Il bus di ingresso "datab" ha un valore costante?
No Sì
Tipo di moltiplicazione
Che tipo di
Non firmato
moltiplicazione vuoi? Firmato
Implementazione
Quale implementazione del moltiplicatore dovrebbe essere utilizzata?
Usa l'implementazione predefinita
Usa il circuito moltiplicatore dedicato (non disponibile per tutte le famiglie)
Usa elementi logici
Valore predefinito
Descrizione
NO
Selezionare Sì per specificare il valore costante di
bus di input `datab', se presente.
Non firmato
Specificare il formato di rappresentazione per entrambi gli input dataa[] e datab[].
Usa l'implementazione predefinita
Selezionare il metodo desiderato per determinare la larghezza della porta result[].
4.6.3. Scheda pipeline
Tabella 11. Pipelining Tab
Parametro
Vuoi convogliare il n
funzione?
SÌ
Valore
Crea un 'acr'
—
porta chiara asincrona
Valore predefinito
Descrizione
NO
Selezionare Sì per abilitare la registrazione della pipeline in
l'output del moltiplicatore e specificare il file desiderato
latenza di uscita nel ciclo di clock. Abilitando il
il registro della pipeline aggiunge ulteriore latenza al file
produzione.
Non selezionato
Selezionare questa opzione per consentire alla porta aclr di utilizzare la cancellazione asincrona per il registro della pipeline.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 19
4. LPM_MULT (Moltiplicatore) IP Core 683490 | 2020.10.05
Parametro
Crea un orologio abilita orologio 'clken'
Ottimizzazione
Che tipo di ottimizzazione desideri?
Valore -
Area di velocità predefinita
Valore predefinito
Descrizione
Non selezionato
Specifica l'abilitazione del clock alto attivo per la porta del clock del registro della pipeline
Predefinito
Specificare l'ottimizzazione desiderata per il core IP.
Selezionare Predefinito per consentire al software Intel Quartus Prime di determinare la migliore ottimizzazione per il core IP.
4.7. Parametri per dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX
4.7.1. Scheda Generale
Tabella 12. Scheda Generale
Parametro
Valore
Valore predefinito
Descrizione
Tipo di configurazione del moltiplicatore
Larghezze delle porte dati
Moltiplica l'input 'dataa' per l'input 'datab'
Moltiplica l'input 'dataa' per se stesso (operazione di quadratura)
Moltiplica l'input 'dataa' per l'input 'datab'
Selezionare la configurazione desiderata per il moltiplicatore.
Larghezza datia
1 – 256 bit
8 bit
Specificare la larghezza della porta dataa[].
Larghezza database
1 – 256 bit
8 bit
Specificare la larghezza della porta datab[].
Come dovrebbe essere determinata la larghezza dell'output del "risultato"?
Tipo
Calcola automaticamente la larghezza
Limita la larghezza
Calcola automaticamente la larghezza
Selezionare il metodo desiderato per determinare la larghezza della porta result[].
Valore
1 – 512 bit
16 bit
Specificare la larghezza della porta result[].
Questo valore sarà effettivo solo se selezioni Limita la larghezza nel parametro Tipo.
Larghezza del risultato
1 – 512 bit
—
Visualizza la larghezza effettiva della porta result[].
4.7.2. Generale 2 Tab
Tabella 13. Generale 2 Tab
Parametro
Ingresso database
Il bus di ingresso "datab" ha un valore costante?
No Sì
Valore
Valore predefinito
Descrizione
NO
Selezionare Sì per specificare il valore costante di
bus di input `datab', se presente.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 20
Invia feedback
4. LPM_MULT (Moltiplicatore) IP Core 683490 | 2020.10.05
Parametro
Valore
Valore
Qualsiasi valore maggiore di 0
Tipo di moltiplicazione
Che tipo di
Non firmato
moltiplicazione vuoi? Firmato
Stile di implementazione
Quale implementazione del moltiplicatore dovrebbe essere utilizzata?
Usa l'implementazione predefinita
Usa il circuito moltiplicatore dedicato
Usa elementi logici
Valore predefinito
Descrizione
0
Specificare il valore costante della porta datab[].
Non firmato
Specificare il formato di rappresentazione per entrambi gli input dataa[] e datab[].
Usa l'implementazione predefinita
Selezionare il metodo desiderato per determinare la larghezza della porta result[].
4.7.3. Pipeline
Tabella 14. Pipelining Tab
Parametro
Valore
Vuoi pipeline la funzione?
Conduttura
No Sì
Latenza Cancella tipo di segnale
Qualsiasi valore maggiore di 0.
NESSUNA ACLR SCLR
Crea un orologio 'clken'
—
abilita orologio
Che tipo di ottimizzazione desideri?
Tipo
Area di velocità predefinita
Valore predefinito
Descrizione
N. 1 NESSUNO
—
Selezionare Sì per abilitare la registrazione della pipeline sull'output del moltiplicatore. L'abilitazione del registro della pipeline aggiunge ulteriore latenza all'output.
Specificare la latenza di output desiderata nel ciclo di clock.
Specificare il tipo di ripristino per il registro della pipeline. Selezionare NONE se non si utilizza alcun registro pipeline. Selezionare ACLR per utilizzare la cancellazione asincrona per il registro della pipeline. Questo genererà la porta ACLR. Selezionare SCLR per utilizzare la cancellazione sincrona per il registro della pipeline. Questo genererà la porta SCLR.
Specifica l'abilitazione del clock alto attivo per la porta del clock del registro della pipeline
Predefinito
Specificare l'ottimizzazione desiderata per il core IP.
Selezionare Predefinito per consentire al software Intel Quartus Prime di determinare la migliore ottimizzazione per il core IP.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 21
683490 | 2020.10.05 Invia feedback
5. LPM_ADD_SUB (sommatore/sottrattore)
Figura 4.
Il core IP LPM_ADD_SUB consente di implementare un sommatore o un sottrattore per aggiungere o sottrarre insiemi di dati per produrre un output contenente la somma o la differenza dei valori di input.
La figura seguente mostra le porte per il core IP LPM_ADD_SUB.
Porte LPM_ADD_SUB
LPM_ADD_SUB add_sub cin
datia[]
orologio clken datab[] aclr
risultato[] overflow cout
istruendo
5.1 Caratteristiche
Il core IP LPM_ADD_SUB offre le seguenti funzionalità: · Genera sommatore, sottrattore e sommatore/sottrattore configurabile dinamicamente
funzioni. · Supporta una larghezza di dati di 1 bit. · Supporta il formato di rappresentazione dei dati come firmato e non firmato. · Supporta il carry-in opzionale (prestito), la cancellazione asincrona e l'abilitazione dell'orologio
porte di ingresso. · Supporta le porte di uscita opzionali per il trasporto (prestito) e per l'overflow. · Assegna uno dei bus dati di ingresso a una costante. · Supporta il pipelining con latenza di output configurabile.
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
5. LPM_ADD_SUB (sommatore/sottrattore) 683490 | 2020.10.05
5.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
modulo lpm_add_sub (risultato, cout, overflow,add_sub, cin, dataa, datab, clock, clken, aclr); parametro lpm_type = "lpm_add_sub"; parametro lpm_width = 1; parametro lpm_direction = “UNUSED”; parametro lpm_representation = “SIGNED”; parametro lpm_pipeline = 0; parametro lpm_hint = “UNUSED”; input [lpm_width-1:0] dataa, datab; inserire add_sub, cin; orologio di ingresso; input clken; ingresso aclr; output [lpm_width-1:0] risultato; uscita cout, overflow; endmodule
5.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) LPM_PACK.vhd nel file directory librerievhdllpm.
componente LPM_ADD_SUB generico (LPM_WIDTH : naturale;
LPM_DIRECTION : stringa := “UNUSED”; LPM_REPRESENTATION: stringa := “SIGNED”; LPM_PIPELINE : naturale := 0; LPM_TYPE : stringa := L_ADD_SUB; LPM_HINT : stringa := “UNUSED”); port (DATAA : in std_logic_vector(LPM_WIDTH-1 fino a 0); DATAB : in std_logic_vector(LPM_WIDTH-1 fino a 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; CIN : in std_logic := 'Z'; ADD_SUB : in std_logic := '1'; RESULT : out std_logic_vector(LPM_WIDTH-1 fino a 0); COUT : out std_logic; OVERFLOW : out std_logic); componente finale;
5.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
5.5. Porte
Le seguenti tabelle elencano le porte di input e output per il core IP LPM_ADD_SUB.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 23
5. LPM_ADD_SUB (sommatore/sottrattore) 683490 | 2020.10.05
Tabella 15. Porte di ingresso core IP LPM_ADD_SUB
Nome della porta
Necessario
Descrizione
cinghiale
NO
Carry-in al bit di ordine inferiore. Per le operazioni di addizione, il valore predefinito è 0. For
operazioni di sottrazione, il valore predefinito è 1.
datia[]
SÌ
Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.
database[]
SÌ
Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.
aggiungi_sub
NO
Porta di ingresso opzionale per abilitare la commutazione dinamica tra sommatore e sottrattore
funzioni. Se viene utilizzato il parametro LPM_DIRECTION, add_sub non può essere utilizzato. Se
omesso, il valore predefinito è ADD. Intel consiglia di utilizzare il
Parametro LPM_DIRECTION per specificare il funzionamento della funzione LPM_ADD_SUB,
piuttosto che assegnare una costante alla porta add_sub.
orologio
NO
Input per l'utilizzo in pipeline. La porta di clock fornisce l'input di clock per una pipeline
operazione. Per valori LPM_PIPELINE diversi da 0 (predefinito), la porta di clock deve essere
abilitato.
clken
NO
Abilitazione dell'orologio per l'utilizzo in pipeline. Quando la porta clken è dichiarata alta, il sommatore/
avviene l'operazione di sottrazione. Quando il segnale è basso, non si verifica alcuna operazione. Se
omesso, il valore predefinito è 1.
aclr
NO
Cancellazione asincrona per l'utilizzo con pipeline. La pipeline viene inizializzata su un valore indefinito (X)
livello logico. La porta aclr può essere utilizzata in qualsiasi momento per reimpostare la pipeline su tutti gli 0,
in modo asincrono rispetto al segnale di clock.
Tabella 16. Porte di uscita core IP LPM_ADD_SUB
Nome della porta
Necessario
Descrizione
risultato[]
SÌ
Uscita dati. La dimensione della porta di uscita dipende dal parametro LPM_WIDTH
valore.
corte
NO
Carry-out (prestito) del bit più significativo (MSB). La porta cout ha un fisico
interpretazione come il carry-out (prestito) del MSB. La porta cout rileva
overflow nelle operazioni UNSIGNED. La porta cout funziona allo stesso modo per
Operazioni SIGNED e UNSIGNED.
traboccare
NO
Output di eccezione di overflow facoltativo. La porta di overflow ha un'interpretazione fisica come
lo XOR del carry-in al MSB con il carry-out del MSB. La porta di troppopieno
asserisce quando i risultati superano la precisione disponibile e viene utilizzato solo quando il
Il valore del parametro LPM_REPRESENTATION è SIGNED.
5.6. Parametri
La tabella seguente elenca i parametri principali IP LPM_ADD_SUB.
Tabella 17. Parametri principali dell'IP LPM_ADD_SUB
Nome parametro LPM_WIDTH
Digitare Numero intero
Richiesto Sì
Descrizione
Specifica le larghezze delle porte dataa[], datab[] e result[].
DIREZIONE_LPM
Corda
NO
I valori sono ADD, SUB e UNUSED. Se omesso, il valore predefinito è DEFAULT, che indica al parametro di prendere il proprio valore dalla porta add_sub. La porta add_sub non può essere utilizzata se si utilizza LPM_DIRECTION. Intel consiglia di utilizzare il parametro LPM_DIRECTION per specificare il funzionamento della funzione LPM_ADD_SUB, anziché assegnare una costante alla porta add_sub.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 24
Invia feedback
5. LPM_ADD_SUB (sommatore/sottrattore) 683490 | 2020.10.05
Nome parametro LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Tipo String Integer String String String Integer
Corda
Richiesto No No No No No No
NO
Descrizione
Specifica il tipo di addizione eseguita. I valori sono SIGNED e UNSIGNED. Se omesso, il valore predefinito è SIGNED. Quando questo parametro è impostato su SIGNED, il sommatore/sottrattore interpreta i dati immessi come complemento a due con segno.
Specifica il numero di cicli di clock di latenza associati all'output result[]. Un valore pari a zero (0) indica che non esiste alcuna latenza e che verrà istanziata una funzione puramente combinatoria. Se omesso, il valore predefinito è 0 (senza pipeline).
Consente di specificare parametri specifici di Intel nella progettazione VHDL files (.vhd). Il valore predefinito è NON UTILIZZATO.
Identifica il nome dell'entità della libreria dei moduli parametrizzati (LPM) nella progettazione VHDL files.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro ONE_INPUT_IS_CONSTANT nella progettazione VHDL fileS. I valori sono SÌ, NO e NON UTILIZZATO. Fornisce una maggiore ottimizzazione se un input è costante. Se omesso, il valore predefinito è NO.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro MAXIMIZE_SPEED nella progettazione VHDL fileS. È possibile specificare un valore compreso tra 0 e 10. Se utilizzato, il software Intel Quartus Prime tenta di ottimizzare un'istanza specifica della funzione LPM_ADD_SUB per la velocità piuttosto che per l'instradabilità e sovrascrive l'impostazione dell'opzione logica Optimization Technique. Se MAXIMIZE_SPEED non è utilizzato, viene invece utilizzato il valore dell'opzione Optimization Technique. Se l'impostazione per MAXIMIZE_SPEED è 6 o superiore, il compilatore ottimizza il core IP LPM_ADD_SUB per una maggiore velocità utilizzando catene di riporto; se l'impostazione è pari o inferiore a 5, il compilatore implementa il progetto senza catene di riporto. Questo parametro deve essere specificato per i dispositivi Cyclone, Stratix e Stratix GX solo quando la porta add_sub non viene utilizzata.
Questo parametro viene utilizzato per scopi di modellazione e simulazione comportamentale. L'editor dei parametri calcola il valore per questo parametro.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 25
683490 | 2020.10.05 Invia feedback
6. LPM_COMPARE (Comparatore)
Figura 5.
Il core IP LPM_COMPARE confronta il valore di due insiemi di dati per determinare la relazione tra di essi. Nella sua forma più semplice, è possibile utilizzare una porta con OR esclusivo per determinare se due bit di dati sono uguali.
La figura seguente mostra le porte per il core IP LPM_COMPARE.
Porte LPM_COMPARE
LPM_COMPARE
clken
camice
eb)
datia[]
agb
database[]
etàb
orologio
o
aclr
aleb
istruendo
6.1 Caratteristiche
Il core IP LPM_COMPARE offre le seguenti caratteristiche: · Genera una funzione di confronto per confrontare due insiemi di dati · Supporta una larghezza di dati di 1 bit · Supporta il formato di rappresentazione dei dati come firmato e senza segno · Produce i seguenti tipi di output:
— alb (l'ingresso A è minore dell'ingresso B) — aeb (l'ingresso A è uguale all'ingresso B) — agb (l'ingresso A è maggiore dell'ingresso B) — ageb (l'ingresso A è maggiore o uguale all'ingresso B) — aneb ( l'input A non è uguale all'input B) — aleb (l'input A è minore o uguale all'input B) · Supporta le porte di input opzionali per la cancellazione asincrona e l'abilitazione del clock · Assegna l'input datab[] a una costante · Supporta il pipelining con latenza di output configurabile
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
6. LPM_COMPARE (comparatore) 683490 | 2020.10.05
6.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
modulo lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr ); parametro lpm_type = “lpm_compare”; parametro lpm_width = 1; parametro lpm_representation = “UNSIGNED”; parametro lpm_pipeline = 0; parametro lpm_hint = “UNUSED”; input [lpm_width-1:0] dataa, datab; orologio di ingresso; input clken; ingresso aclr; output alb, aeb, agb, aleb, aneb, ageb; endmodule
6.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) LPM_PACK.vhd nel file directory librerievhdllpm.
componente LPM_COMPARE generico (LPM_WIDTH : naturale;
LPM_REPRESENTATION : stringa := “UNSIGNED”; LPM_PIPELINE : naturale := 0; LPM_TYPE: stringa := L_COMPARE; LPM_HINT : stringa := “UNUSED”); port (DATAA : in std_logic_vector(LPM_WIDTH-1 fino a 0); DATAB : in std_logic_vector(LPM_WIDTH-1 fino a 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; AGB : out std_logic; AGEB : out std_logic; AEB : out std_logic; ANEB : out std_logic; ALB : out std_logic; ALEB : out std_logic); componente finale;
6.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA lpm; USE lpm.lpm_components.all;
6.5. Porte
Le seguenti tabelle elencano le porte di input e output per il core IP LMP_COMPARE.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 27
6. LPM_COMPARE (comparatore) 683490 | 2020.10.05
Tabella 18. Porte di ingresso core IP LPM_COMPARE
Nome della porta
Necessario
Descrizione
datia[]
SÌ
Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.
database[]
SÌ
Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.
orologio
NO
Input di clock per l'utilizzo in pipeline. La porta di clock fornisce l'input di clock per una pipeline
operazione. Per valori LPM_PIPELINE diversi da 0 (predefinito), la porta di clock deve essere
abilitato.
clken
NO
Abilitazione dell'orologio per l'utilizzo in pipeline. Quando la porta clken è dichiarata alta, il
avviene l'operazione di confronto. Quando il segnale è basso, non si verifica alcuna operazione. Se
omesso, il valore predefinito è 1.
aclr
NO
Cancellazione asincrona per l'utilizzo con pipeline. La pipeline viene inizializzata su una logica (X) non definita
livello. La porta aclr può essere utilizzata in qualsiasi momento per reimpostare la pipeline su tutti gli 0,
in modo asincrono rispetto al segnale di clock.
Tabella 19. Porte di uscita core IP LPM_COMPARE
Nome della porta
Necessario
Descrizione
camice
NO
Porta di uscita per il comparatore. Asserito se l'input A è minore dell'input B.
eb)
NO
Porta di uscita per il comparatore. Asserito se l'input A è uguale all'input B.
agb
NO
Porta di uscita per il comparatore. Asserito se l'input A è maggiore dell'input B.
etàb
NO
Porta di uscita per il comparatore. Asserito se l'input A è maggiore o uguale all'input
B.
o
NO
Porta di uscita per il comparatore. Asserito se l'input A non è uguale all'input B.
aleb
NO
Porta di uscita per il comparatore. Asserito se l'input A è minore o uguale all'input B.
6.6. Parametri
La tabella seguente elenca i parametri per il core IP LPM_COMPARE.
Tabella 20. Parametri principali IP LPM_COMPARE
Nome del parametro
Tipo
Necessario
LPM_LARGHEZZA
Numero intero Sì
LPM_RAPPRESENTAZIONE
Corda
NO
LPM_PIPELINE
Numero intero
LPM_SUGGERIMENTO
Corda
NO
Descrizione
Specifica le larghezze delle porte dataa[] e datab[].
Specifica il tipo di confronto eseguito. I valori sono SIGNED e UNSIGNED. Se omesso, il valore predefinito è UNSIGNED. Quando il valore di questo parametro è impostato su SIGNED, il comparatore interpreta i dati immessi come complemento a due con segno.
Specifica il numero di cicli di clock di latenza associati all'output alb, aeb, agb, ageb, aleb o aneb. Un valore pari a zero (0) indica che non esiste alcuna latenza e che verrà istanziata una funzione puramente combinatoria. Se omesso, il valore predefinito è 0 (senza pipeline).
Consente di specificare parametri specifici di Intel nella progettazione VHDL files (.vhd). Il valore predefinito è NON UTILIZZATO.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 28
Invia feedback
6. LPM_COMPARE (comparatore) 683490 | 2020.10.05
Nome parametro LPM_TYPE INTENDED_DEVICE_FAMILY
UNO_INPUT_IS_COSTANTE
Digitare Stringa Stringa
Corda
Richiesto No No
NO
Descrizione
Identifica il nome dell'entità della libreria dei moduli parametrizzati (LPM) nella progettazione VHDL files.
Questo parametro viene utilizzato per scopi di modellazione e simulazione comportamentale. L'editor dei parametri calcola il valore per questo parametro.
Parametro specifico di Intel. È necessario utilizzare il parametro LPM_HINT per specificare il parametro ONE_INPUT_IS_CONSTANT nella progettazione VHDL fileS. I valori sono SÌ, NO o NON UTILIZZATO. Fornisce una maggiore ottimizzazione se un input è costante. Se omesso, il valore predefinito è NO.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 29
683490 | 2020.10.05 Invia feedback
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core
Figura 6.
Intel fornisce il core IP ALTECC per implementare la funzionalità ECC. ECC rileva i dati corrotti che si verificano sul lato ricevente durante la trasmissione dei dati. Questo metodo di correzione degli errori è più adatto per situazioni in cui gli errori si verificano in modo casuale piuttosto che a raffica.
L'ECC rileva gli errori attraverso il processo di codifica e decodifica dei dati. Per esample, quando l'ECC viene applicato in un'applicazione di trasmissione, i dati letti dalla sorgente vengono codificati prima di essere inviati al destinatario. L'output (parola di codice) dal codificatore è costituito dai dati grezzi aggiunti con il numero di bit di parità. Il numero esatto di bit di parità aggiunti dipende dal numero di bit nei dati di input. La parola in codice generata viene quindi trasmessa alla destinazione.
Il ricevitore riceve la parola in codice e la decodifica. Le informazioni ottenute dal decodificatore determinano se viene rilevato un errore. Il decodificatore rileva errori a bit singolo e doppio bit, ma può correggere solo errori a bit singolo nei dati danneggiati. Questo tipo di ECC è il rilevamento del doppio errore di correzione dell'errore singolo (SECDED).
È possibile configurare le funzioni di encoder e decoder del core IP ALTECC. I dati in ingresso al codificatore sono codificati per generare una parola di codice che è una combinazione dei dati in ingresso e dei bit di parità generati. La parola di codice generata viene trasmessa al modulo decodificatore per la decodifica appena prima di raggiungere il suo blocco di destinazione. Il decodificatore genera un vettore di sindrome per determinare se c'è qualche errore nella parola di codice ricevuta. Il decodificatore corregge i dati solo se l'errore a bit singolo proviene dai bit di dati. Nessun segnale viene contrassegnato se l'errore a bit singolo proviene dai bit di parità. Il decodificatore dispone anche di segnali flag per mostrare lo stato dei dati ricevuti e l'eventuale azione intrapresa dal decodificatore.
Le seguenti figure mostrano le porte per il core IP ALTECC.
Porte codificatore ALTECC
ALTECC_ENCODER
dati[]
Q[]
orologio
orologio
aclr
istruendo
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core 683490 | 2020.10.05
Figura 7. Porte del decodificatore ALTECC
ALTECC_DECODER
dati[] orologio orologio
q[] err_rilevato err_corretto
err_fatal
aclr
istruendo
7.1. Caratteristiche dell'encoder ALTECC
Il core IP dell'encoder ALTECC offre le seguenti caratteristiche: · Esegue la codifica dei dati utilizzando lo schema di codifica Hamming · Supporta la larghezza dei dati di 2 bit · Supporta il formato di rappresentazione dei dati con e senza segno · Supporta il pipelining con latenza di output di uno o due cicli di clock · Supporta opzioni opzionali porte di abilitazione clock e clear asincrone
Il core IP del codificatore ALTECC acquisisce e codifica i dati utilizzando lo schema di codifica Hamming. Lo schema di Hamming Coding deriva i bit di parità e li aggiunge ai dati originali per produrre la parola di codice di output. Il numero di bit di parità aggiunti dipende dalla larghezza dei dati.
La tabella seguente elenca il numero di bit di parità aggiunti per diversi intervalli di larghezze di dati. La colonna Bit totali rappresenta il numero totale di bit di dati di input e bit di parità aggiunti.
Tabella 21.
Numero di bit di parità e parola di codice in base alla larghezza dei dati
Larghezza dati
Numero di bit 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
La derivazione del bit di parità utilizza un controllo di parità pari. Il bit aggiuntivo 1 (indicato nella tabella come +1) viene aggiunto ai bit di parità come MSB della parola di codice. Ciò garantisce che la parola in codice abbia un numero pari di 1. Per esample, se la larghezza dei dati è di 4 bit, ai dati vengono aggiunti 4 bit di parità per diventare una parola di codice con un totale di 8 bit. Se 7 bit dall'LSB della parola di codice a 8 bit hanno un numero dispari di 1, l'ottavo bit (MSB) della parola di codice è 8, rendendo pari il numero totale di 1 nella parola di codice.
La figura seguente mostra la parola di codice generata e la disposizione dei bit di parità e dei bit di dati in un ingresso dati a 8 bit.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 31
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core 683490 | 2020.10.05
Figura 8.
Bit di parità e disposizione dei bit di dati in una parola di codice generata a 8 bit
MSB
LSB
4 bit di parità
4 bit di dati
8
1
Il core IP dell'encoder ALTECC accetta solo larghezze di input da 2 a 64 bit alla volta. Le larghezze di input di 12 bit, 29 bit e 64 bit, ideali per i dispositivi Intel, generano rispettivamente output di 18 bit, 36 bit e 72 bit. È possibile controllare la limitazione della selezione dei bit nell'editor dei parametri.
7.2. Prototipo Verilog HDL (ALTECC_ENCODER)
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
module altecc_encoder #( parametro secured_device_family = “unused”, parametro lpm_pipeline = 0, parametro width_codeword = 8, parametro width_dataword = 8, parametro lpm_type = “altecc_encoder”, parametro lpm_hint = “unused”) ( input wire aclr, input wire clock, input wire clocken, input wire [width_dataword-1:0] dati, output wire [width_codeword-1:0] q); endmodule
7.3. Prototipo Verilog HDL (ALTECC_DECODER)
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) lpm.v nel directory edasintesi.
module altecc_decoder #( parametro secured_device_family = “unused”, parametro lpm_pipeline = 0, parametro width_codeword = 8, parametro width_dataword = 8, parametro lpm_type = “altecc_decoder”, parametro lpm_hint = “unused”) ( input wire aclr, input wire clock, input wire clocken, input wire [width_codeword-1:0] dati, output wire err_corrected, output wire err_detected, outut wire err_fatal, output wire [width_dataword-1:0] q); endmodule
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 32
Invia feedback
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core 683490 | 2020.10.05
7.4. Dichiarazione del componente VHDL (ALTECC_ENCODER)
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) altera_mf_components.vhd nel file directory librerievhdlaltera_mf.
componente altecc_encoder generico (intended_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'; clocken:in std_logic := '1'; data:in std_logic_vector(width_dataword-1 fino a 0); q:out std_logic_vector(width_codeword -1 fino a 0)); componente finale;
7.5. Dichiarazione dei componenti VHDL (ALTECC_DECODER)
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) altera_mf_components.vhd nel file directory librerievhdlaltera_mf.
componente altecc_decoder generico (intended_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'; clocken:in std_logic := '1'; data: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); syn_e : out std_logic); componente finale;
7.6. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA altera_mf; USA altera_mf.altera_mf_components.all;
7.7. Porte dell'encoder
Le seguenti tabelle elencano le porte di ingresso e uscita per il core IP dell'encoder ALTECC.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 33
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core 683490 | 2020.10.05
Tabella 22. Porte di ingresso dell'encoder ALTECC
Nome della porta
Necessario
Descrizione
dati[]
SÌ
Porta di immissione dati. La dimensione della porta di input dipende da WIDTH_DATAWORD
valore del parametro. La porta data[] contiene i dati grezzi da codificare.
orologio
SÌ
Porta di ingresso dell'orologio che fornisce il segnale dell'orologio per sincronizzare l'operazione di codifica.
La porta di clock è richiesta quando il valore LPM_PIPELINE è maggiore di 0.
orologio
NO
Abilitazione orologio. Se omesso, il valore predefinito è 1.
aclr
NO
Ingresso chiaro asincrono. Il segnale attivo alto Aclr può essere utilizzato in qualsiasi momento per
cancellare in modo asincrono i registri.
Tabella 23. Porte di uscita codificatore ALTECC
Nome porta q[]
Richiesto Sì
Descrizione
Porta di uscita dati codificati. La dimensione della porta di output dipende dal valore del parametro WIDTH_CODEWORD.
7.8. Porte del decodificatore
Le seguenti tabelle elencano le porte di input e output per il core IP del decoder ALTECC.
Tabella 24. Porte di ingresso del decodificatore ALTECC
Nome della porta
Necessario
Descrizione
dati[]
SÌ
Porta di immissione dati. La dimensione della porta di input dipende dal valore del parametro WIDTH_CODEWORD.
orologio
SÌ
Porta di ingresso dell'orologio che fornisce il segnale dell'orologio per sincronizzare l'operazione di codifica. La porta di clock è richiesta quando il valore LPM_PIPELINE è maggiore di 0.
orologio
NO
Abilitazione orologio. Se omesso, il valore predefinito è 1.
aclr
NO
Ingresso chiaro asincrono. Il segnale active high aclr può essere utilizzato in qualsiasi momento per cancellare in modo asincrono i registri.
Tabella 25. Porte di uscita del decodificatore ALTECC
Nome porta q[]
Richiesto Sì
Descrizione
Porta di uscita dei dati decodificati. La dimensione della porta di output dipende dal valore del parametro WIDTH_DATAWORD.
err_detected Sì
Flag segnale per riflettere lo stato dei dati ricevuti e specifica eventuali errori trovati.
err_correcte Sì d
Segnale flag per riflettere lo stato dei dati ricevuti. Indica un errore a bit singolo trovato e corretto. Puoi utilizzare i dati perché sono già stati corretti.
err_fatal
SÌ
Segnale flag per riflettere lo stato dei dati ricevuti. Indica un errore a doppio bit trovato, ma non corretto. Non devi utilizzare i dati se questo segnale viene asserito.
syn_e
NO
Un segnale di uscita che diventerà alto ogni volta che viene rilevato un errore a bit singolo sulla parità
pezzi.
7.9. Parametri dell'encoder
La tabella seguente elenca i parametri per il core IP dell'encoder ALTECC.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 34
Invia feedback
7. ALTECC (codice di correzione errore: codificatore/decodificatore) IP Core 683490 | 2020.10.05
Tabella 26. Parametri dell'encoder ALTECC
Nome del parametro
Tipo
Necessario
Descrizione
WIDTH_DATAWORD
Numero intero Sì
Specifica la larghezza dei dati non elaborati. I valori sono compresi tra 2 e 64. Se omesso, il valore predefinito è 8.
WIDTH_CODEWORD
Numero intero Sì
Specifica la larghezza della parola di codice corrispondente. I valori validi sono compresi tra 6 e 72, esclusi 9, 17, 33 e 65. Se omesso, il valore predefinito è 13.
LPM_PIPELINE
Numero intero
Specifica la pipeline per il circuito. I valori sono compresi tra 0 e 2. Se il valore è 0, le porte non sono registrate. Se il valore è 1, le porte di output vengono registrate. Se il valore è 2, le porte di input e output vengono registrate. Se omesso, il valore predefinito è 0.
7.10. Parametri del decodificatore
La tabella seguente elenca i parametri principali IP del decoder ALTECC.
Tabella 27. Parametri del decodificatore ALTECC
Nome parametro WIDTH_DATAWORD
Digitare Numero intero
Necessario
Descrizione
SÌ
Specifica la larghezza dei dati non elaborati. I valori sono da 2 a 64. Il
il valore predefinito è 8.
WIDTH_CODEWORD
Intero
SÌ
Specifica la larghezza della parola di codice corrispondente. I valori sono 6
a 72, esclusi 9, 17, 33 e 65. Se omesso, il valore predefinito
è 13.
LPM_PIPELINE
Intero
NO
Specifica il registro del circuito. I valori sono compresi tra 0 e 2. Se il
il valore è 0, nessun registro è implementato. Se il valore è 1, il
l'uscita è registrata. Se il valore è 2, sia l'input che il
uscita sono registrati. Se il valore è maggiore di 2, aggiuntivo
i registri sono implementati all'uscita per l'addizionale
latenze. Se omesso, il valore predefinito è 0.
Crea una porta 'syn_e'
Intero
NO
Attiva questo parametro per creare una porta syn_e.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 35
683490 | 2020.10.05 Invia feedback
8. Core IP moltiplicatore moltiplicatore Intel FPGA
Figura 9.
Il core IP Intel FPGA Multiply Adder (dispositivi Intel Stratix 10, Intel Arria 10 e Intel Cyclone 10 GX) o ALTERA_MULT_ADD (dispositivi Arria V, Stratix V e Cyclone V) consente di implementare un moltiplicatore-adder.
La figura seguente mostra le porte per l'Intel FPGA Multiply Adder o il core IP ALTERA_MULT_ADD.
Porte Intel FPGA Multiply Adder o 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 concatenamento[]
scanuta[] risultato[]
aclr0 aclr1
istruendo
Un moltiplicatore-adder accetta coppie di input, moltiplica i valori insieme e quindi aggiunge o sottrae dai prodotti di tutte le altre coppie.
Se tutte le larghezze dei dati di ingresso sono larghe 9 bit o inferiori, la funzione utilizza la configurazione del moltiplicatore di ingresso 9 x 9 bit nel blocco DSP per i dispositivi che supportano la configurazione 9 x 9. In caso contrario, il blocco DSP utilizza moltiplicatori di input 18 × 18 bit per elaborare dati con larghezze comprese tra 10 bit e 18 bit. Se in un progetto sono presenti più core IP Intel FPGA Multiply Adder o ALTERA_MULT_ADD, le funzioni vengono distribuite come
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
molti blocchi DSP diversi possibili in modo che il routing a questi blocchi sia più flessibile. Meno moltiplicatori per blocco DSP consentono più scelte di routing nel blocco riducendo al minimo i percorsi verso il resto del dispositivo.
All'interno del blocco DSP sono posizionati anche i registri e i registri extra della pipeline per i seguenti segnali: · Input di dati · Select con segno o senza segno · Select con addizione o sottrazione · Prodotti di moltiplicatori
Nel caso del risultato dell'output, il primo registro viene inserito nel blocco DSP. Tuttavia i registri di latenza extra sono collocati in elementi logici all'esterno del blocco. Le periferiche del blocco DSP, inclusi gli input di dati al moltiplicatore, gli input del segnale di controllo e le uscite del sommatore, utilizzano il routing regolare per comunicare con il resto del dispositivo. Tutte le connessioni nella funzione utilizzano un routing dedicato all'interno del blocco DSP. Questo instradamento dedicato include le catene di registri a scorrimento quando si seleziona l'opzione per spostare i dati di input registrati di un moltiplicatore da un moltiplicatore a un moltiplicatore adiacente.
Per ulteriori informazioni sui blocchi DSP in una qualsiasi delle serie di dispositivi Stratix V e Arria V, fare riferimento al capitolo Blocchi DSP dei rispettivi manuali nella pagina Letteratura e documentazione tecnica.
Informazioni correlate AN 306: Implementazione di moltiplicatori nei dispositivi FPGA
Fornisce ulteriori informazioni sull'implementazione dei moltiplicatori utilizzando DSP e blocchi di memoria nei dispositivi Intel FPGA.
8.1 Caratteristiche
Intel FPGA Multiply Adder o ALTERA_MULT_ADD IP core offre le seguenti caratteristiche: · Genera un moltiplicatore per eseguire operazioni di moltiplicazione di due complessi
numeri Nota: quando si creano moltiplicatori più grandi della dimensione supportata in modo nativo, potrebbero esserci/
sarà un impatto sulle prestazioni derivante dalla cascata dei blocchi DSP. · Supporta larghezze di dati di 1 256 bit · Supporta il formato di rappresentazione dei dati con segno e senza segno · Supporta il pipelining con latenza di input configurabile · Fornisce un'opzione per passare dinamicamente dal supporto dei dati con segno e senza segno · Fornisce un'opzione per passare dinamicamente dall'operazione di addizione a quella di sottrazione · Supporta porte di ingresso opzionali asincrone e sincrone e abilitazione orologio · Supporta la modalità di registro del ritardo sistolico · Supporta il pre-sommatore con 8 coefficienti di pre-caricamento per moltiplicatore · Supporta la costante di pre-caricamento per integrare il feedback dell'accumulatore
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 37
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
8.1.1. Pre-vipera
Con il pre-adder, le addizioni o le sottrazioni vengono eseguite prima di alimentare il moltiplicatore.
Sono disponibili cinque modalità pre-sommatore: · Modalità semplice · Modalità coefficiente · Modalità immissione · Modalità quadrato · Modalità costante
Nota:
Quando si utilizza il pre-sommatore (coefficiente pre-sommatore/input/modalità quadrato), tutti gli input di dati al moltiplicatore devono avere la stessa impostazione di clock.
8.1.1.1. Modalità semplice pre-adder
In questa modalità, entrambi gli operandi derivano dalle porte di input e il pre-adder non viene utilizzato o bypassato. Questa è la modalità di default.
Figura 10. Modalità semplice pre-adder
un0b0
Moltiplicazione0
risultato
8.1.1.2. Modalità coefficiente pre-adder
In questa modalità, un operando moltiplicatore deriva dal pre-sommatore e l'altro operando deriva dalla memorizzazione interna dei coefficienti. La memorizzazione dei coefficienti consente fino a 8 costanti preimpostate. I segnali di selezione del coefficiente sono coefsel[0..3].
Questa modalità è espressa nella seguente equazione.
Quanto segue mostra la modalità coefficiente pre-adder di un moltiplicatore.
Figura 11. Modalità coefficiente pre-adder
Predicatore
a0
Moltiplicazione0
+/-
risultato
b0
coefsel0 coef
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 38
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
8.1.1.3. Modalità di input pre-adder In questa modalità, un operando moltiplicatore deriva dal pre-adder e l'altro operando deriva dalla porta di input datac[]. Questa modalità è espressa nella seguente equazione.
Quanto segue mostra la modalità di input pre-adder di un moltiplicatore.
Figura 12. Modalità di input pre-adder
un0b0
Moltiplicazione0
+/-
risultato
c0
8.1.1.4. Pre-adder Square Mode Questa modalità è espressa nella seguente equazione.
Quanto segue mostra la modalità quadrata pre-adder di due moltiplicatori.
Figura 13. Modalità Square pre-adder
un0b0
Moltiplicazione0
+/-
risultato
8.1.1.5. Modalità costante pre-adder
In questa modalità, un operando moltiplicatore deriva dalla porta di ingresso e l'altro operando deriva dalla memorizzazione interna dei coefficienti. La memorizzazione dei coefficienti consente fino a 8 costanti preimpostate. I segnali di selezione del coefficiente sono coefsel[0..3].
Questa modalità è espressa nella seguente equazione.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 39
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
La figura seguente mostra la modalità costante pre-adder di un moltiplicatore.
Figura 14. Modalità costante pre-adder
a0
Moltiplicazione0
risultato
coefsel0
coefficiente
8.1.2. Registro del ritardo sistolico
In un'architettura sistolica, i dati di input vengono immessi in una cascata di registri che fungono da buffer di dati. Ogni registro fornisce un input sample a un moltiplicatore dove viene moltiplicato per il rispettivo coefficiente. Il chain adder memorizza i risultati gradualmente combinati dal moltiplicatore e il risultato precedentemente registrato dalla porta di input chainin[] per formare il risultato finale. Ogni elemento di aggiunta multipla deve essere ritardato di un singolo ciclo in modo che i risultati si sincronizzino correttamente quando vengono sommati. Ciascun ritardo successivo viene utilizzato per indirizzare sia la memoria dei coefficienti che il buffer dei dati dei rispettivi elementi di aggiunta multipla. Per esample, un singolo ritardo per il secondo elemento di moltiplicazione e aggiunta, due ritardi per il terzo elemento di moltiplicazione e così via.
Figura 15. Registri sistolici
Registri sistolici
x(t)c(0)
L-1
L-1
la(1)
L-1
L-1
la(2)
L-1
L-1
c(N-1)
L-1
L-1
L-1
S -1 y(t)
x(t) rappresenta i risultati di un flusso continuo di input sample e y(t)
rappresenta la somma di un insieme di input samples, e nel tempo, moltiplicato per loro
rispettivi coefficienti. Entrambi i risultati di input e output scorrono da sinistra a destra. Da c(0) a c(N-1) denotano i coefficienti. I registri del ritardo sistolico sono indicati con S-1, mentre 1 rappresenta un singolo ritardo di clock. I registri di ritardo sistolico vengono aggiunti a
gli input e gli output per la pipeline in modo da garantire i risultati del
l'operando moltiplicatore e le somme accumulate rimangono sincronizzate. Questo elemento di elaborazione
viene replicato per formare un circuito che calcola la funzione di filtraggio. Questa funzione è
espresso nella seguente equazione.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 40
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
N rappresenta il numero di cicli di dati che sono entrati nell'accumulatore, y(t) rappresenta l'output all'istante t, A(t) rappresenta l'input all'istante t e B(i) sono i coefficienti. I t e i nell'equazione corrispondono a un particolare istante di tempo, quindi per calcolare l'output sample y(t) all'istante t, un gruppo di input samples in N diversi momenti, o A(n), A(n-1), A(n-2), … A(n-N+1) è richiesto. Il gruppo di N input sampi vengono moltiplicati per N coefficienti e sommati insieme per formare il risultato finale y.
L'architettura del registro sistolico è disponibile solo per le modalità somma di 2 e somma di 4. Per entrambe le modalità di architettura del registro sistolico, il primo segnale di concatenamento deve essere legato a 0.
La figura seguente mostra l'implementazione del registro del ritardo sistolico di 2 moltiplicatori.
Figura 16. Implementazione del registro del ritardo sistolico di 2 moltiplicatori
concatenamento
a0
Moltiplicazione0
+/-
b0
a1
Moltiplicazione1
+/-
b1
risultato
La somma di due moltiplicatori è espressa nella seguente equazione.
La figura seguente mostra l'implementazione del registro del ritardo sistolico di 4 moltiplicatori.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 41
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Figura 17. Implementazione del registro del ritardo sistolico di 4 moltiplicatori
concatenamento
a0
Moltiplicazione0
+/-
b0
a1
Moltiplicazione1
+/-
b1
a2
Moltiplicazione2
+/-
b2
a3
Moltiplicazione3
+/-
b3
risultato
La somma di quattro moltiplicatori è espressa nella seguente equazione. Figura 18. Somma di 4 moltiplicatori
Di seguito sono elencati gli advantages dell'implementazione del registro sistolico: · Riduce l'utilizzo delle risorse DSP · Consente una mappatura efficiente nel blocco DSP utilizzando la struttura chain adder
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 42
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
8.1.3. Precarica costante
La costante di precarico controlla l'operando dell'accumulatore e integra il feedback dell'accumulatore. Il LOADCONST_VALUE valido varia da 0. Il valore costante è uguale a 64N, dove N = LOADCONST_VALUE. Quando LOADCONST_VALUE è impostato su 2, il valore costante è uguale a 64. Questa funzione può essere utilizzata come arrotondamento distorto.
La figura seguente mostra l'implementazione della costante di pre-caricamento.
Figura 19. Costante di precarico
Feedback dell'accumulatore
costante
a0
Moltiplicazione0
+/-
b0
a1
Moltiplicazione1
+/b1
risultato
accum_sload scarica_accum
Fare riferimento ai seguenti core IP per altre implementazioni del moltiplicatore: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Doppio accumulatore
La funzione del doppio accumulatore aggiunge un ulteriore registro nel percorso di feedback dell'accumulatore. Il registro dell'accumulatore doppio segue il registro di uscita, che include il clock, l'abilitazione del clock e aclr. Il registro accumulatore aggiuntivo restituisce il risultato con un ritardo di un ciclo. Questa funzione consente di avere due canali accumulatori con lo stesso numero di risorse.
La figura seguente mostra l'implementazione del doppio accumulatore.
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 43
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Figura 20. Doppio accumulatore
Registro a doppio accumulatore
Feedback dell'accumulatore
a0
Moltiplicazione0
+/-
b0
a1
Moltiplicazione1
+/b1
Risultato dell'output Registro di output
8.2. Verilog HDL Prototipo
È possibile trovare il prototipo Intel FPGA Multiply Adder o ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) nel directory libreriemegafunzioni.
8.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova in altera_lnsim_components.vhd nel file libraryvhdl altera_lnsim directory.
8.4. Dichiarazione VHDL LIBRARY_USE
La dichiarazione VHDL LIBRARY-USE non è richiesta se si utilizza la dichiarazione del componente VHDL.
BIBLIOTECA altera_mf; USA altera_mf.altera_mf_components.all;
8.5. Segnali
Le seguenti tabelle elencano i segnali di ingresso e di uscita del core IP IP FPGA Intel Multiply Adder ALTERA_MULT_ADD.
Tabella 28. Multiply Adder Intel FPGA IPo ALTERA_MULT_ADD Segnali di ingresso
Segnale
Necessario
Descrizione
datia_0[]/datia_1[]/
SÌ
datia_2[]/datia_3[]
Dati immessi nel moltiplicatore. Porta di input [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] ampia
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 44
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Segnale 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] segno
segno
scanina[] accum_sload
Obbligatorio Sì No
No No No No No
NO
Non-non
Descrizione
Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Dati immessi nel moltiplicatore. Segnale di ingresso [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] ampio Il modello di simulazione per questo IP supporta un valore di ingresso indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Dati immessi nel moltiplicatore. Segnale di ingresso [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] ampio Selezionare INPUT per Selezionare il parametro modalità preadder per abilitare questi segnali. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Porta di ingresso dell'orologio al registro corrispondente. Questo segnale può essere utilizzato da qualsiasi registro nel nucleo IP. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Cancella input asincrono al registro corrispondente. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Cancella input sincrono al registro corrispondente. Il modello di simulazione per questo IP supporta un valore di input X indeterminato per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita
Abilita l'ingresso del segnale nel registro corrispondente. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questi segnali. Quando fornisci il valore X a questi segnali, il valore X viene propagato sui segnali di uscita.
Specifica la rappresentazione numerica dell'ingresso del moltiplicatore A. Se il segnale del segnale è alto, il moltiplicatore tratta il segnale dell'ingresso A del moltiplicatore come un numero con segno. Se il segnale di segno è basso, il moltiplicatore tratta il segnale di ingresso A del moltiplicatore come un numero senza segno. Selezionare VARIABILE per Qual è il formato di rappresentazione per i moltiplicatori Un parametro di input per abilitare questo segnale. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Specifica la rappresentazione numerica del segnale di ingresso B del moltiplicatore. Se il segnale signb è alto, il moltiplicatore tratta il segnale di ingresso B del moltiplicatore come un numero in complemento a due con segno. Se il segnale signb è basso, il moltiplicatore tratta il segnale di ingresso B del moltiplicatore come un numero senza segno. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Ingresso per catena di scansione A. Segnale di ingresso [WIDTH_A – 1, … 0] ampio. Quando il parametro INPUT_SOURCE_A ha un valore di SCANA, è richiesto il segnale scanina[].
Specifica dinamicamente se il valore dell'accumulatore è costante. Se il segnale accum_sload è basso, l'uscita del moltiplicatore viene caricata nell'accumulatore. Non utilizzare accum_sload e sload_accum contemporaneamente.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 45
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Segnale sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Richiesto n
Non-non
NO
No, no, no
Descrizione
Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Specifica dinamicamente se il valore dell'accumulatore è costante. Se il segnale sload_accum è alto, l'uscita del moltiplicatore viene caricata nell'accumulatore. Non utilizzare accum_sload e sload_accum contemporaneamente. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Bus di input del risultato del sommatore dai precedenti stage. Segnale di ingresso [WIDTH_CHAININ – 1, … 0] ampio.
Esegui l'addizione o la sottrazione alle uscite dalla prima coppia di moltiplicatori. Ingresso 1 al segnale addnsub1 per sommare le uscite dalla prima coppia di moltiplicatori. Immettere 0 nel segnale addnsub1 per sottrarre le uscite dalla prima coppia di moltiplicatori. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Esegui l'addizione o la sottrazione alle uscite dalla prima coppia di moltiplicatori. Ingresso 1 al segnale addnsub3 per sommare le uscite dalla seconda coppia di moltiplicatori. Immettere 0 nel segnale addnsub3 per sottrarre le uscite dalla prima coppia di moltiplicatori. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Coefficiente segnale di ingresso[0:3] al primo moltiplicatore. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Coefficiente segnale di ingresso[0:3]al secondo moltiplicatore. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Coefficiente segnale di ingresso[0:3]al terzo moltiplicatore. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Segnale di ingresso del coefficiente [0:3] al quarto moltiplicatore. Il modello di simulazione per questo IP supporta un valore di input indeterminato (X) per questo segnale. Quando fornisci il valore X a questo input, il valore X viene propagato sui segnali di output.
Tabella 29. Segnali di uscita IP FPGA Intel moltiplicatore moltiplicatore
Segnale
Necessario
Descrizione
risultato []
SÌ
Segnale di uscita del moltiplicatore. Segnale di uscita [WIDTH_RESULT – 1 … 0] ampio
Il modello di simulazione per questo IP supporta un valore di output indeterminato (X). Quando fornisci il valore X come input, il valore X viene propagato su questo segnale.
scanuta []
NO
Uscita della catena di scansione A. Segnale di uscita [WIDTH_A – 1..0] ampio.
Selezionare più di 2 per i numeri di moltiplicatori e scegliere Scan chain input per Qual è l'ingresso A del moltiplicatore collegato al parametro per abilitare questo segnale.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 46
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
8.6. Parametri
8.6.1. Scheda Generale
Tabella 30. Scheda Generale
Parametro
Parametro generato dall'IP
Valore
Qual è il numero di moltiplicatori?
number_of_m 1 – 4 moltiplicatori
Quanto devono essere larghi i bus di input A width_a?
1 – 256
Quanto devono essere larghi i bus di input B width_b?
1 – 256
Quanto dovrebbe essere largo il bus di uscita "risultato"?
larghezza_risultato
1 – 256
Creare un'abilitazione orologio associata per ogni orologio
gui_associate Acceso d_clock_enabl Spento e
8.6.2. Scheda Modalità extra
Tabella 31. Scheda Modalità extra
Parametro
Parametro generato dall'IP
Valore
Configurazione uscite
Registrare l'output dell'unità sommatrice
gui_output_re Attivo
registro
Spento
Qual è la sorgente per l'ingresso di clock?
gui_output_re gister_clock
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_output_register_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_output_re gister_sclr
NESSUNO SCLR0 SCLR1
Operazione sommatore
Quale operazione deve essere eseguita sulle uscite della prima coppia di moltiplicatori?
gui_moltiplicatore 1_direzione
AGGIUNGI, SUB, VARIABILE
Valore predefinito 1
16
Descrizione
Numero di moltiplicatori da sommare. I valori sono compresi tra 1 e 4. Specificare la larghezza della porta dataa[].
16
Specificare la larghezza della porta datab[].
32
Specificare la larghezza della porta result[].
Spento
Selezionare questa opzione per creare l'abilitazione dell'orologio
per ogni orologio.
Valore predefinito
Descrizione
Orologio spento0
NESSUNO NESSUNO
Selezionare questa opzione per abilitare il registro di output del modulo sommatore.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare la sorgente di clock per i registri di output. È necessario selezionare Registra uscita dell'unità sommatore per abilitare questo parametro.
Specifica l'origine chiara asincrona per il registro di output del sommatore. È necessario selezionare Registra uscita dell'unità sommatore per abilitare questo parametro.
Specifica la sorgente di cancellazione sincrona per il registro di output del sommatore. È necessario selezionare Registra uscita dell'unità sommatore per abilitare questo parametro.
AGGIUNGERE
Selezionare l'operazione di addizione o sottrazione da eseguire per le uscite tra il primo e il secondo moltiplicatore.
· Selezionare AGGIUNGI per eseguire l'operazione di addizione.
· Selezionare SUB per eseguire l'operazione di sottrazione.
· Selezionare VARIABILE per utilizzare la porta addnsub1 per il controllo dinamico dell'addizione/sottrazione.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 47
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Parametro generato dall'IP
Valore
Registra l'input 'addnsub1'
gui_addnsub_ Attivo multiplier_reg Disattivato ister1
Qual è la sorgente per l'ingresso di clock?
gui_addnsub_multiplier_reg ister1_clock
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_addnsub_multiplier_aclr 1
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_addnsub_multiplier_sclr 1
NESSUNO SCLR0 SCLR1
Quale operazione deve essere eseguita sulle uscite della seconda coppia di moltiplicatori?
gui_moltiplicatore 3_direzione
AGGIUNGI, SUB, VARIABILE
Registra l'input 'addnsub3'
gui_addnsub_ Attivo multiplier_reg Disattivato ister3
Qual è la sorgente per l'ingresso di clock?
gui_addnsub_multiplier_reg ister3_clock
Orologio0 Orologio1 Orologio2
Valore predefinito
Spento Orologio0 NESSUNO NESSUNO ADD
Orologio spento0
Descrizione
Quando è selezionato il valore VARIABLE: · Porta il segnale addnsub1 su alto per
operazione di addizione. · Portare il segnale addnsub1 a basso per
operazione di sottrazione. È necessario selezionare più di due moltiplicatori per abilitare questo parametro.
Selezionare questa opzione per abilitare il registro di input per la porta addnsub1. È necessario selezionare VARIABILE per Quale operazione deve essere eseguita sulle uscite della prima coppia di moltiplicatori per abilitare questo parametro.
Selezionare Clock0 , Clock1 o Clock2 per specificare il segnale di clock di ingresso per il registro addnsub1. È necessario selezionare l'input Register 'addnsub1' per abilitare questo parametro.
Specifica l'origine chiara asincrona per il registro addnsub1. È necessario selezionare l'input Register 'addnsub1' per abilitare questo parametro.
Specifica l'origine chiara sincrona per il registro addnsub1. È necessario selezionare l'input Register 'addnsub1' per abilitare questo parametro.
Selezionare l'operazione di addizione o sottrazione da eseguire per le uscite tra il terzo e il quarto moltiplicatore. · Selezionare AGGIUNGI per eseguire l'addizione
operazione. · Selezionare SUB per eseguire la sottrazione
operazione. · Selezionare VARIABILE per utilizzare addnsub1
porta per il controllo dinamico di addizione/sottrazione. Quando è selezionato il valore VARIABLE: · Portare il segnale addnsub1 su alto per l'operazione di addizione. · Portare il segnale addnsub1 a basso per l'operazione di sottrazione. Devi selezionare il valore 4 per Qual è il numero di moltiplicatori? per abilitare questo parametro.
Selezionare questa opzione per abilitare il registro di input per il segnale addnsub3. È necessario selezionare VARIABILE per Quale operazione deve essere eseguita sulle uscite della seconda coppia di moltiplicatori per abilitare questo parametro.
Selezionare Clock0 , Clock1 o Clock2 per specificare il segnale di clock di ingresso per il registro addnsub3. È necessario selezionare l'ingresso Register 'addnsub3′ per abilitare questo parametro.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 48
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Qual è la fonte per l'input chiaro asincrono?
Parametro generato dall'IP
Valore
gui_addnsub_multiplier_aclr 3
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_addnsub_multiplier_sclr 3
NESSUNO SCLR0 SCLR1
Polarità Abilita `use_subadd'
gui_use_subn Attivo
aggiungere
Spento
8.6.3. Scheda Moltiplicatori
Tabella 32. Moltiplicatori Tab
Parametro
Parametro generato dall'IP
Valore
Che cosa è il
gui_rappresentare
formato di rappresentazione ation_a
per gli ingressi dei moltiplicatori A?
FIRMATO, NON FIRMATO, VARIABILE
Registra l'input `signa'
gui_register_s Attivo
Ignazio
Spento
Qual è la sorgente per l'ingresso di clock?
gui_register_s igna_clock
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_register_s igna_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_register_s igna_sclr
NESSUNO SCLR0 SCLR1
Che cosa è il
gui_rappresentare
formato di rappresentazione ation_b
per gli ingressi dei moltiplicatori B?
FIRMATO, NON FIRMATO, VARIABILE
Registra l'input `signb'
gui_register_s Attivo
ignb
Spento
Valore predefinito NESSUNO
NESSUNO
Descrizione
Specifica l'origine chiara asincrona per il registro addnsub3. È necessario selezionare l'input Register 'addnsub3' per abilitare questo parametro.
Specifica l'origine chiara sincrona per il registro addnsub3. È necessario selezionare l'ingresso Register 'addnsub3′ per abilitare questo parametro.
Spento
Selezionare questa opzione per invertire la funzione
della porta di ingresso addnsub.
Imposta addnsub su alto per l'operazione di sottrazione.
Porta addnsub al minimo per l'operazione di addizione.
Valore predefinito
Descrizione
UNSIGNED Specificare il formato di rappresentazione per l'input del moltiplicatore A.
Spento
Seleziona questa opzione per abilitare sign
registro.
È necessario selezionare il valore VARIABILE per Qual è il formato di rappresentazione per gli ingressi dei moltiplicatori A? parametro per abilitare questa opzione.
Orologio0
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso per il registro di segno.
Devi selezionare Register `signa' input per abilitare questo parametro.
NESSUNO
Specifica l'origine chiara asincrona per il registro di segno.
Devi selezionare Register `signa' input per abilitare questo parametro.
NESSUNO
Specifica l'origine chiara sincrona per il registro di segno.
Devi selezionare Register `signa' input per abilitare questo parametro.
UNSIGNED Specificare il formato di rappresentazione per l'input del moltiplicatore B.
Spento
Seleziona questa opzione per abilitare signb
registro.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 49
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Parametro generato dall'IP
Valore
Valore predefinito
Qual è la sorgente per l'ingresso di clock?
gui_register_s ignb_clock
Orologio0 Orologio1 Orologio2
Orologio0
Qual è la fonte per l'input chiaro asincrono?
gui_register_s ignb_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_register_s ignb_sclr
NESSUNO SCLR0 SCLR1
Configurazione di input
Registrare l'ingresso A del moltiplicatore
Qual è la sorgente per l'ingresso di clock?
gui_input_reg Attivo
ister_a
Spento
gui_input_reg ister_a_clock
Orologio0 Orologio1 Orologio2
NESSUNO NESSUNO
Orologio spento0
Qual è la fonte per l'input chiaro asincrono?
gui_input_register_a_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_input_register_a_sclr
NESSUNO SCLR0 SCLR1
Registrare l'ingresso B del moltiplicatore
Qual è la sorgente per l'ingresso di clock?
gui_input_reg Attivo
ister_b
Spento
gui_input_register_b_clock
Orologio0 Orologio1 Orologio2
NESSUNO NESSUNO Off Clock0
Qual è la fonte per l'input chiaro asincrono?
gui_input_reg ister_b_aclr
NESSUNO ACLR0 ACLR1
NESSUNO
Qual è la fonte per l'input chiaro sincrono?
gui_input_register_b_sclr
NESSUNO SCLR0 SCLR1
NESSUNO
A cosa è collegato l'ingresso A del moltiplicatore?
gui_multiplier Moltiplicatore input Moltiplicatore
_a_input
Ingresso di ingresso della catena di scansione
Descrizione
È necessario selezionare VARIABLE value per Qual è il formato di rappresentazione per gli input dei moltiplicatori B? parametro per abilitare questa opzione.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso per il registro signb. Devi selezionare Registra l'input `signb' per abilitare questo parametro.
Specifica l'origine chiara asincrona per il registro signb. Devi selezionare Registra l'input `signb' per abilitare questo parametro.
Specifica l'origine chiara sincrona per il registro signb. Devi selezionare Registra l'input `signb' per abilitare questo parametro.
Selezionare questa opzione per abilitare il registro di input per il bus di input dei dati.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso del registro per il bus di ingresso dati. È necessario selezionare l'ingresso di registro A del moltiplicatore per abilitare questo parametro.
Specifica l'origine di cancellazione asincrona del registro per il bus di ingresso datia. È necessario selezionare l'ingresso di registro A del moltiplicatore per abilitare questo parametro.
Specifica la sorgente di cancellazione sincrona del registro per il bus di ingresso datia. È necessario selezionare l'ingresso di registro A del moltiplicatore per abilitare questo parametro.
Selezionare questa opzione per abilitare il registro di input per il bus di input del datab.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso del registro per il bus di ingresso del datab. È necessario selezionare l'ingresso di registro B del moltiplicatore per abilitare questo parametro.
Specifica l'origine di cancellazione asincrona del registro per il bus di input del database. È necessario selezionare l'ingresso di registro B del moltiplicatore per abilitare questo parametro.
Specifica la sorgente di cancellazione sincrona del registro per il bus di ingresso del database. È necessario selezionare l'ingresso di registro B del moltiplicatore per abilitare questo parametro.
Selezionare la sorgente di ingresso per l'ingresso A del moltiplicatore.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 50
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Parametro generato dall'IP
Valore
Scanout Una configurazione del registro
Registra l'output della catena di scansione
gui_scanouta On
_registro
Spento
Qual è la sorgente per l'ingresso di clock?
gui_scanouta _register_cloc k
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_scanouta _register_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_scanouta _register_sclr
NESSUNO SCLR0 SCLR1
8.6.4. Scheda Preadder
Tabella 33. Scheda Preadder
Parametro
Parametro generato dall'IP
Valore
Seleziona la modalità Preadder
preadder_mo de
SEMPLICE, COEF, INPUT, QUADRATO, COSTANTE
Valore predefinito
Descrizione
Selezionare Ingresso moltiplicatore per utilizzare il bus di ingresso datia come sorgente per il moltiplicatore. Selezionare Scan chain input per utilizzare il bus di input scanin come sorgente per il moltiplicatore e abilitare il bus di output scanout. Questo parametro è disponibile quando selezioni 2, 3 o 4 per Qual è il numero di moltiplicatori? parametro.
Off Clock0 NESSUNO NESSUNO
Selezionare questa opzione per abilitare il registro di uscita per il bus di uscita scanouta.
È necessario selezionare Scan chain input per A cosa è collegato l'input A del moltiplicatore? parametro per abilitare questa opzione.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso del registro per il bus di uscita di scanouta.
È necessario attivare Registra l'output del parametro della catena di scansione per abilitare questa opzione.
Specifica l'origine di cancellazione asincrona del registro per il bus di output di scanouta.
È necessario attivare Registra l'output del parametro della catena di scansione per abilitare questa opzione.
Specifica l'origine di cancellazione sincrona del registro per il bus di uscita scanouta.
È necessario selezionare Registra l'output del parametro della catena di scansione per abilitare questa opzione.
Valore predefinito
SEMPLICE
Descrizione
Specifica la modalità operativa per il modulo preadder. SEMPLICE: questa modalità bypassa il preadder. Questa è la modalità di default. COEF: questa modalità utilizza l'uscita del preadder e il bus di ingresso coefsel come ingressi per il moltiplicatore. INPUT: questa modalità utilizza l'uscita del preadder e il bus di ingresso datac come ingressi per il moltiplicatore. SQUARE: questa modalità utilizza l'uscita del preadder come entrambi gli ingressi del moltiplicatore.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 51
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Parametro generato dall'IP
Valore
Seleziona la direzione del prealler
gui_preadder AGGIUNGI,
_direzione
SUB
Quanto devono essere larghi i bus di input C width_c?
1 – 256
Configurazione del registro di ingresso dati C
Registra input dati
gui_datac_inp Acceso
ut_register
Spento
Qual è la sorgente per l'ingresso di clock?
gui_datac_inp ut_register_cl ock
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_datac_input_register_a clr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_datac_input_register_sc lr
NESSUNO SCLR0 SCLR1
Coefficienti
Quanto deve essere ampia la larghezza del coef?
larghezza_coef
1 – 27
Configurazione registro Coef
Registrare l'input coefsel
gui_coef_regi On
ster
Spento
Qual è la sorgente per l'ingresso di clock?
gui_coef_regi ster_clock
Orologio0 Orologio1 Orologio2
Valore predefinito
AGGIUNGERE
16
Descrizione
CONSTANT: questa modalità utilizza il bus di ingresso datia con il preadder bypassato e il bus di ingresso coefsel come ingressi per il moltiplicatore.
Specifica il funzionamento del preadder. Per abilitare questo parametro, selezionare quanto segue per Seleziona modalità preadder: · COEF · INPUT · SQUARE o · COSTANTE
Specifica il numero di bit per il bus di ingresso C. È necessario selezionare INPUT per Select preadder mode per abilitare questo parametro.
On Clock0 NESSUNO NESSUNO
Selezionare questa opzione per abilitare il registro di ingresso per il bus di ingresso dati. È necessario impostare INPUT su Seleziona parametro modalità preadder per abilitare questa opzione.
Selezionare Clock0 , Clock1 o Clock2 per specificare il segnale di clock di ingresso per il registro di ingresso dati. È necessario selezionare Register datac input per abilitare questo parametro.
Specifica l'origine chiara asincrona per il registro di input datac. È necessario selezionare Register datac input per abilitare questo parametro.
Specifica l'origine di cancellazione sincrona per il registro di input datac. È necessario selezionare Register datac input per abilitare questo parametro.
18
Specifica il numero di bit per
bus di ingresso coefsel.
È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Su Clock0
Selezionare questa opzione per abilitare il registro di ingresso per il bus di ingresso coefsel. È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Selezionare Clock0 , Clock1 o Clock2 per specificare il segnale di clock di ingresso per il registro di ingresso coefsel. È necessario selezionare Registra l'input coefsel per abilitare questo parametro.
continua…
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 52
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Qual è la fonte per l'input chiaro asincrono?
Parametro generato dall'IP
Valore
gui_coef_regi ster_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono
gui_coef_register_sclr
NESSUNO SCLR0 SCLR1
Coefficiente_0 Configurazione
da coef0_0 a coef0_7
0x00000 0xFFFFFFFF
Coefficiente_1 Configurazione
da coef1_0 a coef1_7
0x00000 0xFFFFFFFF
Coefficiente_2 Configurazione
da coef2_0 a coef2_7
0x00000 0xFFFFFFFF
Coefficiente_3 Configurazione
da coef3_0 a coef3_7
0x00000 0xFFFFFFFF
8.6.5. Scheda accumulatore
Tabella 34. Accumulatore Tab
Parametro
Parametro generato dall'IP
Valore
Abilitare l'accumulatore?
accumulatore
SI NO
Qual è il tipo di funzionamento dell'accumulatore?
accum_directi AGGIUNGI,
on
SUB
Valore predefinito NESSUNO
NESSUNO
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Descrizione
Specifica l'origine chiara asincrona per il registro di input coefsel. È necessario selezionare Registra l'input coefsel per abilitare questo parametro.
Specifica l'origine di cancellazione sincrona per il registro di input coefsel. È necessario selezionare Registra l'input coefsel per abilitare questo parametro.
Specifica i valori dei coefficienti per questo primo moltiplicatore. Il numero di bit deve essere lo stesso specificato in Quanto deve essere ampia la larghezza del coef? parametro. È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Specifica i valori del coefficiente per questo secondo moltiplicatore. Il numero di bit deve essere lo stesso specificato in Quanto deve essere ampia la larghezza del coef? parametro. È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Specifica i valori del coefficiente per questo terzo moltiplicatore. Il numero di bit deve essere lo stesso specificato in Quanto deve essere ampia la larghezza del coef? parametro. È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Specifica i valori del coefficiente per questo quarto moltiplicatore. Il numero di bit deve essere lo stesso specificato in Quanto deve essere ampia la larghezza del coef? parametro. È necessario selezionare COEF o CONSTANT per la modalità preadder per abilitare questo parametro.
Valore predefinito NO
AGGIUNGERE
Descrizione
Selezionare SI per abilitare l'accumulatore. È necessario selezionare Registra l'uscita dell'unità sommatrice quando si utilizza la funzione accumulatore.
Specifica il funzionamento dell'accumulatore: · ADD per l'operazione di addizione · SUB per l'operazione di sottrazione. È necessario selezionare SÌ per Abilitare l'accumulatore? parametro per abilitare questa opzione.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 53
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Preload Constant Abilita il precarico costante
Parametro generato dall'IP
Valore
gui_ena_prelo On
ad_const
Spento
A cosa è collegato l'ingresso della porta di accumulo?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Selezionare il valore per il precarico loadconst_val 0 – 64
costante
ue
Qual è la sorgente per l'ingresso di clock?
gui_accum_sl oad_register_ orologio
Orologio0 Orologio1 Orologio2
Qual è la fonte per l'input chiaro asincrono?
gui_accum_sl oad_register_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_accum_sl oad_register_ sclr
NESSUNO SCLR0 SCLR1
Abilita doppio accumulatore
gui_double_a Attivo
cum
Spento
Valore predefinito
Descrizione
Spento
Abilita l'accum_sload o
segnali sload_accum e input di registro
per selezionare dinamicamente l'ingresso al
accumulatore.
Quando accum_sload è basso o sload_accum, l'output del moltiplicatore viene immesso nell'accumulatore.
Quando accum_sload è alto o sload_accum, una costante di precarico specificata dall'utente viene inserita nell'accumulatore.
È necessario selezionare SÌ per Abilitare l'accumulatore? parametro per abilitare questa opzione.
ACCUM_SL OAD
Specifica il comportamento del segnale accum_sload/sload_accum.
ACCUM_SLOAD: imposta accum_sload basso per caricare l'uscita del moltiplicatore nell'accumulatore.
SLOAD_ACCUM: imposta sload_accum alto per caricare l'uscita del moltiplicatore nell'accumulatore.
È necessario selezionare l'opzione Enable preload constant per abilitare questo parametro.
64
Specificare il valore costante preimpostato.
Questo valore può essere 2N dove N è il valore costante preimpostato.
Quando N=64, rappresenta uno zero costante.
È necessario selezionare l'opzione Enable preload constant per abilitare questo parametro.
Orologio0
Selezionare Clock0 , Clock1 o Clock2 per specificare il segnale di clock di ingresso per il registro accum_sload/sload_accum.
È necessario selezionare l'opzione Enable preload constant per abilitare questo parametro.
NESSUNO
Specifica l'origine chiara asincrona per il registro accum_sload/sload_accum.
È necessario selezionare l'opzione Enable preload constant per abilitare questo parametro.
NESSUNO
Specifica l'origine chiara sincrona per il registro accum_sload/sload_accum.
È necessario selezionare l'opzione Enable preload constant per abilitare questo parametro.
Spento
Abilita il registro a doppio accumulatore.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 54
Invia feedback
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
8.6.6. Scheda Sistolica/Chainout
Tabella 35. Scheda Sommatore sistolico/chainout
Parametro Abilita il sommatore chainout
Parametro generato dall'IP
Valore
chainout_add SI,
er
NO
Qual è il tipo di operazione del sommatore chainout?
chainout_add AGGIUNGI,
er_direzione
SUB
Abilita l'input "nega" per il sommatore chainout?
Porta_negata
PORT_USED, PORT_UNUSED
Registrare l'input "nega"? negate_regist er
NON REGISTRATO, CLOCK0, CLOCK1, CLOCK2, CLOCK3
Qual è la fonte per l'input chiaro asincrono?
negare_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
negate_sclr
NESSUNO SCLR0 SCLR1
Ritardo sistolico
Abilita i registri del ritardo sistolico
gui_systolic_d Attivo
itardo
Spento
Qual è la sorgente per l'ingresso di clock?
gui_systolic_d OROLOGIO0,
elay_clock
OROLOGIO1,
Valore predefinito
NO
Descrizione
Selezionare SÌ per abilitare il modulo sommatore chainout.
AGGIUNGERE
Specifica l'operazione del sommatore chainout.
Per l'operazione di sottrazione, SIGNED deve essere selezionato per Qual è il formato di rappresentazione per gli input dei moltiplicatori A? e qual è il formato di rappresentazione per gli input dei moltiplicatori B? nella scheda Moltiplicatori.
PORT_UN USATO
Selezionare PORT_USED per abilitare il segnale di ingresso negato.
Questo parametro non è valido quando il chainout adder è disabilitato.
NON REGISTRATO ERED
Abilita il registro di ingresso per il segnale di ingresso negativo e specifica il segnale di clock di ingresso per il registro negativo.
Selezionare NON REGISTRATO se non è necessario il registro di input negato a
Questo parametro non è valido quando si seleziona:
· NO per Abilita sommatore catena o
· PORT_UNUSED per abilitare l'input 'negate' per il chainout adder? parametro o
NESSUNO
Specifica l'origine chiara asincrona per il registro negato.
Questo parametro non è valido quando si seleziona:
· NO per Abilita sommatore catena o
· PORT_UNUSED per abilitare l'input 'negate' per il chainout adder? parametro o
NESSUNO
Specifica l'origine chiara sincrona per il registro negato.
Questo parametro non è valido quando si seleziona:
· NO per Abilita sommatore catena o
· PORT_UNUSED per abilitare l'input 'negate' per il chainout adder? parametro o
Spento OROLOGIO0
Seleziona questa opzione per abilitare la modalità sistolica. Questo parametro è disponibile quando si seleziona 2 o 4 per Qual è il numero di moltiplicatori? parametro. È necessario abilitare l'uscita Register dell'unità sommatrice per utilizzare i registri di ritardo sistolico.
Specifica il segnale di clock di ingresso per il registro del ritardo sistolico.
continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 55
8. Intel FPGA moltiplicatore IP Core 683490 | 2020.10.05
Parametro
Parametro generato dall'IP
Valore
OROLOGIO2,
Qual è la fonte per l'input chiaro asincrono?
gui_systolic_d elay_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_systolic_d elay_sclr
NESSUNO SCLR0 SCLR1
Valore predefinito
NESSUNO
NESSUNO
Descrizione
È necessario selezionare abilita i registri del ritardo sistolico per abilitare questa opzione.
Specifica l'origine chiara asincrona per il registro del ritardo sistolico. È necessario selezionare abilita i registri del ritardo sistolico per abilitare questa opzione.
Specifica la sorgente chiara sincrona per il registro del ritardo sistolico. È necessario selezionare abilita i registri del ritardo sistolico per abilitare questa opzione.
8.6.7. Scheda pipeline
Tabella 36. Pipelining Tab
Configurazione della pipeline dei parametri
Parametro generato dall'IP
Valore
Vuoi aggiungere il registro della pipeline all'input?
gui_pipelining No, sì
Valore predefinito
NO
Si prega di specificare il
latenza
numero di clock di latenza
cicli
Qualsiasi valore maggiore di 0 di 0
Qual è la sorgente per l'ingresso di clock?
gui_input_late ncy_clock
OROLOGIO0, OROLOGIO1, OROLOGIO2
Qual è la fonte per l'input chiaro asincrono?
gui_input_late ncy_aclr
NESSUNO ACLR0 ACLR1
Qual è la fonte per l'input chiaro sincrono?
gui_input_late ncy_sclr
NESSUNO SCLR0 SCLR1
CLOCK0 NESSUNO NESSUNO
Descrizione
Selezionare Sì per abilitare un ulteriore livello di registro della pipeline ai segnali di ingresso. È necessario specificare un valore maggiore di 0 per il parametro Specificare il numero di cicli di clock di latenza.
Specifica la latenza desiderata nei cicli di clock. Un livello di registro della pipeline = 1 latenza nel ciclo di clock. È necessario selezionare SÌ per Aggiungere il registro della pipeline all'input? per abilitare questa opzione.
Selezionare Clock0 , Clock1 o Clock2 per abilitare e specificare il segnale di clock di ingresso del registro della pipeline. È necessario selezionare SÌ per Aggiungere il registro della pipeline all'input? per abilitare questa opzione.
Specifica l'origine chiara asincrona del registro per il registro della pipeline aggiuntivo. È necessario selezionare SÌ per Aggiungere il registro della pipeline all'input? per abilitare questa opzione.
Specifica l'origine di cancellazione sincrona del registro per il registro della pipeline aggiuntivo. È necessario selezionare SÌ per Aggiungere il registro della pipeline all'input? per abilitare questa opzione.
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 56
Invia feedback
683490 | 2020.10.05 Invia feedback
9. ALTMEMMULT (moltiplicatore di coefficiente costante basato sulla memoria) IP Core
Attenzione:
Intel ha rimosso il supporto di questo IP in Intel Quartus Prime Pro Edition versione 20.3. Se il core IP nel tuo progetto è destinato a dispositivi in Intel Quartus Prime Pro Edition, puoi sostituire l'IP con l'IP Intel FPGA LPM_MULT o rigenerare l'IP e compilare il tuo progetto utilizzando il software Intel Quartus Prime Standard Edition.
Il core IP ALTMEMMULT viene utilizzato per creare moltiplicatori basati sulla memoria utilizzando i blocchi di memoria su chip presenti negli FPGA Intel (con blocchi di memoria M512, M4K, M9K e MLAB). Questo core IP è utile se non si dispone di risorse sufficienti per implementare i moltiplicatori in elementi logici (LE) o risorse moltiplicatrici dedicate.
Il nucleo IP ALTMEMMULT è una funzione sincrona che richiede un orologio. Il core IP ALTMEMMULT implementa un moltiplicatore con il throughput e la latenza più piccoli possibili per un dato set di parametri e specifiche.
La figura seguente mostra le porte per il core IP ALTMEMMULT.
Figura 21. Porte ALTMEMMULT
ALTMEMMULT
data_in[] sload_data coeff_in[]
risultato[] risultato_valido carico_fatto
carico_coeff
scrl orologio
istruendo
Informazioni correlate Funzionalità a pagina 71
9.1 Caratteristiche
Il core IP ALTMEMMULT offre le seguenti caratteristiche: · Crea solo moltiplicatori basati sulla memoria utilizzando blocchi di memoria su chip trovati in
Intel FPGA · Supporta una larghezza di dati di 1 bit · Supporta il formato di rappresentazione dei dati con e senza segno · Supporta il pipelining con latenza di output fissa
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Certificato ISO 9001: 2015
9. ALTMEMMULT (moltiplicatore di coefficiente costante basato sulla memoria) IP Core 683490 | 2020.10.05
· Memorizza più costanti nella memoria ad accesso casuale (RAM)
· Fornisce un'opzione per selezionare il tipo di blocco RAM
· Supporta porte di ingresso sincrone opzionali e di controllo del carico
9.2. Verilog HDL Prototipo
Il seguente prototipo Verilog HDL si trova nel Verilog Design File (.v) altera_mf.v nel directory di sintesi eda.
module altmemmult #( parametro coeff_representation = “SIGNED”, parametro coefficient0 = “UNUSED”, parametro data_representation = “SIGNED”, parametro secured_device_family = “unused”, parametro max_clock_cycles_per_result = 1, parametro number_of_coefficients = 1, parametro ram_block_type = “AUTO”, parametro total_latency = 1, parametro width_c = 1, parametro width_d = 1, parametro width_r = 1, parametro width_s = 1, parametro lpm_type = “altmemmult”, parametro lpm_hint = “unused”) ( input wire clock, input wire [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 */; endmodule
9.3. Dichiarazione dei componenti VHDL
La dichiarazione del componente VHDL si trova nel progetto VHDL File (.vhd) altera_mf_components.vhd nel file directory librerievhdlaltera_mf.
component altmemmult generico ( coeff_representation:string := “SIGNED”; coefficient0:string := “UNUSED”; data_representation:string := “SIGNED”; designed_device_family:string := “unused”; max_clock_cycles_per_result:natural := 1; := 1; ram_block_type:string := “AUTO”; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := “UNUSED”; lpm_type:string := “altmemmult”); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 0) := (others => '0'); data_in:in std_logic_vector(width_d-1 downto 0);
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 58
Invia feedback
9. ALTMEMMULT (moltiplicatore di coefficiente costante basato sulla memoria) IP Core 683490 | 2020.10.05
load_done:out std_logic; risultato: 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) := (others => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); componente finale;
9.4. Porte
Le seguenti tabelle elencano le porte di input e output per il core IP ALTMEMMULT.
Tabella 37. Porte di ingresso ALTMEMMULT
Nome della porta
Necessario
Descrizione
orologio
SÌ
Ingresso clock al moltiplicatore.
coeff_in[]
NO
Porta di input del coefficiente per il moltiplicatore. La dimensione della porta di input dipende dal valore del parametro WIDTH_C.
dati_in[]
SÌ
Porta di immissione dati al moltiplicatore. La dimensione della porta di input dipende dal valore del parametro WIDTH_D.
scrl
NO
Ingresso chiaro sincrono. Se inutilizzato, il valore predefinito è attivo alto.
sel[]
NO
Selezione del coefficiente fisso. La dimensione della porta di ingresso dipende da WIDTH_S
valore del parametro.
carico_coeff
NO
Porta di ingresso del coefficiente di carico sincrono. Sostituisce il valore del coefficiente attualmente selezionato con il valore specificato nell'input coeff_in.
scarica_dati
NO
Porta di immissione dei dati di carico sincrono. Segnale che specifica una nuova operazione di moltiplicazione e annulla qualsiasi operazione di moltiplicazione esistente. Se il parametro MAX_CLOCK_CYCLES_PER_RESULT ha valore 1, la porta di input sload_data viene ignorata.
Tabella 38. Porte di uscita ALTMEMMULT
Nome della porta
Necessario
Descrizione
risultato[]
SÌ
Porta di uscita del moltiplicatore. La dimensione della porta di input dipende dal valore del parametro WIDTH_R.
risultato_valido
SÌ
Indica quando l'output è il risultato valido di una moltiplicazione completa. Se il parametro MAX_CLOCK_CYCLES_PER_RESULT ha valore 1, la porta di output result_valid non viene utilizzata.
carico_fatto
NO
Indica quando il nuovo coefficiente ha terminato il caricamento. Il segnale load_done afferma quando un nuovo coefficiente ha terminato il caricamento. A meno che il segnale load_done non sia alto, nessun altro valore di coefficiente può essere caricato nella memoria.
9.5. Parametri
La tabella seguente elenca i parametri per il core IP ALTMEMMULT.
Tabella 39.
LARGHEZZA_D LARGHEZZA_C
ALTMEMMULT Parametri
Nome del parametro
Tipo richiesto
Descrizione
Numero intero Sì
Specifica la larghezza della porta data_in[].
Numero intero Sì
Specifica la larghezza della porta coeff_in[]. continua…
Invia feedback
Intel FPGA Integer Arithmetic IP Core Guida per l'utente 59
9. ALTMEMMULT (moltiplicatore di coefficiente costante basato sulla memoria) IP Core 683490 | 2020.10.05
Nome parametro WIDTH_R WIDTH
Documenti / Risorse
![]() |
Intel FPGA Core IP aritmetici interi [pdf] Guida utente Core IP aritmetici interi FPGA, core IP aritmetici interi, core IP aritmetici, core IP |