12-08-2020 02:55 AM
I am using Vivado 2018.3 and a Zedboard for implementing a design that involves floating point operations. I am using the floating point core to divide two floating point numbers. When one of the slave inputs (s_axis_tdata and s_axis_tvalid) changes, the output data m_axis_tdata is changed after a few clock cycles depending on the latency settings. But m_axis_tvalid remains zero. I was expecting a pulse at tvalid output to signal the next logic that a new tdata is available. I have attached my ila waveform below.
01-04-2021 03:35 AM
Something weird is that you are saying you have a 2 numbers operation. So I assume you need the 2 inputs. However it seems that only one input is sending data (tvalid high). So this would mean that the second input is not valid. So it is like doing a multiplication of a number with an unknown number. The result will always be unknown.
So as the 2 inputs are not valid I would say that this is expected that the output is not valid. So this tells you to ignore the value on tdata.
What would be interesting is to see the tready signals at the input of the block. I am surprise the tready would stay high so the data might not be officially captured
01-04-2021 04:21 AM
One of the inputs is a constant divider whose value doesn't change. I worked around this problem by keeping TVALID of the constant input always HIGH.