diff options
author | justanothercatgirl <sotov@twistea.su> | 2025-05-14 19:16:38 +0300 |
---|---|---|
committer | justanothercatgirl <sotov@twistea.su> | 2025-05-14 20:24:21 +0300 |
commit | 11508800cfaefc1c25a793760bf10d3fd997af80 (patch) | |
tree | 8ed58e143243415830f97ea74b9ba4613df23e85 /questions/2-b.txt |
Diffstat (limited to 'questions/2-b.txt')
-rw-r--r-- | questions/2-b.txt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/questions/2-b.txt b/questions/2-b.txt new file mode 100644 index 0000000..837c2c3 --- /dev/null +++ b/questions/2-b.txt @@ -0,0 +1,33 @@ +Вычисление максимума + +Требуется при помощи языка Verilog спроектировать параметрический блок +вычисления максимума нескольких чисел и индекса исходного числа, на котором +достигается максимум. Схема вычисления выполнена в виде дерева, когда +последовательные пары чисел сравниваются и среди них выбирается максимальный. +Аналогичная схема применяется к результирующим числам, пока не получиться одно +число. + +Имя модуля должно быть max_argmax. + +Парметры модуля: + + * WIDTH - размер числа (по умолчанию, 8 бит). + * SIZE - количество уровней в дереве вычислений (по умолчанию, 2). При этом + количество чисел, для которых вычисляется максимум, равно 2 в степени + SIZE. + +Вход модуля: data_in - шина проводов размера (2**SIZE) * WIDTH, представляющая +собой последовательную конкатенацию всех входных чисел. + +Выход модуля: + + * data_max - шина проводов размера WIDTH, представляющая собой результат + сложения. + * argmax - шина проводов размера SIZE, представляющая собой номер числа, на + котором достигается максимум (числа нумерутся слева направо, нумерация + начинается с 0). + +Если максимальное значение достигается на нескольких числах, то argmax +возращает индекс последнего числа, на котором достигается максимум. + + |