TLAST Signal Not Generated in RTL Files (HLS4ML + Vitis HLS and pynq Z2)

Hi,
I am using Vitis HLS for my signature forgery detection project. I wrote the ML model in Python and used HLS4ML to convert it into C++ files. I then used Vitis HLS to generate RTL files.

I am planning to include DMA in my block design, so I need the TLAST signal. However, although I am using io_stream in HLS4ML (which should automatically generate the TLAST signal), it is not being generated in the RTL files.

I have attached the C++ file, and some of the header files for reference.
Has anyone faced a similar issue or knows how to ensure TLAST is included in the RTL design?
There are several other header files generated, but I’ve shared the ones I felt were most relevant.
Any help or suggestions would be appreciated.

myproject.cpp (3.7 KB)
defines.h (2.2 KB)
Code for myproject.h file is as follows :
#ifndef MYPROJECT_H_
#define MYPROJECT_H_

#include “ap_fixed.h”
#include “ap_int.h”
#include “hls_stream.h”

#include “defines.h”

// Prototype of top level function for C-synthesis
void myproject(
hls::stream<input_t> &q_conv2d_input,
hls::stream<result_t> &layer12_out
);
#endif

Thank you!

Hi @S_D,

Welcome to the PYNQ community.

I am not familiar with the internals of HLS4ML. Are you explicitly setting TLAST to 1?
Also, you may be better off asking the question in the HLS4ML support forum.

Mario

Can I connect this custom IP core [not having TLAST signal] to a DMA using FIFO ?
and where should I connect my ap_ctrl signal to ?
I am attaching my IP core image for reference.


Thank you

Hi @S_D,

I suggest you check out this tutorial

You will need to provide the TLAST, otherwise, the DMA will not work correctly.

Mario