Craig, If what you are trying to do is build a verilog test bench and use this data as stimulus then stay within GR, multiply your float data by 2^16 and then convert it to short integer before passing to file sink(s). That will give you two's complement signed integer signal data.
Assemble your packet level tdata[63:0] from file data as follows (where I1/Q1 follows I0/Q0 in time): [63:56] I0 MSB [55:48] I0 LSB [47:40] Q0 MSB [39:32] Q0 LSB [31:24] I1 MSB [23:16] I1 LSB [15:8] Q1 MSB [7:0] Q1 LSB If this block is expecting packetized data, rather than a simple sample stream then assume you already understand the packet header format you need to add also? My tip for the day, especially since right now you are just building a loop back to bring up your test bench is generate simple waveforms entirely within your test bench. A saw tooth or triangle wave is incredibly easy to generate by incrementing a signed integer type, and visually easy to check in a waveform viewer. In terms of number format, try to think of the integer data as Q1.15, not Q16. In otherwords 0x8000 represents -1.0 and 0x7fff represents 0.99999....when you actually analyze your DSP architecture it makes it easier to keep track of word growth knowing that 1.15+1.15 = 2.15 and 1.15*1.15 = 2.30 -Ian On Wed, May 18, 2016 at 1:52 PM, Martin Braun <martin.br...@ettus.com> wrote: > On 05/18/2016 12:56 PM, Swanson, Craig wrote: > > gnuradio-companion. Here are my steps and questions: > > Craig, > > short answer: What Ian said, and also: > > > 8. Once I can agree that my 32 bit real and imaginary numbers are > > making sense in QT GUI Time Sink and File Sink, then I have to > > convert that 32 bit hex value into Q16 format which RFNoC > > noc_block_moving_avg is expecting to be sent to i_tdata (64 bits=two > > sets of real and imag) and then m_axis_data_tdata(32 bits=one set of > > real and imag, sent twice=64 bits)? > > 9. How do I convert the 32 bit IEEE 754 data (gnuradio) into Q16 > (RFNoC)? > > You do *not* have to convert anything. UHD does that for you. You feed > it fc32 data (std::complex<float>) and tell the streamer to convert it > to sc16. Which is the default. > > M > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio