Hi Jonathon,

I have identified the cause of this problem as being chdr_framer.v. It appears 
to not be adhering to the axi_stream protocol and is holding onto packets until 
the fifo is full even when o_tready is asserted, causing the described behavior.

The root cause is the switch to axi_fifo_flop2 for the header fifo (changed 
with commit that eb0ae36). The problem is fixed completely by switching this 
back to an axi_fifo_short.

Thanks,

Sam
On Oct 25, 2018, 7:36 PM -0700, Samuel Prager <spra...@usc.edu>, wrote:
> Hey Jonathon,
>
> I had a chance to debug this a little further (On an N300) and have observed 
> the following behavior:
>
> The command packets are getting through to the radio block but are being 
> buffered somewhere along the line so that the first command is either not 
> received or not processed until exactly 16 have been sent.
>
> So if I am sending commands in a loop, there is a 16 command delay before the 
> settings bus writes and a rx command is triggered in the radio.
>
> This seems to indicate that there is a buffer somewhere that doesn’t pass the 
> commands until it is full.
>
> Any thoughts on what the culprit could be?
>
> Sam
> On Oct 23, 2018, 11:17 PM -0700, Jon Pendlum <jon.pend...@gmail.com>, wrote:
> > Hey Sam,
> >
> > There have been some changes to noc_shell, maybe they are related to your 
> > issue. If you want to try to debug this on the FPGA, I suggest using 
> > chipscope on the file cmd_pkt_proc.v. That is the state machine that 
> > receives command packets and issues settings bus writes. You should be able 
> > to see your command packets come in and get processed by the state machine. 
> > You can double check the command packet / timed command vita time versus 
> > the radio core's vita time. You can also see if the state machine gets 
> > stuck in a certain state.
> >
> > Jonathon
> >
> > > On Wed, Oct 24, 2018 at 9:44 AM Samuel Prager <spra...@usc.edu> wrote:
> > > > Hi Jonathan,
> > > >
> > > > Just following up on this. I have switched to the UHD 3.13 release + 
> > > > FPGA version 5.2. This issue still persists.
> > > >
> > > > Is it possible that a change to UHD could be causing this to not work?
> > > >
> > > > If anyone can confirm that they are able to send commands to the radio 
> > > > block from an rfnoc block in recent versions of UHD it would help a lot.
> > > >
> > > > Thanks,
> > > >
> > > > Sam
> > > >
> > > > On Oct 22, 2018, 1:06 PM -0700, Samuel Prager <spra...@usc.edu>, wrote:
> > > > > Hi Jonathan,
> > > > >
> > > > > Yes I add my block and the radio block, connect them and tell my 
> > > > > block to send commands to radio block. I have confirmed today that 
> > > > > the simulation still works correctly in Vivado 2017.4 — the settings 
> > > > > registers are written as expected, an rx command is generated in the 
> > > > > radio and the correct number of samples are streamed back into the 
> > > > > tb_streamer.
> > > > >
> > > > > Sam
> > > > > On Oct 21, 2018, 9:20 AM -0700, Jon Pendlum <jon.pend...@gmail.com>, 
> > > > > wrote:
> > > > > > How does your testbench work? Do you add the radio core block, send 
> > > > > > timed commands to it, and see the outputs toggle?
> > > > > >
> > > > > > > On Sat, Oct 20, 2018 at 1:05 PM Samuel Prager <spra...@usc.edu> 
> > > > > > > wrote:
> > > > > > > > Hi Jonathon,
> > > > > > > >
> > > > > > > > Thanks for the response! Yes I’m using ce_clk and ce_rst. 
> > > > > > > > Thanks for sharing your code — the only real difference I see 
> > > > > > > > is that you increment the seq_num. I am leaving it as 12’b0 — 
> > > > > > > > could this be causing an issue?
> > > > > > > >
> > > > > > > > I should also say that In my case, the command packets are 
> > > > > > > > being sent to the radio block to trigger timed receive commands 
> > > > > > > > in order to reduce the number of software sr_writes.
> > > > > > > >
> > > > > > > > Here’s my code just in case: https://pastebin.com/Asgj7Jw2.
> > > > > > > >
> > > > > > > > This is something that was simulated/verified and worked in the 
> > > > > > > > past, but perhaps a change has been made that prevents this 
> > > > > > > > from working?
> > > > > > > >
> > > > > > > > I will try a release tag as soon as possible — however this is 
> > > > > > > > something I’ve been seeing for a couple of months now that has 
> > > > > > > > kept me on pre-2017.4 releases.
> > > > > > > >
> > > > > > > > Sam
> > > > > > > > On Oct 19, 2018, 8:17 PM -0700, Jon Pendlum 
> > > > > > > > <jon.pend...@gmail.com>, wrote:
> > > > > > > > > Hi Sam,
> > > > > > > > >
> > > > > > > > > I am using command packets to tune the DDC block's DSP 
> > > > > > > > > frequency. Are you using ce_clk and ce_rst for clock and 
> > > > > > > > > reset? Here is my code if you want to take a look: 
> > > > > > > > > https://pastebin.com/1AeHFb0J. Also, it might be worth trying 
> > > > > > > > > your code on a release tag like v3.13.0.2 in case master has 
> > > > > > > > > a regression.
> > > > > > > > >
> > > > > > > > > Jonathon
> > > > > > > > >
> > > > > > > > > > On Sat, Oct 20, 2018 at 8:11 AM Samuel Prager via 
> > > > > > > > > > USRP-users <usrp-users@lists.ettus.com> wrote:
> > > > > > > > > > > Hello,
> > > > > > > > > > >
> > > > > > > > > > > I have an RFNoC block that generates command packets to 
> > > > > > > > > > > write settings registers of the downstream connected 
> > > > > > > > > > > block using the Control Source (cmdout_tdata) of the 
> > > > > > > > > > > noc_shell . Previously this had worked perfectly (prior 
> > > > > > > > > > > to approximately d6b2283 on rfnoc-devel), for both the 
> > > > > > > > > > > X300 and E310, but this functionality appears to perhaps 
> > > > > > > > > > > be broken in the more recent FPGA releases — since around 
> > > > > > > > > > > the switch to Vivado 2017.4 and the move of the noc block 
> > > > > > > > > > > clock domain crossing to axi_wrapper.v). I have tried the 
> > > > > > > > > > > latest master branch (4f25ed1) with no success.
> > > > > > > > > > >
> > > > > > > > > > > Is this a known issue? Can anyone shed light on what 
> > > > > > > > > > > might have caused this?
> > > > > > > > > > >
> > > > > > > > > > > The control packets are generated in my block as follows:
> > > > > > > > > > >
> > > > > > > > > > > wire eob = 1’b0;
> > > > > > > > > > > wire [1:0] pkt_type = 2'b10;
> > > > > > > > > > > wire [11:0] seqnum = 12'd0; // don't care
> > > > > > > > > > > wire [15:0] payload_length = 16'd16; //don't care 
> > > > > > > > > > > (payload length in bytes)
> > > > > > > > > > > assign cmd_tdata = {24’d0,set_bus_addr[7:0], 
> > > > > > > > > > > set_bus_val[31:0]};
> > > > > > > > > > >
> > > > > > > > > > > cvita_hdr_encoder cvita_hdr_encoder(
> > > > > > > > > > > .pkt_type(pkt_type),.eob(eob), .has_time(1'b0),
> > > > > > > > > > > .seqnum(seqnum),
> > > > > > > > > > > .payload_length(payload_length),
> > > > > > > > > > > .src_sid(src_sid), .dst_sid(dst_sid),
> > > > > > > > > > > .vita_time(vita_time),
> > > > > > > > > > > .header(cmd_tuser)
> > > > > > > > > > > );
> > > > > > > > > > >
> > > > > > > > > > > chdr_framer #(.SIZE(FIFO_SIZE), .WIDTH(64)) chdr_framer (
> > > > > > > > > > > .clk(clk), .reset(reset), .clear(clear),
> > > > > > > > > > > .i_tdata(cmd_tdata), .i_tuser(cmd_tuser), 
> > > > > > > > > > > .i_tlast(cmd_tlast), .i_tvalid(cmd_tvalid), 
> > > > > > > > > > > .i_tready(cmd_tready),
> > > > > > > > > > > .o_tdata(cmdout_tdata), .o_tlast(cmdout_tlast), 
> > > > > > > > > > > .o_tvalid(cmdout_tvalid), .o_tready(cmdout_tready));
> > > > > > > > > > >
> > > > > > > > > > > The command packets appear to never reach the destination 
> > > > > > > > > > > rfnoc block, but I am at a loss for the cause.
> > > > > > > > > > >
> > > > > > > > > > > Is anyone currently using the control source 
> > > > > > > > > > > functionality of the noc_shell? I would really appreciate 
> > > > > > > > > > > any pointers on how to fix this.
> > > > > > > > > > >
> > > > > > > > > > > Thank you,
> > > > > > > > > > >
> > > > > > > > > > > Sam
> > > > > > > > > > >
> > > > > > > > > > > _______________________________________________
> > > > > > > > > > > USRP-users mailing list
> > > > > > > > > > > USRP-users@lists.ettus.com
> > > > > > > > > > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to