Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Описание поведенческой модели процессораСодержание книги
Поиск на нашем сайте
Операторы и операнды для описания поведения инструкций, массивов аргументов и функций
Арифметические и логические операции В PPDL предусмотрены следующие операции над целыми числами: Арифметические операции: ‘+’ (сложение),’-‘ (вычитание),’*’(умножение),/ (деление), Логические побитовые операции: ‘&’(логическое «И»),|(логическое «ИЛИ), ’^’ (побитовое сложение), ‘~’(отрицание) Операция присвоения: = Операции сдвига: ‘<<’ (логический сдвиг влево),>> (логический сдвиг вправо), Операции сравнения: ‘<’ (меньше), ‘>’ (больше),’==’ (равно),’!=’(не равно), Операция отрицания: ‘!’ Условный оператор: ‘?’
Операторы условного выполнения
В PPDL предусмотрены операторы условного выполнения: if(cond) expr else expr
Для выполнения последовательности операций внутри условия используются фигурные скобки: If(cond) { expr1; expr2; … } else { expr1; expr2; … } Работа операторов if-else полностью аналогична работе соответствующих операторов в языках С\С++ Операторы преобразования типов данных и преобразование к знаковому числу
По умолчанию все целочисленные операторы являются беззнаковыми. Для приведения выражения к знаковому типу применяется оператор signed. Пример: R = (signed) A + (signed)B; // сложение двух чисел с учетом знака
В PPDL предусмотрены операторы: bits2f – интерпретация целого числа как число типа float bits2d - интерпретация целого числа как число типа double bitsf – *представление числа типа float как битовый вектор bitsd - *представление числа типа double как битовый вектор
* В ppdl регистры или FIFO блоки могут быть только целочисленными. Поэтому, при записи результата выражения, имеющего тип float или double, чтобы избежать округления результата и записать результат «как есть», необходимо применить оператор bitsf (для результата типа float) или bitsd (для результата типа double). Оператор цикла for for (begin; end_condition; increment) { for_body; } Где: Begin – начальная инициализация end_condition – условие продолжение цикла increment – изменение счетчиков по окончании каждой итерации цикла
Поведение оператора for в ppdl полностью аналогично поведению for в языках C/С++. Оператор ожидания следующего такта: wait Оператор wait останавливает выполнение инструкции или функции на один такт. В симуляторе при вызове wait Оператор выбора switch/case Конструкция switch/case предназначена для выбора
switch(exp) { case const1: exp1; exp2; … break;
case const2: exp1; exp2; … break;
case constN: exp1; exp2; … break;
default: exp1; exp2; … break;
}
Операторы обращения к битам и операторы объединения выражений exp[bit_num] –обращение (чтение или запись) к биту с номером bit_num. exp[start_bit:end_bit] –обращение (чтение или запись) к битам начиная со start_bit заканчивая end_bit включительно.
В качестве выражения exp могут выступать: 1. Аргументы инструкции, описанные в коде команды (см. ниже) 2. Регистры процессора 3. Элементы ФИФО блоков 4. Ячейки памяти, доступные через шины памяти по адресу. 5. Константы 6. Элементы списка – регистры, ФИФО или ячейки памяти Оператор конкатенации подвыражений Оператор '[exp1,exp2]’ объединяет пару выражений exp1 (старшая часть) и exp2 (младшая часть) в значение (если в правой части выражения) или переменную (если в левой части выражения). Размер объединенной переменной в битах равен сумме размеров составляющих выражений. Например, если мы имеем два регистра ar0 и gr0 размером по 32 бита каждый, то в конструкции int64 x =[ar0,gr0]; в старшие 32 бита x будет записано значение ar0, а в младшие – значение gr0
При присвоении паре регистров [ar0, gr0 ] = 0x55555555AAAAAAA; …после выполнения выражения в ar0 будет записано 0x55555555, а в gr0 – 0xAAAAAAAA
Допустимо использование вложенных операторов конкатенации, например [gr0, [gr1,gr2 ]].
В текущей версии PPDL максимальный размер конкатенированного выражения не должен превышать 64 бита.
|
||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 84; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |