Développement d'une montre : le générateur de fréquence

Magazine
Marque
GNU/Linux Magazine
Numéro
140
Mois de parution
juillet 2011


Résumé
Ce mois ci, il est temps d'aborder la crème de la crème du VHDL, un des atouts majeurs du langage, j'ai nommé la structure « for generate ». Nous allons utiliser sa puissance de déploiement pour écrire l'avant-dernière unité de conception de la montre : le prédiviseur de fréquence.

1. Quel rapport avec generate ?

J'ai nommé cette unité horloge et le code source associé horloge.vhd mais c'est un peu un abus de langage, sauf si on considère qu'une horloge divise des heures en minutes, et des minutes en secondes. Nous, nous allons faire l'inverse : nous allons transformer un signal à très haute fréquence (32768 Hertz ou 2^15 Hertz) en un signal à une fréquence humainement exploitable : 16 Hertz. Cette fréquence sera indispensable pour utiliser les boutons (voir l'article précédent) et permettra aussi, après une ultime division, d'obtenir des secondes et donc de faire fonctionner toute notre montre.

Effectuer une telle division exige un travail de titan. En effet, pour passer de 32768 Hertz à seulement 16 Hertz, il faut faire onze divisions par deux ! On divise 32768 par deux pour obtenir 16384, 16384/2 donne 8192, etc, jusqu'à 16. Il n'y a malheureusement pas de tour de passe-passe qui permette d'y échapper. Il faut diviser, encore et encore, et en...

Cet article est réservé aux abonnés. Il vous reste 90% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite