2021-09-30 20:57:10 +02:00
|
|
|
\documentclass[a4paper,french,12pt]{article}
|
|
|
|
|
|
|
|
\title{Logique Programmable --- CTD1}
|
|
|
|
\author{}
|
|
|
|
\date{Dernière compilation~: \today{} à \currenttime}
|
|
|
|
|
|
|
|
\usepackage{../../cours}
|
|
|
|
\usepackage{enumitem}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
|
|
|
\maketitle
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
|
|
|
\item Citer les niveaux d'abstraction de conception d'un circuit électronique, du moins élevé au plus élevé.
|
|
|
|
|
2021-09-30 21:55:52 +02:00
|
|
|
physique --- logique --- RTL --- algorithmique
|
|
|
|
|
|
|
|
\item Parmi ces niveaux, lequel correspond aux outils d'EDA (Electronic Design Automation)~?
|
|
|
|
|
|
|
|
RTL
|
|
|
|
|
|
|
|
\item Le language VHDL est-il un language de description ou de programmation~?
|
|
|
|
|
|
|
|
De description.
|
|
|
|
|
|
|
|
\item Quelles sont les deux fonctions de ce langage~?
|
|
|
|
|
|
|
|
Simulation et synthèse.
|
|
|
|
|
|
|
|
\item Dans un fichier VHDL, à quoi sert l'entité~?
|
|
|
|
À quoi sert l'architecture~?
|
|
|
|
|
|
|
|
L'entité décrit les entrées et sorties.
|
|
|
|
L'architecture décrit les étapes nécessaires pour l'implémentation.
|
|
|
|
|
|
|
|
\item Compléter en VHDL l'entité du bloc suivant.
|
|
|
|
Vous utiliserez les types \texttt{std\_logic} et \texttt{std\_logic\_vector}.
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.4\linewidth]{./img/ctd1-q6-bloc.png}
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
\lstinputlisting{./vhdl/ctd1-q6.vhd}
|
|
|
|
|
|
|
|
\item Compléter le chronogramme suivant (sortie Q d'une bascule D).
|
|
|
|
|
|
|
|
\includegraphics[width=\linewidth]{./img/ctd1-q7-chronogramme.png}
|
|
|
|
|
|
|
|
\item Compléter le chronogramme suivant (sortie S d'un multiplexeur de bus), sachant que
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=12]
|
|
|
|
S <= A when SEL = '0' else
|
|
|
|
B;
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.6\linewidth]{./img/ctd1-q8-chronogramme.png}
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
\item Compléter le chronogramme suivant~:
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=12]
|
|
|
|
S <= A when SEL = '0' else
|
|
|
|
B;
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.6\linewidth]{./img/ctd1-q9-chronogramme.png}
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
\item Compléter les phrases selon les schémas ci-dessous~:
|
|
|
|
|
|
|
|
\includegraphics[width=\linewidth]{./img/ctd1-q10.png}
|
|
|
|
|
|
|
|
Le schéma 1 est combinatoire asynchrone. \\
|
|
|
|
Le schéma 2 est séquentiel synchrone. \\
|
|
|
|
Le schéma 3 est séquentiel asynchrone. \\
|
|
|
|
Le schéma 4 est combinatoire synchrone.
|
|
|
|
|
|
|
|
\item Les circuits ci-dessous sont-ils synchrone/asynchrone~? combinatoire/séquentiel~?
|
|
|
|
Donner leur description en VHDL\@.
|
|
|
|
|
2021-10-02 17:49:11 +02:00
|
|
|
\begin{enumerate}
|
2021-09-30 21:55:52 +02:00
|
|
|
|
2021-10-02 17:49:11 +02:00
|
|
|
\item Combinatoire asynchrone
|
2021-09-30 21:55:52 +02:00
|
|
|
|
2021-10-02 17:49:11 +02:00
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.5\linewidth]{./img/ctd1-q11-1.png}
|
|
|
|
\end{center}
|
2021-09-30 21:55:52 +02:00
|
|
|
|
2021-10-02 17:49:11 +02:00
|
|
|
\begin{lstlisting}[gobble=20]
|
|
|
|
s <= not (a and b and (c or d));
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\item Séquenciel asynchrone
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.5\linewidth]{./img/ctd1-q11-2.png}
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=20]
|
|
|
|
s <= not (s and b and (c or d));
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\item Combinatoire synchrone
|
|
|
|
|
|
|
|
\begin{center}
|
|
|
|
\includegraphics[width=0.5\linewidth]{./img/ctd1-q11-3.png}
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=20]
|
|
|
|
process (clk)
|
|
|
|
begin
|
|
|
|
if rising_edge (clk) then
|
|
|
|
s <= a and b and (c or d);
|
|
|
|
end if;
|
|
|
|
end process;
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
\item Les circuits ci-dessous sont-ils synchrone/asynchrone~? combinatoire/séquentiel~?
|
|
|
|
Donner le schéma.
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
|
|
|
\item Séquenciel asynchrone
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=20]
|
|
|
|
s <= a or b and s;
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\item Combinatoire synchrone
|
|
|
|
|
|
|
|
\begin{lstlisting}[gobble=20]
|
|
|
|
process (clk, rst)
|
|
|
|
begin
|
|
|
|
if rst = '1' then
|
|
|
|
s <= '0';
|
|
|
|
elsif rising_edge (clk) then
|
|
|
|
s <= a and b
|
|
|
|
end if;
|
|
|
|
end process;
|
|
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
\end{itemize}
|
2021-09-30 21:55:52 +02:00
|
|
|
|
2021-09-30 20:57:10 +02:00
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
\end{document}
|