Commit 84460d35 authored by Christian Fibich's avatar Christian Fibich Committed by Stefan Tauner
Browse files

Updated User Manual (FIU names, "Append Multiple FIUs")

parent 90c9f480
......@@ -168,10 +168,16 @@ Nevertheless, it is possible to save a configuration with values deemed
invalid by \textit{\ac{FIJI} Setup}. A warning is issued before such configuration
is saved.
In the \ac{FIU} tab as shown in \Cref{fig:FIUtab}, the user may add fault
injection units using the \textit{Append Empty \ac{FIU}} button and remove
them selectively using the trash can icon next to each \ac{FIU}.
Added \ac{FIU}s are ``empty'', i.e., they have no associated net and driver.
In the \ac{FIU} tab as shown in \Cref{fig:FIUtab}, the user has two options
of adding fault injection units:
\begin{itemize}
\item ``Empty'' \acp{FIU} are added using the \textit{Append empty FIU} button (1).
These \acp{FIU} have no associated net and driver upon creation.
\item Multiple \acp{FIU} can be added using the \textit{Append multiple FIUs} button (2).
Here, a dialog to select multiple nets is opened. This mode is only applicable
if a netlist file is already loaded.
\end{itemize}
\begin{figure}[ht]
\centering
......@@ -182,14 +188,17 @@ Added \ac{FIU}s are ``empty'', i.e., they have no associated net and driver.
\end{figure}
The \ac{FIU}s can be configured in the following way:
Once a netlist is loaded, the user may start with selecting a net to be
instrumented. This is done using a filter dialog which is opened by pressing
the \textit{Select} button next to the net entry field (1).
An example for this dialog is shown in \Cref{fig:netsel}. The entry field across
the top may be used to specify a hierarchical path to a net as perl-style regular expression\footnote{This means that the backslashes and other regex meta characters in escaped identifiers need to be escaped themselves, e.g. for net ``\texttt{{\textbackslash}escaped.identifier }'' write ``\texttt{{\textbackslash}{\textbackslash}escaped{\textbackslash}.identifier }''}.
Once a netlist is loaded, the user may edit the net to be instrumented.
This is done using a filter dialog which is opened by pressing the \textit{Select}
button next to the net entry field (3). An example for this dialog is shown
in \Cref{fig:netsel}. The entry field across the top may be used to
specify a hierarchical path to a net as perl-style regular
expression\footnote{This means that the backslashes and other regex meta characters in escaped identifiers need to be escaped themselves, e.g. for net ``\texttt{{\textbackslash}escaped.identifier }'' write ``\texttt{{\textbackslash}{\textbackslash}escaped{\textbackslash}.identifier }''},
as a shell-style glob\footnote{The standard wildcards * and ? may be used}, or simply as a substring of the desired net\footnote{This is equivalent to *\textit{\textless text \textgreater}* in glob mode}.
\begin{minipage}{\textwidth}
A hierarchical path shall be constructed as follows in Extended Backus-Naur Form:
Regardless of the search mode, the entered expression must match an entire
hierarchical path. A hierarchical path shall be constructed as follows in Extended Backus-Naur Form:
\begin{verbatim}
hierarchical-path = top, "/", { cell-list }, net;
......@@ -204,7 +213,9 @@ cell = ? Cell name ?;
A hierarchical path starts with the name of the toplevel module, then
contains a path of instantiation names, and finally, the name of a net.
The forward slash character \texttt{`/'} is used as a separator between
module, instantiation, and net names.
module, instantiation, and net names. As extended identifiers may be
generated, make sure to add a space after the extended identifier as
required by the Verilog standard.
Once the user presses the \textit{Search} button, all matching
nets are displayed in the left list box (``Matching nets''). The desired net
......@@ -214,33 +225,44 @@ it is shown in the list box on the right. Now, clicking ``OK'' selects this
net for the current \ac{FIU}. An already selected net may be de-selected
by pressing the ``\textless'' button. The net selection dialog is used
wherever a net has to be selected: Also the clock net and the fault detection
nets are selected using this method.
nets are selected using this method. A slightly different version is used
where multiple nets may be selected (\textit{Append multiple FIUs} in the
\ac{FIU} tab). Here, there also exist buttons to add all nets in the
left list box (``\textgreater\textgreater'') or to remove all nets from the
right list box (``\textless\textless'').
\begin{figure}[ht]
\centering
\includegraphics[width=0.6\linewidth]{img/fiji_net_selection.png}
\caption{\ac{FIJI} Setup Tool: Net selection dialog}
\caption{\ac{FIJI} Setup Tool: Net selection dialog (Single Net)}
\label{fig:netsel}
\end{figure}
Once a net is selected, \textit{\ac{FIJI} Setup} checks if this net is actually
present in the \ac{DUT} netlist. The user must then select the driver for
this net using the \textit{Driver} button (3). This opens up a dialog
this net using the \textit{Driver} button (7). This opens up a dialog
with all possible driver objects for this net prompting the user to select
one of these options.
Additionally, the supported fault model can be selected (2). If the fault
Additionally, the supported fault model can be selected (4). If the fault
model \textit{RUNTIME} is selected, all fault models are supported by
this \ac{FIU} and can be activated at runtime. In order to save resources and
timing budget, each \ac{FIU} can also be configured to support only a single
fault model. At runtime, this \ac{FIU} can then only be switched between the
selected fault model and fault-free operation.
For the emulation of a floating net, the output of an \ac{LFSR} is used (see above).
Using the \textit{\acs{LFSR} mask} element (4), the user needs to select a
Using the \textit{\acs{LFSR} mask} element (8), the user needs to select a
bit mask at most as wide as the \ac{LFSR}. The bits of the
\ac{LFSR} corresponding to `1`s in the \textit{mask} are ANDed together,
resulting in the ``floating'' value of the
corresponding net.
A name may be assigned to each \ac{FIU} by pressing the name tag button (5).
This name is for documentation purposes only and is displayed next to the
index for each \ac{FIU} in the Settings Editor and the Execution Engine.
Single \acp{FIU} can be deleted by pressing the delete button (6).
Using the up and down arrows next to the delete button, \acp{FIU} can
be reordered.
\subsection{Statusbar: Resources and Navigation}
At the bottom of the user interface (see \Cref{fig:setup}),
......
......@@ -335,6 +335,11 @@ manual mode selected, the currently entered configuration is sent to
the fault injection logic where it is immediately activated when the
logic is ready.
The optional \ac{FIU} names are displayed next to the respective index to
help identifying the \acp{FIU}. The net the respective \ac{FIU} is attached
to is displayed as a tooltip for the \ac{FIU}'s label and the drop-down
menus to select faults.
As can also be seen in the Figure, the
hardware configuration information from the \textit{\ac{FIJI} Settings} file
is incorporated into the user interface. In the hardware configuration loaded
......
\begin{tikzpicture}
% error frame
\def\netx{5.75}
\def\nety{3.65}
\def\netw{4.4}
\def\netx{5.4}
\def\nety{3}
\def\netw{6.45}
\def\neth{0.55}
\def\drvx{\netx}
\def\drvy{3.3}
\def\drvw{\netw}
\def\drvh{0.5}
\def\lfsrw{3}
\def\drvh{0.55}
\def\lfsrw{2.5}
\def\nameh{1.1}
\def\namew{0.84}
\node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=0.9\textwidth]{img/fiji_setup_fius.png}};
\def\appendx{4.75}
\def\appendy{4.2}
\def\appendh{0.55}
\def\appendw{1.65}
\def\multiw{1.8}
\node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\textwidth]{img/fiji_setup_fius.png}};
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\netw cm,minimum height=\neth cm] (drv) at (\netx,\nety) {}; % Drv
\node[rectangle,anchor=south west,draw,red,thick,rounded corners,minimum width=\drvw cm,minimum height=\drvh cm] (net) at (drv.north west) {}; % Net
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\lfsrw cm,minimum height=\drvh cm] (model) at (net.north east) {}; % Drv
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\lfsrw cm,minimum height=\drvh cm] (lfsr) at (drv.north east) {}; % Drv
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\namew cm,minimum height=\nameh cm] (name) at (model.north east) {}; % Drv
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\namew cm,minimum height=\nameh cm] (del) at (name.north east) {}; % Drv
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\appendw cm,minimum height=\appendh cm] (append) at (\appendx,\appendy) {}; % Drv
\node[rectangle,anchor=north west,draw,red,thick,rounded corners,minimum width=\multiw cm,minimum height=\appendh cm] (multi) at (append.north east) {}; % Drv
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (1) at (append.north) {\footnotesize 1};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (2) at (multi.north) {\footnotesize 2};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (3) at ($ (net.north) + (1,0) $) {\footnotesize 3};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (4) at (model.north) {\footnotesize 4};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (5) at (name.north) {\footnotesize 5};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (6) at (del.north) {\footnotesize 6};
\node[below=0.05cm, inner sep=0.2mm,circle,red,draw] (7) at ($ (drv.south) + (1,0) $) {\footnotesize 7};
\node[below=0.05cm, inner sep=0.2mm,circle,red,draw] (8) at (lfsr.south) {\footnotesize 8};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (1) at (net.north) {\footnotesize 1};
\node[above=0.05cm, inner sep=0.2mm,circle,red,draw] (2) at (model.north) {\footnotesize 2};
\node[below=0.05cm, inner sep=0.2mm,circle,red,draw] (4) at (drv.south) {\footnotesize 4};
\node[below=0.05cm, inner sep=0.2mm,circle,red,draw] (3) at (lfsr.south) {\footnotesize 3};
\end{tikzpicture}
\ No newline at end of file
\end{tikzpicture}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment