• Aucun résultat trouvé

Chapitre 3 Développement et mise en œuvre

3.2 Modélisation

3.2.3 Niveau de finesse

3.2.3.1 Introduction :

Nous avons pu constater lors de la définition de notre modèle de VD-MOSFET qu'un même élément pouvait être défini par différents modèles. Or, la méthode de modélisation par assemblage, une fois réalisée, impose les éléments pris en compte. Ceci ne nous permet pas de choisir directement les éléments que nous souhaitons prendre en compte. De ce fait, il faudrait créer une cellule différente pour chacune des combinaisons. Nous allons voir dans cette partie comment mettre en œuvre, grâce au VHDL-AMS, un système configurable par l'utilisateur, des blocs à instancier.

Pour cela, nous allons utiliser la possibilité de conditionner l'instanciation des éléments. Nous ajouterons une condition à la fonction GENERATE, qui indiquera si elle doit instancier ou pas le ou les éléments qui la constitue. Pour ce faire, un paramètre sera ajouté, permettant au concepteur d'indiquer le niveau de finesse souhaité. Chaque élément du modèle sera attaché à un nom de paramètre qui indiquera quel niveau de finesse devra être pris en compte. De plus, ce paramètre permettra de compléter l'information sur les éléments et leur rôle dans le modèle.

En effet, si nous avons vu dans la partie 3.3.2.2 que les blocs pouvaient être classés en trois familles :

fonctionnel

parasite

Ainsi, les paramètres à ajouter seront de la forme :

fonctionnel_nom_element

parasite_nom_element

environnement_nom_element.

nom_element indiquera le nom du bloc sur lequel le paramètre influera.

3.2.3.2 Niveau des blocs du VD-MSOFET

Nous avons vu qu'il était possible de modéliser certains de ces blocs par différentes méthodes. Nous allons maintenant déterminer une hiérarchie de ces modèles et les associer à une famille. Pour ce dernier point, nous ne devons pas oublier que les blocs fonctionnels sont obligatoires. Le tableau ci-dessous résume les éléments disponibles pour le modèle du VD-MOSFET avec leurs différents niveaux.

Élément Famille Niveau 0 Niveau 1 Niveau 2 Niveau 3

Canal Fonctionnel

Tout-ou-rien Équations réseau statique

Résistance série Fonctionnel Valeur fixe Fonction de la

technologie Fonction de la technologie Fonction de la technologie et de l'état du composant Diode en anti-parallèle

Parasite Sans Tout-ou-rien Boltzmann N/A

Capacités Parasite Sans Valeur fixe Fonction de la

technologie Fonction de la technologie et de l'état du composant Transistor bipolaire NPN Parasite Sans NPN + résistance pincée fixe NPN + résistance pincée fonction de la technologie NPN + résistance pincée fonction de la technologie et de l'état du composant Résistance porte

canal Parasite Sans Fixe

Tableau 3.2: Modèle des éléments utilisés en fonction du niveau de finesse

Nous trouverons dans la famille fonctionnelle : le canal et la résistance série. Ces deux éléments sont indispensables pour simuler le fonctionnement d'un interrupteur de type VD-MOSFET. C'est pour cela que même pour le niveau le plus bas (niveau 0), il existe un modèle. Au contraire, nous trouverons dans la famille des parasites : la diode anti-parallèle, les blocs de capacités, le bipolaire parasite et la résistance du porte canal, qui, dans ce cas, ne possèdent pas de modèle pour le niveau le plus bas (niveau 0). Il en serait de même pour la famille environnement. La diode anti-parallèle est considérée parasite car elle est imposée par le structure VD-MOSFET, il nous est impossible de créer une cellule MOSFET sans cette diode. Dans certaines conditions d'utilisation, elle sera mise à profit (diode de roue libre par exemple dans un hacheur

quatre quadrant). Toutefois, il existe des cas où cette diode est indésirable (par exemple, diode n'ayant pas des caractéristiques ou performance suffisante) ce qui oblige l'ajout d'une diode en série avec le MOSFET.

Chaque niveau de chacun des blocs peut être combiné avec les autres, ceci implique un nombre de combinaisons possibles relativement important.

3.2.3.3 Choix du modèle

Afin de réaliser l'assemblage des blocs (BTFE/BTFA), nous utiliserons l'instruction GENERATE proposée par le langage VHDL-AMS. Celle-ci nous donne la possibilité de réaliser un test afin de savoir si les éléments devant être instanciés par un GENERATE sont pris en compte.

Nous allons réaliser un test de type « si » (if) sur un paramètre que l'utilisateur renseignera. Pour chacune des valeurs du paramètre, un élément différent sera généré.

Par exemple, nous pouvons tester le paramètre, param ayant pour valeurs : 1, 2 et 3 puis générer les sous modèles VHDL-AMS : elem1, elem2 et elem3.

Si param = 1 générer elem1 Si param = 2 générer elem2 Si param = 3 générer elem3

Nous devons donc associer un paramètre de configuration à chaque bloc de notre VD-MOSFET et associer un type de modélisation à chaque valeur. Le paramètre que nous utiliserons, sera de type entier et nous pourrons ainsi tester facilement les valeurs possibles.

Le tableau suivant présente les différents blocs de notre modèle VD-MOSFET associés à un paramètre :

Élément du VD-MOSFET configurable Nom du paramètre

Canal fonctionnel_canal

Résistance série fonctionnel_resistance_serie

Diode en anti-parallèle parasite_diode

Capacités parasite_capacites

Transistor bipolaire NPN, source/porte canal/ drain parasite_NPN

Tableau 3.3: Nom du paramètre associé à l'élément de la cellule VD-MOSFET

Le nom du paramètre sera constitué de deux parties : la première permettra d'identifier la famille du bloc (fonctionnel, parasite et environnement) et la seconde le nom du bloc sur lequel il influe.

La valeur du paramètre donnera le niveau du modèle (voir Tableau 3.1 ) à prendre en compte, comme l'indique le tableau suivant :

0 Niveau 0

1 Niveau 1

2 Niveau 2

3 Niveau 3

Tableau 3.4: Correspondance de la valeur du paramètre et du niveau du modèle utilisé

Par exemple, si fonctionnel_resistance_serie=1, le modèle pris en compte sera une résistance « fonction de la technologie ». De plus, plus la valeur est élevée, plus la modélisation sera fine. Toutefois, la valeur zéro représente un cas particulier. En effet cette valeur indiquera que l'élément ou l'ensemble d'éléments ne sera pas pris en compte, excepté pour les blocs de la famille « fonctionnel ».

Appliquons tout ceci au bloc canal de notre VD-MSOFET. Nous avons vu qu'il était possible de le modéliser, soit comme un interrupteur tout ou rien, soit comme un jeu d'équations qui correspond au réseau de caractéristiques statiques. Le modèle tout-ou-rien étant rudimentaire, nous l'associerons à la valeur zéro du paramètre fonctionnel_source_courant. Dans l'architecture de la cellule du VD-MOSFET, nous testerons le paramètre fonctionnel_source_courant. Si la valeur vaut « 1 », le modèle statique sera généré.

Figure 3-15: exemple de choix de modèle pris en compte

La figure précédente présente la génération du modèle du VD-MOSFET. A gauche, une source de courant, tout-ou-rien est instanciée. A droite, la source de courant est modélisée par le modèle du comportement statique. Le passage de l'un à l'autre est effectué par le changement de la valeur du paramètre fonctionnel_source_courant.

De ce fait, le concepteur possède un modèle flexible qui peut répondre à ses attentes. De plus, il lui est possible de créer un nouvel élément et de l'ajouter aux existants. Pour cela, il devra créer un nouveau BFTE ou BTFA et ajouter un nouveau test dans la cellule qui utilisera cet élément pour savoir quand il sera instancié.