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