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
31
32
33
|
Вычисление максимума
Требуется при помощи языка Verilog спроектировать параметрический блок
вычисления максимума нескольких чисел и индекса исходного числа, на котором
достигается максимум. Схема вычисления выполнена в виде дерева, когда
последовательные пары чисел сравниваются и среди них выбирается максимальный.
Аналогичная схема применяется к результирующим числам, пока не получиться одно
число.
Имя модуля должно быть max_argmax.
Парметры модуля:
* WIDTH - размер числа (по умолчанию, 8 бит).
* SIZE - количество уровней в дереве вычислений (по умолчанию, 2). При этом
количество чисел, для которых вычисляется максимум, равно 2 в степени
SIZE.
Вход модуля: data_in - шина проводов размера (2**SIZE) * WIDTH, представляющая
собой последовательную конкатенацию всех входных чисел.
Выход модуля:
* data_max - шина проводов размера WIDTH, представляющая собой результат
сложения.
* argmax - шина проводов размера SIZE, представляющая собой номер числа, на
котором достигается максимум (числа нумерутся слева направо, нумерация
начинается с 0).
Если максимальное значение достигается на нескольких числах, то argmax
возращает индекс последнего числа, на котором достигается максимум.
|