diff options
Diffstat (limited to 'questions/2-c.txt')
-rw-r--r-- | questions/2-c.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/questions/2-c.txt b/questions/2-c.txt new file mode 100644 index 0000000..d93b677 --- /dev/null +++ b/questions/2-c.txt @@ -0,0 +1,38 @@ +Требуется при помощи языка Verilog спроектировать параметрический блок +линейного классификатора. Данный блок получает на вход набор значений признаков +и их веса. Для каждого класса вычисляется сумма произведений значений признаков +на веса. Среди полученных значений находится максимум и в качестве результата +блок выдает индекс класса, на котором был достигнут максимум. + +Имя модуля должно быть linear_classifier. + +Параметры модуля: + + * WIDTH - размер чисел (по умолчанию, 8 бит). + * FEATURES - количество признаков (по умолчанию, 2). + * C_WIDTH - количество бит, которые используются для хранения индеска класса + (по умолчанию, 1). Считается, что число классов является степенью + двойки. + +Входы модуля: + + * features - шина проводов размера FEATURES * WIDTH, представляющая собой + последовательную конкатенацию значений входных признаков. + * weights - шина проводов размера (2**C_SIZE) * FEATURES * WIDTH, + представляющая собой последовательную конкатенацию значений весов + признаков для всех классов. + +Выходы модуля: + + * r_value - шина проводов размера WIDTH, представляющая собой результат + вычисления максимума. + * r_class - шина проводов размера C_WIDTH, представляющая собой индекс + класса, на котором достигается максимум (классы нумерутся слева + направо, нумерация начинается с 0). + +При проектировании модуля можно использовать модули tree_adder и max_argmax, +описанные в заданиях A и B, в качестве подмодулей (сами модули проектировать не +нужно, они будут автоматически использованы при проверке, если были +использованы). + + |