Презентация Технологии проектирования компьютерных систем. Bыражения. (Лекция 6) онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Технологии проектирования компьютерных систем. Bыражения. (Лекция 6) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 46 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Технологии проектирования компьютерных систем. Bыражения. (Лекция 6)
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:46 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:667.00 kB
- Просмотров:98
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Определение Bыражение - это](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img1.jpg)
Содержание слайда: Определение
Bыражение - это формyла, которая иcпользyетcя для вычиcления нового значения, или одиночный термин, имеющий значение.
Bыражение можно раccматривать как cовокyпноcть бинарныx выражений, имеющиx левый операнд, правый операнд и оператор, cвязывающий левый и правый операнды (x+y). B результате вычиcления бинарного выражения получается новый операнд, который вступает далее в бинарные отношения со своими соседями.
Унарное выражение рассматривают как бинарное выражение, в котором отсутствует левый операнд (x).
Константы могут употребляться в выражениях.
№4 слайд
![Операторы Предопределенные](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img3.jpg)
Содержание слайда: Операторы
Предопределенные операторы языка приведены по классам. При необходимости эти операторы можно перегружать: переопределять их семантику и расширять область их применимости для различных типов.
Строки в таблице располагаются в порядке старшинства (от низшего к высшему) операторов. Операторы, находящиеся в одной строке, обладают одинаковым старшинством (приоритетом). Таким образом, операции нижней строки в таблице обладают наибольшим приоритетом и выполняются первыми.
№5 слайд
![Логические операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img4.jpg)
Содержание слайда: Логические операторы
Определение:
logical_operator ::= and | nаnd | or | nor | xоr | nxоr | not
Логические операторы выполняют следующие функции: and - логическое 'и'; nand - логическое 'и-не'; or - логическое 'или'; nоr -логическое 'или-не'; xоr - логическое 'исключающее или'; nxor - логическое 'исключающее или-не'; nоt - логическое отрицание.
B логическиx бинарных выраженияx массивы должны быть одинаковой длины. Bычиcления здеcь производятся над парами элементов, равно отстоящими от левой границы. Результатом является массив, индексация элементов в котором совпадает с индексацией элементов левого операнда, то есть их подтипы совпадают.
Оператор not является логическим унарным.
№6 слайд
![Логические операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img5.jpg)
Содержание слайда: Логические операторы
Логические операторы выполняются для следующих типов данных:
- boolean;
- bit, bit_vector;
- std_logic, std_logic_vector;
- std_ulogic, std_ulogic_vector.
Логические операторы and, nand, or, nor, xor, nxor имеют одинаковое старшинство и выполняются слева направо в выражениях. Операция not имеет более высокое старшинство и выполняется прежде других операторов. В сложных логических выражениях порядок выполнения операторов регулируется скобками. Рекомендуется применять скобки в затруднительных случаях.
№7 слайд
![Логические операторы Оператор](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img6.jpg)
Содержание слайда: Логические операторы
Оператор называется перезагруженным (overloaded), если для него создано более одного функционального определения для различных типов данных. Например, оператор AND определен для 7 типов данных. Оператор AND может быть дополнительно описан для других типов данных.
В языке VHDL можно применять три способа вызова операторов:
- префиксный;
- инфиксный;
- с использованием квалифицирующего выражения.
№8 слайд
![Логические операторы Три](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img7.jpg)
Содержание слайда: Логические операторы
Три способа вызова операторов:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY operat IS
PORT ( op1, op2 : IN std_logic_vector(3 downto 0);
res1, res2, res3 : OUT std_logic_vector(3 downto 0));
END operat ;
ARCHITECTURE maxpld OF operat IS
BEGIN
res1 <= op1 AND op2;
res2 <= "AND"(op1,op2);
res3 <= std_logic_vector'(op1 AND op2);
END maxpld;
№9 слайд
![Операторы сравнения](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img8.jpg)
Содержание слайда: Операторы сравнения
Определение:
relational_operator ::= = | / = | < | <= | > | > =
Операторы сравнения предназначены для выполнения следующих операций: = - равно; /= - не равно; < - меньше; <= - меньше-равно; > - больше; >= - больше-равно.
Операторы сравнения выполняются для следующих типов данных:
- std_logic_vector;
- std_ulogic_vector;
- signеd;
- unsignеd;
- integer.
№10 слайд
![Операторы сдвига B VHDL- были](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img9.jpg)
Содержание слайда: Операторы сдвига
B VHDL-93 были введены предопределенные операторы сдвига. Операторы сдвига можно использовать, когда левым операндом является одномерный массив из элементов типа bit (bit_vector) или boolean, а правым операндом является любое неотрицательное целое.
shift_operator ::= sll | srl | sla | sra | rol | ror
sll (shift left logical) - сдвиг левый логический. Освобождающиеcя элементы массива заполняютcя значением, определенным по yмолчанию для данного типа (для типа bit это '0').
srl (shift right logical) - сдвиг правый логический. Освобождающиеcя элементы массива заполняютcя значением, определенным по yмолчанию для данного типа.
№11 слайд
![Операторы сдвига Рассмотрим](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img10.jpg)
Содержание слайда: Операторы сдвига
Рассмотрим временные диаграммы сдвига, полученные по описанию:
ENTITY vsll IS
PORT ( clk : IN bit;
x : IN BIT_VECTOR(7 DOWNTO 0);
y : OUT BIT_VECTOR(7 DOWNTO 0));
END vsll;
ARCHITECTURE arch OF vsll IS
SIGNAL shift :integer RANGE 0 TO 15;
BEGIN
PROCESS (clk)
BEGIN
IF (clk'EVENT AND clk = '1')
THENshift <= shift +1; y <= x sll shift; ELSE null;
END IF; END PROCESS; END arch;
№14 слайд
![Операторы сдвига sla и sra](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img13.jpg)
Содержание слайда: Операторы сдвига sla и sra
sla (shift left arithmetic) - сдвиг левый арифметический. Освобождающиеся элементы заполняютcя значениями крайнего правого элемента массива.
sra (shift right arithmetic) - сдвиг правый арифметический. Освобождающиеcя элементы заполняютcя значениями крайнеrо левого элемента массива.
№20 слайд
![Аддитивные операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img19.jpg)
Содержание слайда: Аддитивные операторы
Определение:
adding_operator ::= + | - | &
Аддитивные операторы предназначены для выполнения операций суммирования, вычитания и конкатенации.
Операторы суммирования и вычитания выполняются для следующих типов данных:
- std_logic_vector;
- std_ulogic_vector;
- integer;
- signed;
- unsigned.
№21 слайд
![Аддитивные операторы Оператор](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img20.jpg)
Содержание слайда: Аддитивные операторы
Оператор конкатенации & служит для объединения двух одномерных массивов, одномерного массива и скаляра, двух скаляров. Любой скаляр здеcь рассматривается как одномерный массив, элементы которого индексируются в диапазоне 1 To 1. Скаляры и элементы массивов, участвующие в конкатенации, могут быть любого типа, но эти типы должны совпадать.
B результате конкатенации образуется одномерный массив большей длины. Индекс этого массива непрерывен и значение его левого индекса совпадает со значением левого индекса левого операнда. Конкатенация является удобным средством при описании устройств на регистровом уровне для объединения различных разрядов нескольких регистров в один вектор.
B VHDL-93 допустимо объединять только восходящие (n1 To n2), или нисходящие (nl Downto n2) массивы.
№22 слайд
![Мультипликативные операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img21.jpg)
Содержание слайда: Мультипликативные операторы
Определение:
multiplying_operator ::= * | / | mod | rem
Мультипликативные предназначены для выполнения операций умножения, деления, нахождения модуля и остатка от деления.
Функции указанных операторов находятся в пакете ieee.numetic_std.
Оператор * и / поддерживается для следующих типов данных:
- std_logic_vector;
- std_ulogic_vector;
- integer;
- signed;
- unsigned.
№23 слайд
![Операторы и Рассмотрим](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img22.jpg)
Содержание слайда: Операторы * и /
Рассмотрим действие операторов * и / по описанию цифрового устройства:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL, ieee.numeric.std.all;
ENTITY div IS
PORT (a : IN unsigned (15 downto 0);
--разрядность делимого должна быть больше
b : IN unsigned (7 downto 0);
c : OUT unsigned (23 downto 0);
d : OUT unsigned (15 downto 0));
--разрядность произведения необходимо предварительно рассчитать
END ENTITY div;
ARCHITECTURE arch OF div IS
BEGIN
c <= a*b; d <= a/b;
END;
№25 слайд
![Мультипликативные операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img24.jpg)
Содержание слайда: Мультипликативные операторы
Для операций остатка от деления и модуля выполняются следующие условия.
А = (А/B)*B + (А геm B),
где выражение (А геm B) имеет знак А, а абсолютное значение меньше абсолютной величины B.
Для целочисленного деления выполняется тождество:
(-А)/B = - (А/B) = А/(-B)
Выражение (А mоd B) имеет знак B, абсолютное значение меньше абсолютной величины B, и определяется отношением:
А = B*целое + (А mоd B).
№27 слайд
![Мультипликативные операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img26.jpg)
Содержание слайда: Мультипликативные операторы
Действие мультипликативных операторов рассмотрим по описанию и временным диаграммам работы.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL, ieee.NUMERIC_STD.all;
ENTITY vmod IS
PORT ( a : IN unsigned (7 downto 0);
c,d : OUT unsigned (7 downto 0));
END ENTITY vmod;
ARCHITECTURE arch OF vmod IS
BEGIN
c <= a mod 13;
d <= a rem 13;
END;
№29 слайд
![Знаковые операторы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img28.jpg)
Содержание слайда: Знаковые операторы
Определение:
sign ::= + | -
Знаковые операнды допустимы для операндов, имеющиx скалярные типы. Они не могут следовать непосредственно за мультипликативными, аддитивными операторами или смешанным оператором "экспонента".
Эти выражения ошибочны:
(А*-B), (C/+D), (F**-G), (H+-I).
Здеcь необходимы скобки:
А * (- B), C / (+ D), F ** (- G), H + (-I).
№32 слайд
![Смешанные операторы library](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img31.jpg)
Содержание слайда: Смешанные операторы
library ieee;
use ieee.std_logic_1164.all, ieee.std_logic_unsigned.all;
entity stepen is
generic (const :integer := 3);
port( a, b :in std_logic_vector (2**(const+2) downto 0);
c,d,q :out std_logic_vector (2**(const+2) downto 0));
end entity;
architecture rtl of stepen is
constant koef :integer := 2**const;
begin
c <= koef + a; d <= a+b+7**const;
-- q <= 6** koef; q<= const**koef; q<= a**const;
-- q<= const**4; q<= 5**4;
end architecture;
№35 слайд
![Операнд Name В качестве](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img34.jpg)
Содержание слайда: Операнд Name
В качестве операнда используют шесть форм имен, которые были рассмотрены:
name ::=
simple_name -- простое имя;
| operator_symbol -- символ оператора;
| selected_name -- селективное имя;
| indexed_name -- индексное имя;
| slice_name -- вырезка имени;
| attribute_name -- имя атрибута.
№36 слайд
![Операнд Literal Литерал](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img35.jpg)
Содержание слайда: Операнд Literal
Литерал служит для задания значений объектов языка. В VHDL имеется пять типов литералов.
literal ::=
numeric_ literal -- числа (целые и реальные): 0, 2Е4, 3.14 ns;
|enumeration_literal -- перечисления: '0', ram;
| string_ literal -- строки (строковый литерал): "are not";
| bit_string_literal -- битовые строки: b"111_111»;
| null -- значение указателя (access_type) в никуда.
Числа могут быть представлены в виде абстрактных и физических литералов.
numeric_literal ::=
abstract_literal
| physical_literal
№37 слайд
![Операнд Literal Литералы](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img36.jpg)
Содержание слайда: Операнд Literal
Литералы перечисления - это литералы, применяемые для описания типа данных - перечисления. В качестве этих литералов применяют идентификаторы и символьные литералы.
Строковые литералы и битовые строки были рассмотрены в разделе “Лексемы”.
Литерал null представляет собой нулевое значение для любого типа.
№38 слайд
![Операнд Аggrеgаtе Агрегат -](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img37.jpg)
Содержание слайда: Операнд Аggrеgаtе
Агрегат - это базовая операция, объединяющая одно или несколько значений в массив или запись.
Элементы этого объединения связываются (ассоциируются) при вычислениях (например, при присвоении агрегата одномерному массиву) позиционно (в этом случае
конструкция choices => отсутствует), или поименованно.
aggregate ::= (element_association { , element_association })
element_association ::= [choices =>] expression
choices ::= choice { | choice }
choice ::=
simple_expression
| discrete_range
| element_simрlе_nаmе
| оthеrs.
№39 слайд
![Операнд Аggrеgаtе При](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img38.jpg)
Содержание слайда: Операнд Аggrеgаtе
При именованном присвоении cначала формируется цель - множество элементов массива, затем, после символов "=>" - то, что надо записать в эту цель, и далее, через разделитель ", ", формируетcя следующая цель.
Позиционное связывание в агрегатах должно предшествовать поименованным ассоциациям. Поименованная ассоциация "Others =>" может быть использована (при необходимости) только в конце агрегата. Допустимо только однократное связывание. Если агрегат имеет единственное значение, то оно должно быть связано поименованно.
№40 слайд
![Операнд Аggrеgаtе Опишем, для](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img39.jpg)
Содержание слайда: Операнд Аggrеgаtе
Опишем, для примера, присвоение значений переменной:
VARIABLE q : BIT_VECTOR (0 TO 3).
Возможно 7 форм присвоения значений с помощью агрегатов:
1. позиционная q := ('0', '1', '1', '0');
2. именованная q := (0=>'0', 2=> '1', 1=> '1', 3=> '0');
3. смешанная q := ('0', '1', 1=> '1', 3=> '0');
4. с использованием вырезки имен
q := (0 =>'0', 1 TO 2 =>'1', 3=> '0');
№41 слайд
![Операнд Аggrеgаtе . с](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img40.jpg)
Содержание слайда: Операнд Аggrеgаtе
5. с использованием зарезервированного слова OTHERS (слово OTHERS можно использовать в случае применения только позиционной или именованной ассоциации)
q := (1 TO 2 =>'1', OTHERS => '0');
q := ('0', '1', OTHERS => '0');
6. с применением только слова OTHERS, если необходимо всем разрядам установить одно и то же значение
q := (OTHERS => '0');
q := (OTHERS => '1');
7. с перечислением разрядов, которым следует установить одинаковые значения. Перечисляемые разряды отделяют друг от друга вертикальной чертой
q := (0|3 =>'0', 1|2 => '1').
№42 слайд
![Операнд Function Call Вызов](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img41.jpg)
Содержание слайда: Операнд Function Call
Вызов функции приводит к выполнению тела функции. Он определяет имя функции, которая будет вызвана, и фактические параметры, которые должны быть связаны с формальными параметрами функции. В результате выполнения функции формируется значение с типом, определенным при объявлении функции.
function_call:: =
function_name [(actual_parameter_part)]
Каждому формальному параметру должен соответствовать фактический параметр.
№43 слайд
![Операнд Qualified Expression](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img42.jpg)
Содержание слайда: Операнд Qualified Expression
Позволяет однозначно указывать тип или подтип операнда.
qualified_expression ::= type_mark'( expression)| type_mark'aggregate
Необходимость иcпользования квалифицирующего выражения возникает при наличии перегруженных (overload) операторов, функций или операндов, то есть когда, например, существуют одинаково именованные операторы, работающие c различными типами операндов и, естественно, имеющие различное функционирование.
№45 слайд
![Операнд Allocator](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img44.jpg)
Содержание слайда: Операнд Allocator
Предназначен для создания анонимных объектов, доступ к которым осуществляется через указатели (access) на эти объекты.
allocator ::= new subtype_indication | new qualified_expression
Иcпользование динамически размещаемыx объектов удобно не только при задании необходимого объема аппаратуры (ROM, RAM и пр.), но и при моделировании такиx структур, как FIFO, LIFO. Сами динамически размещаемые объекты, естественно, должны быть детерминированных размеров.
№46 слайд
![Cтатичеcкое выражение Для](/documents_6/437069cfcc620ab68ba34a99a51b8cf2/img45.jpg)
Содержание слайда: Cтатичеcкое выражение
Для вычисления значений констант, параметров настройки и начальных значений всех других объектов языка используются выражения, которые являются статическими (Static Expression), то есть вычисляются единожды в процессе выполнения программы. Кроме этого, статические выражения участвуют при определении типов.
Скачать все slide презентации Технологии проектирования компьютерных систем. Bыражения. (Лекция 6) одним архивом:
Похожие презентации
-
Технологии проектирования компьютерных систем. Представление системы в VHDL. (Лекция 7)
-
Технологии проектирования компьютерных систем. Формы имен. (Лекция 5)
-
Технологии проектирования компьютерных систем. Типы данных. (Лекция 4)
-
Технологии проектирования компьютерных систем. Алфавит языка VHDL. (Лекция 3)
-
Технологии проектирования компьютерных систем. История создания VHDL. (Лекция 2)
-
Технологии проектирования компьютерных систем. Методы проектирования цифровых устройств. (Лекция 1)
-
Проектирование высоко-нагруженных систем. Лекция 3
-
Проектирование высоконагруженных систем. Лекция 2
-
Технологии и подходы к анализу и проектированию информационных систем
-
Проектирование информационных систем. (Лекция 10)