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 981e744..0000000 Binary files a/logique-programmable/tp/img/trame-rs232.png and /dev/null differ diff --git a/logique-programmable/tp/src/bench/uart_tb.vhd b/logique-programmable/tp/src/bench/uart_tb.vhd deleted file mode 100644 index 7a89be7..0000000 --- a/logique-programmable/tp/src/bench/uart_tb.vhd +++ /dev/null @@ -1,119 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: EFREI Paris --- Project: Serial_UART_RS-232 ----------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -- Bibliotheque definissant le type unsigned - -- necessaire pour les additions - -entity uart_tb -end entity uart_tb; - -architecture sim of uart_tb is - - -- Déclarations - signal run : std_logic := '1'; - signal clk : std_logic := '1'; - signal rst : std_logic; - signal rx : std_logic; - signal ld0_r : std_logic; - signal ld0_g : std_logic; - signal ld0_b : std_logic; - signal ld1_r : std_logic; - signal ld1_g : std_logic; - signal ld1_b : std_logic; - signal ld2_r : std_logic; - signal ld2_g : std_logic; - signal ld2_b : std_logic; - signal ld3_r : std_logic; - signal ld3_g : std_logic; - signal ld3_b : std_logic; - signal ld4 : std_logic; - signal ld5 : std_logic; - signal ld6 : std_logic; - signal ld7 : std_logic; - -begin - - uart_tb: entity work.uart - generic map ( - sim => '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}