Project

General

Profile

Getting Started with MicroTESK - PowerPC Edition » History » Version 11

Alexander Kamkin, 10/26/2016 01:42 PM

1 1 Alexander Protsenko
h1. Getting Started with MicroTESK - PowerPC Edition
2
3 6 Alexander Kamkin
h2. Начало работы с @MicroTESK - PowerPC Edition@
4 11 Alexander Kamkin
5 10 Alexander Kamkin
# Репозиторий проекта:  http://forge.ispras.ru/projects/microtesk-powerpc/repository
6 1 Alexander Protsenko
Создать локальную копию проекта:
7 5 Alexander Kamkin
<pre>
8 1 Alexander Protsenko
git clone https://forge.ispras.ru/git/microtesk-powerpc.git
9
</pre>
10 10 Alexander Kamkin
# Сборка проекта
11 1 Alexander Protsenko
Необходимо наличие: Gradle 2.9, Java 1.8.0 (Подробнее http://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide)
12 5 Alexander Kamkin
Запускаем сборку из корневого каталога: 
13 10 Alexander Kamkin
## с выполнением тестов: <pre> gradle build </pre>
14
## без выполнения тестов: <pre> gradle assemble </pre>
15
# Переменные среды
16 3 Alexander Kamkin
Необходимо установить
17 1 Alexander Protsenko
<pre>
18
MICROTESK_HOME = "Каталог установки"\microtesk-powerpc\build\target
19
</pre>
20 3 Alexander Kamkin
# Модель и спецификация находятся по адресу: microtesk-powerpc\src\main\arch\powerpc\model
21 1 Alexander Protsenko
powerpc_alu.nml - предлагается начать с арифметических инструкций.
22
(Реализованы инструкции на момент написания данного теста: add, add., addi, ori. Можно использовать как пример.)
23 6 Alexander Kamkin
Запуск сборки модели из этой папки:
24 10 Alexander Kamkin
<pre>
25 1 Alexander Protsenko
%MICROTESK_HOME%\bin\compile.bat powerpc.nml mmu/powerpc.mmu --extension-dir ../extensions
26 10 Alexander Kamkin
</pre>
27 1 Alexander Protsenko
# Шаблоны тестов: microtesk-powerpc\src\main\arch\powerpc\templates
28
instruction_alu.rb - базовый шаблон для проверки корректности работы арифметических инструкций.
29
Запуск шаблона из этой папки:
30 10 Alexander Kamkin
<pre>
31 6 Alexander Kamkin
%MICROTESK_HOME%\bin\generate.bat powerpc instruction_alu.rb --code-file-prefix instruction_alu --code-file-extension s -v
32 10 Alexander Kamkin
</pre>
33 1 Alexander Protsenko
34
После запуска шаблонов, ассемблерный код и Tarmac-лог будут находится тут: ..\microtesk-powerpc\build\target
35
36 6 Alexander Kamkin
h2. Особенности написания спецификации
37 1 Alexander Protsenko
38 6 Alexander Kamkin
# Описание инструкции
39
## Название
40 1 Alexander Protsenko
<pre>
41
/*
42
  Add Immediate D-form
43
</pre>
44 7 Alexander Kamkin
## Расшифровка кодировки команды. Важно отметить, что в документации для PowerPC поля упорядочены от 0 до 31, для унификации спецификаций необходимо их располагать в обратном порядке, а именно от 31 до 0, как показано ниже:
45 1 Alexander Protsenko
<pre>
46
  Encoding: | 31 16 | 15 11 | 10 6 | 5 0 |
47
            | SI    | RA    | RT   |     |
48
            |       |       |      | 14  |
49
            | 16    | 5     | 5    | 6   |
50
</pre>
51 7 Alexander Kamkin
## Формат записи команды
52 1 Alexander Protsenko
<pre>
53
  Format:
54
    addi RT,RA,SI
55
56
</pre>
57 7 Alexander Kamkin
## Описание
58 1 Alexander Protsenko
<pre>
59
  Description:
60
    if RA = 0 then RT <- EXTS(SI)
61
    else RT <- (RA) + EXTS(SI)
62
    The sum (RA|0) + SI is placed into register RT.
63
</pre>
64 7 Alexander Kamkin
## Зависимости
65 1 Alexander Protsenko
<pre>
66
  Special Registers Altered:
67
    None
68
  */
69
</pre>
70 7 Alexander Kamkin
# Реализация
71
## Объявление инструкции
72 1 Alexander Protsenko
<pre>
73
op addi (rt: R, ra: R, si: SHORT)
74
</pre>
75 7 Alexander Kamkin
## Инициализация данных для инструкции
76 1 Alexander Protsenko
<pre>
77
  init = {
78
    OPCD = coerce(card(6), 14);
79
  }
80
</pre>
81 7 Alexander Kamkin
## Формат вывода команды в ассемблерном коде
82 1 Alexander Protsenko
<pre>
83
  syntax = format("addi %s, %s, %d", rt.syntax, ra.syntax, si)
84
</pre>
85 7 Alexander Kamkin
## Формирование кода команды
86 1 Alexander Protsenko
<pre>
87
  image  = format("%16s%5s%5s%6s", si, ra.image, rt.image, OPCD)
88
</pre>
89 7 Alexander Kamkin
## Реализация инструкции
90 1 Alexander Protsenko
<pre>
91
  action = {
92
    rt<31..0> = cast(WORD, cast(INT, ra) + cast(INT, sign_extend(WORD, cast(HWORD, si))));
93
  }
94
</pre>
95 7 Alexander Kamkin
## Добавление инструкции в общий пул
96 1 Alexander Protsenko
<pre>
97
op PowerPCArithmetic = add
98
                     | add_d
99
                     | addi
100
                     | ori
101
</pre>
102
103 7 Alexander Kamkin
h2. Дополнительно
104
105 1 Alexander Protsenko
Для включения генерации Tarmac-логов нужно указывать следующую опцию командной строки:
106 8 Alexander Kamkin
107 1 Alexander Protsenko
<pre>
108 9 Alexander Kamkin
-tl,--tarmac-log     Enables generation of Tarmac logs for simulation [works with --g], default=false
109 1 Alexander Protsenko
</pre>
110 8 Alexander Kamkin
111 1 Alexander Protsenko
Либо в файле microtesk-powerpc\src\main\etc\settings.xml
112 8 Alexander Kamkin
113 1 Alexander Protsenko
<pre>
114 8 Alexander Kamkin
Добавить строку: <setting name="tarmac-log" value="true"/>
115 1 Alexander Protsenko
</pre>