
Книги / Книга Проектирование ВПОВС (часть 2)
.pdf
1 |
1.1.0 |
|
1.1.1 |
1.2.1 |
1.3.1 |
1.4.1 |
1.5.1 |
|
1.6.1 |
1.7.1 |
1.8.1 |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.2.0 |
1.3.0 |
1.4.0 |
1.5.0 |
1.6..0 |
|
1.7.0 |
1.8.0 |
|
|
|
|
|
|
|
|
|
|
|
2 |
2.1.0 |
2.1.1 |
2.2.1 |
2.3.1 |
2.4.1 |
|
2.5.1 |
2.6.1 |
2.7.1 |
2.8.1 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.2.0 |
2.3.0 |
2.4.0 |
2.5.0 |
|
2.6.0 |
2.7.0 |
2.8.0 |
|
|
|
|
|
|
|
|
|
|
|
3 |
3.1.0 |
3.1.1 |
3.2.1 |
3.3.1 |
|
3.4.1 |
3.5.1 |
3.6.1 |
3.7.1 |
3.8.1 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2.0 |
3.3.0 |
3.4.0 |
|
3.5.0 |
3.6.0 |
3.7.0 |
3.8.0 |
|
|
|
|
|
|
|
|
|
|
|
4 |
4.1.0 |
4.1.1 |
4.2.1 |
|
4.3.1 |
4.4.1 |
4.5.1 |
4.6.1 |
4.7.1 |
4.8.1 |
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.2.0 |
4.3.0 |
|
4.4.0 |
4.5.0 |
4.6.0 |
4.7.0 |
4.8.0 |
|
|
|
|
|
|
|
|
|
|
|
5 |
5.1.0 |
5.1.1 |
|
5.2.1 |
5.3.1 |
5.4.1 |
5.5.1 |
5.6.1 |
5.7.1 |
5.8.1 |
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
5.2.0 |
|
5.3.0 |
5.4.0 |
5.5.0 |
5.6.0 |
5.7.0 |
5.8.0 |
|
|
|
|
|
|
|
|
|
|
|
7 |
6.1.0 |
|
6.1.1 |
6.2.1 |
6.3.1 |
6.4.1 |
6.5.1 |
6.6.1 |
6.7.1 |
6.8.1 |
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.2.0 |
6.3.0 |
6.4.0 |
6.5.0 |
6.6.0 |
6.7.0 |
6.8.0 |
|
|
|
|
|
|
|
|
|
|
|
|
9 |
7.1.0 |
7.1.1 |
7.2.1 |
7.3.1 |
7.4.1 |
7.5.1 |
7.6.1 |
7.7.1 |
7.8.1 |
15 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
7.2.0 |
7.3.0 |
7.4.0 |
7.5.0 |
7.6.0 |
7.7.0 |
7.8.0 |
|
|
|
|
|
|
|
|
|
|
|
|
11 |
8.1.0 |
8.1.1 |
8.2.1 |
8.3.1 |
8.4.1 |
8.5.1 |
8.6.1 |
8.7.1 |
8.8.1 |
16 |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
8.2.0 |
8.3.0 |
8.4.0 |
8.5.0 |
8.6.0 |
8.7.0 |
8.8.0 |
|
|
Рис. 3.10
151

3.4.4. Матричная схема множительного устройства
Более эффективным методом повышения производительности является матрица умножителей (см. рис.3.11). Исходной информацией являются произведения, получаемые на аппаратных умножителях. Матрица множителей групп может быть размерностью 2х2 или 4х4. На рис. 3.11 как раз показана матрица 4х4. Возможно использование матриц 8х8 или в предельном случае
Da 1 |
Da 2 |
Da 3 |
Da 4 |
Db 1
Db 2
Db 3
Db 4
Cx. |
Cx. |
Cx. |
Cx. |
||||
умн. |
умн. |
умн. |
умн. |
||||
1.1 |
1.2 |
1.3 |
1.4 |
||||
1.1.0 |
1.1.1 |
1.2.0 |
1.2.1 |
1.3.0 |
1.3.1 |
1.4.0 |
1.4.1 |
Cx. |
Cx. |
Cx. |
Cx. |
||||
умн. |
умн. |
умн. |
умн. |
||||
2.1 |
2.2 |
2.3 |
2.4 |
||||
2.1.0 |
2.1.1 |
2.2.0 |
2.2.1 |
2.3.0 |
2.3.1 |
2.4.0 |
2.4.1 |
Cx. |
Cx. |
Cx. |
Cx. |
|
|||
умн. |
умн. |
умн. |
умн. |
||||
3.1 |
3.2 |
3.3 |
3.4 |
|
|||
3.1.0 |
3.1.1 |
3.2.0 |
3.2.1 |
3.3.0 |
3.3.1 |
3.4.0 |
3.4.1 |
Cx. |
Cx. |
Cx. |
Cx. |
|
|||
умн. |
умн. |
умн. |
умн. |
||||
4.1 |
4.2 |
4.3 |
4.4 |
|
|||
4.1.0 |
4.1.1 |
4.2.0 |
4.2.1 |
4.3.0 |
4.3.1 |
4.4.0 |
4.4.1 |
Рис. 3.11
152

для обработки полей максимальной размерности можно использовать матрицу
16х16 групп. Размерность группы определяется используемой схемой матричного умножителя. Стандарт ПЛИС – это матрица умножителя 9х9 бит.
Один бит знаковый, остальные восемь разрядов значащие.
При умножении формируется следующая последовательность групп.
Здесь в каждом столбце собраны группы, имеющие один вес (рис. 3.11).
Рис. 3.12
Как видно из рисунка, матричный умножитель – суть n-векторных умножителей. Соответственно каждый вектор в матрице (рис. 3.12) формирует сумму частных произведений. Для получения окончательного частичного произведения необходимо просуммировать все частные произведения. Как уже говорилось, наибольшим быстродействием обладает пирамидальный сумматор.
На рис. 3.13 приведен сумматор частных произведений матричного умножителя групп 4х4. Он построен по схеме без коррекции суммы. Достигается это тем,
что на каждом уровне суммирования анализируется дополнительный разряд младшей группы и если он равен единице (знак не ставится, потому что дополнительный разряд содержит только отрицательные единицы), то в следующую группу перенос равен нулю, в противном случае он равен единице.
Для получения окончательной суммы необходимо проводить коррекцию, что выполняется на сумматоре – корректоре (рис. 3.13). Фактически это четвертый уровень полного сумматора (рис. 3.8).
153

154
|
|
1.1.0 |
|
|
0/-1 |
|
+1/0 |
|
|
|
|
|
|
|
+1/0 |
|
|
|
1.2.0 |
1.1.1 |
|
0/-1 |
|
+1/0 |
|
1/0 |
|
|
|
|
2.1.0 |
|
|
|
1/0 |
|
|
1/0
+1/0 |
|
+1/0 |
|
|
1.3.0 |
1.2.1 |
|
0/-1 |
|
|
|
+1 |
|
|
||
2.2.0 |
2.1.1 |
|
0/-1 |
||
|
1/0
1/0
3.1.0
+1/0
1.4.0 |
1.3.1 |
|
1.4.1 |
|
|
|
|
|
|
|
|
|
|
|
|
0/-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.3.0 |
2.2.1 |
|
2.4.0 |
2.3.1 |
|
|
|
|
|
|
|
|
|
|
|
0/-1 |
0/-1 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
1/0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
2.4.1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
3.2.0 |
3.1.1 |
|
3.3.0 |
3.2.1 |
|
3.4.0 |
3.3.1 |
|
3.4.1 |
|
||||
0/-1 |
|
0/-1 |
|
0/-1 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
1/0 |
|
|
1/0 |
|
|
|
+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
4.1.0 |
|
|
4.1.1 4.2.0 |
|
|
4.3.0 |
4.2.1 |
|
|
4.3.1 4.4.0 |
4.4.1 |
|||
|
|
|
0/-1 |
|
|
|
0/-1 |
|
|
|
|
0/-1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
+1/0 |
|
|
|
1/0 |
|
|
|
|
1/0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
+1/0 |
|
|
|
+1/0 |
|
|
|
|
+1/0 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
+1/0 |
|
+1/0 |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.13
154
Таким образом, время формирования частичного произведения
складывается из времени формирования частных произведений
|
ум |
|
и времени
получения частичного произведения
|
cум |
|
,
которое равно времени работы
сумматоров на каждом уровне. Число уровней равно d и время работы каждого
уровня одинаково, поэтому
|
сум |
|
m
. В нашем случае
|
сум |
|
4
. Для
получения окончательного произведения необходимо просуммировать полученные частичные произведения. Правило обхода следующее. Начинают всегда со старших частей, т.е. определяются старшие группы произведения,
которые в дальнейшем не изменяются. Это позволяет начинать выполнение следующих операций над результатом, не дожидаясь окончания умножения. В
данном случае обход осуществляется с массива 1 (рис. 3.10), который суммируется с суммой, полученной в группе 2 и далее с суммой, полученной в группе 3. На рис. 3.15 – 3.18 показаны, полученные частичные произведения при умножении и частичные произведения, формируемые на их основе.
Для суммирования частичных произведений размерность сумматора составляет девять групп. Суммирование начинается с групп, содержащих старшие разряды числа. В нашем случае группы первого и второго массивов
(рис. 3.14).
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
2 |
|
|
|
|
|
|
0 |
0 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
|
|
3 |
|
|
|
|
|
|
0 |
0 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Рис. 3.14
При суммировании анализируются вспомогательные разряды. Если вспомогательный разряд равен нулю, то в следующую группу добавляется единица переноса, а в дополнительный разряд младшей группы добавляется минус единица. Если дополнительный разряд младшей группы равен минус единицы, то перенос в старшую группу равен нулю. Данный приём исключает перенос между группами и не требует дополнительной коррекции. Таким
155
образом, суммирование осуществляется за один такт. Далее суммируются операнды, следующие за старшим массивом, с привлечением последней группы из предыдущего результата. Это связано с необходимостью коррекции предыдущего массива групп при возникновении переноса из следующего за ним массива групп. Далее к результату прибавляется третий массив и т.д. до получения результата. На рис. 3.15 показана последовательность суммирования групп и организации получения результата. Общее число суммирований равно трём. Результат содержит 12 групп. Это связано с необходимостью получения погрешности, не превышающей единицы младшего разряда поля. Первая группа является старшим (целым) разрядом с весом r0. Используется для фиксации переполнения при выполнении операции умножения с накоплением.
Если операция умножения повторяется многократно, то число разрядов увеличивается пропорционально числу повторений. Общее число умножений при формировании результата без отбрасывания поля младших разрядов (8
групп) равно 16 (рис. 3.10), а при формировании произведения длиной, равной исходному полю (8 групп плюс 2 младших групп), равно 10. Общее время выполнение операции умножения зависит, как нетрудно убедится, только от времени умножения и равно Т= N Тумн+ Тсум. Время умножения складывается из
времени получения произведения групп |
|
гр |
плюс суммирование групп c |
|
одинаковыми весами |
|
сум . |
|
156

1.1.0 |
1.1.1 |
1.2.1 |
1.3.1 |
1.4.1 |
|
|
|
|
|
1.2.0 |
1.3.0 |
1.4.0 |
|
|
|
|
|
|
2.1.0 |
2.1.1 |
2.2.1 |
2.3.1 |
2.4.1 |
|
|
|
|
|
2.2.0 |
2.3.0 |
2.4.0 |
|
|
|
|
|
|
3.1.0 |
3.1.1 |
3.2.1 |
3.3.1 |
3.4.1 |
|
|
157 |
|
|
|
|
|
|
|
|
|
|
|
3.2.0 |
3.3.0 |
3.4.0 |
|
|
|
|
|
|
4.1.0 |
4.1.1 |
4.2.1 |
4.3.1 |
4.4.1 |
|
|
|
|
|
4.2.0 |
4.3.0 |
4.4.0 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Рис. 3.15
157

158
1.5.0 |
1.5.1 |
1.6.1 |
1.7.1 |
1.8.1 |
|
|
|
|
1.6..0 |
1.7.0 |
1.8.0 |
|
|
|
|
|
|
2.5.1 |
2.6.1 |
2.7.1 |
2.8.1 |
|
|
|
2.5.0 |
2.6.0 |
2.7.0 |
2.8.0 |
|
|
|
|
|
|
3.5.1 |
3.6.1 |
3.7.1 |
3.8.1 |
|
|
|
3.5.0 |
3.6.0 |
3.7.0 |
3.8.0 |
|
|
|
|
|
|
4.5.1 |
4.6.1 |
4.7.1 |
4.8.1 |
|
|
|
4.5.0 |
4.6.0 |
4.7.0 |
4.8.0 |
|
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
Рис. 3.16
158

159
5.1.0 |
5.1.1 |
5.2.1 |
5.3.1 |
5.4.1 |
|
|
|
|
5.2.0 |
5.3.0 |
5.4.0 |
|
|
|
|
|
6.1.0 |
6.1.1 |
6.2.1 |
6.3.1 |
6.4.1 |
|
|
|
|
6.2.0 |
6.3.0 |
6.4.0 |
|
|
|
|
|
7.1.0 |
7.1.1 |
7.2.1 |
7.3.1 |
7.4.1 |
|
|
|
|
7.2.0 |
7.3.0 |
7.4.0 |
|
|
|
|
|
8.1.0 |
8.1.1 |
8.2.1 |
8.3.1 |
8.4.1 |
|
|
|
|
8.2.0 |
8.3.0 |
8.4.0 |
|
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
Рис. 3.17
159

160
5.5.0 |
5.5.1 |
5.6.1 |
5.7.1 |
5.8.1 |
|
|
|
|
5.6.0 |
5.7.0 |
5.8.0 |
|
|
|
|
|
|
6.5.1 |
6.6.1 |
6.7.1 |
6.8.1 |
|
|
|
6.5.0 |
6.6.0 |
6.7.0 |
6.8.0 |
|
|
|
|
|
|
7.5.1 |
7.6.1 |
7.7.1 |
7.8.1 |
|
|
|
7.5.0 |
7.6.0 |
7.7.0 |
7.8.0 |
|
|
|
|
|
|
8.5.1 |
8.6.1 |
8.7.1 |
8.8.1 |
|
|
|
8.5.0 |
8.6.0 |
8.7.0 |
8.8.0 |
|
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
|
|
|
Рис. 3.18 |
|
|
|
160