Few additions

This commit is contained in:
Théophile Bastian 2017-08-27 00:32:16 +02:00
parent f0f62595ff
commit a89ba72d6d

View file

@ -40,8 +40,6 @@
\maketitle
\begin{abstract}
\todo{enhance abstract?}
The present report describes and summarizes my 1st year of Master's
degree's internship at the university of Chalmers, Göteborg, Sweden. I
worked under supervision of Carl-Johan Seger and Mary Sheeran.
@ -755,11 +753,16 @@ code takes a circuit, scrambles it as much as possible
by randomly changing the order of the circuits and groups, \ldots The circuit
is then matched with its unaltered counterpart.
For the processor described above, it takes about \textbf{477\,ms} to
For the processor described above, it takes about \textbf{313\,ms} to
prove it equal to its scrambled version, and then the other way around. Yet,
the memoized results (essentially the signatures) are kept for the second one,
considerably speeding it up: the same program proving only one way takes about
\textbf{475\,ms}. \todo{explain why}
\textbf{310\,ms}.
Some signatures of order higher than two need to be computed, and there is a
constant time needed to scramble the circuit, etc., which means that the actual
equality match time is ridiculously small compared to the signature computation
time.
\paragraph{Match.} The subcircuit match feature was tested by trying to find
every occurrence of a pattern that can be easily found using tools like
@ -773,7 +776,7 @@ used: two tristate gates and a NOT gate, as in Figure~\ref{fig:mux_of_tri}.
\end{figure}
This group appears 73 times in the processor. To match them all (none are
overlapping), it takes \textbf{\qtodo{113}\,ms}.
overlapping), it takes \textbf{113\,ms}.
\subsection{Corner cases}\label{ssec:corner_cases}
@ -838,7 +841,21 @@ the gates marked with a red dot. Thus, those signatures are exactly the same.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Conclusion}
\todo{}
At this point, \textit{isomatch} seems to be fast enough to be plugged into
VossII, and is being integrated at the moment. On all the cases tested, it
returned a correct result, Even though there are a handful of ways to
enhance it, make it faster, etc., it is useable in its current state.
This internship led me to develop new strategies to bypass corner cases where
the heuristics were inefficient. But this project also made me practice again
my C++, which I had left behind for some time; and forced me to try to have a
code as clean as possible, challenging me on small details that were easy to
implement, but hard to implement in an understandable way.
It also diversified my experience with labs, since my only other experience was
from my L3's internship in Cambridge.
\todo{find better}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%