# Autres langages > Autres langages > VHDL >  Gnration d'horloge [Altera DE0]

## Share45

Bonsoir,

Actuellement, je suis sur un projet de VHDL avec la carte DE0 et Cyclone III d'Altera et j'ai un soucis ...

Thoriquement, le FPGA peut fournir une horloge de 50 MHZ et je souhaite rduire cette frquence via un diviseur, j'ai donc fait le code suivant:



```

```

Et ensuite j'ai raliser un Top_Level pour assigner les pins avant de compiler et charger le tout sur le FPGA



```

```

Le problme c'est que lorsque je met mon osciloscope sur le GPIO_D6 de la carte, je n'ai aucun signal d'horloge, rien du tout.

Je ne comprend pas pourquoi, la simulation du programme sous ModelSim fonctionne parfaitement et fait ce que je veut.

Je viens donc vers vous pour obtenir de l'aide sur le sujet.

Des ides ?

Merci de vos rponses.

Cordialement,
Share45.

----------


## sgievounet

Salut,

Le code a l'air bon. 

Tu as essay de changer de position le switch qui est connect  ton reset? Ca se trouve tu restes toujours en reset

Sinon, tu as bien renseign les pins dans le fichier .qsf? Tu as repris le projet Quartus de Terasic j'imagine

Exemple pour le signal GPIO0_D[6]

set_location_assignment PIN_AB13 -to GPIO0_D[6] 
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO0_D[6]

----------


## Share45

Oui, je suis pass par un DoQuartus.tcl et oui j'ai bien toute la dclaration des pins dans mon fichier.

J'ai repris un fichier fait par un proff pour un ancien TP et qui fonctionnait parfaitement.

Or dans mon cas, je n'ai rien du tout qui sort et je commence  devenir fou, 8h pour essayer de faire fonctionner une pauvre horloge ...

J'ai essayer toutes les possibilits et aucune ne fonctionne, pour le reset, j'ai mme essayer de le mettre toujours  zros (directement dans le code lui assign 0 et pas un switch et ca ne change rien)

----------


## sgievounet

Cette ligne de code hors process:



```

```

Ca m'etonne en fait que Quartus ne t'es pas lach une erreurs la dessus. Je n'avais pas percut hier.

----------


## Share45

Effectivement, j'avais pas percut sur le problme non plus, car Quartus aurait du mettre une erreur (chaque fois que je l'ai oubli il y en avait une)

Mais cela ne fonctionne toujours pas, je n'ai rien du tout sur l'entre GPIO_D6, pourtant tout est bien configur, et j'ai ajout la ligne que tu m'a dit
(j'avais une erreur modelsim, "multiple constant drivers ..." alors j'ai supprime celle dans le process, mais rien ne change dans les deux cas)

----------


## sgievounet

Justement c'est celle du process qu'il faut laisser... 

clock_out<=horloge; sachant que horloge vaut 0, c'est normal qu'il se passe rien sur ta sortie

----------


## Share45

Oui et bien c'est ce que j'ai fait dans le cas d'avant, dans le process, j'ai not(horloge), donc il y  une inversion de l'horloge  ce moment

Si ce n'est pas le cas, c'est que je voit pas bien le fonctionnement alors, mais il me semble avoir dj essay le cas que tu me propose.

----------


## Share45

J'ai russi  faire fonctionner le code, y'avais un problme avec le CLOCK_50 et le nom du port GPIO ...

Merci  toi, sujet rsolu !

----------

