Move tp logique pro to separate repo

This commit is contained in:
flyingscorpio@pinebookpro 2021-12-13 08:25:34 +01:00
parent 902fac9984
commit 6d68b2a925
4 changed files with 0 additions and 250 deletions

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -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;

View file

@ -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}