Project

General

Profile

Actions

Getting Started with MicroTESK - PowerPC Edition » History » Revision 18

« Previous | Revision 18/20 (diff) | Next »
Alexander Kamkin, 10/26/2016 02:17 PM


Getting Started with MicroTESK - PowerPC Edition

Начало работы с MicroTESK - PowerPC Edition

  1. Репозиторий проекта: http://forge.ispras.ru/projects/microtesk-powerpc/repository
    Создать локальную копию проекта:
    git clone https://forge.ispras.ru/git/microtesk-powerpc.git
    
  2. Сборка проекта (необходимы Gradle 2.9 и Java 1.7, подробнее http://forge.ispras.ru/projects/microtesk/wiki/Installation_Guide)
    Запустить сборку из корневого каталога:
    1. с выполнением тестов:
      gradle build
    2. без выполнения тестов:
      gradle assemble
  3. Переменные среды
    Установить переменную MICROTESK_HOME:
    MICROTESK_HOME = каталог_установки/microtesk-powerpc/build/target
    
  4. Спецификации: microtesk-powerpc/src/main/arch/powerpc/model (спецификации арифметических инструкций: powerpc_alu.nml).
    Собрать модель (из директория спецификаций):
    $MICROTESK_HOME/bin/compile.sh powerpc.nml mmu/powerpc.mmu --extension-dir ../extensions
    
  5. Тестовые шаблоны: microtesk-powerpc/src/main/arch/powerpc/templates (базовый шаблон для арифметических инструкций: instruction_alu.rb).
    Запустить обработку шаблона (из директория шаблонов):
    $MICROTESK_HOME/bin/generate.sh powerpc instruction_alu.rb --code-file-prefix instruction_alu --code-file-extension s -v
    

После запуска шаблонов ассемблерный код и Tarmac-трасса будут находится в директории ../microtesk-powerpc/build/target.

Особенности разработки спецификаций

  1. Комментарий к спецификации
    1. Название
      /*
        Add Immediate D-form
      
    2. Расшифровка кодировки команды. Важно отметить, что в описании PowerPC биты упорядочены от 0 до 31; в спецификации их необходимо располагать в обратном порядке, как показано ниже:
        Encoding: | 31 16 | 15 11 | 10 6 | 5 0 |
                  | SI    | RA    | RT   |     |
                  |       |       |      | 14  |
                  | 16    | 5     | 5    | 6   |
      
    3. Формат записи команды
        Format:
          addi RT,RA,SI
      
      
    4. Описание
        Description:
          if RA = 0 then RT <- EXTS(SI)
          else RT <- (RA) + EXTS(SI)
          The sum (RA|0) + SI is placed into register RT.
      
    5. Зависимости
        Special Registers Altered:
          None
        */
      
  2. Спецификация инструкции
    1. Объявление инструкции
      op addi (rt: R, ra: R, si: SHORT)
      
    2. Инициализация данных инструкции
        init = {
          OPCD = coerce(card(6), 14);
        }
      
    3. Ассемблерный формат инструкции
        syntax = format("addi %s, %s, %d", rt.syntax, ra.syntax, si)
      
    4. Бинарная кодировка инструкции
        image  = format("%16s%5s%5s%6s", si, ra.image, rt.image, OPCD)
      
    5. Семантика инструкции
        action = {
          rt<31..0> = cast(WORD, cast(INT, ra) + cast(INT, sign_extend(WORD, cast(HWORD, si))));
        }
      
  3. Группировка инструкций
    op PowerPCArithmetic = add
                         | add_d
                         | addi
                         | ori
    

Дополнительно

Для включения трассировки в формате Tarmac нужно указать следующую опцию командной строки:

-tl,--tarmac-log     Enables generation of Tarmac logs for simulation [works with --g], default=false

Либо добавить следующую строку в файл microtesk-powerpc/src/main/etc/settings.xml:

<setting name="tarmac-log" value="true"/>

Updated by Alexander Kamkin over 7 years ago · 18 revisions