# Autres langages > Autres langages > VHDL >  Initialisation signal + package

## qcalv

Bonjour  tous,

Je travaille actuellement sur un code en VHDL qui se compose de la manire suivante : 
- Une entit gnrale 
- Trois composants, qui sont eux-mmes des entits

La premire chose qui m'intrigue est la suivante, je dclare en interne des signaux du genre :

signal indicatif: integer := 16; 

Lorsque je programme le FPGA (Cyclone II) et que je regarde les donnes en interne (Quartus  + Signal Tap Logic Analyser) j'observe que la valeur d'indicatif est toujours celle de la valeur dans mon code VHDL + la valeur d'initialisation : pour faire explicite, c'est comme si indicatif valait toujours 16 + quelque chose correspondant  une valeur que j'affecte dans mon programme. Si vous avez bien suivi lorsque je fais indicatif <= 5 alors en pratique indicatif vaut 5+16=21. Je ne sais pas pourquoi ? Alors que n'importe quelle test logique fonctionne du type IF prend en compte la valeur affecte et non relle ?

Dois-je dclarer mes variables en tant que variables, ou bien puis-je les laisser en tant que signal ? Quel est l'avantage de l'une ou l'autre solution ?

Enfin par rapport au fonctionnement gnral, j'ai un signal d'horloge que chacune des entits utilise, et qui est gnr par l'entit globale. Ensuite je dfini pour chacune des entits en entre un signal de type clk. Est-ce judicieux ou est-ce que je peux mettre ce signal en commum pour toutes les entits en utilisant un package ?

Merci par avance !

qcalv

----------


## bibi-C-Moi

J'ai eu le mme souci que toi pour l'affectation des signaux, j'ai l'impression que quand tu dclares :


```
SIGNAL toto : INTEGER := 16;
```

,le compilo cre une sorte d'offset qui ne disparat pas... Ce que j'ai fait pour y remdier, c'est dans un process, lors de mon Reset, j'affecte la variable pour l'initialiser.



```

```

Pour la clock, je ferais comme toi, tes entits primaires sont indpendantes ainsi. donc rutilisables, le package bloque pas mal de choses

----------


## qcalv

Je suis d'accord sur le principe de l'offset mais j'aimerais bien tre sr que cela vienne du compilo, cependant je ne vois pas comment faire un process RESET, puisqu'on ne peut pas assigner deux valeurs  une variable dans deux process diffrents, il faudrait donc que je mette dans chaque process une sensibilit au reset et ensuite tester le cas, cela me parat un peu fastidieux. Ok pour le package, merci du conseil !

++
qcalv

----------

