Cœurs IP arithmétiques entiers FPGA

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores
Mise à jour pour Intel® Quartus® Prime Design Suite : 20.3

Version en ligne Envoyer des commentaires

UG-01063

ID : 683490 Version : 2020.10.05

Contenu
Contenu
1. Cœurs IP arithmétiques entiers Intel FPGA……………………………………………………………….. 5
2. LPM_COUNTER (Compteur) IP Core……………………………………………………………………………….. 7 2.1. Fonctionnalités…………………………………………………………………………………………7 2.2. Prototype Verilog HDL……………………………………………………………………………….. 8 2.3. Déclaration de composant VHDL…………………………………………………………………….8 2.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………… 9 2.5. Ports………………………………………………………………………………………………………..9 2.6. Paramètres…………………………………………………………………………………………… 10
3. LPM_DIVIDE (Séparateur) Intel FPGA IP Core………………………………………………………….. 12 3.1. Caractéristiques………………………………………………………………………………………………. 12 3.2. Prototype Verilog HDL……………………………………………………………………………… 12 3.3. Déclaration de composant VHDL…………………………………………………………………….. 13 3.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 13 3.5. Ports……………………………………………………………………………………………………… 13 3.6. Paramètres…………………………………………………………………………………………… 14
4. IP Core LPM_MULT (Multiplicateur)…………………………………………………………………………. 16 4.1. Caractéristiques………………………………………………………………………………………………. 16 4.2. Prototype Verilog HDL……………………………………………………………………………… 17 4.3. Déclaration de composant VHDL…………………………………………………………………….. 17 4.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 17 4.5. Signaux………………………………………………………………………………………………… 18 4.6. Paramètres pour les appareils Stratix V, Arria V, Cyclone V et Intel Cyclone 10 LP…………… 18 4.6.1. Onglet Général…………………………………………………………………………………18 4.6.2. Onglet Général 2……………………………………………………………………………… 19 4.6.3. Onglet Pipeline……………………………………………………………………………… 19 4.7. Paramètres pour les appareils Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX……….. 20 4.7.1. Onglet Général…………………………………………………………………………………20 4.7.2. Onglet Général 2……………………………………………………………………………… 20 4.7.3. Canalisation……………………………………………………………………………………21
5. LPM_ADD_SUB (Additionneur/Soustracteur)…………………………………………………………………… 22 5.1. Caractéristiques………………………………………………………………………………………………. 22 5.2. Prototype Verilog HDL……………………………………………………………………………… 23 5.3. Déclaration de composant VHDL…………………………………………………………………….. 23 5.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 23 5.5. Ports……………………………………………………………………………………………………… 23 5.6. Paramètres…………………………………………………………………………………………… 24
6. LPM_COMPARE (Comparateur)…………………………………………………………………………………… 26 6.1. Caractéristiques………………………………………………………………………………………………. 26 6.2. Prototype Verilog HDL……………………………………………………………………………… 27 6.3. Déclaration de composant VHDL…………………………………………………………………….. 27 6.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 27 6.5. Ports……………………………………………………………………………………………………… 27 6.6. Paramètres…………………………………………………………………………………………… 28

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 2

Envoyer des commentaires

Contenu

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core…………………………………… 30
7.1. Caractéristiques de l'encodeur ALTECC………………………………………………………………..31 7.2. Prototype Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototype Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Déclaration de composant VHDL (ALTECC_ENCODER)……………………………………………33 7.5. Déclaration de composant VHDL (ALTECC_DECODER)……………………………………………33 7.6. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 33 7.7. Ports de l'encodeur………………………………………………………………………………………… 33 7.8. Ports du décodeur…………………………………………………………………………………………34 7.9. Paramètres de l'encodeur………………………………………………………………………………… 34 7.10. Paramètres du décodeur ……………………………………………………………………………… 35
8. Noyau IP Intel FPGA Multiply Adder……………………………………………………………………. 36
8.1. Caractéristiques………………………………………………………………………………………………. 37 8.1.1. Pré-additionneur………………………………………………………………………………….. 38 8.1.2. Registre du Retard Systolique………………………………………………………………….. 40 8.1.3. Constante de précharge…………………………………………………………………………… 43 8.1.4. Double Accumulateur…………………………………………………………………………… 43
8.2. Prototype Verilog HDL……………………………………………………………………………… 44 8.3. Déclaration de composant VHDL…………………………………………………………………….. 44 8.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………. 44 8.5. Signaux………………………………………………………………………………………………… 44 8.6. Paramètres…………………………………………………………………………………………… 47
8.6.1. Onglet Général…………………………………………………………………………………47 8.6.2. Onglet Modes supplémentaires…………………………………………………………………………….. 47 8.6.3. Onglet Multiplicateurs…………………………………………………………………………….. 49 8.6.4. Onglet Prereader……………………………………………………………………………. 51 8.6.5. Onglet Accumulateur………………………………………………………………………….. 53 8.6.6. Onglet Systolique/Chainout……………………………………………………………………. 55 8.6.7. Onglet Pipeline……………………………………………………………………………… 56
9. ALTMEMMULT (multiplicateur de coefficient constant basé sur la mémoire) IP Core…………………… 57
9.1. Caractéristiques………………………………………………………………………………………………. 57 9.2. Prototype Verilog HDL……………………………………………………………………………… 58 9.3. Déclaration de composant VHDL…………………………………………………………………….. 58 9.4. Ports……………………………………………………………………………………………………… 59 9.5. Paramètres…………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiplier-Accumuler) IP Core……………………………………………… 61
10.1. Fonctionnalités…………………………………………………………………………………………….. 62 10.2. Prototype HDL Verilog……………………………………………………………………………..62 10.3. Déclaration de composant VHDL…………………………………………………………………… 63 10.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………63 10.5. Ports………………………………………………………………………………………………………. 63 10.6. Paramètres…………………………………………………………………………………………. 64
11. ALTMULT_ADD (Multiplier-Adder) IP Core…………………………………………………………..69
11.1. Fonctionnalités…………………………………………………………………………………………….. 71 11.2. Prototype Verilog HDL……………………………………………………………………………..72 11.3. Déclaration de composant VHDL…………………………………………………………………… 72 11.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………72

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 3

Contenu
11.5. Ports………………………………………………………………………………………………………. 72 11.6. Paramètres…………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (multiplicateur complexe) IP Core……………………………………………… 86 12.1. Multiplication complexe……………………………………………………………………………. 86 12.2. Représentation canonique…………………………………………………………………………… 87 12.3. Représentation Conventionnelle……………………………………………………………………. 87 12.4. Fonctionnalités…………………………………………………………………………………………….. 88 12.5. Prototype HDL Verilog……………………………………………………………………………..88 12.6. Déclaration de composant VHDL…………………………………………………………………… 89 12.7. Déclaration VHDL LIBRARY_USE…………………………………………………………………89 12.8. Signaux………………………………………………………………………………………………. 89 12.9. Paramètres…………………………………………………………………………………………. 90
13. ALTSQRT (racine carrée entière) IP Core……………………………………………………………92 13.1. Fonctionnalités…………………………………………………………………………………………….. 92 13.2. Prototype Verilog HDL……………………………………………………………………………..92 13.3. Déclaration de composant VHDL…………………………………………………………………… 93 13.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………93 13.5. Ports………………………………………………………………………………………………………. 93 13.6. Paramètres…………………………………………………………………………………………. 94
14. PARALLEL_ADD (additionneur parallèle) IP Core………………………………………………………….. 95 14.1. Caractéristique……………………………………………………………………………………………….95 14.2. Prototype Verilog HDL……………………………………………………………………………..95 14.3. Déclaration de composant VHDL…………………………………………………………………… 96 14.4. Déclaration VHDL LIBRARY_USE…………………………………………………………………96 14.5. Ports………………………………………………………………………………………………………. 96 14.6. Paramètres…………………………………………………………………………………………. 97
15. Integer Arithmetic IP Cores User Guide Archives de documents………………………………… 98
16. Historique de révision du document pour le guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores…. 99

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 4

Envoyer des commentaires

683490 | 2020.10.05 Envoyer des commentaires

1. Cœurs IP arithmétiques entiers Intel FPGA

Vous pouvez utiliser les cœurs IP entiers Intel® FPGA pour effectuer des opérations mathématiques dans votre conception.

Ces fonctions offrent une synthèse logique et une implémentation de dispositif plus efficaces que le codage de vos propres fonctions. Vous pouvez personnaliser les cœurs IP pour répondre à vos exigences de conception.

Les cœurs IP d'arithmétique entière d'Intel sont divisés en deux catégories : · Cœurs IP de bibliothèque de modules paramétrables (LPM) · Cœurs IP spécifiques à Intel (ALT)

Le tableau suivant répertorie les cœurs IP arithmétiques d'entiers.

Tableau 1.

Liste des cœurs IP

Cœurs IP

Cœurs IP LPM

LPM_COUNTER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Cœurs IP spécifiques à Intel (ALT) ALTECC

Fonction terminéeview Compteur Diviseur Multiplicateur
Additionneur ou soustracteur Comparateur
Encodeur/décodeur ECC

Appareil pris en charge
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel Cyclone 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V suite…

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

1. Cœurs IP arithmétiques entiers Intel FPGA 683490 | 2020.10.05

IP Cores Intel FPGA Multiply Adder ou ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

Fonction terminéeview Multiplicateur-additionneur
Multiplicateur de coefficient constant basé sur la mémoire
Multiplicateur-accumulateur Multiplicateur-additionneur
Multiplicateur complexe
Racine carrée entière
Additionneur parallèle

Appareil pris en charge
Arria V, Stratix V, Cyclone V, Intel Stratix 10, Intel Arria 10, Intel Cyclone
10 GX
Arria II GX, Arria II GZ, Arria V, Intel Arria 10 (Intel Quartus® Prime Standard Edition), Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 GX, Intel Cyclone 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V

Informations connexes
· Notes de mise à jour des FPGA Intel et des périphériques programmables
· Introduction aux cœurs IP Intel FPGA Fournit plus d'informations sur les cœurs IP Intel FPGA.
· Guide de l'utilisateur des cœurs IP à virgule flottante Fournit plus d'informations sur les cœurs IP à virgule flottante Intel FPGA.
· Introduction aux cœurs IP Intel FPGA Fournit des informations générales sur tous les cœurs IP Intel FPGA, y compris le paramétrage, la génération, la mise à niveau et la simulation des cœurs IP.
· Création de scripts de simulation IP et Qsys indépendants de la version Créez des scripts de simulation qui ne nécessitent pas de mises à jour manuelles pour les mises à niveau du logiciel ou de la version IP.
· Lignes directrices sur les meilleures pratiques de gestion de projet pour une gestion efficace et la portabilité de votre projet et de votre propriété intellectuelle files.
· Archives de documents du guide de l'utilisateur des noyaux IP d'arithmétique d'entiers à la page 98 Fournit une liste de guides d'utilisation pour les versions précédentes des noyaux IP d'arithmétique d'entiers.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 6

Envoyer des commentaires

683490 | 2020.10.05 Envoyer des commentaires

2. Noyau IP LPM_COUNTER (compteur)

Figure 1.

Le cœur IP LPM_COUNTER est un compteur binaire qui crée des compteurs, des décompteurs et des compteurs ou des décompteurs avec des sorties jusqu'à 256 bits de large.

La figure suivante montre les ports du cœur IP LPM_COUNTER.

LPM_COUNTER ports

LPM_COUNTER

ssclr sload sset données[]

q[]

updown

cout

aclr aload actif

clk_fr cnt_fr cin
inst

2.1. Caractéristiques
Le cœur IP LPM_COUNTER offre les fonctionnalités suivantes : · Génère des compteurs, des décomptes et des compteurs croissants/décroissants. · Génère les types de compteurs suivants :
— Binaire simple – le compteur s'incrémente à partir de zéro ou décrémente à partir de 255
— Module–le compteur incrémente ou décrémente à partir de la valeur de module spécifiée par l'utilisateur et se répète
· Prend en charge les ports d'entrée Clear, Load et Set synchrones en option · Prend en charge les ports d'entrée Clear, Load et Set asynchrones en option · Prend en charge les ports d'entrée d'activation de comptage et d'horloge en option

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

2. Noyau IP LPM_COUNTER (compteur)
683490 | 2020.10.05
2.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module lpm_counter ( q, data, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); paramètre lpm_type = "lpm_counter" ; paramètre lpm_width = 1 ; paramètre lpm_modulus = 0 ; paramètre lpm_direction = "UNUSED" ; paramètre lpm_avalue = "INUTILISÉ" ; paramètre lpm_svalue = "INUTILISÉ" ; paramètre lpm_pvalue = "INUTILISÉ" ; paramètre lpm_port_updown = "PORT_CONNECTIVITY" ; paramètre lpm_hint = "NON UTILISÉ" ; sortie [lpm_width-1:0] q ; compte de sortie ; sortie [15:0] éq ; entrée cin; données d'entrée [lpm_width-1:0] ; horloge d'entrée, clk_en, cnt_en, updown ; entrée aset, aclr, aload ; entrée sset, sclr, sload ; module final
2.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) LPM_PACK.vhd dans le répertoire bibliothèquesvhdllpm.
composant LPM_COUNTER générique ( LPM_WIDTH : naturel; LPM_MODULUS : naturel := 0; LPM_DIRECTION : string := "UNUSED"; LPM_AVALUE : string := "UNUSED"; LPM_SVALUE : string := "UNUSED"; LPM_PORT_UPDOWN : string := "PORT_CONNECTIVITY" ; LPM_PVALUE : chaîne := "UNUSED"; LPM_TYPE : chaîne := L_COUNTER; LPM_HINT : chaîne := "UNUSED"); port (DATA : dans std_logic_vector(LPM_WIDTH-1 jusqu'à 0):= (OTHERS =>
'0'); HORLOGE : dans std_logic ; CLK_FR : dans std_logic := '1'; CNT_FR : dans std_logic := '1'; HAUTBAS : dans std_logic := '1'; SLOAD : dans std_logic := '0'; SSET : dans std_logic := '0'; SCLR : dans std_logic := '0'; ALOAD : dans std_logic := '0'; ASET : dans std_logic := '0'; ACLR : dans std_logic := '0'; CIN : dans std_logic := '1'; COUT : out std_logic := '0'; Q : out std_logic_vector(LPM_WIDTH-1 downto 0); EQ : out std_logic_vector(15 downto 0));
composant final ;

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 8

Envoyer des commentaires

2. LPM_COUNTER (Compteur) IP Core 683490 | 2020.10.05

2.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHÈQUE lpm; UTILISER lpm.lpm_components.all ;

2.5. Ports

Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP LPM_COUNTER.

Tableau 2.

Ports d'entrée LPM_COUNTER

Nom du port

Requis

Description

Les données[]

Non

Entrée de données parallèle au compteur. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTH.

horloge

Oui

Entrée d'horloge déclenchée par un front positif.

clk_fr

Non

Entrée d'activation de l'horloge pour activer toutes les activités synchrones. Si omis, la valeur par défaut est 1.

cnt_fr

Non

Entrée d'activation de comptage pour désactiver le comptage lorsqu'il est affirmé bas sans affecter sload, sset ou sclr. Si omis, la valeur par défaut est 1.

updown

Non

Contrôle la direction du comptage. Lorsqu'il est affirmé haut (1), le sens de comptage est croissant, et lorsqu'il est affirmé bas (0), le sens de comptage est décroissant. Si le paramètre LPM_DIRECTION est utilisé, le port updown ne peut pas être connecté. Si LPM_DIRECTION n'est pas utilisé, le port updown est facultatif. S'il est omis, la valeur par défaut est up (1).

Cin

Non

Report au bit de poids faible. Pour les compteurs, le comportement de l'entrée cin est

identique au comportement de l'entrée cnt_en. Si omis, la valeur par défaut est 1

(VCC).

acrl

Non

Entrée claire asynchrone. Si aset et aclr sont utilisés et affirmés, aclr remplace aset. S'il est omis, la valeur par défaut est 0 (désactivé).

ensemble

Non

Entrée set asynchrone. Spécifie les sorties q[] comme étant toutes des 1 ou à la valeur spécifiée par le paramètre LPM_AVALUE. Si les ports aset et aclr sont utilisés et affirmés, la valeur du port aclr remplace la valeur du port aset. Si omis, la valeur par défaut est 0, désactivé.

une charge

Non

Entrée de chargement asynchrone qui charge de manière asynchrone le compteur avec la valeur sur l'entrée de données. Lorsque le port aload est utilisé, le port data[] doit être connecté. Si omis, la valeur par défaut est 0, désactivé.

scrl

Non

Entrée d'effacement synchrone qui efface le compteur au prochain front d'horloge actif. Si les ports sset et sclr sont utilisés et affirmés, la valeur du port sclr remplace la valeur du port sset. Si omis, la valeur par défaut est 0, désactivé.

mettre

Non

Entrée de réglage synchrone qui règle le compteur sur le prochain front d'horloge actif. Spécifie la valeur des sorties q comme tous les 1, ou à la valeur spécifiée par le paramètre LPM_SVALUE. Si les ports sset et sclr sont utilisés et affirmés,
la valeur du port sclr remplace la valeur du port sset. S'il est omis, la valeur par défaut est 0 (désactivé).

charge

Non

Entrée de chargement synchrone qui charge le compteur avec data[] sur le prochain front d'horloge actif. Lorsque le port sload est utilisé, le port data[] doit être connecté. S'il est omis, la valeur par défaut est 0 (désactivé).

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 9

2. LPM_COUNTER (Compteur) IP Core 683490 | 2020.10.05

Tableau 3.

Ports de sortie LPM_COUNTER

Nom du port

Requis

Description

q[]

Non

Sortie de données du compteur. La taille du port de sortie dépend du

Valeur du paramètre LPM_WIDTH. Soit q[] ou au moins un des ports eq[15..0]

doit être connecté.

éq[15..0]

Non

Sortie de décodage du compteur. Le port eq[15..0] n'est pas accessible dans l'éditeur de paramètres car le paramètre ne prend en charge que AHDL.
Le port q[] ou le port eq[] doit être connecté. Jusqu'à c ports eq peuvent être utilisés (0 <= c <= 15). Seules les 16 valeurs de comptage les plus faibles sont décodées. Lorsque la valeur de comptage est c, la sortie eqc est affirmée haut (1). Par exempleample, lorsque le comptage est 0, eq0 = 1, lorsque le comptage est 1, eq1 = 1, et lorsque le comptage est 15, eq 15 = 1. La sortie décodée pour les valeurs de comptage de 16 ou plus nécessite un décodage externe. Les sorties eq[15..0] sont asynchrones à la sortie q[].

cout

Non

Port d'exécution du bit MSB du compteur. Il peut être utilisé pour se connecter à un autre compteur afin de créer un compteur plus grand.

2.6. Paramètres

Le tableau suivant répertorie les paramètres du cœur IP LPM_COUNTER.

Tableau 4.

Paramètres LPM_COUNTER

Nom du paramètre

Taper

LPM_WIDTH

Entier

LPM_DIRECTION

Chaîne

LPM_MODULUS LPM_AVALUE

Entier
Entier/ Chaîne

LPM_SVALUE LPM_HINT

Entier/ Chaîne
Chaîne

LPM_TYPE

Chaîne

Obligatoire Oui Non Non Non
Non Non
Non

Description
Spécifie les largeurs des ports data[] et q[], s'ils sont utilisés.
Les valeurs sont UP, DOWN et UNUSED. Si le paramètre LPM_DIRECTION est utilisé, le port updown ne peut pas être connecté. Lorsque le port updown n'est pas connecté, la valeur par défaut du paramètre LPM_DIRECTION est UP.
Le nombre maximum, plus un. Nombre d'états uniques dans le cycle du compteur. Si la valeur de charge est supérieure au paramètre LPM_MODULUS, le comportement du compteur n'est pas spécifié.
Valeur constante qui est chargée lorsqu'un ensemble est affirmé haut. Si la valeur indiquée est supérieure ou égale à , le comportement du compteur est un niveau logique indéfini (X), où est LPM_MODULUS, s'il est présent, ou 2 ^ LPM_WIDTH. Intel vous recommande de spécifier cette valeur sous forme de nombre décimal pour les conceptions AHDL.
Valeur constante qui est chargée sur le front montant du port d'horloge lorsque le port sset est affirmé haut. Intel vous recommande de spécifier cette valeur sous forme de nombre décimal pour les conceptions AHDL.
Lorsque vous instanciez une fonction de bibliothèque de modules paramétrés (LPM) dans une conception VHDL File (.vhd), vous devez utiliser le paramètre LPM_HINT pour spécifier un paramètre spécifique à Intel. Par exempleample : LPM_HINT = "CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES"
La valeur par défaut est UNUSED.
Identifie le nom d'entité de la bibliothèque de modules paramétrés (LPM) dans la conception VHDL files.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 10

Envoyer des commentaires

2. LPM_COUNTER (Compteur) IP Core 683490 | 2020.10.05

Nom du paramètre INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

Type Chaîne Chaîne
Chaîne
Chaîne

Obligatoire Non Non
Non
Non

Description
Ce paramètre est utilisé à des fins de modélisation et de simulation comportementale. Ce paramètre est utilisé à des fins de modélisation et de simulation comportementale. L'éditeur de paramètres calcule la valeur de ce paramètre.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre CARRY_CNT_EN dans la conception VHDL files. Les valeurs sont SMART, ON, OFF et UNUSED. Active la fonction LPM_COUNTER pour propager le signal cnt_en à travers la chaîne de report. Dans certains cas, le réglage du paramètre CARRY_CNT_EN peut avoir un léger impact sur la vitesse, vous pouvez donc le désactiver. La valeur par défaut est SMART, qui offre le meilleur compromis entre la taille et la vitesse.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre LABWIDE_SCLR dans la conception VHDL files. Les valeurs sont ON, OFF ou UNUSED. La valeur par défaut est MARCHE. Vous permet de désactiver l'utilisation de la fonctionnalité LABwide sclr trouvée dans les familles d'appareils obsolètes. La désactivation de cette option augmente les chances d'utiliser pleinement les LAB partiellement remplis, et peut donc permettre une densité logique plus élevée lorsque le SCLR ne s'applique pas à un LAB complet. Ce paramètre est disponible pour la rétrocompatibilité et Intel vous recommande de ne pas l'utiliser.
Spécifie l'utilisation du port d'entrée updown. Si elle est omise, la valeur par défaut est PORT_CONNECTIVITY. Lorsque la valeur du port est définie sur PORT_USED, le port est traité comme utilisé. Lorsque la valeur du port est définie sur PORT_UNUSED, le port est traité comme inutilisé. Lorsque la valeur du port est définie sur PORT_CONNECTIVITY, l'utilisation du port est déterminée en vérifiant la connectivité du port.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 11

683490 | 2020.10.05 Envoyer des commentaires

3. LPM_DIVIDE (diviseur) Intel FPGA IP Core

Figure 2.

Le cœur IP FPGA Intel LPM_DIVIDE implémente un diviseur pour diviser une valeur d'entrée de numérateur par une valeur d'entrée de dénominateur pour produire un quotient et un reste.

La figure suivante montre les ports du noyau IP LPM_DIVIDE.

Ports LPM_DIVIDE

LPM_DIVIDE

numer[] denom[] horloge

quotient[] reste[]

clken aclr

inst

3.1. Caractéristiques
Le noyau IP LPM_DIVIDE offre les fonctionnalités suivantes : · Génère un diviseur qui divise une valeur d'entrée de numérateur par une entrée de dénominateur
valeur pour produire un quotient et un reste. · Supporte une largeur de données de 1 bits. · Prend en charge le format de représentation des données signées et non signées pour le numérateur
et les valeurs du dénominateur. · Prend en charge l'optimisation de la zone ou de la vitesse. · Fournit une option pour spécifier une sortie de reste positif. · Prend en charge la latence de sortie configurable en pipeline. · Prend en charge les ports d'activation d'effacement et d'horloge asynchrones en option.

3.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module lpm_divide (quotient, reste, nombre, denom, horloge, clken, aclr); paramètre lpm_type = "lpm_divide" ; paramètre lpm_widthn = 1 ; paramètre lpm_widthd = 1 ; paramètre lpm_nrepresentation = 'UNSIGNED'; paramètre lpm_representation = "NON SIGNE" ; paramètre lpm_restepositif = "TRUE" ; paramètre lpm_pipeline = 0 ;

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

3. LPM_DIVIDE (séparateur) Intel FPGA IP Core 683490 | 2020.10.05

paramètre lpm_hint = "NON UTILISÉ" ; horloge d'entrée ; clé d'entrée ; entrée aclr ; saisir le nombre [lpm_widthn-1:0] ; entrée [lpm_widthd-1:0] denom ; sortie [lpm_widthn-1:0] quotient ; sortie [lpm_widthd-1:0] reste ; module final

3.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) LPM_PACK.vhd dans le répertoire bibliothèquesvhdllpm.
composant LPM_DIVIDE générique (LPM_WIDTHN : naturel ; LPM_WIDTHD : naturel ;
LPM_NREPRESENTATION : string := 'NON SIGNE'; LPM_DREPRESENTATION : string := 'NON SIGNE'; LPM_PIPELINE : naturel := 0; LPM_TYPE : chaîne := L_DIVIDE; LPM_HINT : chaîne := "INUTILISÉ" ); port (NUMER : dans std_logic_vector(LPM_WIDTHN-1 jusqu'à 0); DENOM : dans std_logic_vector(LPM_WIDTHD-1 jusqu'à 0); ACLR : dans std_logic := '0'; CLOCK : dans std_logic := '0'; CLKEN : dans std_logic := '1' ; QUOTIENT  : sortie std_logic_vector(LPM_WIDTHN-1 jusqu'à 0 ); REMAIN : sortie std_logic_vector(LPM_WIDTHD-1 jusqu'à 0) ); composant final ;

3.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHÈQUE lpm; UTILISER lpm.lpm_components.all ;

3.5. Ports

Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP LPM_DIVIDE.

Tableau 5.

Ports d'entrée LPM_DIVIDE

Nom du port

Requis

nombre[]

Oui

dénomination[]

Oui

Description
Saisie des données du numérateur. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTHN.
Saisie des données du dénominateur. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTHD.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 13

3. LPM_DIVIDE (séparateur) Intel FPGA IP Core 683490 | 2020.10.05

Horloge de nom de port clken
acrl

Obligatoire Non Non
Non

Description
Entrée d'horloge pour une utilisation en pipeline. Pour les valeurs LPM_PIPELINE autres que 0 (par défaut), le port d'horloge doit être activé.
L'horloge active l'utilisation en pipeline. Lorsque le port clken est affirmé haut, l'opération de division a lieu. Lorsque le signal est faible, aucune opération ne se produit. Si omis, la valeur par défaut est 1.
Port d'effacement asynchrone utilisé à tout moment pour réinitialiser le pipeline à tous les '0' de manière asynchrone à l'entrée d'horloge.

Tableau 6.

Ports de sortie LPM_DIVIDE

Nom du port

Requis

Description

quotient[]

Oui

Sortie de données. La taille du port de sortie dépend du LPM_WIDTHN

valeur du paramètre.

rester[]

Oui

Sortie de données. La taille du port de sortie dépend du LPM_WIDTHD

valeur du paramètre.

3.6. Paramètres

Le tableau suivant répertorie les paramètres du cœur IP Intel FPGA LPM_DIVIDE.

Nom du paramètre

Taper

Requis

Description

LPM_WIDTHN

Entier

Oui

Spécifie les largeurs de numer[] et

quotient[] ports. Les valeurs vont de 1 à 64.

LPM_WIDTHD

Entier

Oui

Spécifie les largeurs de denom[] et

rest[] ports. Les valeurs vont de 1 à 64.

LPM_NREPRESENTATION LPM_DREPRESENTATION

Chaîne Chaîne

Non

Représentation du signe de l'entrée du numérateur.

Les valeurs sont SIGNE et NON SIGNE. Quand cela

paramètre est réglé sur SIGNE, le diviseur

interprète l'entrée numer[] comme deux signés

complément.

Non

Représentation du signe de l'entrée du dénominateur.

Les valeurs sont SIGNE et NON SIGNE. Quand cela

paramètre est réglé sur SIGNE, le diviseur

interprète l'entrée denom[] comme deux signés

complément.

LPM_TYPE

Chaîne

Non

Identifie la bibliothèque de paramètres

modules (LPM) nom de l'entité dans la conception VHDL

files (.vhd).

LPM_HINT

Chaîne

Non

Lorsque vous instanciez une bibliothèque de

modules paramétrés (LPM) fonctionnent dans un

Conception VHDL File (.vhd), vous devez utiliser le

Paramètre LPM_HINT pour spécifier un Intel-

paramètre spécifique. Par exempleample : LPM_HINT

= "CHAIN_SIZE = 8,

ONE_INPUT_IS_CONSTANT = OUI" Le

la valeur par défaut est UNUSED.

LPM_REMAINDERPOSITIVE

Chaîne

Non

Paramètre spécifique à Intel. Vous devez utiliser le

Paramètre LPM_HINT pour spécifier le

Paramètre LPM_REMAINDERPOSITIVE dans

Conception VHDL files. Les valeurs sont TRUE ou FALSE.

Si ce paramètre est défini sur TRUE, alors le

la valeur du port stay[] doit être supérieure

suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 14

Envoyer des commentaires

3. LPM_DIVIDE (séparateur) Intel FPGA IP Core 683490 | 2020.10.05

Nom du paramètre

Taper

MAXIMIZE_SPEED

Entier

LPM_PIPELINE

Entier

INTENDED_DEVICE_FAMILY SKIP_BITS

Entier de chaîne

Obligatoire Non
Non Non Non

Description
supérieur ou égal à zéro. Si ce paramètre est défini sur TRUE, la valeur du port stay[] est soit zéro, soit la valeur a le même signe, positif ou négatif, que la valeur du port numer. Afin de réduire la surface et d'améliorer la vitesse, Intel recommande de définir ce paramètre sur TRUE dans les opérations où le reste doit être positif ou où le reste n'est pas important.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre MAXIMIZE_SPEED dans la conception VHDL files. Les valeurs sont [0..9]. S'il est utilisé, le logiciel Intel Quartus Prime tente d'optimiser une instance spécifique de la fonction LPM_DIVIDE pour la vitesse plutôt que la routabilité, et remplace le paramètre de l'option logique Technique d'optimisation. Si MAXIMIZE_SPEED n'est pas utilisé, la valeur de l'option Technique d'optimisation est utilisée à la place. Si la valeur de MAXIMIZE_SPEED est égale ou supérieure à 6, le compilateur optimise le cœur IP LPM_DIVIDE pour une vitesse plus élevée en utilisant des chaînes de transport ; si la valeur est inférieure ou égale à 5, le compilateur implémente la conception sans chaînes de retenue.
Spécifie le nombre de cycles d'horloge de latence associés aux sorties quotient[] et stay[]. Une valeur de zéro (0) indique qu'aucune latence n'existe et qu'une fonction purement combinatoire est instanciée. S'il est omis, la valeur par défaut est 0 (sans pipeline). Vous ne pouvez pas spécifier une valeur pour le paramètre LPM_PIPELINE supérieure à LPM_WIDTHN.
Ce paramètre est utilisé à des fins de modélisation et de simulation comportementale. L'éditeur de paramètres calcule la valeur de ce paramètre.
Permet une division de bits fractionnaire plus efficace pour optimiser la logique sur les bits de tête en fournissant le nombre de GND de tête au cœur IP LPM_DIVIDE. Spécifiez le nombre de GND en tête sur la sortie quotient de ce paramètre.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 15

683490 | 2020.10.05 Envoyer des commentaires

4. Noyau IP LPM_MULT (multiplicateur)

Figure 3.

Le cœur IP LPM_MULT implémente un multiplicateur pour multiplier deux valeurs de données d'entrée afin de produire un produit en sortie.

La figure suivante montre les ports du noyau IP LPM_MULT.

Ports LPM_Mult

LPM_MULT horloge dataa[] result[] datab[] aclr/sclr clken
inst

Informations connexes Fonctionnalités à la page 71

4.1. Caractéristiques
Le noyau IP LPM_MULT offre les fonctionnalités suivantes : · Génère un multiplicateur qui multiplie deux valeurs de données d'entrée · Prend en charge une largeur de données de 1 bits · Prend en charge le format de représentation des données signées et non signées · Prend en charge l'optimisation de la zone ou de la vitesse · Prend en charge le pipelining avec une latence de sortie configurable option de mise en œuvre dans le traitement numérique du signal (DSP) dédié
bloquer les circuits ou les éléments logiques (LE) Remarque : lors de la création de multiplicateurs supérieurs à la taille nativement prise en charge,
aura un impact sur les performances résultant de la mise en cascade des blocs DSP. · Prend en charge l'effacement asynchrone en option et les ports d'entrée activés par l'horloge · Prend en charge l'effacement synchrone en option pour les appareils Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

4. LPM_MULT (Multiplicateur) IP Core 683490 | 2020.10.05
4.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module lpm_mult ( résultat, dataa, datab, somme, horloge, clken, aclr ) paramètre lpm_type = "lpm_mult" ; paramètre lpm_widtha = 1 ; paramètre lpm_widthb = 1 ; paramètre lpm_widths = 1 ; paramètre lpm_widthp = 1 ; paramètre lpm_representation = "UNSIGNED" ; paramètre lpm_pipeline = 0 ; paramètre lpm_hint = "NON UTILISÉ" ; horloge d'entrée ; clé d'entrée ; entrée aclr ; entrée [lpm_widtha-1:0] donnéesa ; entrée [lpm_widthb-1:0] datab ; entrée [lpm_widths-1:0] somme ; sortie [lpm_widthp-1:0] résultat ; module final
4.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) LPM_PACK.vhd dans le répertoire bibliothèquesvhdllpm.
composant LPM_MULT générique ( LPM_WIDTHA : naturel; LPM_WIDTHB : naturel; LPM_WIDTHS : naturel := 1; LPM_WIDTHP : naturel;
LPM_REPRESENTATION : chaîne := "SANS SIGNE" ; LPM_PIPELINE : naturel := 0; LPM_TYPE : chaîne := L_MULT ; LPM_HINT : chaîne := "INUTILISÉ" ); port ( DATAA : dans std_logic_vector(LPM_WIDTHA-1 jusqu'à 0); DATAB : dans std_logic_vector(LPM_WIDTHB-1 jusqu'à 0); ACLR : dans std_logic := '0'; CLOCK : dans std_logic := '0'; CLKEN : dans std_logic := '1' ; SOMME : entrée std_logic_vector(LPM_WIDTHS-1 jusqu'à 0) := (OTHERS => '0'); RÉSULTAT : sortie std_logic_vector(LPM_WIDTHP-1 jusqu'à 0)) ; composant final ;
4.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHÈQUE lpm; UTILISER lpm.lpm_components.all ;

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 17

4. LPM_MULT (Multiplicateur) IP Core 683490 | 2020.10.05

4.5. Signaux

Tableau 7.

Signaux d'entrée LPM_MULT

Nom du signal

Requis

Description

données[]

Oui

Entrée de données.

Pour les périphériques Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX, la taille du signal d'entrée dépend de la valeur du paramètre Dataa width.

Pour les appareils plus anciens et Intel Cyclone 10 LP, la taille du signal d'entrée dépend de la valeur du paramètre LPM_WIDTHA.

base de données[]

Oui

Entrée de données.

Pour les périphériques Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX, la taille du signal d'entrée dépend de la valeur du paramètre Datab width.

Pour les appareils plus anciens et Intel Cyclone 10 LP, la taille du signal d'entrée dépend

sur la valeur du paramètre LPM_WIDTHB.

horloge

Non

Entrée d'horloge pour une utilisation en pipeline.

Pour les appareils plus anciens et Intel Cyclone 10 LP, le signal d'horloge doit être activé pour les valeurs LPM_PIPELINE autres que 0 (par défaut).

Pour les appareils Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX, le signal d'horloge doit être activé si la valeur de latence est différente de 1 (par défaut).

clken

Non

Activation de l'horloge pour une utilisation en pipeline. Lorsque le signal clken est affirmé haut, le

opération additionneur/soustracteur a lieu. Lorsque le signal est faible, aucune opération

survient. Si omis, la valeur par défaut est 1.

acclr scrl

Non

Signal clair asynchrone utilisé à tout moment pour réinitialiser le pipeline à tous les 0,

asynchrone au signal d'horloge. Le pipeline s'initialise à un (X) indéfini

niveau logique. Les sorties sont une valeur cohérente, mais non nulle.

Non

Signal clair synchrone utilisé à tout moment pour réinitialiser le pipeline à tous les 0,

synchrone avec le signal d'horloge. Le pipeline s'initialise à un (X) indéfini

niveau logique. Les sorties sont une valeur cohérente, mais non nulle.

Tableau 8.

LPM_MULT Signaux de sortie

Nom du signal

Requis

Description

résultat[]

Oui

Sortie de données.

Pour les appareils plus anciens et Intel Cyclone 10 LP, la taille du signal de sortie dépend de la valeur du paramètre LPM_WIDTHP. Si LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) ou (LPM_WIDTHA + LPM_WIDTHS), seuls les MSB LPM_WIDTHP sont présents.

Pour Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX, la taille des signaux de sortie dépend du paramètre Result width.

4.6. Paramètres pour les appareils Stratix V, Arria V, Cyclone V et Intel Cyclone 10 LP

4.6.1. Onglet Général

Tableau 9.

Onglet Général

Paramètre

Valeur

Configuration du multiplicateur

Multiplier l'entrée 'dataa' par l'entrée 'datab'

Valeur par défaut

Description

Multiplier l'entrée 'dataa' par l'entrée 'datab'

Sélectionnez la configuration souhaitée pour le multiplicateur.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 18

Envoyer des commentaires

4. LPM_MULT (Multiplicateur) IP Core 683490 | 2020.10.05

Paramètre
Quelle doit être la largeur de l'entrée 'dataa' ? Quelle doit être la largeur de l'entrée 'datab' ? Comment la largeur de la sortie 'résultat' doit-elle être déterminée ? Restreindre la largeur

Valeur
Multiplier l'entrée 'dataa' par elle-même (opération de mise au carré)
1 à 256 bits

Valeur par défaut

Description

8 bits

Spécifiez la largeur du port dataa[].

1 à 256 bits

8 bits

Spécifiez la largeur du port datab[].

Calculer automatiquement la largeur Limiter la largeur
1 à 512 bits

Calculer automatiquement la largeur

Sélectionnez la méthode souhaitée pour déterminer la largeur du port result[].

16 bits

Spécifiez la largeur du port result[].
Cette valeur ne sera effective que si vous sélectionnez Restreindre la largeur dans le paramètre Type.

4.6.2. Onglet Général 2

Tableau 10. Onglet Général 2

Paramètre

Valeur

Entrée de données

Le bus d'entrée 'datab' a-t-il une valeur constante ?

Non Oui

Type de multiplication

Quel type de

Non signé

multiplication veux-tu ? Signé

Mise en œuvre

Quelle implémentation de multiplicateur doit être utilisée ?

Utiliser l'implémentation par défaut
Utilisez le circuit multiplicateur dédié (non disponible pour toutes les familles)
Utiliser des éléments logiques

Valeur par défaut

Description

Non

Sélectionnez Oui pour spécifier la valeur constante du

bus d'entrée `datab', s'il y en a un.

Non signé

Spécifiez le format de représentation pour les entrées dataa[] et datab[].

Utiliser l'implémentation par défaut

Sélectionnez la méthode souhaitée pour déterminer la largeur du port result[].

4.6.3. Onglet Pipeline

Tableau 11. Onglet Mise en pipeline

Paramètre

Voulez-vous canaliser le Non

une fonction?

Oui

Valeur

Créer un 'aclr'

port clair asynchrone

Valeur par défaut

Description

Non

Sélectionnez Oui pour activer le registre de pipeline sur le

la sortie du multiplicateur et spécifiez la valeur souhaitée

latence de sortie en cycle d'horloge. Activer le

le registre de pipeline ajoute une latence supplémentaire au

sortir.

Non vérifié

Sélectionnez cette option pour permettre au port aclr d'utiliser l'effacement asynchrone pour le registre du pipeline.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 19

4. LPM_MULT (Multiplicateur) IP Core 683490 | 2020.10.05

Paramètre
Créer une horloge d'activation d'horloge 'clken'
Optimisation
Quel type d'optimisation souhaitez-vous ?

Valeur -
Zone de vitesse par défaut

Valeur par défaut

Description

Non vérifié

Spécifie l'activation de l'horloge haute active pour le port d'horloge du registre de pipeline

Défaut

Spécifiez l'optimisation souhaitée pour le cœur IP.
Sélectionnez Par défaut pour laisser le logiciel Intel Quartus Prime déterminer la meilleure optimisation pour le cœur IP.

4.7. Paramètres pour les appareils Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX

4.7.1. Onglet Général

Tableau 12. Onglet Général

Paramètre

Valeur

Valeur par défaut

Description

Type de configuration du multiplicateur
Largeurs des ports de données

Multiplier l'entrée 'dataa' par l'entrée 'datab'
Multiplier l'entrée 'dataa' par elle-même (opération de mise au carré)

Multiplier l'entrée 'dataa' par l'entrée 'datab'

Sélectionnez la configuration souhaitée pour le multiplicateur.

Largeur des données

1 à 256 bits

8 bits

Spécifiez la largeur du port dataa[].

Largeur de la base de données

1 à 256 bits

8 bits

Spécifiez la largeur du port datab[].

Comment la largeur de la sortie 'résultat' doit-elle être déterminée ?

Taper

Calculer automatiquement la largeur
Restreindre la largeur

Calculer automatiquement la largeur

Sélectionnez la méthode souhaitée pour déterminer la largeur du port result[].

Valeur

1 à 512 bits

16 bits

Spécifiez la largeur du port result[].
Cette valeur ne sera effective que si vous sélectionnez Restreindre la largeur dans le paramètre Type.

Largeur du résultat

1 à 512 bits

Affiche la largeur effective du port result[].

4.7.2. Onglet Général 2

Tableau 13. Onglet Général 2

Paramètre

Entrée de données

Le bus d'entrée 'datab' a-t-il une valeur constante ?

Non Oui

Valeur

Valeur par défaut

Description

Non

Sélectionnez Oui pour spécifier la valeur constante du

bus d'entrée `datab', s'il y en a un.

suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 20

Envoyer des commentaires

4. LPM_MULT (Multiplicateur) IP Core 683490 | 2020.10.05

Paramètre

Valeur

Valeur

Toute valeur supérieure à 0

Type de multiplication

Quel type de

Non signé

multiplication veux-tu ? Signé

Style de mise en œuvre

Quelle implémentation de multiplicateur doit être utilisée ?

Utiliser l'implémentation par défaut
Utilisez le circuit multiplicateur dédié
Utiliser des éléments logiques

Valeur par défaut

Description

0

Spécifiez la valeur constante de datab[] port.

Non signé

Spécifiez le format de représentation pour les entrées dataa[] et datab[].

Utiliser l'implémentation par défaut

Sélectionnez la méthode souhaitée pour déterminer la largeur du port result[].

4.7.3. Canalisation

Tableau 14. Onglet Mise en pipeline

Paramètre

Valeur

Voulez-vous canaliser la fonction ?

Pipeline

Non Oui

Type de signal d'effacement de latence

Toute valeur supérieure à 0.
AUCUN ACLR SCLR

Créer une horloge 'clken'

activer l'horloge

Quel type d'optimisation souhaitez-vous ?

Taper

Zone de vitesse par défaut

Valeur par défaut

Description

Non 1 AUCUN

Sélectionnez Oui pour activer le registre de pipeline sur la sortie du multiplicateur. L'activation du registre de pipeline ajoute une latence supplémentaire à la sortie.
Spécifiez la latence de sortie souhaitée en cycle d'horloge.
Spécifiez le type de réinitialisation du registre de pipeline. Sélectionnez AUCUN si vous n'utilisez aucun registre de pipeline. Sélectionnez ACLR pour utiliser l'effacement asynchrone pour le registre du pipeline. Cela générera le port ACLR. Sélectionnez SCLR pour utiliser l'effacement synchrone pour le registre de pipeline. Cela générera un port SCLR.
Spécifie l'activation de l'horloge haute active pour le port d'horloge du registre de pipeline

Défaut

Spécifiez l'optimisation souhaitée pour le cœur IP.
Sélectionnez Par défaut pour laisser le logiciel Intel Quartus Prime déterminer la meilleure optimisation pour le cœur IP.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 21

683490 | 2020.10.05 Envoyer des commentaires

5. LPM_ADD_SUB (additionneur/soustracteur)

Figure 4.

Le noyau IP LPM_ADD_SUB vous permet d'implémenter un additionneur ou un soustracteur pour ajouter ou soustraire des ensembles de données afin de produire une sortie contenant la somme ou la différence des valeurs d'entrée.

La figure suivante montre les ports du noyau IP LPM_ADD_SUB.

Ports LPM_ADD_SUB

LPM_ADD_SUB add_sub cin

données[]

horloge clken datab[] aclr

résultat[] débordement cout

inst

5.1. Caractéristiques
Le cœur IP LPM_ADD_SUB offre les fonctionnalités suivantes : · Génère un additionneur, un soustracteur et un additionneur/soustracteur configurable dynamiquement
les fonctions. · Supporte une largeur de données de 1 bits. · Prend en charge le format de représentation des données tel que signé et non signé. · Prend en charge le report en option (emprunt), l'effacement asynchrone et l'activation de l'horloge
ports d'entrée. · Prend en charge les ports de sortie optionnels de report (emprunt) et de débordement. · Affecte l'un ou l'autre des bus de données d'entrée à une constante. · Prend en charge le pipelining avec une latence de sortie configurable.

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

5. LPM_ADD_SUB (additionneur/soustracteur) 683490 | 2020.10.05
5.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module lpm_add_sub ( result, cout, overflow, add_sub, cin, dataa, datab, clock, clken, aclr ); paramètre lpm_type = "lpm_add_sub" ; paramètre lpm_width = 1 ; paramètre lpm_direction = "UNUSED" ; paramètre lpm_representation = 'SIGNE'; paramètre lpm_pipeline = 0 ; paramètre lpm_hint = "NON UTILISÉ" ; entrée [lpm_width-1:0] donnéesa, donnéesb ; entrée add_sub, cin ; horloge d'entrée ; clé d'entrée ; entrée aclr ; sortie [lpm_width-1:0] résultat ; sortie cout, débordement ; module final
5.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) LPM_PACK.vhd dans le répertoire bibliothèquesvhdllpm.
composant LPM_ADD_SUB générique (LPM_WIDTH : naturel ;
LPM_DIRECTION : chaîne := "INUTILISÉ" ; LPM_REPRESENTATION : string := "SIGNE" ; LPM_PIPELINE : naturel := 0; LPM_TYPE : chaîne := L_ADD_SUB; LPM_HINT : chaîne := "INUTILISÉ" ); port (DATAA : dans std_logic_vector(LPM_WIDTH-1 jusqu'à 0); DATAB : dans std_logic_vector(LPM_WIDTH-1 jusqu'à 0); ACLR : dans std_logic := '0'; CLOCK : dans std_logic := '0'; CLKEN : dans std_logic := '1'; CIN : in std_logic := 'Z'; ADD_SUB : in std_logic := '1'; RESULT : out std_logic_vector(LPM_WIDTH-1 downto 0); COUT : out std_logic; OVERFLOW : out std_logic); composant final ;
5.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHÈQUE lpm; UTILISER lpm.lpm_components.all ;
5.5. Ports
Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP LPM_ADD_SUB.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 23

5. LPM_ADD_SUB (additionneur/soustracteur) 683490 | 2020.10.05

Tableau 15. Ports d'entrée du noyau IP LPM_ADD_SUB

Nom du port

Requis

Description

Cin

Non

Report au bit de poids faible. Pour les opérations d'addition, la valeur par défaut est 0. Pour

opérations de soustraction, la valeur par défaut est 1.

données[]

Oui

Entrée de données. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTH.

base de données[]

Oui

Entrée de données. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTH.

add_sub

Non

Port d'entrée en option pour permettre une commutation dynamique entre l'additionneur et le soustracteur

les fonctions. Si le paramètre LPM_DIRECTION est utilisé, add_sub ne peut pas être utilisé. Si

omis, la valeur par défaut est ADD. Intel vous recommande d'utiliser le

Paramètre LPM_DIRECTION pour spécifier le fonctionnement de la fonction LPM_ADD_SUB,

plutôt que d'affecter une constante au port add_sub.

horloge

Non

Entrée pour une utilisation en pipeline. Le port d'horloge fournit l'entrée d'horloge pour un pipeline

opération. Pour les valeurs LPM_PIPELINE autres que 0 (par défaut), le port d'horloge doit être

activé.

clken

Non

Activation de l'horloge pour une utilisation en pipeline. Lorsque le port clken est affirmé haut, l'additionneur/

l'opération de soustraction a lieu. Lorsque le signal est faible, aucune opération ne se produit. Si

omis, la valeur par défaut est 1.

acrl

Non

Clear asynchrone pour une utilisation en pipeline. Le pipeline s'initialise à un (X) indéfini

niveau logique. Le port aclr peut être utilisé à tout moment pour réinitialiser le pipeline à tous les 0,

asynchrone au signal d'horloge.

Tableau 16. Ports de sortie du cœur IP LPM_ADD_SUB

Nom du port

Requis

Description

résultat[]

Oui

Sortie de données. La taille du port de sortie dépend du paramètre LPM_WIDTH

valeur.

cout

Non

Exécution (emprunt) du bit le plus significatif (MSB). Le port de cout a un physique

interprétation comme report (emprunt) de l'ESM. Le port cout détecte

débordement dans les opérations UNSIGNED. Le port cout fonctionne de la même manière pour

Opérations SIGNÉES et NON SIGNÉES.

débordement

Non

Sortie facultative d'exception de débordement. Le port de débordement a une interprétation physique comme

le XOR du report entrant dans le MSB avec le report sortant du MSB. Le port de débordement

affirme lorsque les résultats dépassent la précision disponible et n'est utilisé que lorsque

La valeur du paramètre LPM_REPRESENTATION est SIGNÉE.

5.6. Paramètres

Le tableau suivant répertorie les paramètres de base IP LPM_ADD_SUB.

Tableau 17. Paramètres du noyau IP LPM_ADD_SUB

Nom du paramètre LPM_WIDTH

Tapez Entier

Obligatoire Oui

Description
Spécifie les largeurs des ports dataa[], datab[] et result[].

LPM_DIRECTION

Chaîne

Non

Les valeurs sont ADD, SUB et UNUSED. S'il est omis, la valeur par défaut est DEFAULT, ce qui indique au paramètre de prendre sa valeur à partir du port add_sub. Le port add_sub ne peut pas être utilisé si LPM_DIRECTION est utilisé. Intel vous recommande d'utiliser le paramètre LPM_DIRECTION pour spécifier le fonctionnement de la fonction LPM_ADD_SUB, plutôt que d'affecter une constante au port add_sub.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 24

Envoyer des commentaires

5. LPM_ADD_SUB (additionneur/soustracteur) 683490 | 2020.10.05

Nom du paramètre LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

Type Chaîne Entier Chaîne Chaîne Chaîne Entier
Chaîne

Obligatoire Non Non Non Non Non Non
Non

Description
Spécifie le type d'ajout effectué. Les valeurs sont SIGNE et NON SIGNE. S'il est omis, la valeur par défaut est SIGNE. Lorsque ce paramètre est défini sur SIGNE, l'additionneur/soustracteur interprète les données entrées comme un complément à deux signé.
Spécifie le nombre de cycles d'horloge de latence associés à la sortie result[]. Une valeur de zéro (0) indique qu'aucune latence n'existe et qu'une fonction purement combinatoire sera instanciée. En cas d'omission, la valeur par défaut est 0 (sans pipeline).
Vous permet de spécifier des paramètres spécifiques à Intel dans la conception VHDL files (.vhd). La valeur par défaut est UNUSED.
Identifie le nom d'entité de la bibliothèque de modules paramétrés (LPM) dans la conception VHDL files.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre ONE_INPUT_IS_CONSTANT dans la conception VHDL files. Les valeurs sont OUI, NON et INUTILISÉ. Fournit une meilleure optimisation si une entrée est constante. S'il est omis, la valeur par défaut est NON.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre MAXIMIZE_SPEED dans la conception VHDL files. Vous pouvez spécifier une valeur comprise entre 0 et 10. S'il est utilisé, le logiciel Intel Quartus Prime tente d'optimiser une instance spécifique de la fonction LPM_ADD_SUB pour la vitesse plutôt que la routabilité, et remplace le paramètre de l'option logique Technique d'optimisation. Si MAXIMIZE_SPEED n'est pas utilisé, la valeur de l'option Technique d'optimisation est utilisée à la place. Si le paramètre pour MAXIMIZE_SPEED est égal ou supérieur à 6, le compilateur optimise le cœur IP LPM_ADD_SUB pour une vitesse supérieure à l'aide de chaînes de transport ; si le réglage est égal ou inférieur à 5, le compilateur implémente la conception sans chaînes de transport. Ce paramètre doit être spécifié pour les appareils Cyclone, Stratix et Stratix GX uniquement lorsque le port add_sub n'est pas utilisé.
Ce paramètre est utilisé à des fins de modélisation et de simulation comportementale. L'éditeur de paramètres calcule la valeur de ce paramètre.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 25

683490 | 2020.10.05 Envoyer des commentaires

6. LPM_COMPARE (Comparateur)

Figure 5.

Le noyau IP LPM_COMPARE compare la valeur de deux ensembles de données pour déterminer la relation entre eux. Dans sa forme la plus simple, vous pouvez utiliser une porte OU exclusif pour déterminer si deux bits de données sont égaux.

La figure suivante montre les ports du noyau IP LPM_COMPARE.

Ports LPM_COMPARE

LPM_COMPARE

clken

aube

aeb

données[]

agb

base de données[]

âgeb

horloge

ou

acrl

alb

inst

6.1. Caractéristiques
Le noyau IP LPM_COMPARE offre les fonctionnalités suivantes : · Génère une fonction de comparaison pour comparer deux ensembles de données · Prend en charge une largeur de données de 1 bits · Prend en charge le format de représentation des données tel que signé et non signé · Produit les types de sortie suivants :
— alb (l'entrée A est inférieure à l'entrée B) — aeb (l'entrée A est égale à l'entrée B) — agb (l'entrée A est supérieure à l'entrée B) — ageb (l'entrée A est supérieure ou égale à l'entrée B) — aneb ( l'entrée A n'est pas égale à l'entrée B) — aleb (l'entrée A est inférieure ou égale à l'entrée B) · Prend en charge les ports d'entrée d'effacement asynchrone et d'activation d'horloge en option · Attribue l'entrée datab[] à une constante · Prend en charge le pipelining avec une latence de sortie configurable

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

6. LPM_COMPARE (Comparateur) 683490 | 2020.10.05
6.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, horloge, clken, aclr ); paramètre lpm_type = "lpm_compare" ; paramètre lpm_width = 1 ; paramètre lpm_representation = "UNSIGNED" ; paramètre lpm_pipeline = 0 ; paramètre lpm_hint = "NON UTILISÉ" ; entrée [lpm_width-1:0] donnéesa, donnéesb ; horloge d'entrée ; clé d'entrée ; entrée aclr ; sortie alb, aeb, agb, aleb, aneb, ageb ; module final
6.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) LPM_PACK.vhd dans le répertoire bibliothèquesvhdllpm.
composant LPM_COMPARE générique (LPM_WIDTH : naturel ;
LPM_REPRESENTATION : chaîne := "SANS SIGNE" ; LPM_PIPELINE : naturel := 0; LPM_TYPE : chaîne := L_COMPARE ; LPM_HINT : chaîne := "INUTILISÉ" ); port (DATAA : dans std_logic_vector(LPM_WIDTH-1 jusqu'à 0); DATAB : dans std_logic_vector(LPM_WIDTH-1 jusqu'à 0); ACLR : dans std_logic := '0'; CLOCK : dans std_logic := '0'; CLKEN : dans 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); composant final ;
6.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHÈQUE lpm; UTILISER lpm.lpm_components.all ;
6.5. Ports
Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP LMP_COMPARE.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 27

6. LPM_COMPARE (Comparateur) 683490 | 2020.10.05

Tableau 18. Ports d'entrée du noyau IP LPM_COMPARE

Nom du port

Requis

Description

données[]

Oui

Entrée de données. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTH.

base de données[]

Oui

Entrée de données. La taille du port d'entrée dépend de la valeur du paramètre LPM_WIDTH.

horloge

Non

Entrée d'horloge pour une utilisation en pipeline. Le port d'horloge fournit l'entrée d'horloge pour un pipeline

opération. Pour les valeurs LPM_PIPELINE autres que 0 (par défaut), le port d'horloge doit être

activé.

clken

Non

Activation de l'horloge pour une utilisation en pipeline. Lorsque le port clken est affirmé haut, le

opération de comparaison a lieu. Lorsque le signal est faible, aucune opération ne se produit. Si

omis, la valeur par défaut est 1.

acrl

Non

Clear asynchrone pour une utilisation en pipeline. Le pipeline s'initialise avec une logique indéfinie (X)

niveau. Le port aclr peut être utilisé à tout moment pour réinitialiser le pipeline à tous les 0,

asynchrone au signal d'horloge.

Tableau 19. Ports de sortie du noyau IP LPM_COMPARE

Nom du port

Requis

Description

aube

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A est inférieure à l'entrée B.

aeb

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A est égale à l'entrée B.

agb

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A est supérieure à l'entrée B.

âgeb

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A est supérieure ou égale à l'entrée

B.

ou

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A n'est pas égale à l'entrée B.

alb

Non

Port de sortie pour le comparateur. Confirmé si l'entrée A est inférieure ou égale à l'entrée B.

6.6. Paramètres

Le tableau suivant répertorie les paramètres du cœur IP LPM_COMPARE.

Tableau 20. Paramètres du noyau IP LPM_COMPARE

Nom du paramètre

Taper

Requis

LPM_WIDTH

Entier Oui

LPM_REPRESENTATION

Chaîne

Non

LPM_PIPELINE

Entier Non

LPM_HINT

Chaîne

Non

Description
Spécifie les largeurs des ports dataa[] et datab[].
Spécifie le type de comparaison effectuée. Les valeurs sont SIGNE et NON SIGNE. S'il est omis, la valeur par défaut est UNSIGNED. Lorsque la valeur de ce paramètre est définie sur SIGNE, le comparateur interprète l'entrée de données comme un complément à deux signé.
Spécifie le nombre de cycles d'horloge de latence associés à la sortie alb, aeb, agb, ageb, aleb ou aneb. Une valeur de zéro (0) indique qu'aucune latence n'existe et qu'une fonction purement combinatoire sera instanciée. S'il est omis, la valeur par défaut est 0 (sans pipeline).
Vous permet de spécifier des paramètres spécifiques à Intel dans la conception VHDL files (.vhd). La valeur par défaut est UNUSED.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 28

Envoyer des commentaires

6. LPM_COMPARE (Comparateur) 683490 | 2020.10.05
Nom du paramètre LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT

Type Chaîne Chaîne
Chaîne

Obligatoire Non Non
Non

Description
Identifie le nom d'entité de la bibliothèque de modules paramétrés (LPM) dans la conception VHDL files.
Ce paramètre est utilisé à des fins de modélisation et de simulation comportementale. L'éditeur de paramètres calcule la valeur de ce paramètre.
Paramètre spécifique à Intel. Vous devez utiliser le paramètre LPM_HINT pour spécifier le paramètre ONE_INPUT_IS_CONSTANT dans la conception VHDL files. Les valeurs sont OUI, NON ou INUTILISÉ. Fournit une meilleure optimisation si une entrée est constante. S'il est omis, la valeur par défaut est NON.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 29

683490 | 2020.10.05 Envoyer des commentaires

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core

Figure 6.

Intel fournit le noyau IP ALTECC pour implémenter la fonctionnalité ECC. ECC détecte les données corrompues qui se produisent du côté récepteur pendant la transmission des données. Cette méthode de correction d'erreurs est la mieux adaptée aux situations où les erreurs se produisent de manière aléatoire plutôt qu'en rafales.

L'ECC détecte les erreurs par le processus d'encodage et de décodage des données. Par exempleampAinsi, lorsque l'ECC est appliqué dans une application de transmission, les données lues à partir de la source sont codées avant d'être envoyées au récepteur. La sortie (mot de code) du codeur est constituée des données brutes auxquelles est ajouté le nombre de bits de parité. Le nombre exact de bits de parité ajoutés dépend du nombre de bits dans les données d'entrée. Le mot de code généré est ensuite transmis à la destination.

Le récepteur reçoit le mot de code et le décode. Les informations obtenues par le décodeur déterminent si une erreur est détectée. Le décodeur détecte les erreurs sur un seul bit et sur deux bits, mais ne peut corriger que les erreurs sur un seul bit dans les données corrompues. Ce type d'ECC est une correction d'erreur simple et une double détection d'erreur (SECDED).

Vous pouvez configurer les fonctions d'encodeur et de décodeur du noyau IP ALTECC. L'entrée de données dans le codeur est codée pour générer un mot de code qui est une combinaison de l'entrée de données et des bits de parité générés. Le mot de code généré est transmis au module décodeur pour décodage juste avant d'atteindre son bloc de destination. Le décodeur génère un vecteur de syndrome pour déterminer s'il y a une erreur dans le mot de code reçu. Le décodeur corrige les données uniquement si l'erreur sur un seul bit provient des bits de données. Aucun signal n'est signalé si l'erreur sur un seul bit provient des bits de parité. Le décodeur a également des signaux de drapeau pour montrer l'état des données reçues et l'action entreprise par le décodeur, le cas échéant.

Les figures suivantes montrent les ports du noyau ALTECC IP.

Ports d'encodeur ALTECC

ALTECC_ENCODER

Les données[]

q[]

horloge

horloge

acrl

inst

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core 683490 | 2020.10.05

Figure 7. Ports du décodeur ALTECC

ALTECC_DECODER

data[] horloge clocken

q[] erreur_détectée erreur_corrigée
erreur fatale

acrl

inst

7.1. Caractéristiques de l'encodeur ALTECC

Le noyau IP de l'encodeur ALTECC offre les fonctionnalités suivantes : · Effectue l'encodage des données à l'aide du schéma de codage de Hamming · Prend en charge une largeur de données de 2 bits · Prend en charge le format de représentation des données signées et non signées · Prend en charge le pipeline avec une latence de sortie d'un ou deux cycles d'horloge · Prend en charge en option ports d'effacement et d'activation d'horloge asynchrones

Le noyau IP de l'encodeur ALTECC reçoit et encode les données à l'aide du schéma de codage de Hamming. Le schéma de codage de Hamming dérive les bits de parité et les ajoute aux données d'origine pour produire le mot de code de sortie. Le nombre de bits de parité ajoutés dépend de la largeur des données.

Le tableau suivant répertorie le nombre de bits de parité ajoutés pour différentes plages de largeurs de données. La colonne Total Bits représente le nombre total de bits de données d'entrée et de bits de parité ajoutés.

Tableau 21.

Nombre de bits de parité et mot de code selon la largeur des données

Largeur des données

Nombre de bits de parité

Nombre total de bits (mot de code)

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 dérivation des bits de parité utilise une vérification de parité paire. Le bit 1 supplémentaire (indiqué dans le tableau par +1) est ajouté aux bits de parité en tant que MSB du mot de code. Cela garantit que le mot de code a un nombre pair de 1. Par exempleample, si la largeur des données est de 4 bits, 4 bits de parité sont ajoutés aux données pour devenir un mot de code avec un total de 8 bits. Si 7 bits du LSB du mot de code à 8 bits ont un nombre impair de 1, le 8e bit (MSB) du mot de code est 1, ce qui rend pair le nombre total de 1 dans le mot de code.
La figure suivante montre le mot de code généré et la disposition des bits de parité et des bits de données dans une entrée de données 8 bits.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 31

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core 683490 | 2020.10.05

Figure 8.

Disposition des bits de parité et des bits de données dans un mot de code généré à 8 bits

MSB

LSB

4 bits de parité

4 bits de données

8

1

Le noyau IP de l'encodeur ALTECC n'accepte que des largeurs d'entrée de 2 à 64 bits à la fois. Les largeurs d'entrée de 12 bits, 29 bits et 64 bits, qui sont parfaitement adaptées aux périphériques Intel, génèrent des sorties de 18 bits, 36 bits et 72 bits respectivement. Vous pouvez contrôler la limitation de la sélection binaire dans l'éditeur de paramètres.

7.2. Prototype Verilog HDL (ALTECC_ENCODER)
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module altecc_encoder #( paramètre defined_device_family = "inutilisé", paramètre lpm_pipeline = 0, paramètre width_codeword = 8, paramètre width_dataword = 8, paramètre lpm_type = "altecc_encoder", paramètre lpm_hint = "inutilisé") (entrée fil aclr, entrée fil horloge, entrée fil d'horloge, fil d'entrée [width_dataword-1:0] données, fil de sortie [width_codeword-1:0] q); module final

7.3. Prototype Verilog HDL (ALTECC_DECODER)
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) lpm.v dans le répertoire edasynthèse.
module altecc_decoder #( paramètre defined_device_family = "inutilisé", paramètre lpm_pipeline = 0, paramètre width_codeword = 8, paramètre width_dataword = 8, paramètre lpm_type = "altecc_decoder", paramètre lpm_hint = "inutilisé") ( entrée fil aclr, entrée fil horloge, entrée fil d'horloge, fil d'entrée [width_codeword-1:0] données, fil de sortie err_corrected, fil de sortie err_detected, fil de sortie err_fatal, fil de sortie [width_dataword-1:0] q); module final

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 32

Envoyer des commentaires

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core 683490 | 2020.10.05
7.4. Déclaration de composant VHDL (ALTECC_ENCODER)
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) altera_mf_components.vhd dans le répertoire libraryvhdlatera_mf.
composant altecc_encoder générique (famille_device_intention:string := "inutilisé"; 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 jusqu'à 0); q:out std_logic_vector(width_codeword -1 jusqu'à 0)); composant final ;
7.5. Déclaration de composant VHDL (ALTECC_DECODER)
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) altera_mf_components.vhd dans le répertoire libraryvhdlatera_mf.
composant altecc_decoder generic ( wanted_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 jusqu'à 0); syn_e : out std_logic); composant final ;
7.6. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHEQUE altera_mf; UTILISEZ altera_mf.altera_mf_components.all ;
7.7. Ports d'encodeur
Les tableaux suivants répertorient les ports d'entrée et de sortie pour le noyau IP de l'encodeur ALTECC.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 33

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core 683490 | 2020.10.05

Tableau 22. Ports d'entrée du codeur ALTECC

Nom du port

Requis

Description

Les données[]

Oui

Port d'entrée de données. La taille du port d'entrée dépend du WIDTH_DATAWORD

valeur du paramètre. Le port data[] contient les données brutes à encoder.

horloge

Oui

Port d'entrée d'horloge qui fournit le signal d'horloge pour synchroniser l'opération d'encodage.

Le port d'horloge est requis lorsque la valeur LPM_PIPELINE est supérieure à 0.

horloge

Non

Activer l'horloge. Si omis, la valeur par défaut est 1.

acrl

Non

Entrée claire asynchrone. Le signal actif high aclr peut être utilisé à tout moment pour

effacer les registres de manière asynchrone.

Tableau 23. Ports de sortie du codeur ALTECC

Nom du port q[]

Obligatoire Oui

Description
Port de sortie de données codées. La taille du port de sortie dépend de la valeur du paramètre WIDTH_CODEWORD.

7.8. Ports du décodeur

Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP du décodeur ALTECC.

Tableau 24. Ports d'entrée du décodeur ALTECC

Nom du port

Requis

Description

Les données[]

Oui

Port d'entrée de données. La taille du port d'entrée dépend de la valeur du paramètre WIDTH_CODEWORD.

horloge

Oui

Port d'entrée d'horloge qui fournit le signal d'horloge pour synchroniser l'opération d'encodage. Le port d'horloge est requis lorsque la valeur LPM_PIPELINE est supérieure à 0.

horloge

Non

Activer l'horloge. Si omis, la valeur par défaut est 1.

acrl

Non

Entrée claire asynchrone. Le signal actif high aclr peut être utilisé à tout moment pour effacer de manière asynchrone les registres.

Tableau 25. Ports de sortie du décodeur ALTECC

Nom du port q[]

Obligatoire Oui

Description
Port de sortie des données décodées. La taille du port de sortie dépend de la valeur du paramètre WIDTH_DATAWORD.

err_detected Oui

Signal de drapeau pour refléter l'état des données reçues et spécifier les erreurs trouvées.

err_correcte Oui d

Signal de drapeau pour refléter l'état des données reçues. Indique une erreur sur un seul bit trouvée et corrigée. Vous pouvez utiliser les données car elles ont déjà été corrigées.

erreur fatale

Oui

Signal de drapeau pour refléter l'état des données reçues. Indique une erreur à deux bits trouvée, mais non corrigée. Vous ne devez pas utiliser les données si ce signal est activé.

syn_e

Non

Un signal de sortie qui passera à l'état haut chaque fois qu'une erreur sur un seul bit est détectée sur la parité

morceaux.

7.9. Paramètres de l'encodeur
Le tableau suivant répertorie les paramètres du noyau IP de l'encodeur ALTECC.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 34

Envoyer des commentaires

7. ALTECC (code de correction d'erreur : encodeur/décodeur) IP Core 683490 | 2020.10.05

Tableau 26. Paramètres du codeur ALTECC

Nom du paramètre

Taper

Requis

Description

WIDTH_DATAWORD

Entier Oui

Spécifie la largeur des données brutes. Les valeurs sont comprises entre 2 et 64. En cas d'omission, la valeur par défaut est 8.

WIDTH_CODEWORD

Entier Oui

Spécifie la largeur du mot de code correspondant. Les valeurs valides sont comprises entre 6 et 72, à l'exclusion de 9, 17, 33 et 65. En cas d'omission, la valeur par défaut est 13.

LPM_PIPELINE

Entier Non

Spécifie le pipeline du circuit. Les valeurs sont comprises entre 0 et 2. Si la valeur est 0, les ports ne sont pas enregistrés. Si la valeur est 1, les ports de sortie sont enregistrés. Si la valeur est 2, les ports d'entrée et de sortie sont enregistrés. Si omis, la valeur par défaut est 0.

7.10. Paramètres du décodeur

Le tableau suivant répertorie les paramètres du noyau IP du décodeur ALTECC.

Tableau 27. Paramètres du décodeur ALTECC

Nom du paramètre WIDTH_DATAWORD

Tapez Entier

Requis

Description

Oui

Spécifie la largeur des données brutes. Les valeurs sont comprises entre 2 et 64.

la valeur par défaut est 8.

WIDTH_CODEWORD

Entier

Oui

Spécifie la largeur du mot de code correspondant. Les valeurs sont 6

à 72, à l'exclusion de 9, 17, 33 et 65. Si omis, la valeur par défaut

est 13.

LPM_PIPELINE

Entier

Non

Spécifie le registre du circuit. Les valeurs vont de 0 à 2. Si le

la valeur est 0, aucun registre n'est implémenté. Si la valeur est 1, le

sortie est enregistrée. Si la valeur est 2, l'entrée et le

sortie sont enregistrées. Si la valeur est supérieure à 2, des

des registres sont implémentés en sortie pour les

latences. Si omis, la valeur par défaut est 0.

Créer un port 'syn_e'

Entier

Non

Activez ce paramètre pour créer un port syn_e.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 35

683490 | 2020.10.05 Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder

Figure 9.

Le cœur IP Intel FPGA Multiply Adder (dispositifs Intel Stratix 10, Intel Arria 10 et Intel Cyclone 10 GX) ou ALTERA_MULT_ADD (dispositifs Arria V, Stratix V et Cyclone V) vous permet d'implémenter un multiplicateur-additionneur.

La figure suivante montre les ports du Intel FPGA Multiply Adder ou du cœur IP ALTERA_MULT_ADD.

Intel FPGA Multiply Adder ou ports ALTERA_MULT_ADD

Additionneur de multiplication Intel FPGA ou ALTERA_MULT_ADD

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

scanouta[] résultat[]

aclr0 aclr1

inst
Un multiplicateur-additionneur accepte des paires d'entrées, multiplie les valeurs ensemble, puis ajoute ou soustrait des produits de toutes les autres paires.
Si toutes les largeurs de données d'entrée ont une largeur de 9 bits ou moins, la fonction utilise la configuration du multiplicateur d'entrée 9 x 9 bits dans le bloc DSP pour les périphériques qui prennent en charge la configuration 9 x 9. Sinon, le bloc DSP utilise des multiplicateurs d'entrée 18 × 18 bits pour traiter les données avec des largeurs comprises entre 10 bits et 18 bits. Si plusieurs cœurs IP Intel FPGA Multiply Adder ou ALTERA_MULT_ADD se produisent dans une conception, les fonctions sont distribuées à

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05
autant de blocs DSP différents que possible afin que le routage vers ces blocs soit plus flexible. Moins de multiplicateurs par bloc DSP permettent plus de choix de routage dans le bloc en minimisant les chemins vers le reste de l'appareil.
Les registres et les registres de pipeline supplémentaires pour les signaux suivants sont également placés à l'intérieur du bloc DSP : · Entrée de données · Sélection signée ou non signée · Sélection d'addition ou de soustraction · Produits de multiplicateurs
Dans le cas du résultat de sortie, le premier registre est placé dans le bloc DSP. Cependant, les registres de latence supplémentaires sont placés dans des éléments logiques à l'extérieur du bloc. Les périphériques du bloc DSP, y compris les entrées de données du multiplicateur, les entrées de signal de commande et les sorties de l'additionneur, utilisent un routage régulier pour communiquer avec le reste de l'appareil. Toutes les connexions de la fonction utilisent un routage dédié à l'intérieur du bloc DSP. Ce routage dédié inclut les chaînes de registres à décalage lorsque vous sélectionnez l'option pour décaler les données d'entrée enregistrées d'un multiplicateur d'un multiplicateur vers un multiplicateur adjacent.
Pour plus d'informations sur les blocs DSP dans l'une des séries d'appareils Stratix V et Arria V, reportez-vous au chapitre Blocs DSP des manuels respectifs sur la page Documentation et documentation technique.
Informations connexes AN 306 : Implémentation de multiplicateurs dans les dispositifs FPGA
Fournit plus d'informations sur la mise en œuvre de multiplicateurs à l'aide de DSP et de blocs de mémoire dans les périphériques Intel FPGA.
8.1. Caractéristiques
L'Intel FPGA Multiply Adder ou ALTERA_MULT_ADD IP core offre les fonctionnalités suivantes : · Génère un multiplicateur pour effectuer des opérations de multiplication de deux complexes
nombres Remarque : lors de la création de multiplicateurs supérieurs à la taille nativement prise en charge, il se peut/
aura un impact sur les performances résultant de la mise en cascade des blocs DSP. · Prend en charge des largeurs de données de 1 256 bits · Prend en charge le format de représentation des données signées et non signées · Prend en charge le pipelining avec une latence d'entrée configurable · Fournit une option pour basculer dynamiquement entre la prise en charge des données signées et non signées · Prend en charge le mode de registre de retard systolique · Prend en charge le pré-additionneur avec 8 coefficients de précharge par multiplicateur · Prend en charge la constante de précharge pour compléter la rétroaction de l'accumulateur

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 37

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

8.1.1. Pré-additionneur
Avec le pré-additionneur, les additions ou les soustractions sont effectuées avant d'alimenter le multiplicateur.
Il existe cinq modes de pré-additionneur : · Mode simple · Mode coefficient · Mode d'entrée · Mode carré · Mode constant

Note:

Lorsque le pré-additionneur est utilisé (coefficient de pré-additionneur/entrée/mode carré), toutes les entrées de données du multiplicateur doivent avoir le même réglage d'horloge.

8.1.1.1. Mode simple pré-additionneur

Dans ce mode, les deux opérandes dérivent des ports d'entrée et le pré-additionneur n'est ni utilisé ni contourné. C'est le mode par défaut.

Figure 10. Mode simple pré-additionneur
a0 b0

Mult0

résultat

8.1.1.2. Mode coefficient pré-additionneur
Dans ce mode, un opérande multiplicateur dérive du pré-additionneur, et l'autre opérande dérive du stockage interne des coefficients. Le stockage des coefficients permet jusqu'à 8 constantes prédéfinies. Les signaux de sélection de coefficients sont coefsel[0..3].
Ce mode est exprimé dans l'équation suivante.

Ce qui suit montre le mode de coefficient de pré-additionneur d'un multiplicateur.

Figure 11. Mode coefficient pré-additionneur

Préparateur

a0

Mult0

+/-

résultat

b0

coefsel0 coef

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 38

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05
8.1.1.3. Mode d'entrée pré-additionneur Dans ce mode, un opérande multiplicateur dérive du pré-additionneur et l'autre opérande dérive du port d'entrée datac[]. Ce mode est exprimé dans l'équation suivante.

Ce qui suit montre le mode d'entrée pré-additionneur d'un multiplicateur.

Figure 12. Mode d'entrée du pré-additionneur
a0 b0

Mult0

+/-

résultat

c0

8.1.1.4. Mode carré pré-additionneur Ce mode est exprimé dans l'équation suivante.

Ce qui suit montre le mode carré pré-additionneur de deux multiplicateurs.

Figure 13. Mode carré du pré-additionneur
a0 b0

Mult0

+/-

résultat

8.1.1.5. Mode constant pré-additionneur
Dans ce mode, un opérande multiplicateur dérive du port d'entrée, et l'autre opérande dérive du stockage interne des coefficients. Le stockage des coefficients permet jusqu'à 8 constantes prédéfinies. Les signaux de sélection de coefficients sont coefsel[0..3].
Ce mode est exprimé dans l'équation suivante.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 39

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

La figure suivante montre le mode constant pré-additionneur d'un multiplicateur.

Figure 14. Mode constant de pré-additionneur
a0

Mult0

résultat

coefsel0
coefficient
8.1.2. Registre des retards systoliques
Dans une architecture systolique, les données d'entrée sont introduites dans une cascade de registres agissant comme un tampon de données. Chaque registre délivre une entrée sample à un multiplicateur où il est multiplié par le coefficient respectif. L'additionneur de chaîne stocke les résultats progressivement combinés du multiplicateur et le résultat précédemment enregistré du port d'entrée chainin[] pour former le résultat final. Chaque élément multiplier-additionner doit être retardé d'un seul cycle afin que les résultats se synchronisent correctement lorsqu'ils sont additionnés. Chaque retard successif est utilisé pour adresser à la fois la mémoire de coefficients et le tampon de données de leurs éléments de multiplication-addition respectifs. Par exempleample, un seul retard pour le deuxième élément multiplier-ajouter, deux retards pour le troisième élément multiplier-ajouter, et ainsi de suite.
Figure 15. Registres systoliques
Registres systoliques

x(t)c(0)

S-1

S-1

c(1)

S-1

S-1

c(2)

S-1

S-1

c(N-1)

S-1

S-1

S-1

S -1 an(t)

x(t) représente les résultats d'un flux continu d'entrée samples et y(t)
représente la somme d'un ensemble d'entrées samples, et dans le temps, multipliés par leur
coefficients respectifs. Les résultats d'entrée et de sortie s'écoulent de gauche à droite. Les c(0) à c(N-1) désignent les coefficients. Les registres de retard systolique sont désignés par S-1, tandis que le 1 représente un seul retard d'horloge. Les registres de retard systolique sont ajoutés à
les entrées et les sorties pour le pipelining d'une manière qui garantit les résultats de la
l'opérande multiplicateur et les sommes accumulées restent synchronisées. Cet élément de traitement
est répliqué pour former un circuit qui calcule la fonction de filtrage. Cette fonction est
exprimée dans l'équation suivante.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 40

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

N représente le nombre de cycles de données entrées dans l'accumulateur, y(t) représente la sortie à l'instant t, A(t) représente l'entrée à l'instant t et B(i) sont les coefficients. Le t et le i dans l'équation correspondent à un instant particulier dans le temps, donc pour calculer la sortie sample y(t) au temps t, un groupe d'entrées samples à N moments différents dans le temps, ou A(n), A(n-1), A(n-2), … A(n-N+1) est nécessaire. Le groupe de N entrées sampsont multipliés par N coefficients et additionnés pour former le résultat final y.
L'architecture de registre systolique n'est disponible que pour les modes somme de 2 et somme de 4. Pour les deux modes d'architecture de registre systolique, le premier signal chainin doit être lié à 0.
La figure suivante montre la mise en œuvre du registre de retard systolique de 2 multiplicateurs.
Figure 16. Mise en œuvre du registre de retard systolique de 2 multiplicateurs
enchainer

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

résultat
La somme de deux multiplicateurs est exprimée dans l'équation suivante.
La figure suivante montre la mise en œuvre du registre de retard systolique de 4 multiplicateurs.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 41

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Figure 17. Mise en œuvre du registre de retard systolique de 4 multiplicateurs
enchainer

a0

Mult0

+/-

b0

a1

Mult1

+/-

b1

a2

Mult2

+/-

b2

a3

Mult3

+/-

b3

résultat
La somme de quatre multiplicateurs est exprimée dans l'équation suivante. Figure 18. Somme de 4 multiplicateurs
Les listes suivantes l'advantages de la mise en œuvre du registre systolique : · Réduit l'utilisation des ressources DSP · Permet un mappage efficace dans le bloc DSP à l'aide de la structure d'additionneur de chaîne

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 42

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

8.1.3. Constante de précharge
La constante de précharge contrôle l'opérande de l'accumulateur et complète la rétroaction de l'accumulateur. La LOADCONST_VALUE valide est comprise entre 0. La valeur constante est égale à 64N, où N = LOADCONST_VALUE. Lorsque LOADCONST_VALUE est défini sur 2, la valeur constante est égale à 64. Cette fonction peut être utilisée comme arrondi biaisé.
La figure suivante montre l'implémentation de la constante de préchargement.
Figure 19. Constante de précharge

Retour d'accumulateur

constante

a0

Mult0

+/-

b0

a1

Mult1

+/b1

résultat

accum_sload sload_accum

Reportez-vous aux cœurs IP suivants pour d'autres implémentations de multiplicateurs : · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Double Accumulateur
La fonction de double accumulateur ajoute un registre supplémentaire dans le chemin de retour de l'accumulateur. Le registre à double accumulateur suit le registre de sortie, qui comprend l'horloge, l'activation de l'horloge et l'aclr. Le registre d'accumulateur supplémentaire renvoie le résultat avec un délai d'un cycle. Cette fonctionnalité vous permet d'avoir deux canaux d'accumulateur avec le même nombre de ressources.
La figure suivante montre la mise en œuvre du double accumulateur.

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 43

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Figure 20. Accumulateur double

Registre de double accu mulation

Rétroaction de l'accumulateur

a0

Mult0

+/-

b0

a1

Mult1

+/b1

Résultat de sortie Registre de sortie

8.2. Prototype HDL Verilog
Vous pouvez trouver le prototype Intel FPGA Multiply Adder ou ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) dans le répertoire bibliothèquesmégafonctions.
8.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans altera_lnsim_components.vhd dans le bibliothèquesvhdl répertoire altera_lnsim.
8.4. Déclaration VHDL LIBRARY_USE
La déclaration VHDL LIBRARY-USE n'est pas requise si vous utilisez la déclaration de composant VHDL.
BIBLIOTHEQUE altera_mf; UTILISEZ altera_mf.altera_mf_components.all ;

8.5. Signaux

Les tableaux suivants répertorient les signaux d'entrée et de sortie du noyau IP FPGA Intel Multiply Adder ou ALTERA_MULT_ADD.

Tableau 28. Signaux d'entrée de l'additionneur de multiplication Intel FPGA IPou ALTERA_MULT_ADD

Signal

Requis

Description

donnéesa_0[]/donnéesa_1[]/

Oui

donnéesa_2[]/donnéesa_3[]

Entrée de données dans le multiplicateur. Port d'entrée [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] large
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 44

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Signal datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] signe
signeb
scanina[] accu_sload

Obligatoire Oui Non
Non non Non Non Non
Non
Non Non

Description
Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Entrée de données dans le multiplicateur. Signal d'entrée [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] large Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Entrée de données dans le multiplicateur. Signal d'entrée [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] large Sélectionnez INPUT pour le paramètre Select preadder mode pour activer ces signaux. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Port d'entrée d'horloge vers le registre correspondant. Ce signal peut être utilisé par n'importe quel registre du cœur IP. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Entrée claire asynchrone dans le registre correspondant. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Entrée d'effacement synchrone dans le registre correspondant. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée X pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie
Activer l'entrée du signal dans le registre correspondant. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ces signaux. Lorsque vous fournissez une valeur X à ces signaux, la valeur X est propagée sur les signaux de sortie.
Spécifie la représentation numérique de l'entrée A du multiplicateur. Si le signal signa est haut, le multiplicateur traite le signal de l'entrée A du multiplicateur comme un nombre signé. Si le signal signa est bas, le multiplicateur traite le signal d'entrée A du multiplicateur comme un nombre non signé. Sélectionnez VARIABLE pour le paramètre Quel est le format de représentation des entrées Multiplicateurs A pour activer ce signal. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Spécifie la représentation numérique du signal d'entrée B du multiplicateur. Si le signal signb est haut, le multiplicateur traite le signal d'entrée B du multiplicateur comme un nombre signé en complément à deux. Si le signal signb est bas, le multiplicateur traite le signal d'entrée B du multiplicateur comme un nombre non signé. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Entrée pour la chaîne de balayage A. Signal d'entrée [WIDTH_A – 1, … 0] large. Lorsque le paramètre INPUT_SOURCE_A a la valeur SCANA, le signal scanina[] est requis.
Spécifie dynamiquement si la valeur de l'accumulateur est constante. Si le signal accum_sload est bas, alors la sortie du multiplicateur est chargée dans l'accumulateur. N'utilisez pas accum_sload et sload_accum simultanément.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 45

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Signal sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

Obligatoire Non
Non Non
Non
Non Non Non Non

Description
Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Spécifie dynamiquement si la valeur de l'accumulateur est constante. Si le signal sload_accum est haut, alors la sortie du multiplicateur est chargée dans l'accumulateur. N'utilisez pas accum_sload et sload_accum simultanément. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Bus d'entrée de résultat de l'additionneur des s précédentstage. Signal d'entrée [WIDTH_CHAININ – 1, … 0] large.
Effectuez une addition ou une soustraction aux sorties de la première paire de multiplicateurs. Entrée 1 au signal addnsub1 pour additionner les sorties de la première paire de multiplicateurs. Entrez 0 au signal addnsub1 pour soustraire les sorties de la première paire de multiplicateurs. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Effectuez une addition ou une soustraction aux sorties de la première paire de multiplicateurs. Entrée 1 au signal addnsub3 pour additionner les sorties de la deuxième paire de multiplicateurs. Entrez 0 au signal addnsub3 pour soustraire les sorties de la première paire de multiplicateurs. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Signal d'entrée de coefficient [0:3] vers le premier multiplicateur. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Signal d'entrée de coefficient [0: 3] vers le deuxième multiplicateur. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Signal d'entrée de coefficient [0:3] vers le troisième multiplicateur. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.
Signal d'entrée de coefficient [0:3] au quatrième multiplicateur. Le modèle de simulation pour cette IP prend en charge une valeur d'entrée indéterminée (X) pour ce signal. Lorsque vous fournissez une valeur X à cette entrée, la valeur X est propagée sur les signaux de sortie.

Tableau 29. Signaux de sortie Intel FPGA IP de l'additionneur multiplicateur

Signal

Requis

Description

résultat []

Oui

Signal de sortie du multiplicateur. Signal de sortie [WIDTH_RESULT – 1 … 0] large

Le modèle de simulation pour cette propriété intellectuelle prend en charge une valeur de sortie indéterminée (X). Lorsque vous fournissez la valeur X comme entrée, la valeur X est propagée sur ce signal.

scanoute []

Non

Sortie de la chaîne de balayage A. Signal de sortie [WIDTH_A – 1..0] large.

Sélectionnez plus de 2 pour le nombre de multiplicateurs et choisissez Scan chain input pour Quelle est l'entrée A du multiplicateur connecté au paramètre pour activer ce signal.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 46

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

8.6. Paramètres

8.6.1. Onglet Général

Tableau 30. Onglet Général

Paramètre

Paramètre généré par IP

Valeur

Quel est le nombre de multiplicateurs ?

number_of_m 1 – 4 multiplicateurs

Quelle doit être la largeur des bus d'entrée A width_a ?

1 – 256

Quelle doit être la largeur des bus d'entrée B width_b ?

1 – 256

Quelle doit être la largeur du bus de sortie "résultat" ?

width_result

1 – 256

Créer une activation d'horloge associée pour chaque horloge

gui_associate Activé d_clock_enabl Désactivé

8.6.2. Onglet Modes supplémentaires

Tableau 31. Onglet Modes supplémentaires

Paramètre

Paramètre généré par IP

Valeur

Configuration des sorties

Sortie de registre de l'unité d'addition

gui_output_re activé

enregistrer

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_output_re registre_clock

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_output_re gister_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_output_re gister_sclr

AUCUN SCLR0 SCLR1

Opération d'addition

Quelle opération effectuer sur les sorties du premier couple de multiplicateurs ?

gui_multiplicateur 1_direction

AJOUT, SOUS, VARIABLE

Valeur par défaut 1
16

Description
Nombre de multiplicateurs à additionner. Les valeurs sont comprises entre 1 et 4. Spécifiez la largeur du port dataa[].

16

Spécifiez la largeur du port datab[].

32

Spécifiez la largeur du port result[].

Désactivé

Sélectionnez cette option pour créer l'activation de l'horloge

pour chaque horloge.

Valeur par défaut

Description

Hors horloge0
AUCUN AUCUN

Sélectionnez cette option pour activer le registre de sortie du module additionneur.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier la source d'horloge pour les registres de sortie. Vous devez sélectionner Enregistrer la sortie de l'unité d'addition pour activer ce paramètre.
Spécifie la source d'effacement asynchrone pour le registre de sortie de l'additionneur. Vous devez sélectionner Enregistrer la sortie de l'unité d'addition pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre de sortie de l'additionneur. Vous devez sélectionner Enregistrer la sortie de l'unité d'addition pour activer ce paramètre.

AJOUTER

Sélectionnez l'opération d'addition ou de soustraction à effectuer pour les sorties entre les premier et deuxième multiplicateurs.
· Sélectionnez AJOUTER pour effectuer une opération d'ajout.
· Sélectionnez SUB pour effectuer une opération de soustraction.
· Sélectionnez VARIABLE pour utiliser le port addnsub1 pour le contrôle d'addition/soustraction dynamique.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 47

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre

Paramètre généré par IP

Valeur

Enregistrer l'entrée 'addnsub1'

gui_addnsub_ activé multiplicateur_reg désactivé ister1

Quelle est la source de l'entrée d'horloge ?

gui_addnsub_multiplicator_register1_clock

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_addnsub_multiplicator_aclr 1

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_addnsub_multiplicator_sclr 1

AUCUN SCLR0 SCLR1

Quelle opération effectuer sur les sorties de la seconde paire de multiplicateurs ?

gui_multiplicateur 3_direction

AJOUT, SOUS, VARIABLE

Enregistrer l'entrée 'addnsub3'

gui_addnsub_ activé multiplicateur_reg désactivé ister3

Quelle est la source de l'entrée d'horloge ?

gui_addnsub_multiplicator_register3_clock

Horloge0 Horloge1 Horloge2

Valeur par défaut
Off Horloge0 AUCUN AUCUN AJOUTER
Hors horloge0

Description
Lorsque la valeur VARIABLE est sélectionnée : · Amener le signal addnsub1 à l'état haut pour
opération d'addition. · Amener le signal addnsub1 au niveau bas pour
opération de soustraction. Vous devez sélectionner plus de deux multiplicateurs pour activer ce paramètre.
Sélectionnez cette option pour activer le registre d'entrée pour le port addnsub1. Vous devez sélectionner VARIABLE pour Quelle opération doit être effectuée sur les sorties de la première paire de multiplicateurs pour activer ce paramètre.
Sélectionnez Clock0 , Clock1 ou Clock2 pour spécifier le signal d'horloge d'entrée pour le registre addnsub1. Vous devez sélectionner l'entrée Register 'addnsub1' pour activer ce paramètre.
Spécifie la source d'effacement asynchrone pour le registre addnsub1. Vous devez sélectionner l'entrée Register 'addnsub1' pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre addnsub1. Vous devez sélectionner l'entrée Register 'addnsub1' pour activer ce paramètre.
Sélectionnez l'opération d'addition ou de soustraction à effectuer pour les sorties entre les troisième et quatrième multiplicateurs. · Sélectionnez AJOUTER pour effectuer l'ajout
opération. · Sélectionnez SUB pour effectuer la soustraction
opération. · Sélectionnez VARIABLE pour utiliser addnsub1
port pour le contrôle dynamique des additions/soustractions. Lorsque la valeur VARIABLE est sélectionnée : · Amener le signal addnsub1 à l'état haut pour l'opération d'addition. · Amener le signal addnsub1 au niveau bas pour l'opération de soustraction. Vous devez sélectionner la valeur 4 pour Quel est le nombre de multiplicateurs ? pour activer ce paramètre.
Sélectionnez cette option pour activer le registre d'entrée pour le signal addnsub3. Vous devez sélectionner VARIABLE pour Quelle opération doit être effectuée sur les sorties de la deuxième paire de multiplicateurs pour activer ce paramètre.
Sélectionnez Clock0 , Clock1 ou Clock2 pour spécifier le signal d'horloge d'entrée pour le registre addnsub3. Vous devez sélectionner l'entrée Register 'addnsub3' pour activer ce paramètre.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 48

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre
Quelle est la source de l'entrée en clair asynchrone ?

Paramètre généré par IP

Valeur

gui_addnsub_multiplicator_aclr 3

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_addnsub_multiplicator_sclr 3

AUCUN SCLR0 SCLR1

Polarité Activer `use_subadd'

gui_use_subn activé

ajouter

Désactivé

8.6.3. Onglet Multiplicateurs

Tableau 32. Onglet Multiplicateurs

Paramètre

Paramètre généré par IP

Valeur

Qu'est-ce que le

gui_represent

format de représentation ation_a

pour les entrées multiplicateurs A ?

SIGNÉ, NON SIGNÉ, VARIABLE

Enregistrer l'entrée `signa'

gui_register_s activé

igna

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_register_s igna_clock

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_register_s igna_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_register_s igna_sclr

AUCUN SCLR0 SCLR1

Qu'est-ce que le

gui_represent

format de représentation ation_b

pour les entrées multiplicateurs B ?

SIGNÉ, NON SIGNÉ, VARIABLE

Enregistrer l'entrée `signb'

gui_register_s activé

ignb

Désactivé

Valeur par défaut AUCUNE
AUCUN

Description
Spécifie la source d'effacement asynchrone pour le registre addnsub3. Vous devez sélectionner l'entrée Register 'addnsub3' pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre addnsub3. Vous devez sélectionner l'entrée Register 'addnsub3' pour activer ce paramètre.

Désactivé

Sélectionnez cette option pour inverser la fonction

du port d'entrée addnsub.

Conduisez addnsub à l'état haut pour l'opération de soustraction.

Conduisez addnsub au niveau bas pour une opération d'addition.

Valeur par défaut

Description

UNSIGNED Spécifiez le format de représentation pour l'entrée du multiplicateur A.

Désactivé

Sélectionnez cette option pour activer la signature

registre.

Vous devez sélectionner la valeur VARIABLE pour Quel est le format de représentation des entrées Multiplicateurs A ? paramètre pour activer cette option.

Horloge0

Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée pour le registre Signa.
Vous devez sélectionner Register `signa' input pour activer ce paramètre.

AUCUN

Spécifie la source d'effacement asynchrone pour le registre Signa.
Vous devez sélectionner Register `signa' input pour activer ce paramètre.

AUCUN

Spécifie la source d'effacement synchrone pour le registre des signaux.
Vous devez sélectionner Register `signa' input pour activer ce paramètre.

UNSIGNED Spécifiez le format de représentation pour l'entrée du multiplicateur B.

Désactivé

Sélectionnez cette option pour activer la connexion

registre.

suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 49

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre

Paramètre généré par IP

Valeur

Valeur par défaut

Quelle est la source de l'entrée d'horloge ?

gui_register_s ignb_clock

Horloge0 Horloge1 Horloge2

Horloge0

Quelle est la source de l'entrée en clair asynchrone ?

gui_register_s ignb_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_register_s ignb_sclr

AUCUN SCLR0 SCLR1

Configuration d'entrée
Enregistrez l'entrée A du multiplicateur
Quelle est la source de l'entrée d'horloge ?

gui_input_reg activé

ister_a

Désactivé

gui_input_reg ister_a_clock

Horloge0 Horloge1 Horloge2

AUCUN AUCUN
Hors horloge0

Quelle est la source de l'entrée en clair asynchrone ?

gui_input_reg ister_a_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_input_reg ister_a_sclr

AUCUN SCLR0 SCLR1

Registre entrée B du multiplicateur
Quelle est la source de l'entrée d'horloge ?

gui_input_reg activé

ister_b

Désactivé

gui_input_reg ister_b_clock

Horloge0 Horloge1 Horloge2

AUCUN AUCUN Off Horloge0

Quelle est la source de l'entrée en clair asynchrone ?

gui_input_register_b_aclr

AUCUN ACLR0 ACLR1

AUCUN

Quelle est la source de l'entrée en clair synchrone ?

gui_input_register_b_sclr

AUCUN SCLR0 SCLR1

AUCUN

A quoi est connectée l'entrée A du multiplicateur ?

gui_multiplier Entrée multiplicateur Multiplicateur

_a_input

Entrée d'entrée de la chaîne de balayage

Description
Vous devez sélectionner la valeur VARIABLE pour Quel est le format de représentation des entrées des multiplicateurs B ? paramètre pour activer cette option.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée pour le registre signb. Vous devez sélectionner Register `signb' input pour activer ce paramètre.
Spécifie la source d'effacement asynchrone pour le registre signb. Vous devez sélectionner Register `signb' input pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre signb. Vous devez sélectionner Register `signb' input pour activer ce paramètre.
Sélectionnez cette option pour activer le registre d'entrée pour le bus d'entrée de données.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée de registre pour le bus d'entrée de données. Vous devez sélectionner Register input A du multiplicateur pour activer ce paramètre.
Spécifie la source d'effacement asynchrone du registre pour le bus d'entrée de donnéesa. Vous devez sélectionner Register input A du multiplicateur pour activer ce paramètre.
Spécifie la source d'effacement synchrone des registres pour le bus d'entrée dataa. Vous devez sélectionner Register input A du multiplicateur pour activer ce paramètre.
Sélectionnez cette option pour activer le registre d'entrée pour le bus d'entrée datab.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée de registre pour le bus d'entrée datab. Vous devez sélectionner l'entrée de registre B du multiplicateur pour activer ce paramètre.
Spécifie la source d'effacement asynchrone du registre pour le bus d'entrée datab. Vous devez sélectionner l'entrée de registre B du multiplicateur pour activer ce paramètre.
Spécifie la source d'effacement synchrone des registres pour le bus d'entrée datab. Vous devez sélectionner l'entrée de registre B du multiplicateur pour activer ce paramètre.
Sélectionnez la source d'entrée pour l'entrée A du multiplicateur.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 50

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre

Paramètre généré par IP

Valeur

Analyser une configuration de registre

Enregistrez la sortie de la chaîne de balayage

gui_scanouta activé

_registre

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_scanouta _register_cloc k

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_scanouta_register_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_scanouta _register_sclr

AUCUN SCLR0 SCLR1

8.6.4. Onglet Prereader

Tableau 33. Onglet Prereader

Paramètre

Paramètre généré par IP

Valeur

Sélectionnez le mode de pré-ajout

preadder_mo de

SIMPLE, COEF, ENTRÉE, CARRÉ, CONSTANTE

Valeur par défaut

Description
Sélectionnez Entrée multiplicateur pour utiliser le bus d'entrée de données comme source du multiplicateur. Sélectionnez Scan chain input pour utiliser le bus d'entrée scanin comme source du multiplicateur et activer le bus de sortie scanout. Ce paramètre est disponible lorsque vous sélectionnez 2, 3 ou 4 pour Quel est le nombre de multiplicateurs ? paramètre.

Off Horloge0 AUCUN AUCUN

Sélectionnez cette option pour activer le registre de sortie pour le bus de sortie scanouta.
Vous devez sélectionner Scan chain input pour A quoi est connectée l'entrée A du multiplicateur ? paramètre pour activer cette option.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée de registre pour le bus de sortie scanouta.
Vous devez activer Enregistrer la sortie du paramètre de chaîne d'analyse pour activer cette option.
Spécifie la source d'effacement asynchrone du registre pour le bus de sortie scanouta.
Vous devez activer Enregistrer la sortie du paramètre de chaîne d'analyse pour activer cette option.
Spécifie la source d'effacement synchrone du registre pour le bus de sortie scanouta.
Vous devez sélectionner le paramètre Register output of the scan chain pour activer cette option.

Valeur par défaut
SIMPLE

Description
Spécifie le mode de fonctionnement du module preadder. SIMPLE : Ce mode contourne le preadder. C'est le mode par défaut. COEF : ce mode utilise la sortie du bus d'entrée du pré-additionneur et du coefsel comme entrées du multiplicateur. INPUT : ce mode utilise la sortie du pré-additionneur et le bus d'entrée datac comme entrées du multiplicateur. SQUARE : ce mode utilise la sortie du pré-additionneur comme entrées du multiplicateur.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 51

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre

Paramètre généré par IP

Valeur

Sélectionnez la direction du pré-assemblage

gui_preadder AJOUTER,

_direction

SOUS

Quelle doit être la largeur des bus d'entrée C width_c ?

1 – 256

Configuration du registre d'entrée de données C

Enregistrer l'entrée datac

gui_datac_inp activé

ut_register

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_datac_inp ut_register_clock

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_datac_inp ut_register_a clr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_datac_inp ut_register_sc lr

AUCUN SCLR0 SCLR1

Coefficients
Quelle doit être la largeur du coef ?

largeur_coef

1 – 27

Configuration du registre Coef

Enregistrer l'entrée coefsel

gui_coef_regi activé

étoile

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_coef_register_clock

Horloge0 Horloge1 Horloge2

Valeur par défaut
AJOUTER
16

Description
CONSTANT : ce mode utilise un bus d'entrée de données avec contournement du pré-additionneur et un bus d'entrée coefsel comme entrées du multiplicateur.
Spécifie le fonctionnement du preadder. Pour activer ce paramètre, sélectionnez ce qui suit pour Sélectionner le mode de préaddition : · COEF · INPUT · SQUARE ou · CONSTANT
Spécifie le nombre de bits pour le bus d'entrée C. Vous devez sélectionner INPUT pour Select preadder mode pour activer ce paramètre.

Sur l'horloge0 AUCUN AUCUN

Sélectionnez cette option pour activer le registre d'entrée pour le bus d'entrée datac. Vous devez définir INPUT sur le paramètre Select preadder mode pour activer cette option.
Sélectionnez Clock0 , Clock1 ou Clock2 pour spécifier le signal d'horloge d'entrée pour le registre d'entrée datac. Vous devez sélectionner Register datac input pour activer ce paramètre.
Spécifie la source d'effacement asynchrone pour le registre d'entrée datac. Vous devez sélectionner Register datac input pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre d'entrée datac. Vous devez sélectionner Register datac input pour activer ce paramètre.

18

Spécifie le nombre de bits pour

bus d'entrée coefsel.

Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.

Sur l'horloge0

Sélectionnez cette option pour activer le registre d'entrée pour le bus d'entrée coefsel. Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.
Sélectionnez Clock0 , Clock1 ou Clock2 pour spécifier le signal d'horloge d'entrée pour le registre d'entrée coefsel. Vous devez sélectionner Register the coefsel input pour activer ce paramètre.
suite…

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 52

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre
Quelle est la source de l'entrée en clair asynchrone ?

Paramètre généré par IP

Valeur

gui_coef_register_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée claire synchrone

gui_coef_register_sclr

AUCUN SCLR0 SCLR1

Coefficient_0 Configuration

coef0_0 à coef0_7

0x00000 0xFFFFFFF

Coefficient_1 Configuration

coef1_0 à coef1_7

0x00000 0xFFFFFFF

Coefficient_2 Configuration

coef2_0 à coef2_7

0x00000 0xFFFFFFF

Coefficient_3 Configuration

coef3_0 à coef3_7

0x00000 0xFFFFFFF

8.6.5. Onglet Accumulateur

Tableau 34. Onglet Accumulateur

Paramètre

Paramètre généré par IP

Valeur

Activer l'accumulateur ?

accumulateur

OUI NON

Quel est le type de fonctionnement de l'accumulateur ?

cumul_directi ADD,

on

SOUS

Valeur par défaut AUCUNE
AUCUN
0 x 0000000 0
0 x 0000000 0
0 x 0000000 0
0 x 0000000 0

Description
Spécifie la source d'effacement asynchrone pour le registre d'entrée coefsel. Vous devez sélectionner Register the coefsel input pour activer ce paramètre.
Spécifie la source d'effacement synchrone pour le registre d'entrée coefsel. Vous devez sélectionner Register the coefsel input pour activer ce paramètre.
Spécifie les valeurs de coefficient pour ce premier multiplicateur. Le nombre de bits doit être le même que celui spécifié dans Quelle doit être la largeur du coef ? paramètre. Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.
Spécifie les valeurs de coefficient pour ce deuxième multiplicateur. Le nombre de bits doit être le même que celui spécifié dans Quelle doit être la largeur du coef ? paramètre. Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.
Spécifie les valeurs de coefficient pour ce troisième multiplicateur. Le nombre de bits doit être le même que celui spécifié dans Quelle doit être la largeur du coef ? paramètre. Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.
Spécifie les valeurs de coefficient pour ce quatrième multiplicateur. Le nombre de bits doit être le même que celui spécifié dans Quelle doit être la largeur du coef ? paramètre. Vous devez sélectionner COEF ou CONSTANT pour le mode preadder pour activer ce paramètre.

Valeur par défaut NON
AJOUTER

Description
Sélectionnez OUI pour activer l'accumulateur. Vous devez sélectionner Enregistrer la sortie de l'unité d'addition lors de l'utilisation de la fonction d'accumulateur.
Spécifie le fonctionnement de l'accumulateur : · ADD pour l'opération d'addition · SUB pour l'opération de soustraction. Vous devez sélectionner OUI pour Activer l'accumulateur ? paramètre pour activer cette option.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 53

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre
Constante de précharge Activer la constante de précharge

Paramètre généré par IP

Valeur

gui_ena_prelo activé

annonce_const

Désactivé

À quelle entrée du port d'accumulation est-elle connectée ?

gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM

Sélectionnez la valeur pour le préchargement loadconst_val 0 – 64

constante

ue

Quelle est la source de l'entrée d'horloge ?

gui_accum_sl oad_register_horloge

Horloge0 Horloge1 Horloge2

Quelle est la source de l'entrée en clair asynchrone ?

gui_accum_sl oad_register_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_accum_sl oad_register_sclr

AUCUN SCLR0 SCLR1

Activer le double accumulateur

gui_double_a activé

jouir

Désactivé

Valeur par défaut

Description

Désactivé

Activez l'accum_sload ou

Signaux sload_accum et entrée de registre

pour sélectionner dynamiquement l'entrée du

accumulateur.

Lorsque accum_sload est bas ou sload_accum, la sortie du multiplicateur est introduite dans l'accumulateur.

Lorsque accum_sload est élevé ou sload_accum, une constante de précharge spécifiée par l'utilisateur est introduite dans l'accumulateur.

Vous devez sélectionner OUI pour Activer l'accumulateur ? paramètre pour activer cette option.

ACCUM_SL OAD

Spécifie le comportement du signal accum_sload/sload_accum.
ACCUM_SLOAD : Drive accum_sload bas pour charger la sortie du multiplicateur dans l'accumulateur.
SLOAD_ACCUM : mettez sload_accum au niveau haut pour charger la sortie du multiplicateur dans l'accumulateur.
Vous devez sélectionner l'option Activer la constante de préchargement pour activer ce paramètre.

64

Spécifiez la valeur constante prédéfinie.

Cette valeur peut être 2N où N est la valeur constante prédéfinie.

Lorsque N=64, cela représente un zéro constant.

Vous devez sélectionner l'option Activer la constante de préchargement pour activer ce paramètre.

Horloge0

Sélectionnez Clock0 , Clock1 ou Clock2 pour spécifier le signal d'horloge d'entrée pour le registre accum_sload/sload_accum.
Vous devez sélectionner l'option Activer la constante de préchargement pour activer ce paramètre.

AUCUN

Spécifie la source d'effacement asynchrone pour le registre accum_sload/sload_accum.
Vous devez sélectionner l'option Activer la constante de préchargement pour activer ce paramètre.

AUCUN

Spécifie la source d'effacement synchrone pour le registre accum_sload/sload_accum.
Vous devez sélectionner l'option Activer la constante de préchargement pour activer ce paramètre.

Désactivé

Active le registre à double accumulateur.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 54

Envoyer des commentaires

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

8.6.6. Onglet Systolique/Chainout

Tableau 35. Onglet Additionneur Systolique/Chainout

Paramètre Activer l'additionneur de sortie de chaîne

Paramètre généré par IP

Valeur

chainout_add OUI,

er

NON

Quel est le type d'opération de l'additionneur de chaînage ?

chainout_add AJOUTER,

er_direction

SOUS

Activer l'entrée `negate' pour l'additionneur de chainout ?

Port_négation

PORT_USED, PORT_UNUSED

Enregistrer l'entrée `negate' ? negate_regist er

NON ENREGISTRÉ, HORLOGE0, HORLOGE1, HORLOGE2, HORLOGE3

Quelle est la source de l'entrée en clair asynchrone ?

négation_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

négation_sclr

AUCUN SCLR0 SCLR1

Retard systolique
Activer les registres de retard systolique

gui_systolique_d activé

le jour

Désactivé

Quelle est la source de l'entrée d'horloge ?

gui_systolique_d CLOCK0,

elay_clock

HORLOGE1,

Valeur par défaut
NON

Description
Sélectionnez OUI pour activer le module additionneur de chaînage.

AJOUTER

Spécifie l'opération d'ajout de chaînage.
Pour l'opération de soustraction, SIGNED doit être sélectionné pour Quel est le format de représentation des entrées des multiplicateurs A ? et Quel est le format de représentation des entrées des multiplicateurs B ? dans l'onglet Multiplicateurs.

PORT_UN UTILISÉ

Sélectionnez PORT_USED pour activer l'inverse du signal d'entrée.
Ce paramètre n'est pas valide lorsque l'additionneur de sortie de chaîne est désactivé.

DÉSINSCRIRE

Pour activer le registre d'entrée pour le signal d'entrée négatif et spécifie le signal d'horloge d'entrée pour le registre négatif.
Sélectionnez UNREGISTERED si le registre d'entrée négatif n'est pas nécessaire
Ce paramètre n'est pas valide lorsque vous sélectionnez :
· NON pour Activer l'additionneur de sortie de chaîne ou
· PORT_UNUSED pour activer l'entrée 'négation' pour l'additionneur de chainout ? paramètre ou

AUCUN

Spécifie la source d'effacement asynchrone pour le registre négatif.
Ce paramètre n'est pas valide lorsque vous sélectionnez :
· NON pour Activer l'additionneur de sortie de chaîne ou
· PORT_UNUSED pour activer l'entrée 'négation' pour l'additionneur de chainout ? paramètre ou

AUCUN

Spécifie la source d'effacement synchrone pour le registre négatif.
Ce paramètre n'est pas valide lorsque vous sélectionnez :
· NON pour Activer l'additionneur de sortie de chaîne ou
· PORT_UNUSED pour activer l'entrée 'négation' pour l'additionneur de chainout ? paramètre ou

HORLOGE0

Sélectionnez cette option pour activer le mode systolique. Ce paramètre est disponible lorsque vous sélectionnez 2 ou 4 pour Quel est le nombre de multiplicateurs ? paramètre. Vous devez activer la sortie Registre de l'unité d'addition pour utiliser les registres de retard systolique.
Spécifie le signal d'horloge d'entrée pour le registre de retard systolique.
suite…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 55

8. Noyau IP Intel FPGA Multiply Adder 683490 | 2020.10.05

Paramètre

Paramètre généré par IP

Valeur

HORLOGE2,

Quelle est la source de l'entrée en clair asynchrone ?

gui_systolic_d elay_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_systolic_d elay_sclr

AUCUN SCLR0 SCLR1

Valeur par défaut
AUCUN
AUCUN

Description
Vous devez sélectionner Activer les registres de retard systolique pour activer cette option.
Spécifie la source d'effacement asynchrone pour le registre de retard systolique. Vous devez sélectionner Activer les registres de retard systolique pour activer cette option.
Spécifie la source d'effacement synchrone pour le registre de retard systolique. Vous devez sélectionner Activer les registres de retard systolique pour activer cette option.

8.6.7. Onglet Pipeline

Tableau 36. Onglet Mise en pipeline

Configuration de pipeline de paramètres

Paramètre généré par IP

Valeur

Voulez-vous ajouter un registre de pipeline à l'entrée ?

gui_pipelining Non, Oui

Valeur par défaut
Non

Veuillez préciser le

latence

nombre d'horloge de latence

cycles

Toute valeur supérieure à 0 que 0

Quelle est la source de l'entrée d'horloge ?

gui_input_late ncy_clock

HORLOGE0, HORLOGE1, HORLOGE2

Quelle est la source de l'entrée en clair asynchrone ?

gui_input_late ncy_aclr

AUCUN ACLR0 ACLR1

Quelle est la source de l'entrée en clair synchrone ?

gui_input_late ncy_sclr

AUCUN SCLR0 SCLR1

HORLOGE0 AUCUNE AUCUNE

Description
Sélectionnez Oui pour activer un niveau supplémentaire de registre de pipeline pour les signaux d'entrée. Vous devez spécifier une valeur supérieure à 0 pour le paramètre Veuillez spécifier le nombre de cycles d'horloge de latence.
Spécifie la latence souhaitée en cycles d'horloge. Un niveau de registre de pipeline = 1 latence dans le cycle d'horloge. Vous devez sélectionner OUI pour Voulez-vous ajouter un registre de pipeline à l'entrée ? pour activer cette option.
Sélectionnez Clock0 , Clock1 ou Clock2 pour activer et spécifier le signal d'horloge d'entrée du registre pipeline. Vous devez sélectionner OUI pour Voulez-vous ajouter un registre de pipeline à l'entrée ? pour activer cette option.
Spécifie la source d'effacement asynchrone du registre pour le registre de pipeline supplémentaire. Vous devez sélectionner OUI pour Voulez-vous ajouter un registre de pipeline à l'entrée ? pour activer cette option.
Spécifie la source d'effacement synchrone du registre pour le registre de pipeline supplémentaire. Vous devez sélectionner OUI pour Voulez-vous ajouter un registre de pipeline à l'entrée ? pour activer cette option.

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 56

Envoyer des commentaires

683490 | 2020.10.05 Envoyer des commentaires

9. ALTMEMMULT (multiplicateur de coefficient constant basé sur la mémoire) IP Core

Attention:

Intel a supprimé la prise en charge de cette adresse IP dans Intel Quartus Prime Pro Edition version 20.3. Si le cœur IP de votre conception cible des appareils dans Intel Quartus Prime Pro Edition, vous pouvez remplacer l'IP par LPM_MULT Intel FPGA IP ou régénérer l'IP et compiler votre conception à l'aide du logiciel Intel Quartus Prime Standard Edition.

Le cœur IP ALTMEMMULT est utilisé pour créer des multiplicateurs basés sur la mémoire en utilisant les blocs de mémoire sur puce trouvés dans les FPGA Intel (avec les blocs de mémoire M512, M4K, M9K et MLAB). Ce noyau IP est utile si vous ne disposez pas de ressources suffisantes pour implémenter les multiplicateurs dans des éléments logiques (LE) ou des ressources de multiplicateur dédiées.
Le cœur IP ALTMEMMULT est une fonction synchrone qui nécessite une horloge. Le cœur IP ALTMEMMULT implémente un multiplicateur avec le plus petit débit et la plus petite latence possible pour un ensemble donné de paramètres et de spécifications.
La figure suivante montre les ports du noyau IP ALTMEMMULT.

Figure 21. Ports ALTMEMMULT

ALTMEMMULT

data_in[] sload_data coeff_in[]

résultat[] résultat_valide load_done

sload_coeff

horloge
inst

Informations connexes Fonctionnalités à la page 71

9.1. Caractéristiques
Le noyau IP ALTMEMMULT offre les fonctionnalités suivantes : · Crée uniquement des multiplicateurs basés sur la mémoire à l'aide de blocs de mémoire sur puce trouvés dans
Intel FPGA · Prend en charge une largeur de données de 1 bits · Prend en charge le format de représentation des données signées et non signées · Prend en charge le pipelining avec une latence de sortie fixe

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistré ISO 9001: 2015

9. ALTMEMMULT (multiplicateur de coefficient constant basé sur la mémoire) IP Core 683490 | 2020.10.05
· Stocke plusieurs constantes dans la mémoire vive (RAM)
· Fournit une option pour sélectionner le type de bloc RAM
· Prend en charge les ports d'entrée clairs et de contrôle de charge synchrones en option
9.2. Prototype HDL Verilog
Le prototype Verilog HDL suivant se trouve dans le Verilog Design File (.v) altera_mf.v dans le répertoire de synthèse eda.
module altmemmult #( paramètre coeff_representation = « SIGNE », paramètre coefficient0 = « UNUSED », paramètre data_representation = « SIGNED », paramètre defined_device_family = « unused », paramètre max_clock_cycles_per_result = 1, paramètre number_of_coefficients = 1, paramètre ram_block_type = « AUTO », paramètre total_latency = 1, paramètre width_c = 1, paramètre width_d = 1, paramètre width_r = 1, paramètre width_s = 1, paramètre lpm_type = "altmemmult", paramètre lpm_hint = "inutilisé") (entrée wire clock, input wire [width_c-1 : 0]coeff_in, fil d'entrée [width_d-1:0] data_in, fil de sortie load_done, fil de sortie [width_r-1:0] résultat, fil de sortie result_valid, fil d'entrée sclr, fil d'entrée [width_s-1:0] sel, entrée fil sload_coeff, fil d'entrée sload_data)/* synthèse syn_black_box=1 */; module final
9.3. Déclaration de composant VHDL
La déclaration du composant VHDL se trouve dans le VHDL Design File (.vhd) altera_mf_components.vhd dans le répertoire libraryvhdlatera_mf.
composant altmemmult générique ( coeff_representation:string := "SIGNED"; coefficient0:string := "UNUSED"; data_representation:string := "SIGNED"; wanted_device_family:string := "unused"; max_clock_cycles_per_result:natural := 1; number_of_coefficients:natural := 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);

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 58

Envoyer des commentaires

9. ALTMEMMULT (multiplicateur de coefficient constant basé sur la mémoire) IP Core 683490 | 2020.10.05

load_done:out std_logic ; result: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'); composant final ;

9.4. Ports

Les tableaux suivants répertorient les ports d'entrée et de sortie du cœur IP ALTMEMMULT.

Tableau 37. Ports d'entrée ALTMEMMULT

Nom du port

Requis

Description

horloge

Oui

Entrée d'horloge vers le multiplicateur.

coeff_in[]

Non

Port d'entrée de coefficient pour le multiplicateur. La taille du port d'entrée dépend de la valeur du paramètre WIDTH_C.

données_in[]

Oui

Port d'entrée de données vers le multiplicateur. La taille du port d'entrée dépend de la valeur du paramètre WIDTH_D.

scrl

Non

Entrée claire synchrone. Si elle n'est pas utilisée, la valeur par défaut est active high.

sel[]

Non

Sélection du coefficient fixe. La taille du port d'entrée dépend de la WIDTH_S

valeur du paramètre.

sload_coeff

Non

Port d'entrée du coefficient de charge synchrone. Remplace la valeur de coefficient actuellement sélectionnée par la valeur spécifiée dans l'entrée coeff_in.

sload_data

Non

Port d'entrée de données de chargement synchrone. Signal qui spécifie une nouvelle opération de multiplication et annule toute opération de multiplication existante. Si le paramètre MAX_CLOCK_CYCLES_PER_RESULT a la valeur 1, le port d'entrée sload_data est ignoré.

Tableau 38. Ports de sortie ALTMEMMULT

Nom du port

Requis

Description

résultat[]

Oui

Port de sortie du multiplicateur. La taille du port d'entrée dépend de la valeur du paramètre WIDTH_R.

result_valid

Oui

Indique quand la sortie est le résultat valide d'une multiplication complète. Si le paramètre MAX_CLOCK_CYCLES_PER_RESULT a la valeur 1, le port de sortie result_valid n'est pas utilisé.

charger_done

Non

Indique quand le nouveau coefficient a fini de se charger. Le signal load_done affirme quand un nouveau coefficient a fini de se charger. Sauf si le signal load_done est haut, aucune autre valeur de coefficient ne peut être chargée dans la mémoire.

9.5. Paramètres

Le tableau suivant répertorie les paramètres du noyau IP ALTMEMMULT.

Tableau 39.
LARGEUR_D LARGEUR_C

Paramètres ALTMEMMULT
Nom du paramètre

Type requis

Description

Entier Oui

Spécifie la largeur du port data_in[].

Entier Oui

Spécifie la largeur du port coeff_in[]. a continué…

Envoyer des commentaires

Guide de l'utilisateur Intel FPGA Integer Arithmetic IP Cores 59

9. ALTMEMMULT (multiplicateur de coefficient constant basé sur la mémoire) IP Core 683490 | 2020.10.05

Nom du paramètre LARGEUR_R LARGEUR

Documents / Ressources

Intel FPGA Integer Arithmetic IP Cores [pdf] Guide de l'utilisateur
Cœurs IP arithmétiques entiers FPGA, cœurs IP arithmétiques entiers, cœurs IP arithmétiques, cœurs IP

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *