From 6d68b2a9250fc5d1cf1e7685b56f0da2475c0099 Mon Sep 17 00:00:00 2001 From: "flyingscorpio@pinebookpro" Date: Mon, 13 Dec 2021 08:25:34 +0100 Subject: [PATCH] Move tp logique pro to separate repo --- logique-programmable/tp/Makefile | 15 --- logique-programmable/tp/img/trame-rs232.png | Bin 6779 -> 0 bytes logique-programmable/tp/src/bench/uart_tb.vhd | 119 ------------------ logique-programmable/tp/tp.tex | 116 ----------------- 4 files changed, 250 deletions(-) delete mode 100644 logique-programmable/tp/Makefile delete mode 100644 logique-programmable/tp/img/trame-rs232.png delete mode 100644 logique-programmable/tp/src/bench/uart_tb.vhd delete mode 100644 logique-programmable/tp/tp.tex diff --git a/logique-programmable/tp/Makefile b/logique-programmable/tp/Makefile deleted file mode 100644 index 0520b0b..0000000 --- a/logique-programmable/tp/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -timestamp=$(shell date +%Y-%m-%d_%H:%M) - -all: tp - -tp: tp.tex - @latexmk -pdf tp.tex - @if ! cmp --silent build/tp.pdf tp_*.pdf; then \ - touch tp_tmp.pdf; \ - rm tp*.pdf; \ - cp build/tp.pdf tp_belghith_franken_${timestamp}.pdf; \ - echo "Updated"; \ - fi - -clean: - @rm -rf build 2>/dev/null diff --git a/logique-programmable/tp/img/trame-rs232.png b/logique-programmable/tp/img/trame-rs232.png deleted file mode 100644 index 981e7441f3804f2d78c013da4befce1fb88e8b78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6779 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 '1') - port map ( - clk => clk, - rst => rst, - rx => rx, - - ld0_r => ld0_r, - ld0_g => ld0_g, - ld0_b => ld0_b, - - ld1_r => ld1_r, - ld1_g => ld1_g, - ld1_b => ld1_b, - - ld2_r => ld2_r, - ld2_g => ld2_g, - ld2_b => ld2_b, - - ld3_r => ld3_r, - ld3_g => ld3_g, - ld3_b => ld3_b, - - ld4 => ld4, - ld5 => ld5, - ld6 => ld6, - ld7 => ld7); - - -- Génération d'une horloge de période 10 ns - clk <= not clk after 5 ns when run = '1' else '0'; - - simulation: process - begin - rst <= '1'; - rx <= '1'; - wait for 1 ms; - rst <= '0'; - wait for 1 ms; - - -- Démarrage de la communication - -- Bit de start - rx <= '0'; - wait for 8680 ns; - -- 1er bit de data - rx <= '0'; - wait for 8680 ns; - -- 2e bit de data - rx <= '1'; - wait for 8680 ns; - -- 3e bit de data - rx <= '1'; - wait for 8680 ns; - -- 4e bit de data - rx <= '0'; - wait for 8680 ns; - -- 5e bit de data - rx <= '0'; - wait for 8680 ns; - -- 6e bit de data - rx <= '1'; - wait for 8680 ns; - -- 7e bit de data - rx <= '0'; - wait for 8680 ns; - -- 8e bit de data - rx <= '0'; - wait for 8680 ns; - -- Bit de stop - rx <= '1'; - wait for 8680 ns; - - -- Fin de simulation - wait for 1000 ms; - run <= '0'; - - wait; - end process simulation; - -end architecture uart_tb; diff --git a/logique-programmable/tp/tp.tex b/logique-programmable/tp/tp.tex deleted file mode 100644 index f6e1270..0000000 --- a/logique-programmable/tp/tp.tex +++ /dev/null @@ -1,116 +0,0 @@ -\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}