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

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

denominazione[]

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

Uscita dati. La dimensione della porta di uscita dipende da LPM_WIDTHN

valore del parametro.

rimanere[]

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

Specifica le larghezze di numer[] e

quoziente[] porte. I valori sono da 1 a 64.

LPM_WIDTHD

Intero

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

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

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

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?

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

Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.

database[]

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

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

Inserimento dati. La dimensione della porta di ingresso dipende dal valore del parametro LPM_WIDTH.

database[]

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

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

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

Porta di immissione dati. La dimensione della porta di input dipende dal valore del parametro WIDTH_CODEWORD.

orologio

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

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

Specifica la larghezza dei dati non elaborati. I valori sono da 2 a 64. Il

il valore predefinito è 8.

WIDTH_CODEWORD

Intero

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

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

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

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

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

Porta di uscita del moltiplicatore. La dimensione della porta di input dipende dal valore del parametro WIDTH_R.

risultato_valido

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

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *