Converting an hls::dds data output channel to an output stream (hls::stream)
I am using the dds_mode_fixed example reference design (vivado hls 2019.2) and am trying to convert the module to output axi4-stream without any fifos. The DDS class (hls::DDS) run method outputs to an array structure and not to an hls::stream.
Originally I wanted to do something like in the hls::nco example, where there is a () operator defined, such that every call to the top function will write a new value to the stream (the testbench will read it from the stream):
but the hls::DDS class run method does not output to a stream. It outputs to an array. I tried to configure the hls::DDS ip to run for 128 samples (default) and then convert to a stream using a loop, which seems to work, but I also get write and read FIFOs (128 deep) inferred, which I don't want. The final objective is to do something with every sample (modulation), and my modulation waveform will be a quite a bit longer than 128 samples. I certainly don't want write\read fifos that are as deep as the modulation waveform inferred. Here's what I have right now (there is also an HLS DATAFLOW directive pragma for tx_top and HLS_PIPELINE directive pragma for the loop in the directives.tcl file):