\documentclass[a4paper,french,12pt]{article}

\title{Logique Programmable --- TP}
\author{Adam Belghith et Tunui Franken}
\date{\small Dernière compilation~: \today{} à \currenttime}

\usepackage{../../cours}
\usepackage{tikz}
\usetikzlibrary{automata, arrows.meta, positioning}

\begin{document}

\maketitle

\section{Algorithmique}

    \subsection{Étude de la liaison série UART-RS232}

        \paragraph{%
            Après recherche, décrivez ce protocole de communication.
            (Combien de fils sont nécessaires, quels signaux transportent-ils, est-il synchrone ou asynchrone, combien de bits de data pour combien de bits de ``contrôle'', quel débit\ldots)
            Représentez une trame UART et explicitez-la.
        }

            Le protocole RS232 comporte deux types de connecteurs~: \texttt{DE-9}, qui compte 9 fils et \texttt{DB-25}, qui compte 25 fils.
            Deux de ces fils sont nécessaires pour les données (un dans chaque sens).

            Il transporte des signaux dont le voltage est compris soit entre -15V et -3V, soit entre +3V et +15V.
            Ils sont codés en série temporelle de bits.

            Le standard permet une transmission asynchrone (pas d'envoi de clock).

            RS232 utilise huit bits de données, dont un peut être un bit de parité, et deux bits de contrôle~: un bit de démarrage et un bit d'arrêt.

            \includegraphics[width=\linewidth]{./img/trame-rs232.png}

            Les bits de \texttt{0} à \texttt{7} sont les bits de données.
            Ils sont encadrés par le bit de démarrage, qui est à 0, et le bit d'arrêt, qui est à 1.

            Le débit est de 115200 bb/s.

    \subsection{Conception de l'automate}

        \paragraph{%
            Retrouvez l'oscillateur d'après la documentation.
            Quelle est sa fréquence et le nom de son symbole~?
            Sur quelles broches du FPGA sont connectées les LED~?
            Sur quelles broches du FPGA sont connectés les fils concernant la liaison série~?
        }

            La clock prend le nom de \texttt{E3}, et sa fréquence est de 100MHz.

            Les 4 LED monochromes sont connectées aux broches \texttt{H5}, \texttt{J5}, \texttt{T9} et \texttt{T10} du FPGA\@.
            Les 4 LED RGB sont connectées aux broches \texttt{G6}, \texttt{F6}, \texttt{E1}, \texttt{G3}, \texttt{J4}, \texttt{G4}, \texttt{J3}, \texttt{J2}, \texttt{H4}, \texttt{K1}, \texttt{H6} et \texttt{K2}.

            Les fils de cette liaison série sont connectés aux broches \texttt{A9} et \texttt{D10} du FPGA\@.

        \paragraph{%
            Définir les entrées et les sorties d'un automate destiné à être implanté sur la carte FPGA permettant la réception de données série et l'affichage sur les LED\@.
        }

            Entrées~:
            \begin{itemize}
                \item clk
                \item rst
                \item rx
            \end{itemize}

            Sorties~:
            \begin{multicols}{3}
            \begin{itemize}
                \item ld0\_r
                \item ld0\_g
                \item ld0\_b
                \item ld1\_r
                \item ld1\_g
                \item ld1\_b
                \item ld2\_r
                \item ld2\_g
                \item ld2\_b
                \item ld3\_r
                \item ld3\_g
                \item ld3\_b
                \item ld4
                \item ld5
                \item ld6
                \item ld7
            \end{itemize}
            \end{multicols}

        \paragraph{%
            Définissez un fonctionnement haut niveau de votre automate (nombre d'états, condition de transition).
        }

            \begin{center}
            \begin{tikzpicture}[->,on grid,auto,node distance=7cm]

            \node(0)[state, initial above, initial text={}] {IDLE};
            \node(1)[state, below left = of 0] {START};
            \node(2)[state, below right = of 1] {LECT};
            \node(3)[state, below right = of 0] {STOP};

            \path
                (0) edge [bend left] node {0} (1)
                (1) edge [bend left] node {1} (0)
                (1) edge node[left] {0 and T/2} (2)
                (2) edge [loop below] node {0,1 and T and count<8} (2)
                (2) edge node[right] {1 and T and count>7} (3)
                (2) edge node[right] {0 and T and count>7} (0)
                (3) edge node {T} (0)
                ;

            \end{tikzpicture}
            \end{center}

\end{document}
