Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книги / Книга Проектирование ВПОВС (часть 2)

.pdf
Скачиваний:
84
Добавлен:
01.06.2015
Размер:
4.62 Mб
Скачать

следует использовать четырёхразрядные сумматоры с параллельным переносом на основе их последовательного соединения. Хотя задержка несколько увеличивается, но оборудование и число входов на элементах “ИЛИ” в целом сокращается, что делает метод более пригодным и для реализации на ПЛИС.

4.4. Организация операционных устройств вычислителя значений

функций

При вычислении функций оказывается недостаточным наличия только сумматора и умножителя [35]. Так как при их реализации возникает необходимость реализовать как сдвиги на величины кратные группам, так и на число разрядов не кратное размеру группы. Кроме того, возникает необходимость умножения на числа количество разрядов, которых не кратны числу разрядов в группе. Всё это приводит к необходимости разработки специальных операционных узлов для вычислителя функций.

4.4.1. Устройство сдвига на число разрядов меньшее группы

Данное устройство обеспечивает сдвиг на заданное число разрядов последовательно за r-шагов, где r число разрядов, на которое сдвигается поле.

Устройство сдвига показано на рис. 4.6.

 

Рег.

вспомогат.

 

0

1

2

3

4

5

6

7

+

1

2

3

4

5

6

7

8

+

1

2

3

4

5

6

7

8

 

 

8

Рег. старш. груп.

Рег. млад. груп.

 

 

 

 

C

 

 

0

 

 

&

 

&

&

0

1

2

3

4

5

6

 

7

8

0

0

 

0

 

0

 

0

 

 

0

0

 

1

1

 

 

 

7

6

5 4

 

3

 

2

1

C C

6

C C

4

C

3

C

2

C

1

 

 

7

 

5

 

 

 

 

 

 

 

1

1

 

1

 

1

 

1

 

 

1

1

 

Число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сдвигов

Рис. 4.6

Последовательное устройство сдвига содержит три регистра для хранения текущей информации: один регистр для старшей группы, регистр для следующей младшей группы и два вспомогательных регистра: один для хранения входящих, другой – уходящих разрядов при сдвиге. А также

271

специальный регистр для хранения числа сдвигов. Количество сдвигов задаётся в форме унитарного кода, т.е. число единиц определяет число сдвигов, одна единица сдвиг на разряд, две – на два разряда и т.д. до семи единиц (сдвиг на семь разрядов). Рассмотрим сдвиг числа на семь разрядов. Во вспомогательный регистр старшей группы вначале заносятся нули, в регистр старшей группы – первая значащая группа, в регистр младшей группы заносится следующая

группа. Вспомогательный регистр младшей группы обнуляется. В регистр

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

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

содержимое вспомогательного разряда младшей группы переносится во вспомогательный разряд старшей группы. Одновременно восстанавливается значение регистра числа сдвигов, и процесс продолжается над следующей парой регистров. Процесс заканчивается после обработки всех групп. Каждый этап сдвига выполнятся за такт. Общее время сдвига равно Т = tз + (mtсд) p/2 =

=tз+(mp

 

)/2, где tз– время записи, tсд– время сдвига, m-число сдвигов, р – число

 

групп. При времени такта = 4нс, m =8 и р =16 время сдвига равно (tз+ 256) нс.

4.4.2. Устройство параллельного сдвига

Для снижения времени сдвига используется параллельный сдвиг на заданное число разрядов. Схема устройства сдвига приведена на рис. 3.7.

272

 

 

...

Коммутатор

Коммутатор

Рег. стар. групп

Рег. млад. групп

Рег. остатка

Рис. 4.7

Она содержит три регистра: регистр старшей группы, регистр младшей группы и регистр остатка, а также два коммутатора и два сумматора. Сдвиг осуществляется, начиная со старшей группы, которая заносится в регистр старшей группы. В регистр младшей группы заносится следующая за старшей группа. Коммутаторы настраиваются на требуемый сдвиг, в регистр остатка в начальный момент заносятся нули. После суммирования на выходах сумматоров формируется результат. Уходящие из второй группы разряды заносятся во вспомогательный регистр – регистр остатка. Далее выбираются следующие две группы, и процесс повторяется до тех пор, пока не поступит последняя значащая группа. Число, хранимое во вспомогательном регистре при

обработке последней группы, игнорируется.

Время сдвига при такой организации устройства равно Т = (tз + tсд + tсумм)

p/2 = 5p/2

 

, где tз =

 

; tсд =

 

, tсумм = 3

 

. Таким образом, выигрыш по времени

 

 

 

 

составляет

m 5

, в нашем случае при m = 8 это составляет

1.6

раз.

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

273

последовательного сдвига (см. рис. 4.6). Например, увеличить число групп до четырёх. В этом случае время уменьшится в два раза и т. д.

Нетрудно увидеть, что увеличение числа групп в устройствах сдвига

(как последовательного, так и параллельного) носит регулярный характер и,

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

4.4.3. Устройство сдвига на кратное число групп

На рис. 2.8 показана схема сдвига поля на число разрядов кратное группе. Так как построить коммутатор со сдвигом произвольного числа на произвольное число групп технически не реализуемая задача, то выбирается минимальный коммутатор, в данном случае коммутатор на четыре группы со сдвигом на четыре группы (в дальнейшем коммутатор 4х4). Сдвиг на произвольное число групп большее, чем четыре группы, осуществляется последовательно в соответствии с формулой R = n + m, где n – число сдвигов по 4-е группы, m – число сдвигов на число групп меньше четырёх.

1

2

3

4

5

6

7

8

8

10

11

12

13

14

15

16

 

Коммутатор

 

 

Коммутатор

 

 

Коммутатор

 

 

Коммутатор

 

Рег.1

 

 

 

Рег.2

 

 

 

Рег.3

 

 

 

Рег.4

 

 

 

4 схемы ИЛИ

4 схемы ИЛИ

4 схемы ИЛИ

Рис. 4.8.

На рис. 4.9 приведён пример сдвига на 5 групп. На первом этапе осуществляется сдвиг на 4-е группы, а на втором этапе сдвиг на одну группу.

274

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

0

0

0

0

1

2

3

4

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

5

6

7

8

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

9

10

11

12

1

2

3

4

5

6

7

8

8

10

11

12

13

14

15

16

 

0

0

0

0

0

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

4

5

6

7

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Рис. 4.9

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

4.4.4. Устройство умножения на числа произвольного формата

При вычислении функций возникает необходимость умножения на числа произвольного формата [37]. В частности, при умножении на обратную величину простого числа или обратную величину факториала. Укажем, что умножение осуществляется на значение периода и далее производится сдвиг произведения на значения длины периода. Затем исходное произведение и сдвинутое на период поле суммируются. Затем текущее сдвинутое на период поле вновь сдвигается на период. Далее сдвинутое поле добавляется к текущему произведению. Операция продолжается до тех пор, пока не будет получен результат с заданной погрешностью.

275

Рассмотрим пример. Пусть необходимо умножить поле 2х4(две группы

по четыре бита).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Х = 0.1101 0.1101;

Z = 0.(000111),

 

 

 

 

 

 

 

 

 

где Х – исходное число; Z – двоичное представление дроби 1/11.

 

 

Умножение в двоичном коде

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

1

1

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

0, 0

0

0

1

1

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

0, 0

0

0

0

1

1

0

1

1

1

0

1

 

 

 

 

 

 

 

 

0, 0

0

0

0

0

1

1

0

1

1

1

0

1

 

 

 

 

 

 

 

0, 0

0

0

1

0

1

0

0

1

0

1

1

1

 

 

 

 

 

 

 

0, 0

0

0

0

0

0

1

1

0

1

1

1

0

1

 

 

 

 

 

 

0, 0

0

0

1

0

1

1

1

0

0

1

0

1

1

 

 

 

 

 

 

0, 0

0

0

1

 

0, 0

1

1

1

 

0, 0

0

1

0

0, 1

1

0

0

Умножение в коде “опережающий перенос”

 

 

 

 

 

0, 1

1

0

1

 

0, 1

1

0

1

 

 

 

 

 

 

 

 

 

 

0, 0

0

0

1

 

0, 1

1

0

0

 

 

 

 

 

 

 

 

 

 

0, 0

0

0

0

 

0, 1

1

0

1

 

0, 1

1

0

1

 

 

 

 

 

 

 

 

 

 

0, 0

1

1

0

 

0, 1

1

1

0

0, 1

 

 

 

0, 0

0

0

1

 

0, 0

1

1

0

 

0, 1

0

1

1

0, 1

 

 

 

 

 

 

 

 

 

0, 0

0

1

1

 

0, 1

1

1

1

0, 0

1

 

 

 

 

 

 

 

 

0, 1

1

0

0

 

0, 0

0

1

1

0, 1

1

0

0

0, 0

0

0

1

 

0, 0

1

1

1

 

0, 0

0

1

0

0, 1

1

0

0

Как видим, результаты совпадают.

На рис. 4.10 приведена структура устройства, обеспечивающего умноже-

ние на период.

Оно содержит:

-умножитель, обеспечивающий получение первого значения поля;

-устройство сдвига на период, позволяющее сформировать требуемое число полей, для обеспечения требуемой погрешности результата;

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

276

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

x

2

Z = Период

 

 

Умножитель

Регистр

Сдвигатель на n-групп

Сдвигатель m-разрядов

Накапливающий сумматор групп

Регистр

Рис. 4.10

Устройство содержит умножитель на период, который имеет полное число групп. Если период не кратен числу групп, то в неполной группе младшие разряды дополняются нулями до полной группы. Кроме того,

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

277

4.4.5. Устройство реализации итеративного цикла при вычислении

функций

Наиболее длительной операцией при вычислении функций является операция итеративного цикла, так как она требует большого числа повторений операций умножения и суммирования. Основным циклом, как было показано выше, является цикл формирования экстраполированного значения искомого

ряда:

Э

Э

 

 

x2

 

x2

 

x2

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ui 1

Ui 2

 

 

 

1

 

1

 

 

 

.

 

аi 1 аi 2

аi 3 аi 4

1

 

 

 

 

 

аi

аi 1

 

 

 

 

аi 5 аi 6

 

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

Э

Э

Э

Э

. Поэтому для уменьшения времени выполнения операций

Ui 1

,Ui 2

,Ui 3

,Ui 4

выбираем параллельный метод. Для его реализации потребуется не менее пяти умножителей.

Устройство содержит пять умножителей, четыре устройства сдвига,

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

Формирование обратного произведения аi аi 1 осуществляется следующим образом: вначале исходное произведение представляется в виде произведения простых чисел 2-rр1р2рк сдвинутое на r разрядов. Периоды обратных величин простых чисел хранятся в форме произведения периодов на степень числа 2 (см. табл. 4.7).

В табл. 3.7 представлены такие произведения (К – исходные числа – знаменателя, n – количество групп). Значение произведения представляется в форме двоичных периодических чисел.

278

Таблица 4.7

 

K

1/К (двоичное представление)

Число сдвигов, суммирований

ai

 

ai+1

 

и умножений

 

 

 

 

 

 

 

 

 

 

 

 

Сдвиг

Сумм

Умн

1

 

2

2-1

1

0

0

3

 

4

2-2(0,01)

2(1+n)

n

0

5

 

6

2-1(0,01)(0,0011)

1+2n+4n

2n

n

7

 

8

2-3 (0,001)

3(1+n)

n

0

9

 

10

2-1(0,01)(0,01)

1+2n+2n

2n

0

11

 

12

2-2(0,01)(0,000111)

2+2n+6n

2n

n

13

 

14

2-1(0,001)(0,0001 0011 1011)

1+3n+(12n-2)

2n

2n

15

 

16

2-4(0,01)(0,0011)

4+n+n

2n

n

17

 

18

2-1(0,01)(0,01)(0,001)

1+2n+2n+3n

3n

0

19

 

20

2-2(0,0011)(0,0000111100101)

2+4n+5n+n*1гр

2n

2n

21

 

22

2-1(0,01) (0,001) (0,000111)

1+2n+3n+6n

3n

n

23

 

24

2-3(0,01)(0,0000111100101)

3+2n+5n+n*1гр

2n

n

25

 

26

2-1(0,0011) (0,0011)

1+2x4n+n+n*1гр

3n

3n

 

 

 

(0,0001001010)

 

 

 

27

 

28

2-2(0,01) (0,01) (0,01) (0,001)

2+3x2n+3n

4n

0

29

 

30

2-1(0,01) (0,0011) (0,0000101001)

1+(2+4+2)n+n*1гр

3n

2n

 

 

 

 

 

 

 

31

 

32

2-5 (0,00001)

5+5n

n

0

33

 

34

2-1(0,01) (0,001) (0,000111)

1+(2+3+6)n

3n

n

35

 

36

2-2(0,01) (0,01) (0,001) (0,0011)

2+(2n+2n+3n+4n)

4n

n

37

 

38

2-1(0,000011100101)

1+(4+1гр)n+(3+4гр)

2n

2n

 

 

 

(0.000001101110

n

 

 

 

 

 

10110101110010010010011)

 

 

 

39

 

40

2-3(0,01)(0,0011)(0,00010011 1011)

3+2n+4n+(4+1гр)n

3n

2n

41

 

42

2-1(0,01) (0,00100000 01101101

1+2n+(4+5гр)n

3n

(n-3)

 

 

 

01011001

 

 

 

 

 

 

01110010 01001001 0011)

 

 

 

43

 

44

2-2(0,000111) (0,00000101

2+6n+(4+3гр)n

2n

n+(n-

 

 

 

11110100 00010111 1101)

 

 

3)

45

 

46

2-1(0,01) (0,01)

1+6n+(4+1гр)

4n

2n

 

 

 

(0,0011)(0,00001111 0101)

 

 

 

279

279

 

X

X

 

 

 

 

U i+k

Упр.

К

К

Упр.

 

Умножитель 1

 

 

 

 

 

1/к

 

 

 

Упр.

К

2

-k

1

Сдв. 1

 

Упр.

 

К 3

Рг.1

 

 

 

 

 

Умножитель 2

 

 

 

К

Упр.

 

 

 

Полный

 

 

 

 

сдвигатель 2

 

 

 

Накопительный

 

 

 

сумматор

 

 

1/к

 

 

 

1/к

 

 

 

 

1/к

 

 

 

Упр.

 

К

 

 

Упр.

 

К

 

 

 

Упр.

 

К

2

2

Сдв.1

 

 

2

3

Сдв. 1

 

 

2

 

4

Сдв. 1

 

 

 

-k

 

 

 

 

-k

 

 

 

 

-k

 

 

 

 

Упр.

К 4

Рг.1

Упр.

 

К 5

Рг.1

Упр.

 

К 6

Рг.1

 

 

 

 

 

 

 

 

 

 

Умножитель 2

 

 

Умножитель 2

 

 

 

Умножитель 2

 

 

К

 

Упр.

 

 

К

 

Упр.

 

 

 

К

 

Упр.

 

 

Полный

 

 

 

 

Полный

 

 

 

 

 

Полный

 

 

 

 

сдвигатель 2

 

 

 

сдвигатель 2

 

 

 

 

сдвигатель 2

 

 

 

Накопительный

 

 

Накопительный

 

 

 

Накопительный

 

 

сумматор

 

 

 

 

сумматор

 

 

 

 

 

сумматор

 

 

Рис.4.11

280