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

extended userguide

parent 92c0657a
\acro{LOC}{Lines Of Code}
\acro{WWW}{World Wide Web}
\acro{FIJI}{Fault InJection Instrumenter}
\acro{FIC}{Fault Injection Controller}
\acro{FIU}{Fault Injection Unit}
\acro{VQM}{Verilog Quartus Mapping}
\acro{VM}{Verilog Mapping}
\acro{LFSR}{Linear Feedback Shift Register}
\section{Introduction}
%Silence bibtex error \cite{adams2007hitchhiker}
The Fault InJection Instrumenter (FIJI) suite provides a tool flow for
The \ac{FIJI} suite provides a tool flow for
performing fault injection tests on chip designs in an FPGA-based environment.
In contrast to fault injection tests by modification of the RTL source,
FIJI targets the already synthesized design at the FPGA primitive level (e.g.,
\ac{FIJI} targets the already synthesized design at the FPGA primitive level (e.g.,
LUTs, Flip-Flops, and the nets connecting them). Compared to fault injection
carried out with the help of partial reconfiguration, FIJI is relatively
carried out with the help of partial reconfiguration, \ac{FIJI} is relatively
technology-independent as no knowledge about the bitstream format and
the mapping to configuration frames within the FPGA device is required.
An overview of the FIJI tool flow is shown in Figure~\ref{fig:fijiflow}.
An overview of the \ac{FIJI} tool flow is shown in Figure~\ref{fig:fijiflow}.
Data and actions framed in red have to be supplied by the user.
FIJI works by instrumenting a given netlist of a design under test with
\ac{FIJI} works by instrumenting a given netlist of a design under test with
fault injection logic according to a predefined fault injection configuration.
A parametrized Fault Injection Controller (FIC) hardware module is added outside
A parametrized \ac{FIC} hardware module is added outside
of the original design. The generation of the fault injection configuration
and the parametrization of the FIC is aided by the graphical user interface
provided by the \textit{FIJI Setup} tool, but can also be performed manually
and the parametrization of the \ac{FIC} is aided by the graphical user interface
provided by the \textit{\ac{FIJI} Setup} tool, but can also be performed manually
or by a script, as this information is stored in text files in an INI-like
format.
Instrumentation is done by the \textit{FIJI Instrument} tool. This tool
Instrumentation is done by the \textit{\ac{FIJI} Instrument} tool. This tool
modifies the original netlist, and generates wrapper and configuration
packages in VHDL.
The user is then required to perform synthesis and place~\&~route of the
modified design and download the generated bitstream to the target hardware.
Test execution is facilitated by the \textit{FIJI Download} and
\textit{FIJI Download GUI} tools. These tools communicate with the FIC
Test execution is facilitated by the \textit{\ac{FIJI} Download} and
\textit{\ac{FIJI} Download GUI} tools. These tools communicate with the \ac{FIC}
over a standard (TTL-)serial interface, and instruct the fault injection
logic which tests to perform. Both of these tools support the execution of
manually specified tests, execution of test sequences, and randomly generated
test sequences.
\begin{figure}[ht]
\centering
\input{img/fiji_sequence}
\caption{\ac{FIJI} Tool Flow}
\label{fig:fijiflow}
\end{figure}
Figure \ref{fig:fijioverview} provides an overview of the components
present in the host (PC) and the target hardware to facilitate fault
injection tests.
......@@ -42,19 +50,18 @@ injection tests.
\begin{figure}[ht]
\centering
\includegraphics[width=0.85\linewidth]{img/Overview.pdf}
\caption{FIJI Overview}
\caption{\ac{FIJI} Overview}
\label{fig:fijioverview}
\end{figure}
All FIJI tools are written in Perl.
All \ac{FIJI} tools are written in Perl.
The following data is used as an input to FIJI:
The following data is used as an input to \ac{FIJI}:
\begin{itemize}
\item The netlist to be subjected to fault injection.
Only Verilog-based netlists are supported, such as Altera's
Verilog Quartus Mapping (VQM) format, and Xilinx's Verilog
Mapping (VM) format.
\ac{VQM} format, and Xilinx's \ac{VM} format.
\item Meta-information about the design (e.g., clock frequency)
\item The desired fault injection configuration (which faults on which nets)
......
\section{Installation \& Setup}
The prerequisites for running the \textit{FIJI} fault injection toolflow are
listed in Table~\ref{tab:prerequisites} alongside the version FIJI was
The prerequisites for running the \textit{\ac{FIJI}} fault injection toolflow are
listed in Table~\ref{tab:prerequisites} alongside the version \ac{FIJI} was
tested with. This does not include the Perl modules which need to be installed,
which can be found in Table~\ref{tab:perlmod}.
\begin{table}[h]
\caption{Software prerequisites for FIJI}
\caption{Software prerequisites for \ac{FIJI}}
\label{tab:prerequisites}
\begin{center}
\begin{tabular}{llll}
......@@ -24,30 +24,36 @@ which can be found in Table~\ref{tab:perlmod}.
\end{table}
\begin{table}[h]
\caption{Perl Modules required by FIJI}
\caption{Perl Modules required by \ac{FIJI}}
\label{tab:perlmod}
\begin{center}
\begin{tabular}{llll}
\hline
Module & Description & Version & FIJI Tool \\
Module & Description & Version & \ac{FIJI} Tool \\
\hline
Clone & Deep object copy & tbd & All tools \\
Config::Simple & INI-style configuration file parsing & tbd & All tools \\
enum & Enumerated types & tbd & All tools \\
Device::SerialPort & Serial communication mapping for Unix/Linux & tbd & \textit{FIJI Download + GUI} \\
Digest::CRC & CRC calculation & tbd & \textit{FIJI Instrument}, \textit{FIJI Download + GUI} \\
Device::SerialPort & Serial communication mapping for Unix/Linux & tbd & \textit{\ac{FIJI} Download + GUI} \\
Digest::CRC & CRC calculation & tbd & \textit{\ac{FIJI} Instrument}, \textit{\ac{FIJI} Download + GUI} \\
Doxygen::Filter::Perl & Doxygen documentation output & tbd & All tools \\
Log::Log4Perl & Easy logging & tbd & All tools \\
Log::Dispatch::Output & Base class for custom log appenders & tbd & \textit{FIJI Download GUI} \\
Log::Dispatch::Output & Base class for custom log appenders & tbd & \textit{\ac{FIJI} Download GUI} \\
Params::Validate & ??? & tbd & ??? \\
Scalar::Util & ??? & tbd & ??? \\
Switch & Switch statement support & tbd & ??? \\
Test::Deep & Deep hash comparison & tbd & \textit{FIJI Setup}, \textit{FIJI Download GUI} \\
Tk & Graphical User Interface library & tbd & \textit{FIJI Setup}, \textit{FIJI Download GUI} \\
Tk::StatusBar & StatusBar widget for Tk & tbd & \textit{FIJI Setup}, \textit{FIJI Download GUI} \\
Verilog::Language & Verilog parser/generator & 99 & \textit{FIJI Setup}, \textit{FIJI Instrument} \\
Test::Deep & Deep hash comparison & tbd & \textit{\ac{FIJI} Setup}, \textit{\ac{FIJI} Download GUI} \\
Tk & Graphical User Interface library & tbd & \textit{\ac{FIJI} Setup}, \textit{\ac{FIJI} Download GUI} \\
Tk::StatusBar & StatusBar widget for Tk & tbd & \textit{\ac{FIJI} Setup}, \textit{\ac{FIJI} Download GUI} \\
Verilog::Language & Verilog parser/generator & 99 & \textit{\ac{FIJI} Setup}, \textit{\ac{FIJI} Instrument} \\
\hline
\end{tabular}
\end{center}
\end{table}
\begin{figure}[ht]
\centering
\input{img/fiji_dirs}
\caption{\ac{FIJI} Directory Structure}
\label{fig:fijidir}
\end{figure}
\section{FIJI Setup Tool}
\section{\acs{FIJI} Setup Tool}
\label{sec:setup}
The \textit{FIJI Setup} Tool provides a graphical user interface to
create and edit a \textit{FIJI Configuration} that can be used to
The \textit{\ac{FIJI} Setup} Tool provides a graphical user interface to
create and edit a \textit{\ac{FIJI} Configuration} that can be used to
instrument a netlist and run fault injection tests. It helps the user
by checking the sanity of entered values, and eases
net and driver selection by displaying suggestions parsed from the
netlist.
Although \textit{FIJI Setup} is a graphical tool, it accepts the
Although \textit{\ac{FIJI} Setup} is a graphical tool, it accepts the
following \underline{optional} command-line arguments:
\begin{itemize}
\item \texttt{-s, {-}{-}settings-file=<filename>}
Specifies a \textit{FIJI Settings} file to load at startup
Specifies a \textit{\ac{FIJI} Settings} file to load at startup
\item \texttt{-n, {-}{-}netlist-file=<filename>}
......@@ -35,13 +35,13 @@ for selecting different categories of values to be entered, (3) the
\begin{figure}[ht]
\centering
\input{img/fiji_setup_screenshot_marked}
%\includegraphics[width=0.85\linewidth]{img/fiji_setup_screenshot.png}
\caption{FIJI Setup Tool}
%\includegraphics[width=0.85\linewidth]{img/\ac{FIJI}_setup_screenshot.png}
\caption{\ac{FIJI} Setup Tool}
\label{fig:setup}
\end{figure}
Using the \textit{Control Area}, file operations can be performed:
The user can select to load a \textit{FIJI Configuration} file from disk
The user can select to load a \textit{\ac{FIJI} Configuration} file from disk
or save the current configuration to a file. Additionally, a Verilog
netlist file can be loaded.
These actions can be performed both via the buttons in the \textit{Control
......@@ -51,15 +51,15 @@ Using the \textit{Help} menu entry, license information as well as
this help document can be retrieved.
Upon startup, when no configuration file is specified via command-line
options, \textit{FIJI Setup} starts with a default configuration with
options, \textit{\ac{FIJI} Setup} starts with a default configuration with
some values already filled in. This configuration can either be used to
create a customized configuration using the GUI, or saved to a file and
edited manually using a text editor.
A netlist must be loaded to perform netlist-related tasks
(choosing nets, pin names, and drivers). When a netlist is loaded, FIJI
(choosing nets, pin names, and drivers). When a netlist is loaded, \ac{FIJI}
analyzes the contained Verilog modules and builds an internal representation
using Perl Objects. Thus, larger netlists may take a while to load. During
using Perl objects. Thus, larger netlists may take a while to load. During
this time, a loading screen barring the user from interaction with the
GUI is displayed.
......@@ -71,20 +71,20 @@ configuration:
\item \underline{General Settings}
Settings for the instrumentation and synthesis process,
as well as settings for the serial communication between FIJI and host
as well as settings for the serial communication between \ac{FIJI} and host
and the fault injection timers are subsumed under this tab.
\item \underline{Clock Settings}
The \textit{FIJI} fault injection logic is clocked from the
The \textit{\ac{FIJI}} fault injection logic is clocked from the
clock of the clock domain in the DUT where faults are injected.
The name and frequency of this clock net need to be specified.
\item \underline{LFSR Settings}
\textit{FIJI} emulates floating nets caused by \textit{Stuck-open}
\textit{\ac{FIJI}} emulates floating nets caused by \textit{Stuck-open}
faults by forcing pseudo-random binary levels onto the respective
net. These levels are derived from the value of a \textit{Linar
net. These levels are derived from the value of a \textit{Linear
Feedback Shift Register}. In this tab, the width, polynomial,
and starting value of this register can be configured.
See \ref{sec:lfsrtable} for a list of complete LFSR polynomials
......@@ -92,41 +92,41 @@ configuration:
\item \underline{External Reset}
The FIJI logic can be configured to be reset from an external
The \ac{FIJI} logic can be configured to be reset from an external
pin. This feature can be turned on and off in this tab.
If an external reset pin is desired, the polarity and name must be entered.
\item \underline{Reset from DUT to FIJI}
\item \underline{Reset from DUT to \ac{FIJI}}
In addition to the external reset via pin, also any net of the
DUT can be used to reset the FIJI logic. This feature can be
DUT can be used to reset the \ac{FIJI} logic. This feature can be
turned on and off in this tab. If an internal reset from the
DUT is desired, the polarity and source net name must be entered.
When the \textit{Reset from DUT to FIJI} feature is used, the
\textit{Reset from FIJI to DUT} feature cannot be used at the
When the \textit{Reset from DUT to \ac{FIJI}} feature is used, the
\textit{Reset from \ac{FIJI} to DUT} feature cannot be used at the
same time.
If both the external reset feature and the reset from DUT to
FIJI are enabled, the reset sources are ORed together and used
as the FIJI logic's asynchronous reset signal.
\ac{FIJI} are enabled, the reset sources are ORed together and used
as the \ac{FIJI} logic's asynchronous reset signal.
\item \underline{Reset from FIJI to DUT}
\item \underline{Reset from \ac{FIJI} to DUT}
In contrast to the feature described above, the FIJI logic can
In contrast to the feature described above, the \ac{FIJI} logic can
also be used as a source for a reset net in the DUT.
When the \textit{Reset from FIJI to DUT} feature is used, the
\textit{Reset from DUT to FIJI} feature cannot be used at the
same time. If an internal reset from FIJI to the DUT is desired,
When the \textit{Reset from \ac{FIJI} to DUT} feature is used, the
\textit{Reset from DUT to \ac{FIJI}} feature cannot be used at the
same time. If an internal reset from \ac{FIJI} to the DUT is desired,
the polarity, target net name, and desired reset pulse duration
must be entered.
\item \underline{Trigger Settings}
In order to support dynamic test execution depending on
events external to FIJI, trigger signals can be used to
events external to \ac{FIJI}, trigger signals can be used to
continue a suspended test execution.
Both an external trigger via an FPGA pin as well as an internal
trigger using a net in the DUT as a source can be used. The
FIJI logic can be instructed at runtime if it shall wait for
\ac{FIJI} logic can be instructed at runtime if it shall wait for
the internal or external trigger signal.
For both the internal and the external trigger facilities,
the respective pin or net name and polarity must be specified.
......@@ -138,48 +138,48 @@ configuration:
levels of these nets need to be specified when they are used.
\item \underline{FIUs}
\item \underline{\acp{FIU}}
Here, the actual fault injection capabilities of the instrumented
design are configured. For each net into which faults shall be
injected at runtime, a \textit{Fault Injection Unit} needs to
be added. Each FIU has an associated net, a driver for this net,
be added. Each \ac{FIU} has an associated net, a driver for this net,
and fault injection capabilities to be configured.
\end{itemize}
The left hand side of the \textit{Main Area} displays a graphical representation
of the current hardware configuration in all tabs. Changes in the configuration
such as added FIUs and changed signal polarities are reflected in this
such as added \ac{FIU}s and changed signal polarities are reflected in this
block diagram immediately. Some blocks and signals provide additional
information when the cursor hovers above them. On the right hand side
of the \textit{Main Area} the configuration items for the current tab
are displayed. Each time a value is updated in one of the configuration
items, \textit{FIJI Setup} checks for sanity and validity of the entered
items, \textit{\ac{FIJI} Setup} checks for sanity and validity of the entered
value. If a check fails, the corresponding field is marked in red until
a valid value is entered. Also fields which cannot yet be verified
(e.g., net names, when no netlist is loaded) are marked in this way.
Nevertheless, it is possible to save a configuration with values deemed
invalid by \textit{FIJI Setup}. A warning is issued before such configuration
invalid by \textit{\ac{FIJI} Setup}. A warning is issued before such configuration
is saved.
In the FIU tab as shown in Figure~\ref{fig:fiutab}, the user may add fault
injection units using the \textit{Append Empty FIU} button and remove
them selectively using the trash can icon next to each FIU.
Added FIUs are ``empty'', i.e., they have no associated net and driver.
In the \ac{FIU} tab as shown in Figure~\ref{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.
The FIUs can be configured in the following way:
The \ac{FIU}s can be configured in the following way:
Once the user starts to enter a net name (and a valid netlist is loaded),
suggestions for nets are displayed below the net name entry field (1).
When a net is selected, \textit{FIJI Setup} checks if this net is actually
When a net is selected, \textit{\ac{FIJI} Setup} checks if this net is actually
present in the DUT netlist. The user must then select the driver for
this net using the \textit{Driver} button (3). 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
model \textit{RUNTIME} is selected, all fault models are supported by
this FIU and can be activated at runtime. In order to save resources and
timing budget, each FIU can also be configured to support only a single
fault model. At runtime, this FIU can then only be switched between the
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 LFSR is used (see above).
Using the \textit{LFSR mask} element (4), the user needs to select a
......@@ -191,9 +191,9 @@ corresponding net.
\begin{figure}[ht]
\centering
\input{img/fiji_setup_fius_marked}
%\includegraphics[width=0.85\linewidth]{img/fiji_setup_screenshot.png}
\caption{FIJI Setup Tool: FIU Tab}
\label{fig:fiutab}
%\includegraphics[width=0.85\linewidth]{img/\ac{FIJI}_setup_screenshot.png}
\caption{\ac{FIJI} Setup Tool: \ac{FIU} Tab}
\label{fig:FIUtab}
\end{figure}
At the bottom of the user interface (see Figure~\ref{fig:setup}),
......@@ -207,6 +207,6 @@ buttons provide additional navigation through the tabs. The \textit{Open
Documentation} button displays this document in a PDF reader.
Alternatively, a \textit{FIJI Configuration} can be created manually using
Alternatively, a \textit{\ac{FIJI} Configuration} can be created manually using
a text editor. A template file can be generated by saving the default
configuration out of the \textit{FIJI Setup Tool}.
\ No newline at end of file
configuration out of the \textit{\ac{FIJI} Setup Tool}.
\ No newline at end of file
\section{Instrumentation}
The \textit{FIJI Instrumentation} tool reads in the original Verilog
netlist and the configuration file edited using the \textit{FIJI Setup}
The \textit{\ac{FIJI} Instrumentation} tool reads in the original Verilog
netlist and the configuration file edited using the \textit{\ac{FIJI} Setup}
tool.
Its main task is to actually perform the modifications of the DUT netlist
specified in the FIJI configuration file. For each \textit{[FIU$n$]} entry
specified in the \ac{FIJI} configuration file. For each \textit{[\acs{FIU}$n$]} entry
in this file, it breaks up the corresponding net in an \textit{original}
and a \textit{modified} net, routes these nets to the toplevel, and creates
an output and input for them, respectively.
......@@ -19,11 +19,11 @@ place-and-route tool are generated by this tool. These files define
constraints enforcing the specified cross-hierarchy optimization level
and physical separation settings.
The \textit{FIJI Instrumentation} tool is a command-line tool. It accepts
The \textit{\ac{FIJI} Instrumentation} tool is a command-line tool. It accepts
the following parameters and switches:
\begin{itemize}
\item \texttt{-s, {-}{-}fiji-settings-file=<filename>}
\item \texttt{-s, {-}{-}\ac{FIJI}-settings-file=<filename>}
Specifies the path to the settings file for which to instrument
the original netlist.
......@@ -44,7 +44,7 @@ the following parameters and switches:
Changes the directory where the generated files are put to
the specified path. This option takes precedence over the
\texttt{OUTPUT\_DIR} value specified in the FIJI configuration file.
\texttt{OUTPUT\_DIR} value specified in the \ac{FIJI} configuration file.
If the specified directory does not exist, it will be created.
\textit{This parameter is optional.}
......
......@@ -24,7 +24,7 @@ FPGA implementation. To that end, the following steps have to be observed:
DUT as necessary (one layer of hierarchy will be added as the
module is instantiated by the wrapper VHDL entity)
\item Optionally, add the \textit{synthesis} constraints file generated
by the \textit{FIJI Instrumentation} tool. The constraints in
by the \textit{\ac{FIJI} Instrumentation} tool. The constraints in
this file attempt to enforce the cross-hierarchy optimization
level between the fault injection logic and the generated DUT
netlist (See \ref{sec:preventing_optimizations})
......@@ -127,6 +127,8 @@ This can be achieved using location constraints in the FPGA vendors'
P\&R tools, although names and exact definition processes vary across
different tools.
\paragraph{Altera Quartus}~\\
To fix the physical placement of a (sub)hierarchy in Altera Quartus,
perform the following steps in the Quartus GUI:
\begin{enumerate}
......@@ -135,7 +137,7 @@ perform the following steps in the Quartus GUI:
\item In the \textit{Project Navigator}, select the \textit{Hierarchy Browser}
tab
\item Unfold the top level entity in the tree view
\item Right-click on the top level entity of the DUT netlist (\texttt{i\_DUT})
\item Right-click on the top-level entity of the DUT netlist (\texttt{i\_DUT})
\item In the context menu, navigate to \textit{LogicLock Region} and
select \textit{Create new LogicLock Region}
\item A new \textit{floating} region for placement is created.
......@@ -160,3 +162,41 @@ perform the following steps in the Quartus GUI:
\textit{LogicLock Regions Window}.
\end{itemize}
\end{enumerate}
\paragraph{Xilinx Vivado}~\\
To fix the physical placement of a (sub)hierarchy in Xilinx Vivado,
perform the following steps in the Vivado GUI:
\begin{enumerate}
\item Set up a \textit{Post-Synthesis Project} with the
synthesized netlist of the entire design (output of the second
synthesis process) as a source file.
\item Open the \textit{Synthesized Design} perspective.
\item In the \textit{Netlist} tab, right-click on the top-level entity
if the DUT netlist (\texttt{i\_DUT})
\item In the context menu, navigate to \textit{Floorplanning} and
select \textit{New Pblock}. A Pblock is Xilinx Vivado's equivalent
to a \textit{LogicLock Region}.
\item In the menu bar, navigate to \textit{Tools $\rightarrow$ Floorplanning}
and execute \textit{Place Pblocks}. This will use the information
from the netlist to generate appropriately sized FPGA regions
for all Pblocks. To reserve area for future expansions, a
target utilization can be set for each Pblock.
\item Once the Pblock has been placed, it can be reviewed in the
\textit{Netlist} tab of the \textit{Synthesized Design} perspective:
\begin{enumerate}
\item Select the top-level entity of the Pblock.
\item In the \textit{General} tab of the \textit{Cell Properties} window,
the name of the Pblock to which this entity is assigned is shown.
\item Right-click on the name of that Pblock and select \textit{Pblock Properties}
in the context menu.
\item The \textit{Pblock Properties} windows is opened.
Here, in the \textit{Statistics} tab, the block utilization
can be viewed. In the \textit{Rectangles} tab, the position
and size of the Pblock can be changed manually.
\end{enumerate}
\item The location of the Pblock can also be changed in the device's
floorplan.
\end{enumerate}
\todo{Describe how to use exported constraints files}
......@@ -4,19 +4,19 @@
\subsection{Command-line tool}
\label{sec:download-cli}
The \textit{FIJI Download} tool is a command-line tool which facilitates
downloading test patterns to the \textit{FIJI} logic embedded in the
The \textit{\ac{FIJI} Download} tool is a command-line tool which facilitates
downloading test patterns to the \textit{\ac{FIJI}} logic embedded in the
instrumented netlist in the target FPGA device. It communicates with the
\textit{FIJI} logic embedded in the instrumented netlist in the target
\textit{\ac{FIJI}} logic embedded in the instrumented netlist in the target
FPGA device, downloads test patterns and reads back status information.
\textit{FIJI Download} works with \textit{FIJI Tests} files, which can
\textit{\ac{FIJI} Download} works with \textit{\ac{FIJI} Tests} files, which can
contain (1) overall test execution parameters such as the serial device
to be used for communication with the fault injection logic, (2)
a succession of test patterns for sequenced tests along with test
execution information, and (3) test execution information for random
tests such as fault probabilities and minimum and maximum timer values.
\textit{FIJI Download} may be invoked as follows:
\textit{\ac{FIJI} Download} may be invoked as follows:
\texttt{perl fiji\_download.pl [OPTIONS]}
......@@ -28,17 +28,17 @@ The following command-line parameters are required regardless of operation mode:
The download mode to use:
\begin{itemize}
\item[] \texttt{manual}: Prompt for fault patterns and timer values
\item[] \texttt{auto}: Download tests in the \textit{FIJI Tests} file
\item[] \texttt{auto}: Download tests in the \textit{\ac{FIJI} Tests} file
\item[] \texttt{random}: Download randomly generated tests
\end{itemize}
\item \texttt{-s, {-}{-}settings=<filename>}
Specifies the \textit{FIJI Settings} file to use
Specifies the \textit{\ac{FIJI} Settings} file to use
\item \texttt{-t, {-}{-}tests=<filename>}
Specifies the \textit{FIJI Tests} file to use
Specifies the \textit{\ac{FIJI} Tests} file to use
\end{itemize}
The script also accepts the following \underline{optional} command-line arguments:
......@@ -46,7 +46,7 @@ The script also accepts the following \underline{optional} command-line argument
\begin{itemize}
\item \texttt{-p, {-}{-}port=<port>}
The serial port to use. Defaults to the value configured in the \textit{FIJI Settings} file
The serial port to use. Defaults to the value configured in the \textit{\ac{FIJI} Settings} file
\item \texttt{-h, {-}{-}help}
......@@ -54,7 +54,7 @@ The script also accepts the following \underline{optional} command-line argument
\end{itemize}
In \textit{Random} mode, the following options can be used to overrule
the values defined in the supplied \textit{FIJI Tests} file:
the values defined in the supplied \textit{\ac{FIJI} Tests} file:
\begin{itemize}
\item \texttt{-a, {-}{-}timer-1-min=<duration>}
......@@ -95,14 +95,14 @@ the values defined in the supplied \textit{FIJI Tests} file:
\end{itemize}
The entered durations must fit into the timer width specified in the
\textit{FIJI Settings} file, with the maximum duration being greater
\textit{\ac{FIJI} Settings} file, with the maximum duration being greater
than or equal to the minimum duration.
The sum of the fault probabilities must not exceed $1.0$. The difference
between this sum and $1.0$ is assumed to be the probability of fault-free
operation.
When choosing \texttt{manual} as mode, \textit{FIJI Download} prompts
When choosing \texttt{manual} as mode, \textit{\ac{FIJI} Download} prompts
the user for fault configurations before they are downloaded as shown
in Snippet~\ref{lst:manualprompt}.
......@@ -146,12 +146,12 @@ Enable reset (default: 0)? 0
The mapping between fault indices and fault models is shown in Table~\ref{tab:faultmap}.
After the fault configurations for the different FIUs in both phases,
After the fault configurations for the different \ac{FIU}s in both phases,
the time values for both duration have to be entered in clock cycles.
Following the time durations, the trigger mode must be selected, where
\texttt{1} maps to enabling the trigger facility. If the user enters a \texttt{1},
\textit{FIJI Download} asks if the internal trigger (\texttt{0}) or the
\textit{\ac{FIJI} Download} asks if the internal trigger (\texttt{0}) or the
external trigger (\texttt{1}) shall be used.
Finally, the user has to enter if the fault injection logic shall apply
......@@ -159,38 +159,39 @@ a reset to the DUT before applying this fault injection pattern.
Informations other than the fault patterns (e.g., the serial port,
baud rate, or \texttt{HOLD\_ON\_FAULT\_DETECT} information) are read from
the \textit{FIJI Settings} and \textit{FIJI Tests} files.
the \textit{\ac{FIJI} Settings} and \textit{\ac{FIJI} Tests} files.
\subsection{GUI Tool}
The \textit{FIJI Download GUI} tool provides a graphical user interface to
The \textit{\ac{FIJI} Download GUI} tool provides a graphical user interface to
the functionality described in Section~\ref{sec:download-cli}. It also
provides the possibility to edit \textit{FIJI Tests} files in a guided
provides the possibility to edit \textit{\ac{FIJI} Tests} files in a guided
manner, where entered values are checked for validity and sanity.
Although \textit{FIJI Download} is a graphical tool, it accepts the
Although \textit{\ac{FIJI} Download} is a graphical tool, it accepts the
following \underline{optional} command-line arguments:
\begin{itemize}
\item \texttt{-s, {-}{-}settings-file=<filename>}
Specifies a \textit{FIJI Settings} file to load at startup
Specifies a \textit{\ac{FIJI} Settings} file to load at startup
\item \texttt{-t, {-}{-}tests-file=<filename>}
Specifies a \textit{FIJI Tests} file to load at startup
Specifies a \textit{\ac{FIJI} Tests} file to load at startup
\item \texttt{-h, {-}{-}help}
Displays usage information on the terminal and exits
\end{itemize}
The main elements in the user interface of the \textit{FIJI Download GUI} tool
The main elements in the user interface of the \textit{\ac{FIJI} Download GUI} tool
can be seen in Figure~\ref{fig:download_gui}:
\begin{enumerate}[(1)]