Приветствую!
Если диапазон значения входных слов действительно не велико (как Вы указали 00000000..0000FFFF)
то самое простое решение это N прямых таблиц - в данном случае для каждого канала Ri * No * Woт
Ri -диапазон входных слов в канале i
No -число каналов куда надо роутить выход
Wo -разрядность слова выхода
Приходит слово в канал - вычитываете из памяти строку таблицы i в No слов - каждое слово - для соответствующего выходного канала.
При ваших параметрах - это всего будет 8 таблиц по 65К*8 слов = 16 MByte и ~10М запросов/сек -> ~320МByte/s скорости доступа на чтение. При доступной 128MByte памяти можно делать несколько таблиц обновлять их в фоне и атомарно переключать. Для чтения даже DMA не нужен будет - только простой AXI4 мастер.
А обновлять таблицы можно и нужно системой на Microblaze.
А вот если диапазон входных значений велик да если еще и не линеен - то тут придется лепить полноценный поиск по разреженной таблице с хешированием, разруливанием коллизий, блекджеком и шлюх...

Успехов! Rob.