Project

General

Profile

Wiki » History » Version 9

Alexander Protsenko, 03/21/2023 05:24 PM

1 6 Alexander Protsenko
h2. ISA
2 1 Alexander Protsenko
3 6 Alexander Protsenko
The [[Instruction Set Architecture]] of MicroTESK for ARM Demo version.
4
5 1 Alexander Protsenko
h2. Installation Steps
6
7
# "Download":https://forge.ispras.ru/projects/microtesk-arm-demo/files and unpack a distribution package (the latest @.tar.gz@ file).
8
  The destination directory will be further referred to as @<INSTALL_DIR>@.
9
# 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).
10
# Add the @<INSTALL_DIR>/bin@ path to the @PATH@ environment variable.
11
# 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).
12
13
You can learn more about "Installation Directory Structure":https://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide#Installation-Directory-Structure by following the link.
14
15
Next we will use the following directories:
16
* arch - contains microprocessor specifications and test templates.
17
* bin - contains scripts for model compilation and test generation
18
19
h2. Test Program Generation
20
21
To generate the test program for the ARM architecture (model) and the @bubble_sort@ template, run the following command:
22
<pre>
23
$ cd $MICROTESK_HOME
24
$ sh bin/generate.sh armv8 arch/armv8/templates/bubble_sort.rb -dgp memory
25
</pre>
26
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).
27
28 4 Alexander Protsenko
h3. Self-Check Test Program Generation
29
30
To generate the self-check test program for the the @bubble_sort@ template, run the following command:
31
<pre>
32
$ sh bin/generate.sh armv8 arch/armv8/templates/bubble_sort.rb -dgp memory -sc
33
</pre>
34
35 1 Alexander Protsenko
h3. Templates
36
37
The entire list of demo templates can be found in the directory: @<INSTALL_DIR>/arch/armv8/templates@.
38 2 Alexander Protsenko
<pre>
39
$ cd $MICROTESK_HOME/arch/armv8/templates
40
</pre>
41 1 Alexander Protsenko
42 5 Alexander Protsenko
You can use the @run.sh@ script from this directory to generate the test program:
43 2 Alexander Protsenko
<pre>
44
./run.sh branch_generation
45
</pre>
46 1 Alexander Protsenko
47 2 Alexander Protsenko
The generated test program will be in this directory: @$MICROTESK_HOME/output_test/branch_generation@
48
<pre>
49
cd $MICROTESK_HOME/output_test/branch_generation
50 1 Alexander Protsenko
</pre>
51 5 Alexander Protsenko
52
Also you can use the @run-sc.sh@ script from this directory to generate the *self-check* test program:
53
<pre>
54 9 Alexander Protsenko
./run-sc.sh branch_generation
55 5 Alexander Protsenko
</pre>
56 1 Alexander Protsenko
The generated test program will be in this directory: @$MICROTESK_HOME/output_test_sc/branch_generation@
57
58 6 Alexander Protsenko
h3. Test trace
59 1 Alexander Protsenko
60 7 Alexander Protsenko
The option @--tracer-log@ enables generation of tracer logs for simulation. (In scripts @run.sh@, @run-sc.sh@ it is enabled.)
61 6 Alexander Protsenko
The trace format is described here: https://forge.ispras.ru/projects/qemu4v/wiki/QEMU4V_Trace_Format
62 8 Alexander Protsenko
The test trace you can compare with the program execution trace on simulator.
63 6 Alexander Protsenko
To simulate ARMv8 assembler programs you can use "QEMU4V":https://forge.ispras.ru/projects/qemu4v/wiki/Installation tool.
64
65
Or you can use the approach shown in the picture below:
66
67
!Trace_comparison.png!