Проектирование управляющего цифрового автомата с жёсткой и программируемой логикой

Проектирование алгоритма работы управляющего автомата. Составление граф-схемы алгоритма. Реализация алгоритма на языке программирования Assembler. Синтез функций возбуждения и выходов. Выбор варианта кодирования состояний автомата с жёсткой логикой.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.02.2013
Размер файла 803,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Пензенский государственный университет

Кафедра “Вычислительная техника “

Пояснительная записка к курсовой работе

по дисциплине “ Теория автоматов”

Тема работы:

“Проектирование управляющего цифрового автомата с жесткой и программируемой логикой”

Выполнил: студент гр. 10ВВ2

Фадеев А.А.

Проверил: Калиниченко Е.И.

г. Пенза, 2012 г.

Оглавление

Введение

1. Проектирование алгоритма работы управляющего автомата

1.1 Алгоритм работы программы

1.2 Реализация алгоритма на языке программирования

1.3 Тестирование алгоритма

1.4 Составление граф-схемы алгоритма (ГСА)

2. Проектирование управляющего автомата с жесткой логикой

2.1 Общая информация

2.2 Составление граф-схемы алгоритма (ГСА)

2.3 Построение ПТП ЦА Мура

2.4 Выбор оптимального варианта кодирования состояний автомата

2.5 Синтез функций возбуждения и выходов

2.6 Построение схемы на заданной элементной базе

2.7 Расчет быстродействия схемы

2.8 Проверка функциональности схемы

3. Разработка микропрограммного УА

Заключение

Введение

Эффективность применения современных средств вычислительной техники во всех сферах научной и производственной деятельности оказывает решающее влияние на увеличение производительности труда и непрерывное ускорение научно-технического прогресса.

Компьютеры находят широкое применяются в промышленности, науке, образовании и многих других.

Создание средств вычислительной техники, способных управлять приборами, станками, оборудованием, механизмами невозможно без применения научно обоснованных методов прикладной теории цифровых автоматов.

В курсовой работе выполняется синтез управляющего автомата (УА), который посылает последовательности микрокоманд и сопутствующие им управляющие сигналы на операционный автомат (ОА). Операционный автомат в свою очередь посылает на (УА) признаки выполнения микрокоманд.

Конечной целью данной курсовой работы является выполнение некоторой микрооперации.

В дальнейшем при необходимости, базируясь на знаниях полученных при выполнении этой работы, можно спроектировать более сложное устройство аппаратного или программного управления работой ЭВМ, вычислительной системой или сетью.

Общие сведения

При проектировании цифрового устройства обработки информации рассматриваем его, как устройство рис.1, состоящее из двух блоков: управляющего автомата (УА) и операционного автомата (ОА). Они связаны между собой набором управляющих ({X=(x1,...,xm)}) и набором осведомительных сигналов({Y=(y1,...,yn)}). Объект, которым управляет ЦУ, в общем случае, будем называть "внешней средой". По способу синхронизации работы ЦУ и внешней среды различают синхронную, асинхронную и согласованную модель взаимодействия. В синхронной модели генератор тактовых импульсов задает дискретное время и для внешней среды и для ЦУ.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 1 - Схема ЦУ

При управлении ЦУ взаимодействует с внешней средой с использованием входных и выходных сигналов. Рассмотрим наиболее типичные сигналы взаимодействия. От внешней среды к УА поступает сигнал "старт", определяющий начало работы ЦУ. По завершении работы УА вырабатывает сигналы "стоп". В случае возникновения исключительных ситуаций при работе ЦУ, а именно, деление на нуль, переполнение и т.п. вырабатывается сигнал "исключение". Эти сигналы поступают от ЦУ во внешнюю среду. Для ОА от внешней среды по “Шине данных” поступают обрабатываемые данные (входные данные), а результат работы выдается во внешнюю среду (выходные данные).

1. Проектирование алгоритма работы управляющего автомата

1.1 Алгоритм работы программы

Первым этапом выполнения курсовой работы является составление программы на языке Assembler, которая будет вычислять значение функции y= (9а-400) ^2.

Алгоритм вычисления функции:

Считывание входных данных;

Умножение а на 9;

Вычитание 400;

Возведение скобки в квадрат;

Возврат результатов вычисления.

По заданию входные данные располагаются в оперативной памяти в формате целых чисел со знаком в дополнительном коде.

Возведение в квадрат, аналогичен алгоритму умножения целых чисел со знаком в дополнительном коде, для быстроты вычисления лучше взять модуль от числа.

Алгоритм умножения:

Запись множимого в регистр Р2. Обнуление регистра РСМ. Запись множителя в Р1. Занесение в счетчик тактов значения равного разрядности множителя. Обнуление флагов CF и OF.

Оценка младшего разряда регистра Р2:

а) Если младший разряд регистра Р2=1, то к регистру РСМ прибавляем регистр Р1 и производим арифметический сдвиг влево на 1 разряд(CF,РСМ, Р2).

б) Если младший разряд Р2=0, то производим арифметический сдвиг влево на 1 разряд CF,РСМ, Р2.

4. Содержимое счетчика уменьшается на 1. Если счетчик не равен 0, то переходим к пункту 2, иначе умножение закончено.

Действие умножения на константу производится при помощи операции арифметического сдвига влево. Сдвиг на один разряд равносилен умножению числа на 2.

1.2 Реализация алгоритма на языке программирования

Напишем программу по этому алгоритму на языке низкого уровня Assembler

Начало кода программы

#include <stdio.h>

#include <conio.h>

void main()

{

//y=(9a-400)^2

int a;

int otv1, otv2;

int err = 0;

printf ("print a: ");

scanf ("%d", &a);

_asm

{

// умножение

mov eax,a;

mov ebx,eax;

shl eax,1;

jo error; // флаг оф

shl eax,1;

jo error; // флаг оф

shl eax,1;

jo error; // флаг оф

add eax,ebx;

jo error; // флаг оф

//вычитание

sub eax,400;

bt eax,31;

jc modd; //флаг цф

jmp kvad;

// квадрат

modd:

neg eax; kvad:

mov ebx,eax

xor edx,edx

mov ecx,32 // цикл 32

prov:

bt eax,0;

jnc sdvig; // флаг цф

summ:

add edx,ebx;

adc eax,0; // флаг оф

sdvig:

rcr edx,1;

rcr eax,1;

CLC;

sub ecx,1;

jnz prov // флаг зф

jz otv // флаг зф

otv:

mov otv2,eax

mov otv1,edx

jmp exit

error:

mov err,1

jmp exit

exit:

// вывод 2 регистров

}

for (int i = 31; i >= 0; i--)

{

int mask = 1 << i;

if ( (mask & otv1) == 0 )

{

printf("0");

}

else printf("1");

}

printf ("\n");

for (int i = 31; i >= 0; i--)

{

int mask = 1 << i;

if ( (mask & otv2) == 0 )

{

printf("0"); }

else printf("1");

}

printf("\n Error %d",err);

getch();

}

Конец программного кода

1.3 Тестирование алгоритма

алгоритм программирование аssembler кодирование

Для проверки правильности работы алгоритма мы должны задать такие значения, которые «покроют» все возможные ветви алгоритма.

Максимальное число, которое можно записать в 32 разрядный процессор - это 2147483647 в десятичной системе исчисления (учитываем, что крайний левый разряд - знаковый). Используя это, получим:

При a=245896

Рисунок 2 - Проверка функциональности

При a=-5896

Рисунок 3 - Проверка функциональности

Обнаружение переполнения 9*а

при а=2140000000

Рисунок 4 - Проверка на функциональность

Вывод: в результате тестирования убедились, что программа выполняет необходимую операцию, при этом обрабатывая все исключительные ситуации.

1.4 Составление граф-схемы алгоритма (ГСА)

По программе на языке Assembler строим граф-схему алгоритма.

Рисунок 5 - ГСА алгоритма

2. Проектирование управляющего автомата с жесткой логикой

2.1 Общая информация

Автомат с жесткой логикой строится на базе использования ЛЭ и элементов памяти. Изменить алгоритм работы такого автомата нельзя, не изменяя соединения между элементами. Для таких автоматов характерны высокое быстродействие, определяемое только задержками используемых ЛЭ и элементов памяти, пропорциональный рост объема оборудования в зависимости от сложности реализуемого алгоритма и малые удельные затраты оборудования при реализации простых микропрограмм. Однако автоматы с жесткой логикой не обладают гибкостью при внесении изменений в алгоритм их функционирования, необходимость в которых особенно часто возникает в процессе проектирования цифровых устройств.

2.2 Составление граф-схемы алгоритма (ГСА)

Необходимо разработать автомат для выделенной руководителем курсового проектирования части схемы ГСА.

Рисунок 9 - Часть ГСА алгоритма для реализации УА с жесткой логикой

2.3 Построение ПТП ЦА Мура

S(t)

x(t)

S(t+1)

y(t+1)

S0

1

S1

Y1

S1

1

S2

Y2

S2

1

S3

Y3

S3

!X1

X1

S4

S12

Y3

Y8

S4

!X1

X1

S5

S12

Y3

Y8

S5

!X1

X1

S6

S12

Y4

Y8

S6

!X1

X1

S7

S12

Y5

Y8

S7

1

S8

Y6

S8

X2

!X2

S9

S10

Y7

Y2

S9

1

S10

Y2

S10

1

Sk1

Yk1

S12

1

Sk

Yy

Таблица 1 - ПТП ЦА Мура

2.4 Выбор оптимального варианта кодирования состояний автомата

Теперь по ПТП ЦА Мура составим систему канонических уравнений (СКУ). Используемый тип триггера - D, следовательно, будем кодировать по методу №2. Этот метод основан на выборе цены по кванту уравнения СКУ.

CКУ ЦА Мура\

S1(t+1)= S0

S2(t+1)= S1

S3(t+1)= S2

S4(t+1)= S3

S5(t+1)= S4

S6(t+1)= S5

S7(t+1)= S6

S8(t+1)= S7

S9(t+1)= S8

S10(t+1)= S8VS9

S12(t+1)= S3V S4V S5V S6

Sk(t+1)= S12

Sk1=S10

1

1

1

2

2

2

2

1

2

3

11

1

1

Таблица 2-СКУ ЦА Мура

Кодирование состояний:

Q1

Q2

Q3

Q4

S0

1

0

0

0

S1

1

0

0

1

S2

1

0

1

0

S3

1

0

1

1

S4

0

0

1

1

S5

0

1

0

0

S6

0

1

0

1

S7

0

1

1

0

S8

0

1

1

1

S9

0

0

1

0

S10

0

0

0

1

S12

0

0

0

0

Sk

1

1

0

0

Sk1

1

1

0

1

Таблица 3 - Кодируемые состояния

В этом варианте курсовой работы необходимо использовать D-триггер

С

D

Q(t)

Q(t+1)

Пояснения

0

x

0

0

Режим хранения информации

0

x

1

1

1

0

x

0

Режим записи информации

1

1

x

1

Таблица 4 - Работа D-триггера

2.5 Синтез функций возбуждения и выходов

Используя таблицу кодирования состояний, ПТП Мура и матрицу переходов для D-триггера составим таблицу синтеза функций возбуждения и выходов.

Исходные состояния

Входные сигналы xi,j

Состояния перехода

Выходные функции

Функции возбуждения

ai(t)

Q1

Q2

Q3

Q4

ai(t+1)

Q1

Q2

Q3

Q4

y

qd1

qd2

qd3

qd4

1

S0

1

0

0

0

1

S1

1

0

0

1

y1

1

0

0

1

2

S1

1

0

0

1

1

S2

1

0

1

0

y2

1

0

1

0

3

S2

1

0

1

0

1

S3

1

0

1

1

y3

1

0

1

1

4

S3

1

0

1

1

!x1

x1

S4

S12

0

0

0

0

1

0

1

0

y3

y8

0

0

0

0

1

0

1

0

5

S4

0

0

1

1

!x1

x1

S5

S12

0

0

1

0

0

0

0

0

y3

y8

0

0

1

0

0

0

0

0

6

S5

0

1

0

0

x1

S12

0

0

0

0

y8

0

0

0

0

!x1

S6

0

1

0

1

y4

0

1

0

1

7

S6

0

1

0

1

!x1

x1

S7

S12

0

0

1

0

1

0

0

0

y5

y8

0

0

1

0

1

0

0

0

8

S7

0

1

1

0

1

S8

0

1

1

1

y6

0

1

1

1

9

S8

0

1

1

1

!x2

x2

S10

S9

0

0

0

0

0

1

1

0

y2

y7

0

0

0

0

0

1

1

0

10

S9

0

0

1

0

1

S10

0

0

0

1

y2

0

0

0

1

11

S10

0

0

0

1

1

Sk1

1

1

0

1

yk1

1

1

0

1

12

S12

0

0

0

0

1

Sk

1

1

0

0

yk

1

1

0

0

Таблица 5 - Функций возбуждений и выходов

Функции возбуждения триггеров:

qd1=S0VS1VS2VS10VS12

qd2=!x1S4V!x1S5V!x1S6VS7VS10VS12

qd3=S1VS2V !x1S3V!x1S6Vx2 S8VS7

qd4=S0VS2V!x1S3V!x1S5V S7VS8V!x2S9VS10

Выходные функции:

y1=S0

y2=S1VS8VS9

y3=S2V S3V S4

y4=S5

y5=S6

y6=S7

y7=S8

y8=S3VS4VS5VS6

yk=S12

yk1=S10

2.6 Построение схемы на заданной элементной базе

Для реализации электрической принципиальной схемы используются элементы ТТЛ серии К555. Она отличается сравнительно высоким быстродействием и небольшой потребляемой мощностью. Кроме того, её отличает большой выбор элементов, что позволяет реализовать на её основе устройства практически любой степени сложности.

Принципиальная схема реализована на основе уравнений, представленных выше. Кроме логических элементов малой степени интеграции (НЕ, ИЛИ, И, И-НЕ, ИЛИ-НЕ) с целью упрощения схемы применяются элементы средней степени интеграции, такие как дешифраторы. Это позволяет значительно уменьшить количество интегральных схем, необходимых для реализации устройства, не внося существенной избыточности в схему.

Элементы памяти в соответствии с заданием реализованы на D-триггерах (К555ТМ2).

Состояния автомата закодированы четырьмя разрядами, значит нужно использовать 4 триггера. Напряжение источника питания: 5,0 В±5%. К555 имеет логический уровень нуля - не более 0,4 В, и единицы - не менее 2,7 В.

Для получения входных и выходных сигналов используем разъем DIN41612 2x16 M. Буква М в название означает тип вилка, т.к. только этот тип разъема может быть установлен на углу платы.

При реализации функций на дешифраторе К555ИД3, среднее время задержки которого составляет 29 нс, задержка сигнала составит в несколько раз меньшую величину, нежели при реализации функций на логических элементах. Поэтому возьмем двойное отрицание от каждой функции возбуждения:

!(!qd1)=!(!S0*!S1*!S2*!S10*!S12)

!(!qd2)=!(!(!x1S4)*!(!x1S5)*!S7*!S10*!S12)

!(!qd3)=!(!S1*!S2*!( !x1S3)*!(!x1S6)*!(!x1S8))

!(!qd4)=!(!S0*!S2*!(!x1S3)*!(!x1S5)*! S7*!S8*!S9*!S10)

От выходных функций также берем двойное отрицание:

!(!y1)=!(!S0)

!(!y2)=!(!S1*!S8*!S9)

!(!y3)=!(!S2*!S3*!S4)

!(!y4)=!(!S5)

!(!y5)=!(!S6)

!(!y6)=!(!S7)

!(!y7)=!(!(x2S8)

!(!y8)=!(!S3*!S4*!S5*!S6)

!(!yk)=!(!S12)

!(!yk1)=!(!S10)

2.7 Расчет быстродействия схемы

Такт работы для УА задается сигналом, который подается от генератора тактовых импульсов (синхросигнал). Минимальная длительность импульса синхронизации триггера определяется максимальным временем срабатывания триггера, а так же временем задержки прохождения сигнала через цепи выхода и возбуждения.

В качестве элементарного автомата используется D-триггер К555ТM2 (с динамическим управлением), который по переднему фронту синхроимпульса устанавливает триггер в соответствующее значение.

Для корректного выполнения схемой поставленной задачи необходимо обеспечить такую длину синхроимпульса во время которой микросхемы сменят свои состояния и сформируют выходной сигнал.

Рисунок 10 - Схема формирования синхроимпульса

Для триггера с динамическим управлением быстродействие будет рассчитываться следующим образом: по переднему фронту синхроимпульса у нас будет происходить установка триггера в соответствующее состояние и формирование функций выхода, а по заднему - формируются функции возбуждения. Длина импульса таким образом будет рассчитываться как максимальное время задержки элементов схемы по самому длинному пути. Для надёжного прихода сигнала на триггер будем брать время задержки равное tздтр.

Элементы

tзд01,нс

tзд10,нс

К555ЛА2

15

20

К555ЛА3

31

18

К555ЛН1

21

18

К555ЛЕ1

24

20

К555ТМ2

25

40

К555ИД3

32

26

Таблица 6 - Время задержки элементов

Функции возбуждения:

DC>ЛН1>ЛА3 >ЛА2=32+21+31+20=104 нс

tфвозб=104 нс

Функции выходов:

DC>ЛН1>ЛА3>ЛE1=32+21+31+24=108 нс

tфвых=мах+tтр =40+108=148 нс

T/2=max{ tфвозб , tфвых }=148 нс

Т=296 нс

F=1/(296*10-9)=3,23 Мгц

Т.о. генерация синхроимпульсов должна происходить с частотой 3,37 МГц

2.8 Проверка функциональности схемы

S1

1

S2

Y2

S9

1

S10

Y2

S11

1

Sk

Yk

Таблица 7 - Часть СКУ для проверки

Проверка переходов по схеме прошла успешно, следовательно схема рабочая и функциональная.

3. Разработка микропрограммного УА

Управляющие автоматы с программируемой логикой строятся на основе принципа программного управления, использующего операционно-адресную структуру управляющих слов.

Микрооперация - слово ПЗУ, записанное по определенному адресу и содержащее информацию о микрооперациях, которые должны выполняться в данном такте работы операционного устройства, и информацию об адресе следующей микрокоманды. Для кодирования информации о выполняемых в одном такте микрооперациях, в микрокоманде выделяются поля операционные поля Y1..Yn, число которых определяет максимальное число выполняемых микроопераций в одном такте. Длина каждого операционного поля определяется количеством двоичных разрядов, используемых для кодирования сигналов микроопераций.

Для принудительной адресации микрокоманд адрес следующей МК указывается в каждой МК с возможностью его модификации в зависимости от значения ЛУ. В нашем случае, формат микрокоманды следующий:

По заданию требуется разработать управляющий автомат с программируемой логикой с принудительной адресацией.

Задание формата микрокоманд.

Всего в алгоритме 29 вершин, включая выдачу сигнала начала, и сигнала окончания работы. Следовательно, нам потребуется ПЗУ с 32 адресами.

Рассмотрим формат управляющей МК.

Формат МК включает пять полей:

РСЛ[0/4] - АДРПЕР - адрес перехода, причем разряд РСЛ[5] используется для принудительной модификации адреса.

РСЛ[5/7] - поле логического условия ЛУ .

Для кодирования ЛУ используется 2 комбинации (первая - значение флага ZF), а вторая (все нули) - для организации безусловного формирования пятого разряда адреса;

РСЛ[8/12] - поле управляющего сигнала (необходимо 6 бит)

Формат микрокоманд:

Адр слова

Адр пер

ЛУ

У

Номер вершины

0

00001

00

00000

0

1

00010

00

00001

1

2

00011

00

00010

2

3

0010Х

01

00011

3,4

4

0011Х

01

00011

5,6

5

11001

00

10010

28

6

0100Х

01

00011

7,8

7

11001

00

10010

28

8

0101Х

01

00100

9,8

9

11001

00

10010

28

10

01100

00

00101

11

11

11001

00

10010

28

12

0111Х

10

00110

12,13

13

10111

00

01000

16

14

01101

00

00010

15

15

01110

00

00111

14

16

1001Х

00

01010

18,19

17

11000

00

10000

26

18

10101

00

01101

22

19

10100

00

01011

20

20

10010

00

01100

21

21

10110

00

01110

23

22

1000Х

11

01111

24,25

23

10000

00

01001

17

24

11000

00

10001

27

25

11111

00

11111

29(кон)

Таблица 7 - Таблица прошивки ПЗУ с принудительной адресацией

Заключение

В результате проделанной работы был разработан УА для выполнения операции: y= (9а-400)^2, приобретен опыт разработки принципиальных и функциональных схем, закреплены знания, полученные в курсах лекций «Теория автоматов» и «Электротехника и электроника».

Литература

1. Брякин Л.А. Курс лекций по дисциплине «Электротехника и электроника». ПГУ, 2003.

2. Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники. Учебное пособие для электротехнических специальных вузов. М, «Высшая школа», 1988.

3. Интегральные микросхемы. Справочник под редакцией Б.В. Тарабрина. М, «Радио и связь», 1983.

4. Цифровые и аналоговые интегральные микросхемы. Справочник. М, «Радио и связь», 1990.

5. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. М, «Диалог-Мифи», 2003.

Размещено на Allbest.ru


Подобные документы

  • Разработка управляющего автомата, ориентированного на выполнение заданной микрооперации. Разработка алгоритма работы управляющего автомата. Листинг программы. Выбор оптимального варианта кодирования состояний автомата. Синтез функции возбуждения.

    курсовая работа [506,9 K], добавлен 26.12.2012

  • Принцип микропрограммного управления. Управляющие автоматы с жесткой и программируемой логикой. Граф-схемы алгоритмов. Синтез управляющего автомата по граф-схеме алгоритма. Построение управляющего автомата с программируемой логикой на основе ПЗУ.

    курсовая работа [263,8 K], добавлен 25.01.2011

  • Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.

    курсовая работа [671,3 K], добавлен 04.11.2014

  • Общая структура и принцип функционирования синхронного управляющего автомата. Анализ граф схемы алгоритма управляющего автомата и детализация блока памяти. Структурный синтез логического преобразователя и разработка электрической функциональной схемы.

    курсовая работа [222,6 K], добавлен 19.02.2013

  • Определение функций выходных сигналов и сигналов возбуждения. Построение функциональной схемы управляющего автомата. Способы выполнения операции умножения с фиксированной и с плавающей запятой. Получение функциональной ГСА. Кодирование состояния автомата.

    курсовая работа [60,9 K], добавлен 15.02.2011

  • Разработка функциональной схемы управляющего микропрограммного автомата. Построение графов автомата для модели Мили и Мура. Кодирование состояний для модели Мура на D-триггерах. Алгоритм умножения чисел в дополнительном коде с простой коррекцией.

    курсовая работа [764,0 K], добавлен 27.08.2012

  • Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.

    дипломная работа [4,0 M], добавлен 25.03.2012

  • Алгоритм умножения двоичных чисел. Выбор и описание структурной схемы операционного автомата. Реализация содержательной граф-схемы алгоритма. Построение отмеченной граф-схемы и структурной таблицы переходов и выходов. Правила кодирования на D-триггерах.

    курсовая работа [273,2 K], добавлен 01.04.2013

  • Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Синтез автомата для преобразования двоично-десятичного кода. Кодировка алфавитов и состояний. Построение булевых функций, минимизация. Разметка вход-выходных слов для автомата Мили и автомата Мура. Реализация на элементах малой степени интеграции.

    контрольная работа [141,5 K], добавлен 14.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.