160 lines
4.1 KiB
TeX
160 lines
4.1 KiB
TeX
% vim: :spell spelllang=fr
|
|
\documentclass[11pt]{beamer}
|
|
\usetheme{Warsaw}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[french]{babel}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath}
|
|
\usepackage{amsfonts}
|
|
\usepackage{amssymb}
|
|
\usepackage{graphicx}
|
|
\usepackage{my_listings}
|
|
%\usepackage{my_hyperref}
|
|
\usepackage{math}
|
|
\setbeamertemplate{navigation symbols}{}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\author[Théophile Bastian]{Théophile \textsc{Bastian} \\
|
|
\small{Sous la supervision de Carl Seger et Mary Sheeran}}
|
|
\title{Soutenance de stage, M2}
|
|
\subtitle{Recherche de motifs et substitution dans des circuits électroniques}
|
|
\date{Février\,--\,Juin 2017}
|
|
%\subject{}
|
|
%\logo{}
|
|
\institute{\textit{Chalmers Tekniska Universitet}, Göteborg, Suède}
|
|
\begin{document}
|
|
|
|
\begin{frame}
|
|
\titlepage{}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\tableofcontents
|
|
\end{frame}
|
|
|
|
\section{Contexte}
|
|
|
|
\begin{frame}{Contexte}
|
|
Matériel faillible
|
|
\begin{itemize}
|
|
\item Intel FDIV (Pentium, 1994)
|
|
\item Skylake, Kaby Lake (2017)
|
|
\item \ldots
|
|
\end{itemize}
|
|
|
|
$\implies$ dangereux, cher pour l'industrie. Solutions~?
|
|
|
|
\begin{itemize}
|
|
\item Tester, tester, tester. Simulation, FPGA, matériel, \ldots
|
|
\item Test dirigé~? \emph{Symbolic Trajectory Evaluation}
|
|
\item \alert{Matériel prouvé}
|
|
\begin{itemize}
|
|
\item Dès la conception~?
|
|
\item Après coup~?
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Voss II}
|
|
\begin{itemize}
|
|
\item \alert{fl}~: langage fonctionnel, BDDs, STE, \ldots \\
|
|
Langage généraliste du prouveur hardware, utilisé chez Intel
|
|
|
|
\item \emph{Idée}~: prouver un circuit simple puis le raffiner est plus
|
|
aisé.
|
|
|
|
\item Workflow~:
|
|
\begin{itemize}
|
|
\item Prouver un circuit simple~;
|
|
\item le raffiner \emph{par transformations prouvées}.
|
|
\end{itemize}
|
|
|
|
\item Raffinements~: \alert{recherche de motifs}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\section{Problème}
|
|
|
|
\begin{frame}{Problèmes}
|
|
Deux problèmes à résoudre~:
|
|
|
|
\begin{enumerate}[A]
|
|
\item Deux circuits sont-ils identiques~?
|
|
\item Quelles sont les occurrences de $N$ dans $H$~?
|
|
\end{enumerate}
|
|
|
|
\begin{itemize}
|
|
\item A~: isomorphisme de graphes, NP-hard. Cf. Babai.
|
|
\item B~: isomorphisme de sous-graphes, NP-complet.
|
|
|
|
\vspace{1em}
|
|
|
|
\item Circuits~: processeurs entiers~? \emph{Très gros}.
|
|
\item Transformations \emph{interactives}~: doit être \emph{rapide}.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Forme des circuits}
|
|
\begin{itemize}
|
|
\item Portes, plusieurs types (combinatoire, tristate, délai,
|
|
assertion)
|
|
\item Plusieurs pins par porte
|
|
\item Fil~: plusieurs pins connectés \\
|
|
($\implies$ pas un graphe immédiatement)
|
|
\item \alert{Niveaux de hiérarchie}~: porte \og{}groupe~\fg{}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\section{Approche de résolution}
|
|
|
|
\begin{frame}{Approche générale}
|
|
\begin{itemize}
|
|
\item \alert{Signatures}~: valeur 64 bits décrivant une porte du
|
|
circuit. \\
|
|
Rapide à calculer, rapide à comparer. \\
|
|
Le plus discriminant possible.
|
|
|
|
\pause{}\vspace{1em}
|
|
|
|
\item \alert{Égalité}~: test des permutations, guidé par
|
|
signatures. \\
|
|
Interagit avec les signatures.
|
|
|
|
\pause{}\vspace{1em}
|
|
|
|
\item \alert{Recherche}~: algorithme d'Ullmann, guidé par signatures.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\subsection{Signatures}
|
|
|
|
\begin{frame}{Signature}
|
|
\begin{itemize}
|
|
\item Doit ignorer la \emph{représentation} du graphe
|
|
\item Doit capturer tout ce qui est \emph{inhérent} au circuit
|
|
\item Oublier les \emph{noms}, \emph{identifiants}~; on oublie les
|
|
\alert{ordres}.
|
|
|
|
\vspace{1em}
|
|
|
|
\item TODO
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\subsection{Égalité de groupes}
|
|
|
|
\begin{frame}
|
|
\end{frame}
|
|
|
|
\subsection{Recherche de motifs}
|
|
|
|
\begin{frame}
|
|
\end{frame}
|
|
|
|
\section{Performance}
|
|
|
|
\begin{frame}
|
|
\end{frame}
|
|
|
|
\end{document}
|