Hi all,
I'm trying to write a very simple block via Rfnocmodtool, and I'm
confronting various problems. I believe I've missed some core concepts of
the whole rfnoc structure and would like to settle things straight.
Following the "gain" example from the tutorial, I tried writing a simple
threshold block. I created input and output fifo's, similar to those in the
tutorial, and between them added the following code:
assign i_out = pipe_in_tdada [31:16];
assign q_out = (pipe_in_tdada[15:0] > thresh) ? 1 :
0;
wire [31:0] thresh_out = {i_out [15:0], q_out [15:0]};
Quite simple, ain't it? I receive the following problems:
1. The testbench duplicates the bits I assign to the output, so instead
of a "0...01" (32 bits) I get a "0..010...01" (64 bits). I've tried various
numbers, and always get the 32 bits duplicated to a completely different
output. does this have anything to do with the AXI wrapper? How am I
supposed to assign values to the output of a block?
2. In some awkward permutation of the above code, the problem didn't
occur. when implementing in the grc, the block didn't really do anything -
inputs continued as they are to the output. How is this possible? Doesn't
my design strictly allow only ones and zero's to pass?
3. General understanding of rfnoc integration in the grc: If I were to
connect a constant source to a standard sink, I would be able to assign any
amplitude of my choice - 8,5,17. But when I put a Rfnoc block in the flow
(e.g. the gain from the tutorial), then the sink receives values within
[-1,1] only. why does this happen and what does it mean?
Thank you so much for your time,
Steve
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com