Move tp logique pro to separate repo
This commit is contained in:
parent
902fac9984
commit
6d68b2a925
4 changed files with 0 additions and 250 deletions
|
@ -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 |
|
@ -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;
|
|
@ -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}
|
Loading…
Reference in a new issue