Построение ОВС для решения формулы

Содержание

1. Выбор варианта

1.1 Вычисление числа К

1.2 Выбор параметров варианта

2. Структура вычислительного процесса алгоритмы вычислений

2.1 Структура вычислительного процесса

2.2 Последовательность обработки операндов

2.2.1 Обработка числа А

2.2.2 Обработка числа В

2.2.3 Обработка числа С

3. Схемы ОВС

3.1 Обозначения на схемах

3.1 Схема участка ОВС для вычисления числа А

3.2 Схема участка ОВС для вычисления числа В

3.3 Схема участка ОВС для вычисления числа С

4. Временные диаграммы

4. Временные диаграммы

4.1 Таблицы временных диаграмм

5. Программирование ОВС

5.1 Коды команд ОЭ

5.2 Схема цепей программирования

Заключение

1. Выбор варианта

1.1 Вычисление числа К

Для предупреждения повторов, определение варианта проводится по формуле, которая учитывает количество групп на потоке и количество человек в группе. Формула выглядит следующим образом:

К= (n-1) 30+m (1.1.1)

где n - номер группы студента, а m - номер студента в группе.

К= (2-1) 30+12=30+12=42.

1.2 Выбор параметров варианта

Для решения задачи необходимы начальные условия, а именно:

формула вычисления С;

системы счисления для операндов А и В;

код, в котором происходят вычисления;

направления входа и выхода чисел;

максимальное количество тактов программирования.

Формула вычисления определяется параметром X. Параметр Х равен остатку от деления числа К на 11, т.е.

Х=К mod 11 (1.2.1)

Для К=42, Х=9. Так как Х=9, то согласно табл.1 число С вычисляется по формуле C=7|A-B|/4.

Y=K mod 3 (1.2.2) Z=K mod 7 (1.2.3)

Системы счисления для операндов А и В зависят от параметров Y и Z, вычисляемые по формулам (1.2.2) и (1.2.3) соответственно. Следовательно, по таблицам 2 и 3 можно определить Y и Z. Для выше упомянутого варианта Y=0 и Z=0, т.е. операнд А поступает на вход устройства кодированый в двоично-пятиричной системе счисления, а операнд В - в двоично-девятиричной.

Таблица 1. Таблица 2. Таблица 3.

Х

Формула вычисления С

Y

Система счисления

Z

Система счисления

0

3|A/2-B/4|

0

2-5

0

2-9

1

|3A/4-B|

1

2-6

1

2-10

2

|A-5B/4|

2

2-7

2

2-11

3

|3A-B|/4

3

2-12

4

|3A-4B|

4

2-13

5

|5A-3B|/2

5

2-14

6

5|A-2B|/4

6

2-15

7

|5A/2-2B|

8

|7A/4-2B|

9

7|A-B|/4

10

|6A-5B|

В связи с тем, что в формуле используется вычитание необходимо проводить вычисления в обратном или в дополнительном кодах. Так как К - чётное число, вычитание проводится в дополнительно коде 1.

При помощи параметра V, определяются направления входов операндов и выхода результата.

Для этого используется формула (1.2.4), причём число V представляется в двоичном коде.

V=K mod 64 (1.2.4)

Для сорок второго варианта V=42=1010102, причём следует учесть, что направления движения чисел читаются с право налево, т.е. V=10 10 102, и 00-это юг, 01-запад, 10-север, 11-восток. С В А

Устройство должно выполнить вычисление за минимальное время, т.е. за минимальное количество тактов. Частично этого можно достичь, сократив время программирования ОЭ.

Т (X+Y+Z+6) 16 (1.2.5)

При К=42, накладывается следующее ограничение тактов программирования:

T (9+0+0+6) 16=1516= 240.

Из предыдущих вычислений следует, что С вычисляется по формуле С=7|A-B|/4, число А двоично-пятиричное и поступает с севера, В - двоично-девятиричное и так же поступает с севера, вычитание производится в дополнительном коде, результат выдаётся на север и количество тактов программирования не превышает двухсот сорока.

2. Структура вычислительного процесса алгоритмы вычислений

2.1 Структура вычислительного процесса

В
ОВС вычисления могут производиться ОЭ как последовательно, так и параллельно. В дальнейшем будут использоваться оба способа. Поэтому для наглядности происходящих процессов ниже на рис.1 приведена структура вычислительного процесса.

Рис.1.

2.2 Последовательность обработки операндов

2.2.1 Обработка числа А

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

В начальных условиях указано, что операнд А можно считать положительным числом, а это означает, что прямой код числа совпадает с дополнительным.

Таким образом, обработка числа А состоит в выделении старшей тетрады, выделении младшей тетрады, умножении H на пять и сложении с L. Подробно эти действия представляет алгоритм на рис.2.

Число А2-5 поступает с севера. Выделение старшей тетрады производится путём логического умножения А2-5 на константу вида 111100002 или F016. Это наглядно иллюстрирует пример:

Рис.2

Младшая тетрада выделяется аналогичным способом:

Двоичное число находится по формуле (2.2.1 1)

A2=HnS+L (2.2.1 1)

где S-система счисления двоично-кодированного числа, L-его младшая тетрада, а Hn-нормализированная старшая тетрада двоично-кодированного числа:

а8 а7 а6 а5 0 0 0 0=H

0 0 0 0 а8 а7 а6 а5=Hn

Для сорок второго варианта формула (2.2.1 1) выглядит следующим образом: А2=5Hn+L

Процедура умножения старшей тетрады на пять может быть представленной в виде: 5Hn=Hn+4Hn

2.2.2 Обработка числа В

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

Рис.3

Число В поступает кодированное в двоично-девятиричной системе счисления, поэтому старшая тетрада умножается на девять, причём, поступающее число В отрицательно и его прямой код не совпадает с дополнительным. Следовательно, операнд В необходимо перевести в дополнительный код. Это осуществляется путём вычитания единицы с последующим инвертированием. Вычесть единицу можно путем сложения числа с константой вида 1 1 1 1 1 1 1 12 1.

Всё выше перечисленное показано на рис.3.

2.2.3 Обработка числа С

Для получения числа С необходимо модуль разности чисел А2 и В2 умножить на семь и разделить на четыре. Сумма чисел Адп и Вдп даст результат так же в дополнительном коде. Получить прямой код результата, который будет равен разности чисел А2 и В2, можно при помощи арифметического сложения Сдп с его же знаковыми разрядами:

В
ычисление прямого кода из обратного производится путём сложения по модулю два числа Соб так же с его знаковыми разрядами:



Умножение на семь осуществляется следующим способом: 7C= 4C+2C+C. А деление на четыре путём логического умножения на константу 1 1 1 1 1 1 0 02 и задержкой на два такта.

Рисунок 4 представляет схему алгоритма вычисления числа С.

Схема алгоритма вычисления числа С

Рис.4.

3. Схемы ОВС

3.1 Обозначения на схемах

Для удобства применения и простоты восприятия, операции условно обозначаются значками:

&-логическое умножение;

&-логическое умножение с инверсией;

-логическое сложение;

-сумма по модулю два;

+-арифметическое сложение;

T-условное запоминание;

GC-генерация константы;

DD-задержка на девять тактов.

Кроме этого, пунктирной линией показаны транзиты, стрелками-направления движения чисел. Так же указываются такты задержки и такты выходов первых бит чисел.

Номера ОЭ состоят из двух цифр: первая-номер микросхемы, вторая-номер ОЭ в микросхеме.

3.2 Схема участка ОВС для вычисления числа А

На схеме ОВС непосредственно указывается, как будут работать ОЭ.

На рис.5 представлена схема ОВС для вычисления двоичного числа А.

Число А2-5 поступает на двенадцатый элемент, он выполняет операцию логического умножения константы F016 и А2-5, а так же транзит числа на запад с задержкой на два такта.

Тринадцатый элемент складывает число само с собой и задерживает его на два такта, таким способом достигается задержка числа на три такта.

Р
ис.5

Э

L


лементы четырнадцать и пятнадцать позволяют умножить старшую тетраду на пять, при этом используется свойство двоичных чисел при умножении на константу вида 2:

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

На шестнадцатом элементе происходит выделение младшей тетрады. Девятнадцатый ОЭ производит сложение старшей и младшей тетрад и выдаёт двоичный результат на запад. Одиннадцатый и тридцать четвёртый ОЭ генерируют константы.

3.3 Схема участка ОВС для вычисления числа В

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

Рис.6.

На Рис.6 перевод числа в дополнительный код осуществляется на трёх ОЭ. Тридцать первый ОЭ генерирует константу FF16, а тридцать второй складывает её с двоичным чсислом. Тридцать пятый ОЭ выполняет операцию логического умножения, причём, число умножается само на себя, чем достигается сохранение его начального значения, затем инвертирует его. Таким образом совершается перевод числа в дополнительный код в ОВС.

3.4 Схема участка ОВС для вычисления числа С

Рис.7

Тридцать восьмой ОЭ складывает поступающие числа А и В. Тридцать девятый ОЭ производит задержку числа на девять тактов и подаёт на юг тридцать шестого ОЭ. В тот такт, когда на тридцать шестой ОЭ поступает число Сдп с юга, с запада появляются знаковые разряды числа Сдп. Таким образом выполняется арифметическое сложение числа с его знаковыми разрядами. Такая операция может быть совершена благодаря свойству ОВС что, после чиса (после седьмого бита) следуют знаковые разряды этого числа, т.е. восьмой, девятый, десятый и т.д. биты знаковые разряды.

Аналогичным способом происходит сложение по модулю два числа Соб с его знаковыми разрядами на сорок четвёртом и сорок седьмом ОЭ. На сорок первом, сорок втором, сорок пятом и сорок восьмом ОЭ выполняется умножение числа Спр на семь. А сорок шестой и сорок девятый позволяют делить число на четыре.

Рис.8



4. Временные диаграммы

4.1 Таблицы временных диаграмм

Временные диаграммы приводятся для входов ОВС и для всех использующихся выходов ОЭ. В столбцах указываются такты, в строках-номера ОЭ и имена выходов ОЭ, а так же код направления выхода.

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

Таблица 4.

Временная диаграмма для участка ОВС обрабатывающего число А

Номер ОЭ

Направление

Номер вых (вх)

Такты

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

11

11

1

1

1 0

0

0

0

1

1

1

1

1 0

0

0

0

1

1

1

1

12

(10)

(2)

а1

а2

а3

а4

а5

а6

а7

а8

12

00

3

0

0

0

0

а5

а6

а7

а8

0

0

0

0

12

11

8

а1

а2

а3

а4

а5

а6

а7

а8

13

00

9

а1

а2

а3

а4

а5

а6

а7

а8

34

01

11

1

1

1 0

0

0

0

1

1

1

1

1 0

0

0

0

1

1

1

1

1 0

0

0

0

15

01

4

0

а5

а6

а7

а8

0

0

0

14

11

5

0

0

а5

а6

а7

а8

0

0

15

00

6

а5

а6

Х

Х

Х

Х

Х

Х

18

01

7

а5

а6

Х

Х

Х

Х

Х

Х

16

00

10

а1

а2

а3

а4

1 0

0

0

0

19

01

12

А1

А2

А3

А4

А5

А6

А7

А8

37

01

13

А1

А2

А3

А4

А5

А6

А7

А8

Таблица 5.

Временная диаграмма для участка ОВС обрабатывающего число В

Номер ОЭ

Направление

Номер вых (вх)

Такты

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

21

11

15

1

1 0

0

0

0

1

1

1

1

1 0

0

0

0

1

1

1

1

22

(10)

(14)

в1

в2

в3

в4

в5

в6

в7

в8

22

00

16

0

0

0

0

в5

в6

в7

в8

0

0

0

0

22

11

17

в1

в2

в3

в4

в5

в6

в7

в8

25

01

19

0

0

в5

в6

в7

в8

0

0

24

11

20

0

0

0

в5

в6

в7

в8

0

25

00

21

в5

в6

в7

Х

Х

Х

Х

Х

27

11

22

0 0

1

1

1

1

1 0

0

0

0

1

1

1

1

1 0

0

0

0

28

11

23

1

1

1

1

1 0

0

0

0

29

10

24

1

1

1

1

1 0

0

0

0

23

00

18

в1

в2

в3

в4

в5

в6

в7

в8

26

00

25

в1

в2

в3

в4

1 0

0

0

0

29

01

26

в1

в2

в3

в4

1 0

0

0

0

28

00

27

В1

В2

В3

В4

В5

В6

В7

В8

31

01

28

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

32

00

29

в1

в2

в3

в4

в5

в6

в7

в8

35

00

30

в1

в2

в3

в4

в5

в6

в7

в8

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

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

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

Таблица 6.

Временная диаграмма для участка ОВС обрабатывающего число С

Номер ОЭ

Направление

Номер вых (вх)

Такты

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

38

10

31

с1

с2

с3

с4

с5

с6

с7

Зн

35

11

32

с1

с2

с3

с4

с5

с6

с7

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

36

00

33

с1

с2

с3

с4

с5

с6

с7

Зн

39

10

34

с1

с2

с3

с4

с5

с6

с7

Зн

36

11

35

с1

с2

с3

с4

с5

с6

с7

Зн

Зн

Зн

Зн

Зн

Зн

Зн

Зн

44

00

36

с1

с2

с3

с4

с5

с6

с7

Зн

47

10

37

с1

с2

с3

с4

с5

Номер ОЭ

Направление

Номер вых (вх)

Такты

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

47

10

37

с1

с2

с3

с4

с5

с6

с7

Зн

44

11

38

с1

с2

с3

с4

с5

с6

с7

Зн

45

00

39

с1

с2

с3

с4

с5

с6

с7

Зн

48

10

40

0

с1

с2

с3

с4

с5

с6

с7

42

10

43

0

с1

с2

с3

с4

с5

с6

с7

41

11

44

0

0

с1

с2

с3

с4

с5

с6

42

00

42

с1

с2

Х

Х

Х

Х

Х

Х

45

11

45

с1

Х

Х

Х

Х

Х

Х

Х

49

10

46

1

1

0

0

1

1

1

1

1

1

0

0

46

10

47

с1

с2

с3

с4

с5

с6

с7

c8

43

10

48

с1

с2

с3

с4

с5

с6

с7

c8

В табл.6. обычный шрифт обозначает число в дополнительном коде. Знаки Зн обозначают знаковые разряды числа С в дополнительном коде. Аналогично для курсива, который символизирует обратный код. Жирный шрифт определяет число в прямом коде. Подчёркнутый шрифт представляет конечный результат работы ОВС.

Таблица 7.

Приведение константы FC16

Номер ОЭ

Направление

Такты

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

49

10

1

1

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

0

0

1

49

10

1

1

1

1

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

0

0

5. Программирование ОВС

5.1 Коды команд ОЭ

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

Код операции-трёх разрядное двоичное число, определяемое следующими операциями:

0002-логическое умножение;

0012-логическое умножение с инверсией;

0102-логическое сложение;

0112-сумма по модулю два;

1002-арифметическое сложение;

1012-условное запоминание;

1102-генерация константы или задержка на девять тактов.

Код задержки вычисляется так:

Если ОЭ после операции задерживает число на один такт, то Y=0. Если на два. То Y=1. Кроме этого Y влияет и на операцию. Если Y=0, то операция 1102 выполняет генерацию константы, а если Y=1, то выполняется операция задержки на девять тактов.

Коды входов А1 и А2 управляют направлением входов операндов:

002-юг;

012-запад;

102-север;

112-восток.

Код А3 управляет направлением входа транзита.

Код А4 управляет направлением выхода результата, а А5 и А6 выходами транзитов с задержкой в два и один такт соответственно.

Таблица 8.

Номер ОЭ

16-чный

код

К

О

П

Y

А

1

А

2

А

3

А

4

А

5

А

6

11

С3С3

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

12

098D

0

0

0

0

1

0

0

1

1

0

0

0

1

1

0

1

13

958F

1

0

0

1

0

1

0

1

1

0

0

0

1

1

1

1

14

E5EB

1

1

1

0

0

1

0

1

1

1

1

0

1

0

1

1

15

8989

1

0

0

0

1

0

0

1

1

0

0

0

1

0

0

1

16

1BCF

0

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

17

E000

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

18

E083

1

1

1

0

0

0

0

0

1

0

0

0

0

0

1

1

19

8930

1

0

0

0

1

0

0

1

0

0

1

1

0

0

0

0

21

C3C3

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

22

098D

0

0

0

0

1

0

0

1

1

0

0

0

1

1

0

1

23

EA63

1

1

1

0

1

0

1

0

0

1

1

0

0

0

1

1

24

E5EF

1

1

1

0

0

1

0

1

1

1

1

0

1

0

1

1

25

8986

1

0

0

0

1

0

0

1

1

0

0

0

0

1

1

0

26

08CF

0

0

0

0

1

0

0

0

1

1

0

0

1

1

1

1

27

C03F

1

1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

28

8B47

1

0

0

0

1

0

1

1

0

1

0

0

0

1

1

1

29

95AD

1

0

0

1

0

1

0

1

1

0

1

0

1

1

0

1

31

C3FF

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

32

894F

1

0

0

0

1

0

0

1

0

1

0

0

1

1

1

1

33

FFFF

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

34

61E1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

0

1

35

2907

0

0

1

0

1

0

0

1

0

0

0

0

0

1

1

1

36

8478

1

0

0

0

0

1

0

0

0

1

1

1

1

0

0

0

37

E043

1

1

1

0

0

0

0

0

0

1

0

0

0

0

1

1

38

8920

1

0

0

0

1

0

0

1

0

0

1

0

0

0

0

0

39

D802

1

1

0

1

1

0

0

0

0

0

0

0

0

0

1

0

41

EAEB

1

1

1

0

1

0

1

0

1

1

1

0

1

0

1

1

42

8409

1

0

0

0

0

1

0

0

0

0

0

0

1

0

0

1

43

EF3E

1

1

1

0

1

1

1

1

0

0

1

1

1

1

1

0

44

6478

0

1

1

0

0

1

0

0

0

1

1

1

1

0

0

0

45

8872

1

0

0

0

1

0

0

0

0

1

1

1

0

0

1

0

46

04EF

0

0

0

0

0

1

0

0

1

1

1

0

1

1

1

1

47

D802

1

1

0

1

1

0

0

0

0

0

0

0

0

0

1

0

48

E082

1

1

1

0

0

0

0

0

1

0

0

0

0

0

1

0

49

C3CE

1

1

0

0

0

0

1

1

1

1

0

0

1

1

1

0

5.2 Схема цепей программирования

Программа ОВС

На время программирования наложено ограничение в двести сорок тактов. Код программы одного ОЭ занимает шестнадцать тактов, т.е. одна цепь программирования может программировать 240/16=15 ОЭ. Для того, чтобы соблюсти это условие необходимо разбить ОВС на несколько цепей программирования. Распределение цепей программирования по ОВС показано на рис.9.

Первая цепь программирует ОЭ второй микросхемы в такой последовательности: 21-22-23-24-25-26-27-28-29.

Вторая программирует части первой, третьей и четвёртой микросхем: 11-12-13-31-32-33-41-42-43-14-15-16-34-35-36.

Третья оставшиеся ОЭ: 17-18-19-37-38-39-47-48-49-44-45-46.

Программу ОВС представляют таблицы 9-11.

Р
ис.9

Таблица 9. Таблица 10. Таблица 11.

Номер ОЭ

Код команды

Номер ОЭ

Код команды

Номер ОЭ

Код команды

21

C3C3

11

С3С3

17

E000

22

098D

12

098D

18

E083

23

EA63

13

958F

19

8930

24

E5EF

31

C3FF

37

E043

25

8986

32

894F

38

8920

26

08CF

33

FFFF

39

D802

27

C03F

41

EAEB

47

D802

28

8B47

42

8409

48

E082

29

95AD

43

EF3E

49

C3CE

14

E5EB

44

6478

15

8989

45

8872

16

1BCF

46

04EF

34

61E1

35

2907

36

8478

Заключение

Построена ОВС для решения формулы С=7|A-B|/4 на четырёх микросхемах. Поставленная задача выполняется за двести девяносто семь тактов, из которых двесте сорок тактов программирования. Приведены схемы цепей программирования и коды команд для практического использования. Так же представлены временные диаграммы для контроля ОЭ.