@ -402,5 +402,159 @@ Enfin, on vérifie que le fonctionnement est celui attendu par simulation, ce qu
\label{fig:chronoBpMealy}
\end{figure}
\part{Diviseur de fréquence}
Le quartz de la carte délivre un signal d'horloge à 27.175MHz. On souhaite baisser cette fréquence à 100Hz afin de faciliter le comptage pour le chronomètre et d'offrire une expérience proche du temps réel à l'utilisateur.
\section{Détermination du premier rapport de division}
On cherche dans un premier temps à déterminer le rapport de division de fréquence que doit offrir le premier diviseur. On synthétise la première division de fréquence par la figure \ref{fig:divReduc1}, avec $\alpha$ le rapport de division du premier diviseur.
On souhaite de plus que $\beta$ soit entier. Puisqu'il n'y a qu'un nombre réduit de possibilités pour le premier diviseur, on va chercher parmis les différentes valeurs possibles de $\alpha$ celle qui donne $\beta$ entier. On a la relation $\alpha\times\beta=\frac{251\;750}{2}$. À l'aide d'un tableur (figure \ref{fig:rapportDiv}), on détermine $\alpha=5$ et $\beta=25\;175$.
\caption{Utilisation d'un tableur pour déterminer $\alpha$}
\label{fig:rapportDiv}
\end{figure}
\section{Compteur}
On va ensuite réaliser la division de fréquence d'un facteur $\beta$ à l'aide d'un compteur 16 bits (réalisé par mise en cascade de deux compteurs 8 bits \verb|8count|). On détermine la valeur $x$ jusqu'à laquelle le compteur 16 bits doit compter :
\[
x = \underbrace{256\times256}_{=65\;536 =\mathrm{val.\;max\;de\;comptage}} - \beta
\]
On va donc compter jusqu'à $40\;361_{(10)}=1001\;1101\;1010\;1001_{(2)}$.
\section{Diviseur par 2}
Afin d'avoir un rapport cyclique de $\frac{1}{2}$ on utilise un diviseur par deux en sortie. Le fonctionnement recherché est résumé par le chronogramme de la figure \ref{fig:chronoDiv2}.
\begin{figure}[h!]
\centering
\begin{nowave}{10}
\nextwave{Signal à $200\;Hz$}\bit{0}{1}\bit{1}{1}\bit{0}{3}\bit{1}{1}\bit{0}{3}\bit{1}{1}
Cette partie vise à synthétiser la partie opérative et le séquenceur. La figure \ref{fig:opSeq} montre l'interfaçage de ces deux parties.
\begin{figure}[h!]
\centering
\includegraphics[width=0.7\linewidth]{images/op1}
\caption{Séquenceur et chemin de données}
\label{fig:opSeq}
\end{figure}
\section{Chemin de données}
On souhaite réaliser le chemin de données du chronomètre. Cette partie devra décompter le temps à partir du signal à 1OOHz de l'horloge, et l'afficher sur les afficheurs 7 segments de la carte. De plus elle acceptera deux entrées : une pour réinitialiser le chronomètre et une autre pour autoriser ou stopper le décompte du temps.
\begin{figure}[h!]
\centering
\includegraphics[width=\linewidth]{images/op2}
\caption{Schéma réalisé dans Quartus}
\label{fig:opSchema}
\end{figure}
Pour réaliser le décompte du temps, on utilise une association de compteurs similaire à celle du diviseur de fréquence. Le composant utilisé est le 74168. On utilise 3 compteurs afin d'obtenir le décompte des centièmes de secondes (non affiché), des dixièmes de secondes et des secondes. On utilise des décodeurs 7446 pour piloter les afficheurs 7 segments. Le décompte est autorisé par le passage à l'état haut de l'entrée COUNT du chemin de données (reliée à ENTN et ENPN du premier compteur 74168). On peut réinitialiser la valeur du chronomètre en passant l'entrée RESET à l'état bas (reliée au chargement parallèle des compteurs). On obtient le schéma de la figure \ref{fig:opSchema}.
Afin de tester cette partie du montage, on introduit dans le bloc l'horloge à 100Hz réalisée précédemment et on fixe les valeurs de COUNT et RESET. Après téléchargement sur la carte, on vérifie que l'on obtient bien un décompte des secondes et des dixièmes de secondes (figure \ref{fig:opReal}).