Project

General

Profile

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

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

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