DSP48E2
- Mise à jour2023-02-17
- Temps de lecture : 13 minute(s)
DSP48E2
Calcule une équation arithmétique ou une opération logique personnalisable sur une slice DSP48E2 disponible sur certaines cibles FPGA Xilinx.
Configurez l'interface du nœud sur l'onglet Élément pour personnaliser l'équation arithmétique ou l'opération logique exécutée par le nœud à l'exécution.
Entrées/Sorties

a
Valeur à utiliser dans un calcul arithmétique ou une opération logique sur la slice.
Conserver la précision des nombres à virgule fixe
Les valeurs à virgule fixe ne s'adaptent pas aux commandes et indicateurs ayant des types de données différents. Au lieu de cela, le programme contraint la valeur, ce qui diminue la précision. Pour maintenir la précision, câblez une valeur à virgule fixe du même type de données à l'entrée, ou ajustez la longueur de mot de la partie entière de l'entrée.

acin
Valeur de a, cascadée d'un nœud DSP48 précédent, à utiliser dans un calcul arithmétique ou une opération logique sur la slice.
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option acin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion d'entrée cascadée
Cette entrée cascadée ne se connecte qu'à la sortie acout d'un autre nœud DSP48.

b
Valeur à utiliser dans un calcul arithmétique ou une opération logique sur la slice.
Conserver la précision des nombres à virgule fixe
Les valeurs à virgule fixe ne s'adaptent pas aux commandes et indicateurs ayant des types de données différents. Au lieu de cela, le programme contraint la valeur, ce qui diminue la précision. Pour maintenir la précision, câblez une valeur à virgule fixe du même type de données à l'entrée, ou ajustez la longueur de mot de la partie entière de l'entrée.

bcin
Valeur de b, cascadée d'un nœud DSP48 précédent, à utiliser dans un calcul arithmétique ou une opération logique sur la slice.
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option bcin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion d'entrée cascadée
Cette entrée cascadée ne se connecte qu'à la sortie bcout d'un autre nœud DSP48.

c
Valeur à utiliser dans un calcul arithmétique ou une opération logique sur la slice.
Conserver la précision des nombres à virgule fixe
Les valeurs à virgule fixe ne s'adaptent pas aux commandes et indicateurs ayant des types de données différents. Au lieu de cela, le programme contraint la valeur, ce qui diminue la précision. Pour maintenir la précision, câblez une valeur à virgule fixe du même type de données à l'entrée, ou ajustez la longueur de mot de la partie entière de l'entrée.

inmode
Bits de contrôle qui sélectionnent la fonctionnalité d'un pré-additionneur ainsi que a, b, d et les registres d'entrée.
Cette entrée n'apparaît que si vous choisissez Personnalisé comme option de Calcul sur l'onglet Élément.

pcin
Valeur de p, cascadée d'un nœud DSP48 précédent, à utiliser dans une équation arithmétique ou une opération logique sur la slice.
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option pcin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion d'entrée cascadée
Cette entrée cascadée ne se connecte qu'à la sortie pcout d'un autre nœud DSP48.

carryin
Valeur booléenne qui représente l'entrée de retenue de la logique FPGA.
| Vrai | L'entrée de retenue d'une opération arithmétique externe sur la slice DSP48 est définie à 1. |
| Faux | L'entrée de retenue d'une opération arithmétique externe sur la slice DSP48 est définie à 0. |
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option carryin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.

carrycascin
Valeur booléenne qui représente l'entrée retenue en cascade d'un nœud DSP48 précédent.
| Vrai | L'entrée de retenue en cascade d'une opération arithmétique externe sur la slice DSP48 est définie à 1. |
| Faux | L'entrée de retenue en cascade d'une opération arithmétique externe sur la slice DSP48 est définie à 0. |
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option carrycascin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion d'entrée cascadée
Cette entrée cascadée ne se connecte qu'à la sortie carrycascout d'un autre nœud DSP48.

multsignin
Valeur booléenne qui représente le signe du résultat de la multiplication d'un calcul d'un nœud DSP48 précédent.
| Vrai | Le résultat de la multiplication du nœud DSP48 précédent est négatif, et l'entrée sur la slice DSP48 est définie à 1. |
| Faux | Le résultat de la multiplication du nœud DSP48 précédent est positif, et l'entrée sur la slice DSP48 est définie à 0. |
Pour afficher cette entrée, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option multsignin sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion d'entrée cascadée
Cette entrée cascadée ne se connecte qu'à la sortie multsignout d'un autre nœud DSP48.

alumode
Bits de contrôle qui sélectionnent l'équation arithmétique ou l'opération logique évaluée par la slice.
Cette entrée n'apparaît que si vous choisissez Personnalisé comme option de Calcul sur l'onglet Élément.

opmode
Bits de contrôle qui sélectionnent l'entrée des multiplexeurs X, Y et Z sur la slice.
Cette entrée n'apparaît que si vous choisissez Personnalisé comme option de Calcul sur l'onglet Élément.

carryinsel
Bits de contrôle qui sélectionne la source de retenue.
Cette entrée n'apparaît que si vous choisissez Personnalisé comme option de Calcul sur l'onglet Élément.

acout
Valeur de a à passer en cascade à un autre nœud DSP48.
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option acout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion de sortie cascadée
Cette sortie cascadée ne se connecte qu'à l'entrée acin d'un autre nœud DSP48.

bcout
Valeur de b à passer en cascade à un autre nœud DSP48.
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option bcout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion de sortie cascadée
Cette sortie cascadée ne se connecte qu'à l'entrée bcin d'un autre nœud DSP48.

p
Résultat de l'opération réalisée par la slice.
Conserver la précision des nombres à virgule fixe
Les valeurs à virgule fixe ne s'adaptent pas aux commandes et indicateurs ayant des types de données différents. Au lieu de cela, le programme contraint la valeur, ce qui diminue la précision. Pour maintenir la précision, câblez une valeur à virgule fixe du même type de données à la sortie, ou ajustez la longueur de mot de la partie entière de la sortie.

pcout
Valeur de p à passer en cascade à un autre nœud DSP48.
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option pcout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion de sortie cascadée
Cette sortie cascadée ne se connecte qu'à l'entrée pcin d'un autre nœud DSP48.

carryout
sortie de retenue 4 bits de la slice DSP48.
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option carryout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.

carrycascout
Valeur booléenne qui représente le bit de contrôle pour la sortie de retenue à transférer en cascade vers un autre nœud DSP48.
| Vrai | La sortie de retenue en cascade d'une opération arithmétique externe sur la slice DSP48 est définie à 1. |
| Faux | La sortie de retenue en cascade d'une opération arithmétique externe sur la slice DSP48 est définie à 0. |
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option carrycascout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion de sortie cascadée
Cette sortie cascadée ne se connecte qu'à l'entrée carrycascin d'un autre nœud DSP48.

multsignout
Valeur booléenne qui représente le signe du résultat de la multiplication à transférer en cascade vers un autre nœud DSP48.
| Vrai | Le résultat de la multiplication est négatif, et la sortie sur la slice DSP48 est définie à 1. |
| Faux | Le résultat de la multiplication est positif, et la sortie sur la slice DSP48 est définie à 0. |
Pour afficher cette sortie, cliquez sur Changer le connecteur sur l'onglet Élément et sélectionnez l'option multsignout sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48.
Connexion de sortie cascadée
Cette sortie cascadée ne se connecte qu'à l'entrée multsignin d'un autre nœud DSP48.
Configurer l'interface du nœud
Choisissez une des trois options de Calcul sur l'onglet Élément pour déterminer comment le nœud agira à l'exécution.
Cliquez sur Éditer sur l'onglet Élément pour sélectionner les valeurs à utiliser dans l'équation.
Cliquez sur Éditer sur l'onglet Élément pour configurer l'expression booléenne.
Le nœud DSP48 configure automatiquement opmode, alumode, inmode et carryinsel lorsque vous sélectionnez le type de calcul Arithmétique ou Logique. Si la combinaison des configurations des entrées opmode, alumodeinmode et carryinsel n'est pas valide, le programme rapporte une erreur à l'exécution identifiant la combinaison non valide de valeurs en entrée.
Configurer les entrées et sorties d'un nœud DSP48
Un nœud DSP48 a plusieurs entrées et sorties optionnelles que vous pouvez activer pour personnaliser la fonctionnalité d'une slice DSP48 sur le diagramme. Activez les entrées et sorties optionnelles du nœud pour configurer les valeurs utilisées par le nœud pour les calculs qu'il effectue.
Effectuez les étapes suivantes pour choisir les entrées et sorties du nœud DSP48 à afficher sur le diagramme.
- Sur le diagramme, sélectionnez le nœud DSP48 à configurer.
- Cliquez sur le bouton Changer le connecteur sur l'onglet Élément.
- Sur l'onglet Terminaux de la boîte de dialogue Configurer un connecteur DSP48, sélectionnez les entrées et sorties à afficher sur le diagramme et cliquez sur OK.
Maintenir la précision numérique d'un nœud DSP48
Pour maintenir la précision numérique dans votre programme, vous devez définir correctement la longueur de mot de la partie entière des entrées de vos calculs. Si vous ne définissez pas correctement la longueur de mot de la partie entière, le résultat des calculs risque de ne pas être juste.
La longueur de mot d'une entrée d'un nœud DSP48 est une valeur constante qui correspond à la largeur de bits de l'entrée correspondante sur la slice DSP48. Utilisez l'onglet Configuration de virgule fixe de la boîte de dialogue Configurer un connecteur DSP48 pour ajuster la longueur de mot de la partie entière d'une entrée ou d'un groupe d'entrées d'un nœud DSP48.
La table suivante répertorie les modifications à effectuer sur le type de données des entrées d'un nœud DSP48 pour maintenir la précision numérique des calculs arithmétiques.
| Configuration d'entrée de nœud ou d'équation | Spécifications pour maintenir la précision numérique | Exemple |
|---|---|---|
|
a, b |
|
Le type de données de la source de b est I16 <1.15>. Pour maintenir la précision, définissez la longueur de mot de la partie entière de b à 3, 2 ou 1. |
|
Multiplieur (p = a * b) |
La longueur de mot de la partie fractionnaire de p est égale à la somme des longueurs de mot des parties fractionnaires de a et b. |
La somme des longueurs de mot des parties fractionnaires est 29. Dans ce cas, définissez les longueurs de mots de a, b et p en conséquence :
|
|
Accumulateur (p = p + c) |
La longueur de mot de la partie fractionnaire de p est égale à celle de c. |
Le type de données de la source de c est I16 <3.13>. Définissez la longueur de mot de la partie entière de p à 35. |
Configurations des équations arithmétiques DSP48E2 courantes
Un nœud DSP48 calcule l'équation générique suivante lorsque vous sélectionnez Arithmétique dans le menu déroulant Calcul sur l'onglet Élément.
p = (+/Non z) +/- (x+y + carryin)
z, x+y et carryin sont des variables. Vous pouvez assigner une valeur constante, la valeur d'une entrée d'un nœud ou le résultat d'un calcul à ces variables. Les sources disponibles pour carryin dépendent des valeurs que vous spécifiez pour z et x+y. Cliquez sur le bouton Éditer sur l'onglet Élément pour configurer l'équation.
Lorsque vous sélectionnez DSP48E1 dans le menu déroulant Interface sur l'onglet Élément, une deuxième équation résolvant m apparaît dans la boîte de dialogue Configurer DSP48. Vous pouvez utiliser le résultat de cette équation comme valeur d'entrée pour x+y dans le calcul effectué par le nœud.
Par défaut, l'interface DSP48E2 d'un nœud DSP48 calcule l'équation suivante.
p = c + (m + carryin)
m = a * b
| Opération arithmétique | Équation arithmétique | Configuration |
|---|---|---|
|
Multiplier |
p = a*b+carryin |
|
|
Multiplier avec pré-additionneur |
p = (d+a)*b+carryin |
|
|
Multiplier-accumuler |
p = p+(a*b+carryin) |
|
|
Multiplier-additionner |
p = c+ (a*b+carryin) |
|
|
Multiplier-soustraire |
p = c-(a*b+carryin) |
|