Я пишу модуль HLS с входом AXI4 Stream. Несколько слов в потоке составляют структуру, к которой я хотел бы получить доступ. Например:
struct eth_header {
ap_uint<48> dest;
ap_uint<48> source;
ap_uint<16> proto;
}
Я легко могу буферизовать слова потока и объединять их в большой ap_uint<112>
. Однако мне бы очень хотелось преобразовать ap_uint<112>
в красивую структуру, подобную приведенной выше eth_header
, к которой я могу получить доступ с помощью синтаксиса поля. Я не могу найти хорошего способа сделать это. Я не могу создать или использовать объединение, потому что класс ap_uint
не является POD.
Можно ли как-то преобразовать типы (без написания явного кода для каждого поля)?
РЕДАКТИРОВАТЬ: было непонятно, нужно ли преобразовать структуру из нескольких слов из потока.