Wiki » History » Revision 8
Revision 7 (Alexander Protsenko, 03/21/2023 04:49 PM) → Revision 8/10 (Alexander Protsenko, 03/21/2023 05:09 PM)
h2. ISA
The [[Instruction Set Architecture]] of MicroTESK for ARM Demo version.
h2. Installation Steps
# "Download":https://forge.ispras.ru/projects/microtesk-arm-demo/files and unpack a distribution package (the latest @.tar.gz@ file).
The destination directory will be further referred to as @<INSTALL_DIR>@.
# Set the @MICROTESK_HOME@ environment variable to the @<INSTALL_DIR>@ path (see "Setting Environment Variables":https://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide#Setting-Environment-Variables).
# Add the @<INSTALL_DIR>/bin@ path to the @PATH@ environment variable.
# If required, install SMT solver(s) to the @<INSTALL_DIR>/tools@ directory (see "Installing SMT Solvers":https://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide#Installing-SMT-Solvers).
You can learn more about "Installation Directory Structure":https://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide#Installation-Directory-Structure by following the link.
Next we will use the following directories:
* arch - contains microprocessor specifications and test templates.
* bin - contains scripts for model compilation and test generation
h2. Test Program Generation
To generate the test program for the ARM architecture (model) and the @bubble_sort@ template, run the following command:
<pre>
$ cd $MICROTESK_HOME
$ sh bin/generate.sh armv8 arch/armv8/templates/bubble_sort.rb -dgp memory
</pre>
The output file name depends on the @--code-file-prefix@ and @--code-file-extension@ options (see "Command-Line Options":https://forge.ispras.ru/projects/microtesk/wiki/Command-Line_Options).
h3. Self-Check Test Program Generation
To generate the self-check test program for the the @bubble_sort@ template, run the following command:
<pre>
$ sh bin/generate.sh armv8 arch/armv8/templates/bubble_sort.rb -dgp memory -sc
</pre>
h3. Templates
The entire list of demo templates can be found in the directory: @<INSTALL_DIR>/arch/armv8/templates@.
<pre>
$ cd $MICROTESK_HOME/arch/armv8/templates
</pre>
You can use the @run.sh@ script from this directory to generate the test program:
<pre>
./run.sh branch_generation
</pre>
The generated test program will be in this directory: @$MICROTESK_HOME/output_test/branch_generation@
<pre>
cd $MICROTESK_HOME/output_test/branch_generation
</pre>
Also you can use the @run-sc.sh@ script from this directory to generate the *self-check* test program:
<pre>
./run.sh branch_generation
</pre>
The generated test program will be in this directory: @$MICROTESK_HOME/output_test_sc/branch_generation@
h3. Test trace
The option @--tracer-log@ enables generation of tracer logs for simulation. (In scripts @run.sh@, @run-sc.sh@ it is enabled.)
The trace format is described here: https://forge.ispras.ru/projects/qemu4v/wiki/QEMU4V_Trace_Format
The test trace you can compare with the program execution trace on simulator. You can use the "Trace Matcher":https://forge.ispras.ru/projects/traceutils/wiki tool.
To simulate ARMv8 assembler programs you can use "QEMU4V":https://forge.ispras.ru/projects/qemu4v/wiki/Installation tool.
Or you can use the approach shown in the picture below:
!Trace_comparison.png!